/* Generated (phase-5 PR3): one class per distinct inline style formerly on coverage.html. Content-addressed (tl-<sha1[:8]>). */
.tl-0030a67a.tl-0030a67a{font-size:11px;color:rgba(26,20,16,0.8)}
.tl-01b99a5f.tl-01b99a5f{width:100%;padding:14px 16px;background:white;border:1.5px solid rgba(26,20,16,0.12);border-radius:8px;color:#1A1410;font-size:15px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;outline:none;transition:border-color 0.2s}
.tl-05be27f5.tl-05be27f5{display:inline-flex;align-items:center;gap:8px;background:transparent;color:#1A1410;padding:14px 32px;border:1.5px solid rgba(26,20,16,0.2);border-radius:6px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;transition:all 0.2s}
.tl-0df8a6ec.tl-0df8a6ec{font-size:16px;color:rgba(26,20,16,0.85);line-height:1.75;font-weight:300;padding-bottom:0.5rem}
.tl-0e09bf2d.tl-0e09bf2d{display:grid;gap:0.75rem}
.tl-0f77128a.tl-0f77128a{background:white;border:1px solid rgba(26,20,16,0.08);border-radius:14px;padding:2rem;border-top:4px solid #C0392B}
.tl-10145e99.tl-10145e99{font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600}
.tl-1350f3eb.tl-1350f3eb{width:100%;padding:14px 16px;background:white;border:1.5px solid rgba(26,20,16,0.12);border-radius:8px;color:#1A1410;font-size:15px;font-family:'DM Sans',sans-serif;outline:none;transition:border-color 0.2s}
.tl-169d7672.tl-169d7672{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem}
.tl-1782233c.tl-1782233c{display:inline-flex;align-items:center;gap:8px;background:#C0392B;color:white;padding:14px 32px;border-radius:6px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;transition:all 0.2s}
.tl-1970f5fc.tl-1970f5fc{text-align:center;margin-top:1.5rem;font-size:12px;color:rgba(26,20,16,0.8);line-height:1.7;font-weight:300}
.tl-1f14a857.tl-1f14a857{padding:1rem 1.5rem;font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase}
.tl-20d276fe.tl-20d276fe{background:#F5F0E8;border:1px solid #0F2D5C;transform:rotate(45deg)}
.tl-248d44d1.tl-248d44d1{font-family:'DM Serif Display',serif;font-size:24px;color:#1A1410;font-weight:400;line-height:1.3;margin-bottom:0.75rem}
.tl-24fe9b7b.tl-24fe9b7b{color:#C0392B;font-weight:700;font-size:14px}
.tl-265bfbc1.tl-265bfbc1{font-size:12px;color:rgba(255,255,255,0.6);margin-top:4px}
.tl-30f997a1.tl-30f997a1{font-size:11px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:#FFD699;margin-bottom:1rem;display:flex;align-items:center;gap:8px}
.tl-3482b3b7.tl-3482b3b7{text-align:center;margin-bottom:2.5rem}
.tl-3c492239.tl-3c492239{margin-top:3rem;text-align:center;padding:2.5rem;background:white;border:1px solid rgba(26,20,16,0.08);border-radius:14px}
.tl-3faaa9f4.tl-3faaa9f4{background:linear-gradient(135deg,#C0392B,#E74C3C);color:white;padding:1rem;border-radius:8px;font-size:18px;text-align:center}
.tl-3ffdc926.tl-3ffdc926{margin-bottom:1.25rem}
.tl-43cfd349.tl-43cfd349{margin-top:0.75rem}
.tl-43eaebdf.tl-43eaebdf{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:end;margin-bottom:4rem}
.tl-47016b4e.tl-47016b4e{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;border-bottom:1px solid rgba(26,20,16,0.06)}
.tl-4ce1953f.tl-4ce1953f{font-size:11px;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.78);margin-bottom:0.75rem}
.tl-4d4531ae.tl-4d4531ae{color:#12826D}
.tl-50595f7b.tl-50595f7b{font-family:'DM Serif Display',serif;font-size:20px;font-weight:400;line-height:1.3}
.tl-53eb7e26.tl-53eb7e26{max-width:1400px;margin:0 auto}
.tl-56a518c7.tl-56a518c7{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.75rem;padding:1.25rem;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:10px}
.tl-56ccf835.tl-56ccf835{background:#FAFAF8;padding:7rem 3rem;border-top:1px solid rgba(26,20,16,0.07)}
.tl-5caf6878.tl-5caf6878{font-size:54px;color:#FFD699;font-style:italic}
.tl-5d1fc220.tl-5d1fc220{margin-top:2.5rem;padding:1.5rem;background:#F5F0E8;border-radius:10px;text-align:center}
.tl-5da42910.tl-5da42910{padding:1.25rem 1.5rem;display:flex;align-items:center;gap:10px}
.tl-5e9e9ba0.tl-5e9e9ba0{font-family:'DM Serif Display',serif;font-size:clamp(36px,4.5vw,56px);color:#1A1410;font-weight:400;line-height:1.05;margin-bottom:1.25rem}
.tl-606d50aa.tl-606d50aa{padding:1.1rem 1.5rem;font-size:14px;font-weight:600;color:#1A1410;display:flex;align-items:center}
.tl-60c3c525.tl-60c3c525{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.tl-64775154.tl-64775154{font-size:10px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:#C0392B;margin-bottom:1rem;margin-top:1rem}
.tl-66ce137a.tl-66ce137a{background:linear-gradient(135deg,#1A1410 0%,#2d2218 100%);border-radius:14px;padding:3rem;color:white;margin-bottom:4rem}
.tl-67081a3b.tl-67081a3b{font-size:36px;color:rgba(255,255,255,0.7);margin:0 8px}
.tl-69454530.tl-69454530{background:white;border:1px solid rgba(26,20,16,0.08);border-radius:14px;padding:2rem;border-top:4px solid #0F6E5B}
.tl-6a379cee.tl-6a379cee{text-align:center;margin-bottom:4rem}
.tl-6b99de8b.tl-6b99de8b{display:none}
.tl-6c8dd869.tl-6c8dd869{font-size:11px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:rgba(26,20,16,0.72);margin-bottom:1rem}
.tl-6ceecaa0.tl-6ceecaa0{width:100%;padding:14px 16px;background:white;border:1.5px solid rgba(26,20,16,0.12);border-radius:8px;color:#1A1410;font-size:15px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;outline:none}
.tl-6d683c88.tl-6d683c88{padding:1.1rem 1.5rem;text-align:center;border-left:1px solid rgba(26,20,16,0.06);font-family:'DM Serif Display',serif;font-size:17px;font-style:italic;color:#12826D}
.tl-72d2ce1a.tl-72d2ce1a{text-align:center;margin-bottom:2rem}
.tl-753c73f5.tl-753c73f5{display:block;width:100%;background:#C0392B;color:white;padding:16px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;text-align:center;transition:all 0.2s;margin-bottom:0.75rem}
.tl-79821f1b.tl-79821f1b{background:#C0392B;color:white;font-size:9px;font-weight:700;letter-spacing:0.1em;padding:3px 8px;border-radius:100px;text-transform:uppercase;flex-shrink:0}
.tl-7a4252c7.tl-7a4252c7{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:rgba(26,20,16,0.8);font-weight:600}
.tl-7d595bed.tl-7d595bed{font-size:10px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:#0F2D5C}
.tl-7e62800d.tl-7e62800d{list-style:none;padding:0;margin:0;font-size:13.5px;color:rgba(26,20,16,0.7);line-height:1.95}
.tl-7f760033.tl-7f760033{font-size:11px;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:rgba(26,20,16,0.72);margin-bottom:0.75rem}
.tl-846ec7de.tl-846ec7de{width:8px;height:8px;border-radius:50%;background:#12826D;animation:trkPulse 1.6s infinite}
.tl-8e34e2ec.tl-8e34e2ec{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;background:linear-gradient(90deg,rgba(192,57,43,0.08) 0%,transparent 100%);border-bottom:1px solid rgba(26,20,16,0.06)}
.tl-8eb5bc52.tl-8eb5bc52{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#FAFAF8;border:1px solid rgba(26,20,16,0.08);border-radius:14px;overflow:hidden;box-shadow:0 8px 32px rgba(15,45,92,0.06)}
.tl-9438bff5.tl-9438bff5{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:4rem}
.tl-951b76bb.tl-951b76bb{list-style:none;padding:0;margin:0;font-size:13.5px;color:rgba(26,20,16,0.7);line-height:1.95;columns:2;column-gap:1rem}
.tl-977260e7.tl-977260e7{font-size:13px;color:rgba(255,255,255,0.65);line-height:1.7;font-weight:300;margin-bottom:1.75rem}
.tl-9c2c2c56.tl-9c2c2c56{font-size:10px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:#C0392B;margin-bottom:1rem;margin-top:2rem}
.tl-9c3b9267.tl-9c3b9267{padding:2.5rem;border-right:1px solid rgba(26,20,16,0.08)}
.tl-9c9d1544.tl-9c9d1544{background:white;border:1px solid rgba(26,20,16,0.08);border-radius:14px;overflow:hidden;box-shadow:0 4px 16px rgba(15,45,92,0.04)}
.tl-9db3f4d1.tl-9db3f4d1{padding:1rem 1.5rem;font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;text-align:center;border-left:1px solid rgba(255,255,255,0.08)}
.tl-9ead36d2.tl-9ead36d2{padding:1.1rem 1.5rem;text-align:center;border-left:1px solid rgba(26,20,16,0.06);font-family:'DM Serif Display',serif;font-size:17px;font-style:italic;color:rgba(26,20,16,0.85)}
.tl-a2515792.tl-a2515792{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.tl-a2a8d06c.tl-a2a8d06c{font-size:15px;color:rgba(26,20,16,0.85);max-width:540px;margin:0 auto 1.75rem;line-height:1.65;font-weight:300}
.tl-a7233e26.tl-a7233e26{font-size:16px;color:rgba(26,20,16,0.85);max-width:620px;margin:0 auto;line-height:1.7;font-weight:300}
.tl-a76ce652.tl-a76ce652{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;background:#0F2D5C;color:white;font-family:'Space Grotesk',sans-serif}
.tl-a76d597a.tl-a76d597a{display:flex;gap:8px}
.tl-a9a5b44d.tl-a9a5b44d{background:linear-gradient(135deg,#0F2D5C 0%,#1B4F8A 100%);border-radius:10px;padding:1.5rem;margin-bottom:1.5rem;color:white;cursor:pointer;transition:all 0.2s}
.tl-ab31f42c.tl-ab31f42c{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:10px;padding:1rem 1.25rem}
.tl-ae154e87.tl-ae154e87{font-size:10px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.78);margin-bottom:1rem}
.tl-aeb32f6a.tl-aeb32f6a{margin-top:2.5rem}
.tl-b08d7108.tl-b08d7108{display:flex;gap:6px;break-inside:avoid}
.tl-b4854c94.tl-b4854c94{background:#C0392B;border-radius:50%}
.tl-b552b279.tl-b552b279{padding:1.25rem 1.5rem;text-align:center;border-left:1px solid rgba(26,20,16,0.06);font-family:'DM Serif Display',serif;font-size:18px;font-style:italic;color:rgba(26,20,16,0.85)}
.tl-b5f59674.tl-b5f59674{font-size:13px;color:rgba(26,20,16,0.6);line-height:1.7;font-weight:300;margin:0}
.tl-b69bbaa5.tl-b69bbaa5{font-family:'DM Serif Display',serif;line-height:1;margin-bottom:1.5rem}
.tl-b6b594b3.tl-b6b594b3{font-size:11px;color:rgba(255,255,255,0.74);text-align:center;line-height:1.5}
.tl-b8b85445.tl-b8b85445{font-weight:700;color:#1A1410;margin-bottom:4px}
.tl-bc9eeb42.tl-bc9eeb42{background:transparent !important;border:1.5px solid currentColor;color:#FFFFFF !important}
.tl-be89d6df.tl-be89d6df{font-size:14px;font-weight:700;color:#1A1410}
.tl-c0b43c72.tl-c0b43c72{font-size:14px;color:rgba(255,255,255,0.6);max-width:560px;margin:1rem auto 0;line-height:1.7;font-weight:300}
.tl-c0bf7bb5.tl-c0bf7bb5{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;background:rgba(245,240,232,0.4);border-bottom:1px solid rgba(26,20,16,0.06)}
.tl-c0d48e99.tl-c0d48e99{padding:1.1rem 1.5rem;text-align:center;border-left:1px solid rgba(26,20,16,0.06);font-family:'DM Serif Display',serif;font-size:17px;font-style:italic;color:#1A1410}
.tl-c52a001e.tl-c52a001e{font-size:11px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:rgba(26,20,16,0.8);margin-bottom:1rem;text-align:center}
.tl-c5baa8fe.tl-c5baa8fe{display:block;font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(26,20,16,0.8);margin-bottom:8px}
.tl-c70cac90.tl-c70cac90{font-family:'DM Serif Display',serif;font-size:32px;color:#1A1410;font-weight:400;line-height:1.2}
.tl-ca8de209.tl-ca8de209{display:flex;gap:6px;margin-bottom:4px;break-inside:avoid}
.tl-ce261fe5.tl-ce261fe5{font-size:14px;font-weight:700;color:white;margin-bottom:2px}
.tl-ce94c8ec.tl-ce94c8ec{padding:1.25rem 1.5rem;text-align:center;border-left:1px solid rgba(26,20,16,0.06);font-family:'DM Serif Display',serif;font-size:18px;font-style:italic;color:#1A1410}
.tl-d0e2e4e4.tl-d0e2e4e4{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%, rgba(255,255,255,0.08) 1px, transparent 2px);background-size:24px 24px;opacity:0.4;pointer-events:none}
.tl-d19bce4c.tl-d19bce4c{max-width:1200px;margin:0 auto}
.tl-d461c96d.tl-d461c96d{position:relative}
.tl-d75032c5.tl-d75032c5{background:white;border:1px solid rgba(26,20,16,0.08);border-radius:14px;padding:2rem;border-top:4px solid #0F2D5C}
.tl-d8626641.tl-d8626641{font-size:11px;font-weight:600;color:rgba(26,20,16,0.8);text-transform:uppercase;letter-spacing:0.1em;margin-top:2px}
.tl-da4fd546.tl-da4fd546{font-size:10px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:#FFD699;margin-bottom:6px}
.tl-da94b16f.tl-da94b16f{position:relative;z-index:2}
.tl-dba0aea8.tl-dba0aea8{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.tl-e08c15b5.tl-e08c15b5{background:#C0392B !important;color:white !important;margin-right:0.5rem}
.tl-e0e75960.tl-e0e75960{display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:center}
.tl-e1764431.tl-e1764431{background:#C0392B;color:white;padding:8px 14px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;flex-shrink:0;white-space:nowrap}
.tl-e3f76580.tl-e3f76580{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(26,20,16,0.08);font-size:11px;color:rgba(26,20,16,0.85);line-height:1.6;font-weight:500}
.tl-e479886f.tl-e479886f{width:100%;height:8px;accent-color:#C0392B;cursor:pointer}
.tl-e522e269.tl-e522e269{background:white;padding:7rem 3rem;border-top:1px solid rgba(26,20,16,0.07)}
.tl-e53f70d5.tl-e53f70d5{padding:2.5rem;background:linear-gradient(135deg,#0F2D5C 0%,#1B4F8A 100%);color:white;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.tl-e7d08c9e.tl-e7d08c9e{display:inline-flex;align-items:center;gap:8px;background:rgba(18,130,109,0.08);border:1px solid rgba(18,130,109,0.25);padding:6px 14px;border-radius:100px;margin-bottom:1.25rem}
.tl-f10b8705.tl-f10b8705{font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.74);margin-bottom:4px}
.tl-f74eb226.tl-f74eb226{display:flex;gap:8px;margin-bottom:4px}
.tl-fc511f0c.tl-fc511f0c{margin-top:1.5rem}
.tl-fd3f7dd4.tl-fd3f7dd4{font-size:54px;color:white;font-style:italic}
.tl-fdf04fef.tl-fdf04fef{padding:1.25rem 1.5rem;text-align:center;border-left:1px solid rgba(26,20,16,0.06);font-family:'DM Serif Display',serif;font-size:18px;font-style:italic;color:#C0392B}
/* Externalised from 5 inline <style> block(s) in coverage.html (phase-5 PR4:
   drop style-src 'unsafe-inline'). Concatenated in document order. */

#tl-map-bg *{box-sizing:border-box}
#tl-map-bg .panel{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:1.55;
 background:radial-gradient(120% 100% at 76% 26%,#123257 0%,var(--p-bg1) 44%,var(--p-bg0) 100%);
 border:1px solid rgba(15,45,92,.5);box-shadow:0 30px 60px -36px rgba(11,31,61,.5)}
#tl-map-bg svg.map{position:absolute;inset:0;width:100%;height:100%;display:block}
#tl-map-bg .ctx{fill:rgba(245,240,232,.05)}
#tl-map-bg .land{fill:var(--land);stroke:var(--land-edge);stroke-width:.8;stroke-linejoin:round}
#tl-map-bg .lake{fill:var(--water)}
#tl-map-bg .lane{fill:none;stroke-linecap:round}
#tl-map-bg .lane-main{stroke:var(--red);stroke-width:2.6;filter:drop-shadow(0 0 6px rgba(192,57,43,.85));stroke-dasharray:3 12;animation:mflow 2.2s linear infinite}
#tl-map-bg .lane-mx{stroke:var(--red);stroke-opacity:.82;stroke-width:1.8;filter:drop-shadow(0 0 4px rgba(192,57,43,.55));stroke-dasharray:3 12;animation:mflow 2.8s linear infinite}
#tl-map-bg .lane-feeder{stroke:var(--cream);stroke-opacity:.5;stroke-width:1.5;stroke-dasharray:2 12;animation:mflow 3.6s linear infinite}
@keyframes mflow{to{stroke-dashoffset:-30}}
#tl-map-bg .lane-base{fill:none;stroke:rgba(245,240,232,.10);stroke-width:1}
#tl-map-bg .lane-base.main{stroke:rgba(192,57,43,.22);stroke-width:2.6}
#tl-map-bg .truck{fill:var(--cream);filter:drop-shadow(0 0 5px rgba(245,240,232,.9))}
#tl-map-bg .truck-main{fill:#FBE9C8;filter:drop-shadow(0 0 7px rgba(245,222,170,1))}
#tl-map-bg .halo{fill:none;animation:mpulse 2.6s ease-out infinite}
#tl-map-bg .halo2{animation-delay:1.3s}
@keyframes mpulse{0%{opacity:.85;stroke-width:1.6}70%{opacity:0}100%{r:26px;opacity:0;stroke-width:.3}}
#tl-map-bg .cross .halo{stroke:var(--red)} #tl-map-bg .cross .core{fill:var(--red);stroke:var(--cream);stroke-width:1}
#tl-map-bg .term .dia{fill:var(--cream);stroke:var(--navy);stroke-width:1}
#tl-map-bg .term-home .dia{fill:var(--cream);stroke:var(--red);stroke-width:2}
#tl-map-bg .term-home .halo{stroke:var(--cream)}
#tl-map-bg .lbl{fill:var(--cream);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:11px;font-weight:800;letter-spacing:.1em;paint-order:stroke;stroke:var(--p-bg0);stroke-width:3px}
#tl-map-bg .term-home .lbl{font-size:12.5px}
#tl-map-bg .endpt .edot{fill:var(--cream);opacity:.8}
#tl-map-bg .elbl{fill:rgba(245,240,232,.6);font-family:system-ui,sans-serif;font-size:9px;font-weight:700;letter-spacing:.13em;paint-order:stroke;stroke:var(--p-bg0);stroke-width:2.4px}
#tl-map-bg .legend{position:absolute;left:18px;bottom:16px;display:flex;gap:16px;flex-wrap:wrap;font-family:system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:.04em;color:rgba(245,240,232,.78)}
#tl-map-bg .legend span{display:inline-flex;align-items:center;gap:7px}
#tl-map-bg .gl-term{width:9px;height:9px;background:var(--cream);transform:rotate(45deg);border:1px solid var(--navy)}
#tl-map-bg .gl-cross{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 2px rgba(192,57,43,.3)}
#tl-map-bg .gl-lane{width:16px;height:0;border-top:2px solid var(--red)}
#tl-map-bg .live{position:absolute;right:18px;top:16px;display:inline-flex;align-items:center;gap:8px;font-family:system-ui,sans-serif;font-size:11px;font-weight:800;letter-spacing:.18em;color:rgba(245,240,232,.85);text-transform:uppercase}
#tl-map-bg .live i{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(192,57,43,.6);animation:mblip 2s ease-out infinite}
@keyframes mblip{0%{box-shadow:0 0 0 0 rgba(192,57,43,.6)}100%{box-shadow:0 0 0 9px rgba(192,57,43,0)}}
@media (max-width:780px){#tl-map-bg .panel{aspect-ratio:1.12} #tl-map-bg .lbl,#tl-map-bg .elbl{display:none} #tl-map-bg .term-home .lbl{display:block} #tl-map-bg .legend{gap:12px;font-size:10px}}
@media (prefers-reduced-motion:reduce){#tl-map-bg .lane,#tl-map-bg .halo,#tl-map-bg .live i{animation:none} #tl-map-bg .truck{display:none} #tl-map-bg .lane{stroke-dasharray:none}}
/* ───────────────── OPTION A — dark, stacked rows ───────────────── */
.principles-a{background:var(--black);padding:7rem 3rem;border-top:1px solid var(--border)}
.pa-inner{max-width:1200px;margin:0 auto}
.pa-eyebrow{font-size:11px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.66);margin-bottom:1.5rem}
.pa-title{font-family:'DM Serif Display',serif;font-size:clamp(38px,4vw,56px);color:white;line-height:1.1;font-weight:400;margin-bottom:4.5rem}
.pa-title em{font-style:italic;color:var(--cream2)}
.pa-row{display:grid;grid-template-columns:180px 1fr 1.4fr;gap:3rem;padding:3.2rem 0;border-top:1px solid var(--border);align-items:start}
.pa-row:last-child{border-bottom:1px solid var(--border)}
.pa-num{font-family:'Space Grotesk',sans-serif;font-weight:300;font-size:clamp(56px,6vw,88px);line-height:1;color:transparent;-webkit-text-stroke:1px var(--red2);letter-spacing:0.02em}
.pa-h{text-shadow:0 2px 18px rgba(0,0,0,0.55);font-family:'DM Serif Display',serif;font-size:clamp(26px,2.6vw,36px);font-weight:400;color:white;line-height:1.15}
.pa-h em{font-style:italic;color:var(--red2)}
.pa-p{text-shadow:0 1px 12px rgba(0,0,0,0.6);font-size:16.5px;line-height:1.75;color:rgba(255,255,255,0.62);font-weight:300;max-width:52ch}
@media(max-width:860px){.pa-row{grid-template-columns:1fr;gap:0.9rem;padding:2.4rem 0}.pa-num{font-size:52px}}
/* map-as-background layer */
.principles-a{position:relative;overflow:hidden}
.pa-mapbg{position:absolute;inset:-6% -2%;z-index:0;opacity:0.62;pointer-events:none;filter:saturate(1.15) contrast(1.1) brightness(1.15)}
.pa-mapbg #tl-map-bg{width:100%;height:100%;background:transparent}
.pa-mapbg #tl-map-bg .panel{background:transparent !important;border:none !important;box-shadow:none !important;height:100%}
.pa-mapbg #tl-map-bg svg{width:100%;height:100%}
.pa-mapbg #tl-map-bg .hud,.pa-mapbg #tl-map-bg .legend,.pa-mapbg #tl-map-bg .badge{display:none !important}
.principles-a::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg, rgba(10,10,10,0.62) 0%, rgba(10,10,10,0.28) 45%, rgba(10,10,10,0.05) 100%);pointer-events:none}
.pa-inner{position:relative;z-index:2}
@media (prefers-reduced-motion:reduce){.pa-mapbg{opacity:0.12}}
@media (max-width: 768px) {
  #coverage-details .tlm-gridtemplateco9 {
    grid-template-columns: 1fr !important;
  }
  #coverage-details .tlm-gridtemplateco6 {
    grid-template-columns: 1fr !important;
  }
  #coverage-details .tlm-gridtemplateco7 {
    grid-template-columns: 1fr !important;
  }
}
.lane-chip {
  background: #F5F0E8;
  border: 1.5px solid rgba(26,20,16,0.1);
  border-radius: 100px;
  padding: 10px 18px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #1A1410;
  cursor: pointer;
  transition: all 0.2s;
}
.lane-chip:hover {
  background: #C0392B;
  color: white;
  border-color: #C0392B;
  transform: translateY(-2px);
}
@media (max-width: 768px) {
  #rate-calculator > div > div.tlm-gridtemplateco6 {
    grid-template-columns: 1fr !important;
  }
}

/* ══ MOBILE + WCAG 2.2 AA HARDENING ══ */
/* Overflow. Measured at 320px: .nav-right ran to 415px and .footer-socials to
   379px, so both pushed the document past the viewport on every page. The
   language switcher and both nav CTAs are already duplicated inside the drawer,
   so the bar sheds them as space runs out rather than overflowing. */
@media (max-width:768px){
  .nav-right>.lang-toggle{display:none}
  .footer-socials{flex-wrap:wrap;gap:1rem 1.25rem}
  .hamburger{min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:8px}
  .footer-socials a,.footer-links a{min-height:44px;display:inline-flex;align-items:center}
  .lang-toggle-mobile button{min-height:44px;padding-left:14px;padding-right:14px}
  .mobile-menu a,.mobile-menu button{min-height:44px;display:flex;align-items:center}
  /* fixed full-width furniture needs the notch insets in landscape */
  .cookie{padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}
  .float-cta{right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom))}
  .mobile-menu{padding-left:max(3rem,env(safe-area-inset-left));padding-right:max(3rem,env(safe-area-inset-right))}
}
@media (max-width:560px){ .nav-right>.nav-cta[href="book.html"]{display:none} }
@media (max-width:412px){ .nav-right>.nav-cta{display:none} .nav-logo-text{display:none} }
/* two-column grids that never collapsed below the 1024px breakpoint */
@media (max-width:560px){
  .stat-grid,.sm-steps,.cs-grid,.rate-fields,.faq-grid,.how-steps,.story-right{grid-template-columns:1fr!important}
}

/* Contrast. Every value below was measured against its real composited
   background; the old ones are the ratios in the comment. */
.footer-socials a{color:rgba(255,255,255,0.62)}   /* on #111 — was .30 → 2.65:1 */
.sr-btn{color:rgba(26,20,16,0.78);border-color:rgba(26,20,16,0.30)}  /* cream ground, not dark */
.cookie p{color:rgba(26,20,16,0.68)}              /* on #fff — was .50 → 3.44:1 */
.cookie-dec{color:rgba(26,20,16,0.74);border-color:rgba(26,20,16,0.38)} /* was .40 → 2.57:1 */
.marquee-item::after{color:rgba(27,79,138,0.72)!important}

/* Focus. There was no :focus-visible rule anywhere in the site; the red ring
   reads on cream (4.79:1) and on near-black (3.64:1), and the white halo keeps
   it visible where the ring sits on the red CTA itself. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid #C0392B;outline-offset:2px;box-shadow:0 0 0 5px rgba(255,255,255,.85)
}
.skip-link:focus{left:0;outline:3px solid #C0392B;outline-offset:2px}

/* Reduced motion. The existing block covered only .cta-slides and #tl-map; the
   marquee, the carousel and eleven other keyframes ran regardless. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .marquee-track,.tl-carousel-track{animation:none!important}
}


/* Inline-styled grids. Roughly forty multi-column grids across the site are
   declared in a style="" attribute (repeat(3,1fr), repeat(5,1fr), 1fr 1fr …),
   so no stylesheet breakpoint could ever reach them; at 320px they ran the
   document out to 624px on about, 568px on brokers, 500px on book. On a phone
   every one of them becomes a single column. */
@media (max-width:600px){
  .tlm-gridtemplateco{grid-template-columns:1fr!important}
  .service-row{grid-template-columns:1fr!important;gap:1rem!important}
  .sr-btn{white-space:normal}
  .stat-grid,.sm-steps,.cs-grid,.rate-fields,.faq-grid,.how-steps,.story-right,
  .eq-cards,.wt-points,.safety-cards,.sm-offers,.terminals-grid,.footer-top{grid-template-columns:1fr!important}
}

/* Min-content floors. Grid and flex children default to min-width:auto, so a
   card whose contents measure 282px keeps its track at 282px however narrow the
   phone is — that is what still pushed about.html to 330px at a 320px viewport
   after the grids were collapsed. Letting them shrink, and letting single-line
   rows wrap, is the standard remedy. */
@media (max-width:600px){
  section.tlm-padding{padding-left:1.25rem!important;padding-right:1.25rem!important}
  .tlm-displaygrid>*,.tlm-displayflex>*,.track-row>*{min-width:0}
  .tlm-displayflex,.track-row{flex-wrap:wrap}
  .track-row>input,.track-row>button{flex:1 1 100%}
}

/* Last contrast holdouts, each measured on its own ground. */
.notice h2{color:#A5291D}                       /* red on its own tint: 4.34 → 5.2 */
.lane-badge.freq{color:#A5291D}                 /* 4.17 → 5.0 */
#trk-log>div{color:rgba(255,255,255,0.92)}      /* log text on a near-clear panel: 2.83 → 4.9 */

/* ── P2: validation error UI ─────────────────────────────────────────────────────────────
   assets/js/form-validation-a11y.js creates one empty role="alert" per field on demand and
   fills it when that field fails, so an error is announced, visible and tied to its control
   by aria-describedby. Measured before this: aria-describedby, aria-invalid, aria-errormessage,
   role="alert" and aria-live were absent from every collecting form, so the only feedback was
   the browser's own transient bubble on the first invalid control.
   The empty state must occupy no space, or a long form carries a column of blank paragraphs. */
.tl-field-error{font-size:14px;line-height:1.4;font-weight:600;color:#A5291D;margin-top:.35rem}
.tl-field-error:empty{display:none}
/* Colour is not the only signal — the message sits below the field and is announced — but the
   failing control is marked so it can be found without reading every label. */
[aria-invalid="true"]{box-shadow:inset 0 -2px 0 0 #A5291D}
