/* ════════════════════════════════════════════════════════════════
   TestRoute DTC - Frontend v10.0 (HBO Max hero + stats row)
   Design system synced with homepage: Inter, dark navy hero,
   accent lines, glass stat cards, horizontal sliders.
   All selectors scoped under .trdtc
   Uses !important for Cornerstone override protection.
   ════════════════════════════════════════════════════════════════ */

/* ─── Reset ─── */
.trdtc, .trdtc *, .trdtc *::before, .trdtc *::after{box-sizing:border-box!important;margin:0!important;padding:0!important;text-transform:none!important}

/* ─── Page wrapper - full-bleed breakout ─── */
.trdtc{position:relative!important;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;width:100vw!important;max-width:100vw!important;overflow-x:hidden!important;font-family:'Inter', 'Inter Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important;-webkit-font-smoothing:antialiased!important;color:#fff!important;line-height:1.5!important;background:#0d1b2a!important}

/* ─── Tokens ─── */
/* Mercury depth ladder - continuous lightening (v2.71.1+, "Subtiel" step,
   +3R +4G +5B). These five tokens are the base palette / first rungs and still
   drive the zone classes' TEXT + accent colour. As of v2.71.3 the actual
   backgrounds are assigned PER SECTION (see the per-section ladder block below
   the zone classes), so adjacent sections no longer share a colour. Synced with
   the homepage (same anchor + step). One narrow navy band, green sole accent.
     --c-navy #0c1927 (anchor) · --c-navy-2 #0f1d2c · --c-oefen #122131
     --c-info #152536 · --c-deep #18293b   (full 9-rung ladder lives below) */
.trdtc{--c-navy:#0c1927;--c-navy-2:#0f1d2c;--c-oefen:#122131;--c-info:#152536;--c-deep:#18293b;--c-off:#f8f9fa;--c-whi:#fff;--c-green:#03c988;--c-green-d:#02a873;--c-green-ink:#026644;--c-ink:#0d1b2a;--c-sub:#415a77;--c-accent:#778da9;--c-tp:#00b67a;--r-sm:8px;--r-md:12px;--r-lg:16px;--ease:cubic-bezier(.4,0,.2,1);--dur:.2s}

/* ─── Container ─── */
.trdtc-w{max-width:1200px!important;margin:0 auto!important;padding:0 16px!important}
@media(min-width:700px){.trdtc-w{padding:0 16px!important}}
/* Hero container overrides handled in HERO section below */
.trdtc-center{text-align:center!important;display:flex!important;flex-direction:column!important;align-items:center!important}

/* Icon utility */

/* ─── Sections ─── */
.trdtc-sec{padding:56px 0!important}
@media(min-width:700px){.trdtc-sec{padding:80px 0!important}}
.trdtc-sec--nav{background:var(--c-navy)!important;color:#fff!important}
.trdtc-sec--nav2{background:var(--c-navy-2)!important;color:#fff!important}
.trdtc-sec--oefen{background:var(--c-oefen)!important;color:#fff!important}
.trdtc-sec--info{background:var(--c-info)!important;color:#fff!important}
.trdtc-sec--deep{background:var(--c-deep)!important;color:#fff!important}
.trdtc-sec--off{background:var(--c-off)!important;color:var(--c-ink)!important}
.trdtc-sec--whi{background:var(--c-whi)!important;color:var(--c-ink)!important}

/* ─── Per-section depth ladder (v2.71.3) ───
   Every section gets its OWN rung instead of sharing a zone, overriding the
   zone-class backgrounds above via ID (the zone classes still drive text +
   accent colour). Continuous lightening, Subtiel +3R/+4G/+5B per step, hero
   anchor → faq. The last section (faq) fades to the FOOTER colour so the page
   bottoms out into the footer with no seam. Keep #0d1b2a in sync with the
   footer's color_bg setting.
     hero      #0c1927 (anchor, on .trdtc-hero)   routes    #0f1d2c
     junctions #122131   manoeuvres #152536        prep      #18293b
     about     #1b2d40   nearby     #1e3145        pricing   #21354a
     faq       #24394f → footer #0d1b2a (bridge) */
#trdtc-routes{ background:#0f1d2c !important; }
#trdtc-failpoints{ background:#122131 !important; }
#trdtc-maneuvers{ background:#152536 !important; }
#trdtc-prep{ background:#18293b !important; }
#trdtc-about{ background:#1b2d40 !important; }
#trdtc-nearby{ background:#1e3145 !important; }
#trdtc-pricing{ background:#21354a !important; }
#trdtc-faq{ background:linear-gradient(to bottom, #24394f 0, #24394f 60px, #0d1b2a 100%) !important; }

/* ─── Section headings ─── */
.trdtc-sec-head{margin-bottom:24px!important}
@media(min-width:700px){.trdtc-sec-head{margin-bottom:32px!important}}
.trdtc-accent-line{width:28px!important;height:1.5px!important;border-radius:1px!important;margin-bottom:14px!important}
.trdtc-sec--nav .trdtc-accent-line, .trdtc-sec--nav2 .trdtc-accent-line, .trdtc-sec--oefen .trdtc-accent-line, .trdtc-sec--info .trdtc-accent-line, .trdtc-sec--deep .trdtc-accent-line{background:rgba(3,201,136,.35)!important}
.trdtc-sec--off .trdtc-accent-line, .trdtc-sec--whi .trdtc-accent-line{background:rgba(3,201,136,.5)!important}
.trdtc-h2{font-size:20px!important;font-weight:700!important;letter-spacing:-.02em!important;line-height:1.2!important;margin:0 0 6px!important}
@media(min-width:700px){.trdtc-h2{font-size:28px!important}}
.trdtc-sec--off .trdtc-h2, .trdtc-sec--whi .trdtc-h2{color:var(--c-ink)!important}
.trdtc-sec--nav .trdtc-h2, .trdtc-sec--nav2 .trdtc-h2, .trdtc-sec--deep .trdtc-h2{color:rgba(255,255,255,.92)!important}
.trdtc-sub{font-size:12px!important;margin:0 0 24px!important}
.trdtc-sec--off .trdtc-sub, .trdtc-sec--whi .trdtc-sub{color:var(--c-sub)!important}
.trdtc-sec--nav .trdtc-sub, .trdtc-sec--nav2 .trdtc-sub, .trdtc-sec--deep .trdtc-sub{color:rgba(255,255,255,.55)!important}
.trdtc-sub--lead{font-size:12.5px!important;line-height:1.6!important;margin:0 0 6px!important;max-width:640px!important}
.trdtc-sec--nav .trdtc-sub--lead, .trdtc-sec--nav2 .trdtc-sub--lead, .trdtc-sec--info .trdtc-sub--lead, .trdtc-sec--deep .trdtc-sub--lead{color:rgba(255,255,255,.55)!important}
.trdtc-sub--names{font-size:12.5px!important;line-height:1.6!important;margin:0!important;max-width:640px!important}
.trdtc-sec--nav .trdtc-sub--names, .trdtc-sec--nav2 .trdtc-sub--names, .trdtc-sec--deep .trdtc-sub--names{color:rgba(255,255,255,.55)!important}

/* ─── Unified sub-text for the video + fail-point sections only ───
   Scoped to #trdtc-routes / #trdtc-failpoints (existing section IDs) so the
   later sections - which reuse .trdtc-sec--nav / --deep and await their own
   redesign - keep their current 12px styling untouched. Matches the hero
   intro's weight (14px, opacity .55) to give these three sections one voice. */
#trdtc-routes .trdtc-sub, #trdtc-routes .trdtc-sub--lead, #trdtc-routes .trdtc-sub--names, #trdtc-maneuvers .trdtc-sub, #trdtc-maneuvers .trdtc-sub--lead, #trdtc-failpoints .trdtc-sub, #trdtc-failpoints .trdtc-sub--lead, #trdtc-failpoints .trdtc-sub--names{font-size:14px!important;line-height:1.6!important;color:rgba(255,255,255,.55)!important;max-width:560px!important}

/* ════════════════════════════════════════════════════════════════
   HERO - HBO Max split layout (v4)
   Two-column: text left, animated route visual right.
   Brand tokens: navy bg, green accent, Inter font.
   ════════════════════════════════════════════════════════════════ */

/* ─── Section ─── */
.trdtc-hero{background:var(--c-navy)!important;position:relative!important;overflow:hidden!important}
/* Hero top padding = (live total header height) + breathing room.
   --hdr-total-h is set by header.js to the FULL header height INCLUDING the
   notification/promo bar when present, so the hero clears both. The literal
   fallbacks apply only before JS runs (or if it fails): they mirror the bare
   header height, which is 56px at <=768 and 72px above 768 (the header bar
   switches at max-width:768). The 769px breakpoint exists to make that fallback
   correct on tablet; keep it separate from the 700px side-padding breakpoint. */
.trdtc-hero>.trdtc-w{max-width:1200px!important;padding:calc(var(--hdr-total-h,56px) + 20px) 16px 0!important}
@media(min-width:700px){.trdtc-hero>.trdtc-w{padding:calc(var(--hdr-total-h,56px) + 20px) 16px 0!important}}
@media(min-width:769px){.trdtc-hero>.trdtc-w{padding:calc(var(--hdr-total-h,72px) + 20px) 16px 0!important}}
@media(min-width:1100px){.trdtc-hero>.trdtc-w{padding:calc(var(--hdr-total-h,72px) + 24px) 16px 0!important}}

/* ─── Grid: text left + visual right ─── */
.trdtc-hero-grid{display:block!important;position:relative!important;z-index:2!important}
@media(min-width:900px){.trdtc-hero-grid{display:grid!important;grid-template-columns:minmax(340px,460px) 1fr!important;min-height:80vh!important;gap:0!important}}

/* ─── Left column ───
   No top padding on mobile: the hero's own padding-top already provides the
   space below the header, so an additional top pad here just doubled the gap
   above the breadcrumb. Bottom padding retained. */
.trdtc-hero-left{position:relative!important;z-index:3!important;display:flex!important;flex-direction:column!important;justify-content:center!important;padding:0 0 40px!important}
@media(min-width:900px){.trdtc-hero-left{padding:0 0 40px!important}}

/* ─── Breadcrumb: full trail (tablet + desktop, ≥700px) ─── */
.trdtc-hero-bread{display:none!important;font-size:12px!important;color:rgba(255,255,255,.5)!important;margin-bottom:32px!important;align-items:center!important;gap:6px!important}
@media(min-width:700px){.trdtc-hero-bread{display:flex!important}}
.trdtc-hero-bread a{color:rgba(255,255,255,.5)!important;text-decoration:none!important}
.trdtc-hero-bread a:hover{color:rgba(255,255,255,.78)!important}
.trdtc-hero-bread-sep{color:rgba(255,255,255,.22)!important;flex-shrink:0!important}
.trdtc-hero-bread-cur{color:rgba(255,255,255,.65)!important;font-weight:500!important}

/* ─── Breadcrumb: single back-link (mobile, <700px) ───
   Tap target kept generous for touch via padding. Padding is weighted to the
   BOTTOM so the text sits near the top of the touch zone rather than floating
   in the middle of a tall box (which previously read as a gap below the header). */
.trdtc-hero-bread-back{display:inline-flex!important;align-items:center!important;gap:6px!important;margin:0 0 2px -4px!important;padding:2px 4px 14px!important;font-size:13px!important;font-weight:500!important;color:rgba(255,255,255,.55)!important;text-decoration:none!important}
@media(min-width:700px){.trdtc-hero-bread-back{display:none!important}}
.trdtc-hero-bread-back:hover{color:rgba(255,255,255,.82)!important}
.trdtc-hero-bread-back-ico{flex-shrink:0!important;color:rgba(255,255,255,.4)!important}

/* ─── Eyebrow / status line ─── */
.trdtc-hero-status{display:flex!important;align-items:center!important;gap:10px!important;margin-bottom:16px!important;font-size:13px!important;color:rgba(255,255,255,.5)!important;font-weight:500!important;flex-wrap:wrap!important}
@media(min-width:700px){.trdtc-hero-status{margin-bottom:20px!important}}
.trdtc-hero-updated{display:inline-flex!important;align-items:center!important;gap:6px!important;color:rgba(255,255,255,.5)!important;font-weight:500!important;white-space:nowrap!important}
.trdtc-hero-updated-ico{flex-shrink:0!important;color:var(--c-green)!important;opacity:.7!important}
.trdtc-hero-change{font-size:12px!important;color:rgba(255,255,255,.5)!important;text-decoration:underline!important;text-decoration-color:rgba(255,255,255,.15)!important;text-underline-offset:3px!important}
.trdtc-hero-change:hover{color:rgba(255,255,255,.78)!important}

/* ─── H1 - city white, descriptor muted ─── */
.trdtc-hero-h1{margin:0 0 16px!important;letter-spacing:-.02em!important;line-height:1.05!important;text-transform:none!important}
.trdtc-hero-h1 span{text-transform:none!important}
.trdtc-hero-lead{display:block!important;font-size:clamp(22px,3vw,32px)!important;font-weight:700!important;color:#fff!important;line-height:1.1!important}
.trdtc-hero-city{display:block!important;font-size:clamp(40px,6.4vw,68px)!important;font-weight:800!important;color:var(--c-green)!important;letter-spacing:-.03em!important;line-height:1.0!important;margin-top:4px!important}
/* 4.76.0: a per-centre H1 override is one line, between the lead and the city in size */
.trdtc-hero-custom{display:block!important;font-size:clamp(30px,4.6vw,48px)!important;font-weight:800!important;color:var(--c-green)!important;letter-spacing:-.03em!important;line-height:1.05!important}

/* ─── Intro ─── */
.trdtc-hero-intro{font-size:15px!important;color:rgba(255,255,255,.52)!important;line-height:1.6!important;margin:0 0 24px!important;max-width:420px!important}

/* ─── CTA ─── */
.trdtc-hero-cta{display:flex!important;align-items:center!important;gap:16px!important;margin-top:24px!important;flex-wrap:wrap!important}
.trdtc-hero-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;background:var(--c-green)!important;color:var(--c-ink)!important;border:none!important;border-radius:var(--r-sm)!important;padding:14px 26px!important;font-size:15px!important;font-weight:700!important;text-decoration:none!important;cursor:pointer!important;font-family:inherit!important;transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)!important}
.trdtc-hero-btn:hover{background:var(--c-green-d)!important;transform:translateY(-1px)!important}
.trdtc-hero-login{font-size:14px!important;color:rgba(255,255,255,.5)!important;text-decoration:underline!important;text-decoration-color:rgba(255,255,255,.15)!important;text-underline-offset:3px!important;font-weight:500!important}
.trdtc-hero-login:hover{color:rgba(255,255,255,.78)!important}

/* ─── Trustpilot ─── */
.trdtc-hero-tp{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;row-gap:6px!important;margin-top:28px!important;padding-top:18px!important;border-top:1px solid rgba(255,255,255,.06)!important;text-decoration:none!important;color:inherit!important}
.trdtc-hero-tp-label{font-size:15px!important;font-weight:700!important;color:rgba(255,255,255,.85)!important;flex-shrink:0!important}
.trdtc-hero-tp-stars{height:17px!important;width:auto!important;flex-shrink:0!important;display:block!important;image-rendering:-webkit-optimize-contrast!important}
.trdtc-hero-tp-stars-svg{display:flex!important;gap:2px!important;flex-shrink:0!important}
.trdtc-hero-tp-stars-svg svg{display:block!important;width:16px!important;height:16px!important}
.trdtc-hero-tp-sep{font-size:11px!important;color:rgba(255,255,255,.2)!important;flex-shrink:0!important}
.trdtc-hero-tp-count{font-size:13px!important;color:rgba(255,255,255,.55)!important;flex-shrink:0!important;white-space:nowrap!important}
.trdtc-hero-tp-star{flex-shrink:0!important;display:block!important}
.trdtc-hero-tp-name{font-size:15px!important;font-weight:700!important;color:rgba(255,255,255,.85)!important;flex-shrink:0!important}
.trdtc-hero-tp-logo{height:18px!important;width:auto!important;flex-shrink:0!important;display:block!important;image-rendering:-webkit-optimize-contrast!important}
/* Mobile (<700px): step the lockup down one notch so the full bar
   (label · stars · count · logo) stays on ONE line in the ~358px column.
   At desktop sizes it measures ~377px and wraps to two lines. Desktop sizes
   above are unchanged. */
@media(max-width:699px){
.trdtc-hero-tp{gap:6px!important}
.trdtc-hero-tp-label{font-size:13px!important}
.trdtc-hero-tp-stars{height:15px!important}
.trdtc-hero-tp-count{font-size:12px!important}
.trdtc-hero-tp-name{font-size:13px!important}
.trdtc-hero-tp-logo{height:16px!important}
}

/* ─── Hero visual - right column SVG route map ─── */
.trdtc-hero-vis{position:relative!important;display:none!important}
@media(min-width:900px){.trdtc-hero-vis{display:block!important}}
.trdtc-hero-vis-inner{position:absolute!important;top:20px!important;left:0!important;right:0!important;bottom:0!important;overflow:hidden!important;border-radius:12px!important}
.trdtc-hero-vis-bg{position:absolute!important;inset:0!important}
.trdtc-hero-vis-svg{position:relative!important;width:100%!important;height:100%!important;display:block!important}

/* Route draw animation - stroke-dasharray/offset set inline on the polyline */
.trdtc-hero-vis-route{animation:trdtc-draw 2.5s cubic-bezier(.25,.46,.45,.94) .3s forwards!important}
@keyframes trdtc-draw{to{stroke-dashoffset:0}}

/* Waypoint + DTC fade-in keyframe (referenced by inline styles on SVG elements) */
@keyframes trdtc-fi{from{opacity:0}to{opacity:1}}

/* DTC pulse keyframe (referenced by inline style on pulse circle) */
@keyframes trdtc-pulse{0%,100%{stroke-opacity:.15}50%{stroke-opacity:.04}}

/* Edge fade gradients */
.trdtc-hero-vis-fade{position:absolute!important;pointer-events:none!important}
.trdtc-hero-vis-fade--l{top:0!important;left:0!important;bottom:0!important;width:20%!important;background:linear-gradient(to right,var(--c-navy),transparent)!important}
.trdtc-hero-vis-fade--t{top:0!important;left:0!important;right:0!important;height:8%!important;background:linear-gradient(to bottom,var(--c-navy),transparent)!important}
.trdtc-hero-vis-fade--b{bottom:0!important;left:0!important;right:0!important;height:15%!important;background:linear-gradient(to top,var(--c-navy),transparent)!important}
.trdtc-hero-vis-fade--r{top:0!important;right:0!important;bottom:0!important;width:5%!important;background:linear-gradient(to left,var(--c-navy),transparent)!important}

/* Route label glass card overlay */
.trdtc-hero-vis-label{position:absolute!important;bottom:12px!important;left:12px!important;right:12px!important;z-index:5!important;display:flex!important;align-items:center!important;gap:10px!important;background:rgba(12,25,39,.5)!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.06)!important;border-radius:10px!important;padding:10px 14px!important;text-decoration:none!important;cursor:pointer!important;transition:background .15s var(--ease),border-color .15s var(--ease)!important}
.trdtc-hero-vis-label:hover{background:rgba(12,25,39,.65)!important;border-color:rgba(255,255,255,.12)!important}
.trdtc-hero-vis-label-play{width:28px!important;height:28px!important;border-radius:50%!important;background:var(--c-green)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--c-ink)!important;flex-shrink:0!important;transition:background .15s var(--ease)!important}
.trdtc-hero-vis-label:hover .trdtc-hero-vis-label-play{background:var(--c-green-d)!important}
.trdtc-hero-vis-label-text{display:block!important;min-width:0!important}
.trdtc-hero-vis-label-title{display:block!important;font-size:12px!important;font-weight:600!important;color:rgba(255,255,255,.7)!important}
.trdtc-hero-vis-label-meta{display:block!important;font-size:10px!important;color:rgba(255,255,255,.25)!important}

/* ─── Stats seam - floating "plank" bridging hero (navy) → routes (navy-2) ───
   .trdtc-seam paints the colour change itself: a hard-stop gradient, navy on
   the top half, navy-2 on the bottom half. The stats grid sits on top with a
   downward shadow, so the seam line is hidden behind the cards and the row
   reads as one physical shelf spanning the two sections. No melt needed -
   the hero ends flush, routes begins flush, the plank does the bridging. */
.trdtc-seam{background:linear-gradient(to bottom,var(--c-navy) 0%,var(--c-navy) 50%,var(--c-navy-2) 50%,var(--c-navy-2) 100%)!important;position:relative!important;z-index:2!important}
.trdtc-hero-stats{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:10px!important;border-radius:14px!important;box-shadow:0 18px 40px -14px rgba(0,0,0,.55)!important}
@media(min-width:700px){.trdtc-hero-stats{grid-template-columns:repeat(4,1fr)!important;gap:1px!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.09)!important;overflow:hidden!important}}
/* Cards: solid surface (navy-2 tinted) so the seam can't bleed through gaps.
   On desktop the 1px grid gap + card bg become hairline dividers. */
.trdtc-hero-stat{background:#16273a!important;border:1px solid rgba(255,255,255,.06)!important;border-radius:12px!important;padding:18px 16px!important}
@media(min-width:700px){.trdtc-hero-stat{border:0!important;border-radius:0!important}}
.trdtc-hero-stat-v{font-size:26px!important;font-weight:700!important;color:rgba(255,255,255,.82)!important;letter-spacing:-.03em!important;line-height:1!important;font-feature-settings:'tnum' 1!important}
.trdtc-hero-stat-l{font-size:9px!important;font-weight:600!important;color:rgba(255,255,255,.32)!important;text-transform:uppercase!important;letter-spacing:.06em!important;margin-top:7px!important}
.trdtc-hero-stat-sub{font-size:10px!important;color:rgba(255,255,255,.2)!important;margin-top:3px!important}
/* First stat's sub is the "above avg" signal - tint it green like the homepage */
.trdtc-hero-stat:first-child .trdtc-hero-stat-sub{color:var(--c-green)!important;opacity:.85!important}
/* 4.73.0 · one caption line under the strip: "Stats source: gov.uk   Last
   updated: August 2026". Small-label grey (.34) like the stat labels above it;
   the link a step brighter (.5) so it is findable, never green. */
.trdtc-stats-src{display:flex!important;flex-wrap:wrap!important;gap:4px 22px!important;margin:12px 2px 0!important;font-size:11px!important;line-height:1.4!important;color:rgba(255,255,255,.34)!important;letter-spacing:-.005em!important}
.trdtc-stats-src-item{white-space:nowrap!important}
.trdtc-stats-src a{color:rgba(255,255,255,.5)!important;text-decoration:underline!important;text-decoration-color:rgba(255,255,255,.18)!important;text-underline-offset:2px!important;text-decoration-thickness:1px!important;transition:color .15s var(--ease)!important}
.trdtc-stats-src a:hover{color:rgba(255,255,255,.8)!important;text-decoration-color:rgba(255,255,255,.4)!important}
/* Seam spacing: symmetric vertical padding centres the plank on the 50% cut.
   The hero ends flush (no melt), so the seam's navy top half visually
   continues the hero; its navy-2 bottom half flows into routes below. */
.trdtc-seam{padding-top:34px!important;padding-bottom:34px!important}
@media(min-width:700px){.trdtc-seam{padding-top:44px!important;padding-bottom:44px!important}}
/* Routes sits flush under the seam - trim its top padding so the plank's
   shadow lands on the section rather than a big empty gap. */
#trdtc-routes{padding-top:36px!important}
@media(min-width:700px){#trdtc-routes{padding-top:52px!important}}

/* ─── Mobile (<900px): hide the route visual entirely ───
   It is decorative, crowds the limited mobile viewport, and pushes the H1 /
   value proposition down. Hiding it also stops the draw animation and SVG
   paint/composite work on mobile (a small Core Web Vitals win). Note: the
   inline SVG markup still ships in the HTML - removing those bytes safely
   would require a device-aware cache, which this site doesn't use. */
@media(max-width:899px){
.trdtc-hero-vis{display:none!important}
.trdtc-hero-grid{display:flex!important;flex-direction:column!important}
/* Belt-and-braces: ensure the draw animation never runs on mobile even if the
   element is somehow painted, so no main-thread animation cost is incurred. */
.trdtc-hero-vis-route{animation:none!important;stroke-dashoffset:0!important}
}

/* ════════════════════════════════════════════════════════════════
   INTRO PROSE
   ════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════
   ROUTES - cinematographic card design
   ════════════════════════════════════════════════════════════════ */
.trdtc-routes{display:flex!important;flex-direction:column!important;gap:24px!important}
@media(min-width:700px){.trdtc-routes{display:grid!important;grid-template-columns:1fr 1fr!important;column-gap:16px!important;row-gap:32px!important}}

/* Card */
.trdtc-route{position:relative!important;z-index:1!important}
.trdtc-route.is-hov{z-index:20!important}
@media(min-width:700px){.trdtc-route.is-hov .trdtc-route-media{transform:scale(1.03)!important;box-shadow:0 12px 32px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.3)!important}}

/* Thumbnail area */
.trdtc-route-media{position:relative!important;aspect-ratio:16/9!important;background-color:var(--c-navy)!important;overflow:hidden!important;cursor:pointer!important;border-radius:var(--r-sm)!important;box-shadow:0 1px 4px rgba(0,0,0,.25)!important;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1)!important}
.trdtc-detail-media--play{cursor:pointer!important}
.trdtc-detail-media--play:focus{outline:none!important}
.trdtc-detail-media--play:focus-visible{outline:2px solid var(--c-green)!important;outline-offset:-2px!important}

/* Fallback road visual */
.trdtc-route-fallback{position:absolute!important;inset:0!important;z-index:0!important;display:grid!important;place-items:end center!important;padding-bottom:16px!important;background:#0a1628!important;color:rgba(255,255,255,.34)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.16em!important;text-transform:uppercase!important}

/* Thumbnail image */
.trdtc-route-thumb{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:0!important;pointer-events:none!important;display:block!important;margin:0!important;padding:0!important;border:none!important}
/* 4.104.0 · geen blur meer op een dichte route (Mick, 8 okt 2026: klanten vonden er te veel vaag). Het slot, het
   chipje "Full route in 4K" en de groene knop zeggen dat hij dicht is; de thumbnail laat zien wat je krijgt. */
.trdtc-route.is-locked .trdtc-route-thumb{filter:none!important;transform:none!important}

/* Scrim */
.trdtc-route-scrim{position:absolute!important;top:0!important;left:0!important;right:0!important;height:56%!important;background:linear-gradient(to bottom,rgba(7,15,24,.92) 0%,rgba(7,15,24,.42) 45%,rgba(7,15,24,.08) 75%,transparent 100%)!important;z-index:1!important;pointer-events:none!important;transition:height .4s cubic-bezier(.22,1,.36,1),background .4s,opacity .35s ease!important}
.trdtc-route.is-hov .trdtc-route-scrim, .trdtc-route.is-mob .trdtc-route-scrim{height:62%!important;background:linear-gradient(to bottom,rgba(7,15,24,.96) 0%,rgba(7,15,24,.5) 45%,rgba(7,15,24,.12) 75%,transparent 100%)!important}

/* Top badges */
.trdtc-route-tag{display:inline-block!important;background:var(--c-green)!important;color:var(--c-ink)!important;font-size:9px!important;padding:3px 8px!important;border-radius:5px!important;font-weight:600!important;letter-spacing:.02em!important;margin-bottom:6px!important}
.trdtc-route-badges{position:absolute!important;top:12px!important;right:12px!important;z-index:4!important;display:flex!important;align-items:center!important;gap:6px!important}

/* Locked route - centered lock affordance (Option A). The whole blurred media
   is a link to checkout; the disc + "Get access" sit in the upper area so the
   route title/meta at the bottom stay readable. Navy-tinted glass, matching the
   action buttons and badges. */
.trdtc-route-lock{position:absolute!important;inset:0!important;z-index:3!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:10px!important;text-decoration:none!important;pointer-events:none!important;transition:background .2s cubic-bezier(.4,0,.2,1)!important}
.trdtc-route-lock:hover{background:rgba(12,25,39,.18)!important}
.trdtc-route-lock-disc{pointer-events:auto!important;cursor:pointer!important;width:52px!important;height:52px!important;border-radius:50%!important;background:rgba(22,39,58,.7)!important;border:1px solid rgba(255,255,255,.16)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:rgba(255,255,255,.92)!important;transition:background .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)!important}
.trdtc-route-lock-disc:hover{background:rgba(30,49,70,.85)!important;border-color:rgba(255,255,255,.3)!important;transform:scale(1.04)!important}
.trdtc-route-lock-disc svg{display:block!important}
.trdtc-route-lock-text{pointer-events:auto!important;cursor:pointer!important;font-size:11px!important;font-weight:600!important;color:rgba(255,255,255,.82)!important;letter-spacing:.02em!important}
@media(max-width:699px){.trdtc-route-lock-disc{width:46px!important;height:46px!important}}

/* Preview affordance - mirror of the lock, but inviting: a green play disc +
   "Watch preview", centered on the (un-blurred) media. Same layout language as
   the lock so the locked/preview states read as one family. The whole media is
   covered for centering; pointer-events let the action row below stay clickable. */
.trdtc-route-preview{position:absolute!important;inset:0!important;z-index:3!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:10px!important;border:0!important;background:transparent!important;font-family:inherit!important;pointer-events:none!important}
.trdtc-route-preview-disc{pointer-events:auto!important;cursor:pointer!important;width:52px!important;height:52px!important;border-radius:50%!important;background:rgba(22,39,58,.7)!important;border:1px solid rgba(255,255,255,.16)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;color:rgba(255,255,255,.92)!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:background .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)!important}
.trdtc-route-preview-disc:hover{background:rgba(30,49,70,.85)!important;border-color:rgba(255,255,255,.3)!important;transform:scale(1.04)!important}
.trdtc-route-preview-disc svg{display:block!important;margin-left:2px!important}
.trdtc-route-preview-text{pointer-events:auto!important;cursor:pointer!important;font-size:11px!important;font-weight:600!important;color:rgba(255,255,255,.92)!important;letter-spacing:.02em!important;text-shadow:0 1px 6px rgba(0,0,0,.5)!important}
@media(max-width:699px){.trdtc-route-preview-disc{width:46px!important;height:46px!important}}
/* Direction B - subtle centre disc on the CARD only (modal .trdtc-mplay-overlay keeps its own larger disc) */
.trdtc-route-media .trdtc-route-preview-disc,.trdtc-route-media .trdtc-route-lock-disc{width:46px!important;height:46px!important;background:rgba(13,27,42,.5)!important;border:1px solid rgba(255,255,255,.22)!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important}
.trdtc-route-media .trdtc-route-preview-disc:hover,.trdtc-route-media .trdtc-route-lock-disc:hover{background:rgba(13,27,42,.66)!important;border-color:rgba(255,255,255,.4)!important;transform:scale(1.08)!important}
/* Free route - decorative play disc; the whole media is the click target (JS), so this is pointer-events:none */
.trdtc-route-freedisc{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:3!important;width:46px!important;height:46px!important;border-radius:50%!important;background:rgba(13,27,42,.5)!important;border:1px solid rgba(255,255,255,.22)!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;color:#fff!important;display:grid!important;place-items:center!important;pointer-events:none!important;transition:opacity .25s var(--ease)!important}
.trdtc-route-freedisc svg{display:block!important;margin-left:2px!important}
.trdtc-route.is-hov .trdtc-route-freedisc{opacity:0!important}
/* Green play disc - the watch affordance (lock disc stays glass). v2.97.0 */
.trdtc-route-media .trdtc-route-preview-disc,.trdtc-route-freedisc{background:var(--c-green)!important;border:none!important;color:var(--c-ink)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:0 6px 20px -4px rgba(3,201,136,.5)!important}
.trdtc-route-media .trdtc-route-preview-disc:hover{background:var(--c-green-d)!important;border:none!important;box-shadow:0 8px 24px -4px rgba(3,201,136,.6)!important}
.trdtc-route-4k{box-sizing:border-box!important;height:20px!important;display:inline-flex!important;align-items:center!important;font-size:9px!important;font-weight:400!important;color:rgba(255,255,255,.85)!important;padding:0 7px!important;border-radius:5px!important;background:rgba(22,39,58,.55)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;border:1px solid rgba(255,255,255,.12)!important;letter-spacing:.02em!important;line-height:1!important}
.trdtc-route-diff{box-sizing:border-box!important;height:20px!important;display:inline-flex!important;align-items:center!important;gap:5px!important;font-size:9px!important;font-weight:400!important;color:rgba(255,255,255,.85)!important;padding:0 7px!important;border-radius:5px!important;background:rgba(22,39,58,.55)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;border:1px solid rgba(255,255,255,.12)!important;letter-spacing:.02em!important}
.trdtc-diff-bars{display:flex!important;gap:2px!important;align-items:flex-end!important;height:9px!important}
.trdtc-diff-bar{width:2px!important;border-radius:1px!important;background:rgba(255,255,255,.25)!important}
.trdtc-diff-bar.on{background:rgba(255,255,255,.85)!important}
.trdtc-diff-bar:nth-child(1){height:30%!important}.trdtc-diff-bar:nth-child(2){height:50%!important}.trdtc-diff-bar:nth-child(3){height:70%!important}.trdtc-diff-bar:nth-child(4){height:85%!important}.trdtc-diff-bar:nth-child(5){height:100%!important}

/* Bottom overlay - title + subtitle + action buttons */
.trdtc-route-head{position:absolute!important;top:12px!important;left:14px!important;right:14px!important;z-index:3!important}
@media(max-width:699px){.trdtc-route-head{top:11px!important;left:12px!important;right:12px!important}}

.trdtc-route-title{font-size:15px!important;font-weight:600!important;color:#fff!important;margin:0!important;line-height:1.3!important;letter-spacing:-.01em!important;text-shadow:0 1px 4px rgba(0,0,0,.55)!important;max-width:62%!important}
@media(max-width:699px){.trdtc-route-title{font-size:14px!important}}

.trdtc-route-sub{display:flex!important;align-items:center!important;font-size:11px!important;color:rgba(255,255,255,.6)!important;line-height:1.3!important;margin-top:4px!important;text-shadow:0 1px 4px rgba(0,0,0,.55)!important;font-feature-settings:'tnum' 1!important}
.trdtc-route-sub-text{min-width:0!important;flex:1 1 auto!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.trdtc-route-sub-more{flex:0 0 auto!important;margin-left:6px!important;color:rgba(255,255,255,.45)!important;font-weight:600!important;white-space:nowrap!important}
@media(max-width:480px){.trdtc-more-word{display:none!important}}
.trdtc-route-sub b{color:rgba(255,255,255,.82)!important;font-weight:600!important}

/* Action buttons row - always visible on desktop (no hover reveal).
   overflow:visible so the larger primary button's green glow isn't clipped.
   Mobile keeps the existing model: bar hidden, centre play hint + tap-to-detail. */
.trdtc-route-actions{display:flex!important;align-items:center!important;gap:8px!important;overflow:visible!important;margin-top:11px!important}
@media(max-width:699px){.trdtc-route-actions{gap:7px!important;margin-top:10px!important}}
/* utilities sized to match the watch button height */
.trdtc-route-actions .trdtc-cbtn{width:42px!important;height:42px!important;border-radius:10px!important}
@media(max-width:699px){.trdtc-route-actions .trdtc-cbtn{width:40px!important;height:40px!important}}
.trdtc-route-actions .trdtc-cbtn--label{width:auto!important;height:42px!important;padding:0 14px!important}
@media(max-width:699px){.trdtc-route-actions .trdtc-cbtn--label{height:40px!important;padding:0 12px!important}}
/* Access chip on the poster (free-preview expectation / locked reward) */
.trdtc-route-chip{position:absolute!important;left:12px!important;bottom:12px!important;z-index:3!important;display:inline-flex!important;align-items:center!important;gap:6px!important;padding:5px 10px!important;border-radius:999px!important;background:rgba(8,18,28,.6)!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;border:1px solid rgba(255,255,255,.12)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.02em!important;color:rgba(255,255,255,.9)!important;line-height:1!important}
.trdtc-route-chip svg{display:block!important}
@media(max-width:699px){.trdtc-route-chip{left:10px!important;bottom:10px!important;font-size:10.5px!important;padding:4px 9px!important}}
/* Map/GPX utilities: icon-only on mobile, icon + label on desktop */
.trdtc-clabel{display:none!important}
@media(min-width:700px){.trdtc-route-actions .trdtc-cbtn--util{width:auto!important;padding:0 13px!important;gap:6px!important}.trdtc-route-actions .trdtc-cbtn--util .trdtc-clabel{display:inline!important;font-size:12.5px!important;font-weight:600!important}}

/* Secondary action button - frosted glass, 8px rounded square (mini-toolbar).
   Always visible (no hover reveal). Matches the homepage glass language. */
.trdtc-cbtn{width:40px!important;height:40px!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;padding:0!important;flex-shrink:0!important;border:1px solid rgba(255,255,255,.12)!important;background:rgba(22,39,58,.55)!important;color:rgba(255,255,255,.74)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;transition:background .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1)!important;opacity:1!important}
@media(max-width:699px){.trdtc-cbtn{width:38px!important;height:38px!important}}
.trdtc-cbtn:hover{background:rgba(30,49,70,.7)!important;border-color:rgba(255,255,255,.28)!important;color:#fff!important}
.trdtc-cbtn svg{display:block!important;flex-shrink:0!important}
/* Labelled action button (Details) - wider glass pill with text + chevron. */
.trdtc-cbtn--label{width:auto!important;padding:0 13px!important;gap:6px!important;font-size:12px!important;font-weight:600!important;font-family:inherit!important;white-space:nowrap!important}

/* Direction B - primary labelled Watch button below the card (the main CTA) */
.trdtc-route-watch{flex:1 1 auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;height:42px!important;padding:0 16px!important;border:none!important;border-radius:10px!important;background:var(--c-green)!important;color:var(--c-ink)!important;font-size:13.5px!important;font-weight:700!important;font-family:inherit!important;cursor:pointer!important;text-decoration:none!important;box-shadow:0 2px 10px rgba(3,201,136,.22)!important;transition:background .15s var(--ease),box-shadow .15s var(--ease)!important}
.trdtc-route-watch:hover{background:var(--c-green-d)!important;box-shadow:0 4px 14px rgba(3,201,136,.34)!important}
.trdtc-route-watch svg{display:block!important;flex-shrink:0!important}
@media(max-width:699px){.trdtc-route-watch{height:40px!important;font-size:13px!important}}
/* Watch button in non-locked states: glass like the utility buttons; green lives on the disc. v2.97.0 */
.trdtc-route-watch--glass{background:rgba(22,39,58,.55)!important;color:rgba(255,255,255,.86)!important;font-weight:600!important;border:1px solid rgba(255,255,255,.12)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;box-shadow:none!important}
.trdtc-route-watch--glass:hover{background:rgba(30,49,70,.7)!important;border-color:rgba(255,255,255,.28)!important;color:#fff!important;box-shadow:none!important}

/* Locked card action row */
/* Lock dot on locked action buttons (Play/Map/Download) - small padlock badge */
.trdtc-cbtn--lock{position:relative!important}

/* SEO - screen-reader-only text */

/* Expand button */
.trdtc-expand{display:flex;align-items:center!important;justify-content:center!important;gap:6px!important;width:100%!important;max-width:320px!important;margin:14px auto 0!important;padding:14px!important;background:var(--c-whi)!important;color:var(--c-ink)!important;border:1px solid rgba(13,27,42,.12)!important;border-radius:10px!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;font-family:inherit!important;transition:background .15s!important}
.trdtc-expand:hover{background:rgba(248,249,250,.8)!important}
.trdtc-sec--nav .trdtc-expand, .trdtc-sec--nav2 .trdtc-expand, .trdtc-sec--deep .trdtc-expand{background:rgba(255,255,255,.06)!important;color:rgba(255,255,255,.7)!important;border-color:rgba(255,255,255,.1)!important}
.trdtc-sec--nav .trdtc-expand:hover, .trdtc-sec--nav2 .trdtc-expand:hover, .trdtc-sec--deep .trdtc-expand:hover{background:rgba(255,255,255,.1)!important}
.trdtc-expand.trdtc-hidden{display:none!important}
.trdtc-expand-n{background:var(--c-green)!important;color:var(--c-ink)!important;font-size:10px!important;font-weight:700!important;padding:2px 7px!important;border-radius:999px!important}

/* ════════════════════════════════════════════════════════════════
   MORE DETAILS - Netflix glassmorphism SEO cards
   ════════════════════════════════════════════════════════════════ */
/* 1200-width content sections (routes, junctions, more-details). Padding is set
   to 32px at >=700 to match the hero and header left edge (the base .trdtc-w pads
   20px, which would leave these 12px out of alignment with the logo). */
.trdtc-md-w{max-width:1200px!important}
@media(min-width:700px){.trdtc-md-w{padding-left:32px!important;padding-right:32px!important}}

/* Glass card base */

/* ── Detail modal - Netflix-style route info ─────────────────── */
.trdtc-modal-detail{max-width:920px!important;background:var(--c-navy)!important;color:#fff!important;border-radius:12px!important}
@media(max-width:699px){.trdtc-modal-detail{border-radius:16px 16px 0 0!important}}
.trdtc-modal-detail .trdtc-modal-embed{border-radius:12px 12px 0 0!important;overflow:hidden!important}
.trdtc-modal .trdtc-detail-scrim, .trdtc-detail-scrim{position:absolute!important;bottom:0!important;left:0!important;right:0!important;top:auto!important;height:50%!important;width:100%!important;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 100%)!important;pointer-events:none!important;z-index:1!important}
.trdtc-modal .trdtc-detail-title, .trdtc-detail-title{position:absolute!important;bottom:0!important;left:0!important;right:0!important;top:auto!important;height:auto!important;max-height:none!important;z-index:3!important;padding:0 24px 20px!important;margin:0!important;width:100%!important;text-align:left!important}
.trdtc-modal .trdtc-detail-title h3, .trdtc-detail-title h3{font-family:'Inter', 'Inter Fallback',-apple-system,BlinkMacSystemFont,sans-serif!important;font-size:24px!important;font-weight:700!important;color:#fff!important;margin:0!important;padding:0!important;line-height:1.2!important;letter-spacing:-.02em!important;text-transform:none!important;text-shadow:0 2px 6px rgba(0,0,0,.5)!important;border:none!important}
.trdtc-detail-title h3::before, .trdtc-detail-title h3::after{display:none!important;content:none!important}
@media(max-width:699px){.trdtc-detail-title h3{font-size:20px!important}.trdtc-detail-title{padding:0 16px 16px!important}}
.trdtc-detail-body{padding:20px 24px 24px!important}
@media(max-width:699px){.trdtc-detail-body{padding:16px 16px 20px!important}}
.trdtc-detail-actions{display:flex!important;align-items:center!important;gap:10px!important;margin-bottom:20px!important}
.trdtc-detail-watch{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;background:var(--c-green)!important;color:var(--c-ink)!important;border:none!important;border-radius:var(--r-sm)!important;padding:10px 20px!important;font-size:13px!important;font-weight:700!important;cursor:pointer!important;font-family:inherit!important}
.trdtc-detail-watch svg{display:block!important;flex-shrink:0!important}
.trdtc-detail-cbtn{width:38px!important;height:38px!important;border-radius:50%!important;background:transparent!important;border:1.5px solid rgba(255,255,255,.2)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:rgba(255,255,255,.6)!important;cursor:pointer!important}
.trdtc-detail-cbtn:hover{border-color:rgba(255,255,255,.5)!important;color:#fff!important}
.trdtc-detail-meta{display:flex!important;align-items:center!important;gap:14px!important;margin-bottom:18px!important;padding-bottom:18px!important;border-bottom:1px solid rgba(255,255,255,.06)!important;font-size:12.5px!important;color:rgba(255,255,255,.6)!important;flex-wrap:wrap!important}
.trdtc-detail-meta-dur b, .trdtc-detail-meta-dist b{color:rgba(255,255,255,.85)!important;font-weight:700!important}
.trdtc-detail-desc{font-size:14px!important;color:rgba(255,255,255,.64)!important;line-height:1.7!important;margin:0 0 22px!important}
.trdtc-detail-roads-label{font-size:10.5px!important;font-weight:700!important;color:rgba(255,255,255,.45)!important;text-transform:uppercase!important;letter-spacing:.06em!important;margin-bottom:12px!important}
.trdtc-detail-roads{font-size:14px!important;color:rgba(255,255,255,.7)!important;line-height:1.9!important;margin:0!important}
/* Locked Details: the remaining roads as a count with the lock (4.104.0: no blur; full list stays in the crawlable SEO block) */
.trdtc-detail-roads-locked{position:relative!important;margin-top:4px!important}
.trdtc-detail-roads-pill{display:inline-flex!important;align-items:center!important;gap:5px!important;font-size:11px!important;font-weight:600!important;color:rgba(255,255,255,.7)!important}
.trdtc-detail-roads-pill svg{display:block!important}
/* 4K + lock badges on the image */
.trdtc-detail-4k{box-sizing:border-box!important;height:20px!important;position:absolute!important;top:16px!important;left:18px!important;z-index:4!important;display:inline-flex!important;align-items:center!important;font-size:9px!important;font-weight:400!important;color:rgba(255,255,255,.85)!important;padding:0 7px!important;border-radius:5px!important;background:rgba(22,39,58,.55)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;border:1px solid rgba(255,255,255,.12)!important;letter-spacing:.02em!important;line-height:1!important}
.trdtc-detail-premium{box-sizing:border-box!important;height:20px!important;position:absolute!important;top:16px!important;left:62px!important;z-index:4!important;display:inline-flex!important;width:auto!important;max-width:max-content!important;align-items:center!important;gap:4px!important;font-size:9px!important;font-weight:400!important;color:rgba(255,255,255,.85)!important;padding:0 7px!important;border-radius:5px!important;background:rgba(22,39,58,.55)!important;-webkit-backdrop-filter:blur(20px) saturate(1.1)!important;backdrop-filter:blur(20px) saturate(1.1)!important;border:1px solid rgba(255,255,255,.12)!important;letter-spacing:.02em!important;line-height:1!important}
.trdtc-detail-premium svg{display:block!important;flex-shrink:0!important;width:9px!important;height:9px!important}
/* Defensive: the X/Cornerstone theme must not paint a border/outline on the
   hero media or its layers (a green accent border was leaking through). */
.trdtc-detail-media, .trdtc-detail-media .trdtc-detail-thumb, .trdtc-detail-media .trdtc-detail-fallback, .trdtc-modal-detail .trdtc-modal-embed{outline:none!important;border:none!important;box-shadow:none!important}
.trdtc-detail-premium svg{display:block!important;flex-shrink:0!important;width:11px!important;height:11px!important}
.trdtc-detail-media.is-locked .trdtc-detail-thumb{filter:none!important;transform:none!important}   /* 4.104.0: geen blur */
/* Details locked hero fallback backdrop (shows when no thumbnail) + clean shape.
   The X/Cornerstone theme applies border-radius to images; on the blurred thumb
   that clips it into an oval. Force a clean full-bleed rectangle. */
.trdtc-detail-media{position:relative!important;overflow:hidden!important}
.trdtc-detail-media .trdtc-detail-thumb, .trdtc-detail-media .trdtc-detail-fallback{border-radius:0!important;max-width:none!important;clip-path:none!important;-webkit-mask:none!important;mask:none!important}
.trdtc-detail-fallback{position:absolute!important;inset:0!important;background:linear-gradient(135deg,#1b2f48 0%,#0d1b2a 100%)!important;z-index:0!important}
.trdtc-detail-fallback svg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:.10!important}
/* Real video preview layer (Netflix-style), fades in over the poster.
   A bare native <video> playing a short, non-DRM teaser MP4 - NO player UI, so
   no unmute prompt, nothing to crop or mask. Free routes only. */
.trdtc-preview-layer{position:absolute!important;inset:0!important;z-index:0!important;opacity:0!important;transition:opacity .6s ease!important;pointer-events:none!important;background:#000!important;overflow:hidden!important}
.trdtc-preview-layer video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;margin:0!important;padding:0!important;border:none!important;pointer-events:none!important}
.is-previewing .trdtc-preview-layer{opacity:1!important}
/* locked: price + get access (left-aligned, consistent with body) */
.trdtc-upsell-price--left{justify-content:flex-start!important;margin-bottom:3px!important}
.trdtc-detail-nosub{font-size:11.5px!important;color:rgba(255,255,255,.45)!important;margin:0 0 16px!important}
.trdtc-detail-getaccess{text-decoration:none!important}
.trdtc-detail-getaccess span{font-size:15px!important}
.trdtc-detail-watch--ghost{background:transparent!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.28)!important}
.trdtc-detail-watch--ghost:hover{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.4)!important}
/* DVSA rural note */
.trdtc-detail-dvsa{display:flex!important;align-items:center!important;gap:10px!important;padding:13px 15px!important;border-radius:11px!important;background:rgba(255,255,255,.04)!important;text-decoration:none!important;margin-top:22px!important}
.trdtc-detail-dvsa-ico{width:32px!important;height:32px!important;border-radius:9px!important;background:rgba(255,255,255,.05)!important;color:rgba(255,255,255,.6)!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}
.trdtc-detail-dvsa-txt{flex:1!important}
.trdtc-detail-dvsa-h{display:block!important;font-size:13px!important;font-weight:600!important;color:rgba(255,255,255,.82)!important;margin-bottom:1px!important}
.trdtc-detail-dvsa-s{display:block!important;font-size:11.5px!important;color:rgba(255,255,255,.45)!important}
.trdtc-detail-dvsa-arr{display:inline-flex!important;align-items:center!important;gap:4px!important;font-size:12px!important;color:rgba(255,255,255,.5)!important;flex-shrink:0!important}

/* ════════════════════════════════════════════════════════════════
   JUNCTIONS
   ════════════════════════════════════════════════════════════════ */
/* 4.75.0 · map + panel. From 860px the map sits left and the points are a
   scroll box beside it, level with the map (max-height = the map's 440px).
   Below that they stack, which is the layout the section had. The max-height
   hangs on the sibling combinator, so a centre with points but no
   coordinates gets a plain full-width list and no class has to say so. */
.trdtc-jsplit{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
@media(min-width:860px){
  .trdtc-jsplit{grid-template-columns:minmax(0,3fr) minmax(300px,2fr)!important}
  /* the frame is 440 outright (border-box), not 440 + two half-pixel borders
     rounded up to 442, so the panel's 440 cap lands level with it */
  .trdtc-jsplit .trdtc-jmap-wrap{height:440px!important}
  .trdtc-jmap-wrap+.trdtc-jpanel{max-height:440px!important;overflow:auto!important}
}
.trdtc-jmap-wrap{border-radius:var(--r-lg)!important;overflow:hidden!important;border:.5px solid rgba(255,255,255,.08)!important}
.trdtc-jmap{width:100%!important;height:280px!important}
/* 4.73.0 · attribution on the junction map (licence requirement; was absent). */
.trdtc-jmap .maplibregl-ctrl-attrib.maplibregl-compact{background:rgba(22,39,58,.55)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:999px!important;min-height:22px!important;margin:0 10px 10px 0!important;box-shadow:none!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}
.trdtc-jmap .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show) .maplibregl-ctrl-attrib-inner{display:none!important}
.trdtc-jmap .maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:11px!important;padding:2px 24px 2px 9px!important}
.trdtc-jmap .maplibregl-ctrl-attrib-button{width:22px!important;height:22px!important;background-color:transparent!important;opacity:.6!important;filter:invert(1)!important}
.trdtc-jmap .maplibregl-ctrl-attrib-button:hover{opacity:1!important}
.trdtc-jmap .maplibregl-ctrl-attrib-inner,.trdtc-jmap .maplibregl-ctrl-attrib-inner a{font-size:10px!important;line-height:1.5!important;color:rgba(255,255,255,.55)!important;font-family:inherit!important}
@media(min-width:700px){.trdtc-jmap{height:440px!important}}

/* ── the panel ── position:relative so a row's offsetTop is panel-relative,
   which is what jScrollRowIntoView() reads. */
.trdtc-jpanel{position:relative!important;border:.5px solid rgba(255,255,255,.08)!important;border-radius:var(--r-lg)!important;background:rgba(255,255,255,.02)!important;scrollbar-width:thin!important;scrollbar-color:rgba(255,255,255,.14) transparent!important}
.trdtc-jrow{display:flex!important;align-items:center!important;border-bottom:.5px solid rgba(255,255,255,.07)!important;transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)!important}
.trdtc-jrow:last-child{border-bottom:none!important}
/* the mobile cut sets `hidden`; the flex rule above would otherwise beat the
   UA's display:none for it */
.trdtc-jrow[hidden]{display:none!important}
.trdtc-jexpand{margin-top:14px!important}
/* hot = under the pointer or the focus, on either side; open = selected.
   Both are choices, so both get the green tint; open adds the 2px line. */
.trdtc-jrow:hover, .trdtc-jrow.is-hot{background:rgba(3,201,136,.04)!important}
.trdtc-jrow.is-open{background:rgba(3,201,136,.05)!important;box-shadow:inset 2px 0 0 rgba(3,201,136,.5)!important}
/* the row body is a button: reset it, then lay it out like the old card */
.trdtc-jpick{flex:1 1 auto!important;min-width:0!important;display:flex!important;align-items:flex-start!important;gap:11px!important;padding:12px 14px!important;background:transparent!important;border:0!important;border-radius:0!important;text-align:left!important;font:inherit!important;color:inherit!important;cursor:pointer!important;-webkit-appearance:none!important;appearance:none!important}
.trdtc-jpick:focus-visible{outline:2px solid var(--c-green)!important;outline-offset:-2px!important;border-radius:6px!important}
.trdtc-jnum{flex:0 0 26px!important;width:26px!important;height:26px!important;border-radius:6px!important;background:rgba(3,201,136,.1)!important;border:.5px solid rgba(3,201,136,.18)!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;font-weight:700!important;color:var(--c-green)!important}
.trdtc-jinfo{flex:1!important;min-width:0!important;display:flex!important;flex-direction:column!important}
.trdtc-jname-row{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:6px!important;row-gap:4px!important;margin-bottom:3px!important}
.trdtc-jname{font-size:12.5px!important;font-weight:600!important;color:rgba(255,255,255,.92)!important;line-height:1.3!important;min-width:0!important;overflow-wrap:anywhere!important}
.trdtc-jtype{flex-shrink:0!important;font-size:9px!important;font-weight:600!important;letter-spacing:.02em!important;color:rgba(3,201,136,.9)!important;background:rgba(3,201,136,.1)!important;border:.5px solid rgba(3,201,136,.18)!important;border-radius:999px!important;padding:1px 7px!important;line-height:1.6!important;white-space:nowrap!important}
/* Two lines at rest, the whole tip once the row is open. 4.74.1 took the
   three-line clamp off the cards because a tip cut mid-sentence is not a tip;
   that still holds - the difference is that this one opens, on the row you
   chose, and the full text is in the page for every screen either way. */
.trdtc-jdesc{font-size:11px!important;color:rgba(255,255,255,.5)!important;line-height:1.55!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
.trdtc-jrow.is-open .trdtc-jdesc{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important}
/* 4.87.0 · locked description (no junctions feature). Rest: the blurred text
   sits inline inside the same 2-line clamp as an open description, so a
   locked row is exactly as tall as an open one and shows no pill. Open: the
   rest becomes a relative block, the blur a 3-line clamp, and the pill sits
   over it - the anatomy of .trdtc-detail-roads-locked. The pill wraps (text
   in a span, padlock inline) because at exactly 860px a row with a play
   button is 208px and the pill 224px (measured, Inter SemiBold 11px);
   everywhere else it is one line. min-height of two lines on the open
   block: a one-line description would otherwise be shorter than a wrapped
   pill. No opacity on the blur: the description colour is already 50%
   white, and .7 on top of that left nothing to see (measured). */
.trdtc-jdesc-blur{filter:blur(4px)!important;user-select:none!important;-webkit-user-select:none!important}
.trdtc-jdesc-rest{display:inline!important}
.trdtc-jdesc-pill{display:none!important}
/* 4.87.1 · is-lead: the first locked row shows the open anatomy (3 blurred
   lines + pill) in rest too, so the panel explains itself before a click.
   Server-set, only ever next to is-locked, so members never get it.
   4.87.2 · one pill at a time: the lead rules only apply while no row is
   open (.trdtc-jpanel.has-open, set by jSetOpen in frontend.js). Open a
   second row and the pill is there alone; close it and the lead has it
   back. Without JS nothing opens, so the lead simply keeps it. */
.trdtc-jpanel:not(.has-open) .trdtc-jrow.is-lead .trdtc-jdesc--locked{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important}
.trdtc-jrow.is-open .trdtc-jdesc-rest, .trdtc-jpanel:not(.has-open) .trdtc-jrow.is-lead .trdtc-jdesc-rest{position:relative!important;display:block!important;min-height:3.1em!important}
.trdtc-jrow.is-open .trdtc-jdesc-blur, .trdtc-jpanel:not(.has-open) .trdtc-jrow.is-lead .trdtc-jdesc-blur{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
.trdtc-jrow.is-open .trdtc-jdesc-pill, .trdtc-jpanel:not(.has-open) .trdtc-jrow.is-lead .trdtc-jdesc-pill{position:absolute!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 8px!important;text-align:center!important;font-size:11px!important;font-weight:600!important;line-height:1.35!important;color:rgba(255,255,255,.85)!important;text-shadow:0 1px 8px rgba(13,27,42,.9)!important}
.trdtc-jdesc-pill svg{display:inline-block!important;vertical-align:-1px!important;margin-right:4px!important}
/* the play button: the one-tap path to the walkthrough, as before */
.trdtc-jplay{position:relative!important;flex-shrink:0!important;width:24px!important;height:24px!important;margin-right:14px!important;border-radius:50%!important;border:0!important;background:rgba(3,201,136,.12)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--c-green)!important;cursor:pointer!important;-webkit-appearance:none!important;appearance:none!important;transition:background var(--dur) var(--ease)!important}
/* 24px to look at, 44px to tap: the floor from CTA-SYSTEM.md, reached with a
   hit area on ::before so the badge itself stays the size it was */
.trdtc-jplay::before{content:""!important;position:absolute!important;inset:-10px!important;border-radius:50%!important}
.trdtc-jplay:hover{background:rgba(3,201,136,.22)!important}
.trdtc-jplay:focus-visible{outline:2px solid var(--c-green)!important;outline-offset:2px!important}

/* ── the markers ── the element handed to MapLibre is the .maplibregl-marker
   itself, so is-hot can lift the whole marker with a z-index. The theme puts
   padding:0!important on descendants of the map; these rules beat it the same
   way .trdtc-map-centre does. */
.trdtc-jpin{display:flex!important;align-items:center!important;gap:7px!important;cursor:pointer!important;outline:none!important}
.trdtc-jpin.is-hot, .trdtc-jpin.is-open{z-index:2!important}
/* the same 44px hit area on the 28px badge; the element MapLibre positions is
   absolute already, so the pseudo-element hangs off it without moving it */
.trdtc-jpin::before{content:""!important;position:absolute!important;inset:-8px!important}
.trdtc-jpin-badge{position:relative!important;width:28px!important;height:28px!important;flex-shrink:0!important;border-radius:50%!important;background:rgba(3,201,136,.9)!important;border:2px solid rgba(3,201,136,.45)!important;box-shadow:0 2px 8px rgba(3,201,136,.3)!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;font-weight:700!important;color:#0d1b2a!important;transition:transform .15s,box-shadow .15s!important}
.trdtc-jpin.is-hot .trdtc-jpin-badge, .trdtc-jpin.is-open .trdtc-jpin-badge{transform:scale(1.15)!important;box-shadow:0 3px 14px rgba(3,201,136,.55)!important}
.trdtc-jpin:focus-visible .trdtc-jpin-badge{border-color:#fff!important}
.trdtc-jpin-badge svg{display:none!important}
.trdtc-jpin.is-open .trdtc-jpin-badge svg{display:block!important}
.trdtc-jpin.is-open .trdtc-jpin-n{display:none!important}
.trdtc-jpin-label{display:none!important;font-size:12px!important;line-height:1.35!important;font-weight:600!important;color:#fff!important;white-space:nowrap!important;pointer-events:none!important;background:rgba(13,27,42,.78)!important;border:1px solid rgba(255,255,255,.1)!important;padding:7px 14px!important;border-radius:10px!important;-webkit-backdrop-filter:blur(6px)!important;backdrop-filter:blur(6px)!important;max-width:280px!important;overflow:hidden!important;text-overflow:ellipsis!important;box-sizing:border-box!important}
.trdtc-jpin.is-hot .trdtc-jpin-label, .trdtc-jpin.is-open .trdtc-jpin-label{display:block!important}
.trdtc-jpin.is-open .trdtc-jpin-label{box-shadow:0 0 0 1px rgba(3,201,136,.3)!important}

/* ─── Manoeuvres (zone 2) ─── */
.trdtc-man{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
@media(min-width:560px){.trdtc-man{gap:10px!important}}
@media(min-width:860px){.trdtc-man{grid-template-columns:repeat(4,1fr)!important;gap:10px!important}}
.trdtc-mcard{display:flex!important;flex-direction:column!important;background:rgba(255,255,255,.04)!important;border:.5px solid rgba(255,255,255,.07)!important;border-radius:10px!important;overflow:hidden!important;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur) var(--ease)!important}
.trdtc-mcard:hover{border-color:rgba(3,201,136,.22)!important;background:rgba(3,201,136,.045)!important;transform:translateY(-2px)!important}
.trdtc-mfig{position:relative!important;aspect-ratio:1/1!important;background:#0a1628!important;border-bottom:.5px solid rgba(255,255,255,.06)!important}
.trdtc-mfig > svg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important}
.trdtc-mnum{position:absolute!important;top:10px!important;left:10px!important;width:22px!important;height:22px!important;border-radius:6px!important;background:rgba(3,201,136,.1)!important;border:.5px solid rgba(3,201,136,.18)!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:9.5px!important;font-weight:700!important;color:var(--c-green)!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}
.trdtc-mflag{position:absolute!important;top:10px!important;right:10px!important;font-size:8.5px!important;font-weight:600!important;letter-spacing:.02em!important;color:rgba(3,201,136,.9)!important;background:rgba(3,201,136,.1)!important;border:.5px solid rgba(3,201,136,.18)!important;border-radius:999px!important;padding:2px 8px!important;line-height:1.5!important;-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}
.trdtc-mbody{padding:13px 14px 15px!important;display:flex!important;flex-direction:column!important;gap:4px!important;flex:1!important}
.trdtc-mname{font-size:12.5px!important;font-weight:600!important;color:rgba(255,255,255,.92)!important}
.trdtc-mdesc{font-size:10.5px!important;color:rgba(255,255,255,.42)!important;line-height:1.5!important}
.trdtc-man-foot{margin-top:18px!important;display:flex!important;flex-direction:column!important;gap:14px!important;align-items:flex-start!important}
@media(min-width:700px){.trdtc-man-foot{flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;margin-top:22px!important}}
.trdtc-estop{display:flex!important;gap:9px!important;align-items:flex-start!important;font-size:11.5px!important;line-height:1.5!important;color:rgba(255,255,255,.5)!important;max-width:560px!important}
.trdtc-estop svg{flex-shrink:0!important;margin-top:1px!important;color:rgba(3,201,136,.7)!important}
.trdtc-estop b{color:rgba(255,255,255,.78)!important;font-weight:600!important}
.trdtc-man-cta{display:inline-flex!important;align-items:center!important;gap:8px!important;flex-shrink:0!important;padding:12px 18px!important;border-radius:10px!important;background:rgba(255,255,255,.06)!important;color:rgba(255,255,255,.78)!important;border:1px solid rgba(255,255,255,.1)!important;font-size:12.5px!important;font-weight:600!important;text-decoration:none!important;cursor:pointer!important;transition:background .15s,border-color .15s,color .15s!important}
.trdtc-man-cta:hover{background:rgba(3,201,136,.1)!important;border-color:rgba(3,201,136,.25)!important;color:#fff!important}
.trdtc-man-cta svg{transition:transform .2s!important}
.trdtc-man-cta:hover svg{transform:translateX(3px)!important}
/* clickable card → centered play/lock overlay, reusing the route lock/preview disc styling for visual consistency */
.trdtc-mcard--click{cursor:pointer!important}
.trdtc-mplay-overlay{position:absolute!important;inset:0!important;z-index:3!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:10px!important;pointer-events:none!important;text-decoration:none!important}
/* whole card is the trigger, so the disc/label are display-only (no separate pointer target) */
.trdtc-mplay-overlay .trdtc-route-preview-disc, .trdtc-mplay-overlay .trdtc-route-lock-disc, .trdtc-mplay-overlay .trdtc-route-preview-text, .trdtc-mplay-overlay .trdtc-route-lock-text{pointer-events:none!important}
.trdtc-mcard--click:hover .trdtc-route-preview-disc, .trdtc-mcard--click:hover .trdtc-route-lock-disc{background:rgba(30,49,70,.85)!important;border-color:rgba(255,255,255,.3)!important;transform:scale(1.04)!important}
.trdtc-mcard--click:focus-visible{outline:none!important;border-color:rgba(3,201,136,.45)!important}
/* soft "less likely here" badge + dimmed bay cards */
.trdtc-mflag--soft{color:rgba(255,255,255,.6)!important;background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.12)!important}
.trdtc-mcard--dim .trdtc-mfig{opacity:.5!important}
.trdtc-mcard--dim .trdtc-mname{color:rgba(255,255,255,.62)!important}
.trdtc-mnote{margin-top:7px!important;font-size:9.5px!important;line-height:1.45!important;color:rgba(255,255,255,.4)!important;border-top:.5px solid rgba(255,255,255,.07)!important;padding-top:7px!important}

/* ─── "Also on your test" - combined prep teasers (zone 3) ─── */
/* "Also on your test" - topic-led teaser cards (replaces .trdtc-prep-*) */
.trdtc-aot-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:14px!important;margin-top:10px!important}
@media(max-width:920px){.trdtc-aot-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.trdtc-aot-grid{grid-template-columns:1fr!important}}
.trdtc-aot-card{display:flex!important;flex-direction:column!important;text-decoration:none!important;padding:26px!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.022))!important;border:1px solid rgba(255,255,255,.1)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 1px 2px rgba(0,0,0,.18)!important;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)!important}
.trdtc-aot-card:hover{transform:translateY(-4px)!important;border-color:rgba(255,255,255,.2)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 30px rgba(0,0,0,.32)!important}
.trdtc-aot-card:focus-visible{outline:2px solid var(--c-green)!important;outline-offset:3px!important}
.trdtc-aot-tag{align-self:flex-start!important;font-size:9.5px!important;font-weight:700!important;letter-spacing:.05em!important;text-transform:uppercase!important;padding:3px 8px!important;border-radius:6px!important;color:rgba(255,255,255,.46)!important;border:1px solid rgba(255,255,255,.12)!important}
.trdtc-aot-tag--members{color:rgba(255,255,255,.62)!important;border-color:rgba(255,255,255,.2)!important}
.trdtc-aot-title{font-size:23px!important;font-weight:700!important;letter-spacing:-.015em!important;color:rgba(255,255,255,.95)!important;line-height:1.15!important;margin-top:13px!important}
.trdtc-aot-stat{display:flex!important;align-items:baseline!important;gap:8px!important;margin-top:10px!important}
.trdtc-aot-num{font-size:20px!important;font-weight:700!important;line-height:1!important;letter-spacing:-.02em!important;color:rgba(255,255,255,.92)!important;font-variant-numeric:proportional-nums lining-nums!important}
.trdtc-aot-cap{font-size:12.5px!important;font-weight:500!important;color:rgba(255,255,255,.5)!important}
.trdtc-aot-desc{font-size:13.5px!important;line-height:1.6!important;color:rgba(255,255,255,.62)!important;margin:14px 0 0!important;flex:1!important}
.trdtc-aot-rule{height:1px!important;background:rgba(255,255,255,.08)!important;margin-top:20px!important}
.trdtc-aot-cta{display:inline-flex!important;align-items:center!important;gap:7px!important;margin-top:16px!important;font-size:13px!important;font-weight:700!important;color:var(--c-green)!important}
.trdtc-aot-cta svg{display:block!important;flex-shrink:0!important;transition:transform .18s var(--ease)!important}
.trdtc-aot-card:hover .trdtc-aot-cta svg{transform:translateX(4px)!important}
@media(max-width:699px){.trdtc-aot-card{padding:22px!important}}

/* ─── Show me, tell me (zone 3) - inline summary ─── */

/* ─── Show me, tell me - modal ─── */
/* test-day quiz (premium) */
/* locked teaser (non-member) */
/* Fail-point modal - compact members-only locked card (no thumbnail, no price) */
.trdtc-modal-card--lock{max-width:380px!important}
.trdtc-jlock{padding:34px 28px 28px!important;text-align:center!important;display:flex!important;flex-direction:column!important;align-items:center!important;background:radial-gradient(circle at 50% 0%,#1b3a5a 0%,var(--c-navy) 80%)!important}
.trdtc-jlock-ico{width:46px!important;height:46px!important;border-radius:50%!important;background:rgba(3,201,136,.14)!important;border:1px solid rgba(3,201,136,.3)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--c-green)!important;margin-bottom:16px!important}
.trdtc-jlock-title{font-size:15.5px!important;font-weight:700!important;color:#fff!important;margin-bottom:8px!important}
.trdtc-jlock-note{font-size:12.5px!important;font-weight:400!important;color:rgba(255,255,255,.55)!important;line-height:1.55!important;margin:0 0 20px!important;max-width:260px!important}
.trdtc-jlock-cta{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;background:var(--c-green)!important;color:var(--c-ink)!important;border:none!important;border-radius:11px!important;padding:13px 30px!important;font-size:14.5px!important;font-weight:700!important;text-decoration:none!important;cursor:pointer!important;box-shadow:0 8px 28px rgba(3,201,136,.36)!important;transition:transform .2s var(--ease),background .2s var(--ease)!important}
.trdtc-jlock-cta:hover{background:var(--c-green-d)!important;transform:translateY(-1px)!important}
.trdtc-jlock-cta svg{display:block!important}
.trdtc-jlock-login{margin-top:14px!important;font-size:12px!important;color:rgba(255,255,255,.55)!important;text-decoration:underline!important;text-underline-offset:2px!important}
.trdtc-jlock-login:hover{color:#fff!important}

/* ════════════════════════════════════════════════════════════════
   PRICING - moved to the shared component
   (assets/css/pricing.css, rendered by includes/pricing.php).
   ════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════
   NEARBY
   ════════════════════════════════════════════════════════════════ */
.trdtc-nearby{display:flex!important;flex-direction:column!important;gap:8px!important}
@media(min-width:700px){.trdtc-nearby{display:grid!important;grid-template-columns:1fr 1fr 1fr!important;gap:12px!important}}

/* ════════════════════════════════════════════════════════════════
   FAQ
   ════════════════════════════════════════════════════════════════ */
.trdtc-faq-item{border-bottom:1px solid rgba(13,27,42,.07)!important}
.trdtc-faq-item:last-child{border-bottom:none!important}
.trdtc-faq-item.is-open .trdtc-faq-a{max-height:400px!important;opacity:1!important;padding-bottom:14px!important}

/* ════════════════════════════════════════════════════════════════
   EXPERT
   ════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════
   MODALS - stripped to homepage DNA
   ════════════════════════════════════════════════════════════════ */
.trdtc-modal, .trdtc-modal *, .trdtc-modal *::before, .trdtc-modal *::after{box-sizing:border-box!important}
.trdtc-modal{--c-navy:#0d1b2a;--c-deep:#1b263b;--c-off:#f8f9fa;--c-whi:#fff;--c-green:#03c988;--c-green-d:#02a873;--c-green-ink:#026644;--c-ink:#0d1b2a;--c-sub:#415a77;--c-accent:#778da9;--r-sm:8px;--r-md:12px;--r-lg:16px;position:fixed!important;inset:0!important;z-index:2147483600!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;padding:0!important;font-family:'Inter', 'Inter Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important;animation:trdtc-fade-in .2s ease!important}
@media(min-width:700px){.trdtc-modal{align-items:center!important;padding:24px!important}}
.trdtc-modal[hidden]{display:none!important}
@keyframes trdtc-fade-in{from{opacity:0}to{opacity:1}}
.trdtc-modal-bg{position:absolute!important;inset:0!important;background:rgba(13,27,42,.6)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important}
.trdtc-modal-card{position:relative!important;background:var(--c-navy)!important;border-radius:16px 16px 0 0!important;overflow:hidden!important;width:100%!important;max-height:90vh!important;display:flex!important;flex-direction:column!important;box-shadow:0 -10px 40px rgba(0,0,0,.3)!important;animation:trdtc-slide-up .3s cubic-bezier(.16,1,.3,1)!important}
@media(min-width:700px){.trdtc-modal-card{border-radius:16px!important;max-width:920px!important;box-shadow:0 40px 80px rgba(0,0,0,.5)!important;animation:trdtc-scale-in .3s cubic-bezier(.16,1,.3,1)!important}}
/* Mobile bottom-sheet grab handle (visual swipe-down affordance) */
@media(max-width:699px){.trdtc-modal-card::before{content:""!important;position:absolute!important;top:8px!important;left:50%!important;transform:translateX(-50%)!important;width:38px!important;height:4px!important;border-radius:99px!important;background:rgba(255,255,255,.5)!important;z-index:10!important;pointer-events:none!important}.trdtc-modal-card.trdtc-modal-card--gpx::before, .trdtc-modal-detail::before{background:rgba(255,255,255,.25)!important}}
/* 90vh is the screen without the browser bars on iOS; with Chrome's bars showing, a long sheet ran up under
   the address bar with its close button (found on /manoeuvres/, same sheet, 4.112.3). svh fits the screen
   with the bars; the 64px strip of backdrop stays tappable. Without svh the 90vh above applies. */
@media(max-width:699px){.trdtc-modal-card{max-height:calc(100svh - 64px)!important}}
.trdtc-modal-card--map{max-width:920px!important}

/* ── GPX download modal - dark glass, instruction-first ── */
.trdtc-modal-card--gpx{max-width:500px!important;background:rgba(20,33,48,.98)!important}
.trdtc-gpx-body{padding:26px 24px 24px!important;overflow-y:auto!important;max-height:88vh!important}
.trdtc-gpx-head{display:flex!important;align-items:center!important;gap:11px!important;margin-bottom:16px!important}
.trdtc-gpx-ico{width:38px!important;height:38px!important;border-radius:11px!important;background:rgba(3,201,136,.12)!important;color:var(--c-green)!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}
.trdtc-gpx-title{font-size:16px!important;font-weight:700!important;color:#fff!important;line-height:1.2!important}
.trdtc-gpx-sub{font-size:12.5px!important;color:rgba(255,255,255,.45)!important}
.trdtc-gpx-warn{display:flex!important;gap:11px!important;align-items:flex-start!important;padding:14px 16px!important;border-radius:12px!important;background:rgba(255,255,255,.025)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;border:1px solid rgba(255,255,255,.04)!important;margin-bottom:14px!important}
.trdtc-gpx-warn-ico{color:rgba(255,255,255,.4)!important;flex-shrink:0!important;margin-top:1px!important;display:flex!important}
.trdtc-gpx-warn p{margin:0!important;font-size:12.5px!important;line-height:1.55!important;color:rgba(255,255,255,.62)!important}
.trdtc-gpx-dl{display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;padding:14px 22px!important;border-radius:12px!important;background:var(--c-green)!important;color:var(--c-ink)!important;font-weight:700!important;font-size:14.5px!important;text-decoration:none!important;margin-bottom:18px!important}
.trdtc-gpx-dl:hover{background:#02a873!important}
.trdtc-gpx-app{margin-bottom:7px!important;border-radius:12px!important;background:rgba(255,255,255,.025)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;border:1px solid rgba(255,255,255,.04)!important;overflow:hidden!important}
.trdtc-gpx-app[open]{background:rgba(255,255,255,.05)!important}
.trdtc-gpx-app summary{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:14px 16px!important;cursor:pointer!important;list-style:none!important;color:#fff!important;font-size:13.5px!important;font-weight:600!important}
.trdtc-gpx-app summary::-webkit-details-marker{display:none!important}
.trdtc-gpx-app-name{display:flex!important;align-items:center!important;gap:8px!important}
.trdtc-gpx-app-label{font-size:10px!important;font-weight:600!important;color:rgba(255,255,255,.42)!important;background:rgba(255,255,255,.04)!important;padding:2px 7px!important;border-radius:5px!important;letter-spacing:.02em!important}
.trdtc-gpx-app-chev{color:rgba(255,255,255,.45)!important;display:flex!important;transition:transform .25s!important}
.trdtc-gpx-app[open] .trdtc-gpx-app-chev{transform:rotate(180deg)!important}
.trdtc-gpx-app-body{padding:2px 16px 14px!important}
.trdtc-gpx-app-blurb{margin:0 0 12px!important;font-size:12.5px!important;line-height:1.5!important;color:rgba(3,201,136,.9)!important;font-weight:600!important}
.trdtc-gpx-app-warn{padding:11px 13px!important;border-radius:10px!important;background:rgba(239,159,39,.08)!important;margin-bottom:12px!important;font-size:12.5px!important;line-height:1.5!important;color:rgba(245,201,138,.88)!important}
.trdtc-gpx-steps{list-style:none!important;margin:0!important;padding:0!important}
.trdtc-gpx-steps li{display:flex!important;gap:11px!important;padding:0 0 12px!important;align-items:flex-start!important;font-size:13px!important;line-height:1.5!important;color:rgba(255,255,255,.72)!important}
.trdtc-gpx-step-n{width:21px!important;height:21px!important;border-radius:50%!important;background:rgba(3,201,136,.13)!important;color:var(--c-green)!important;font-size:11px!important;font-weight:700!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;margin-top:1px!important}
.trdtc-gpx-app-note{margin:2px 0 4px!important;font-size:11.5px!important;line-height:1.45!important;color:rgba(255,255,255,.4)!important}
.trdtc-route-map{width:100%!important;height:440px!important;background:var(--c-deep)!important}
@media(min-width:700px){.trdtc-route-map{height:560px!important}}
/* Test-centre marker on the route map (= route start). A precise green dot sits
   on the exact point; a subtle glass label floats above it with a small tail,
   so it never overlaps the route line. The wrap carries no transform (MapLibre
   positions it). */
.trdtc-map-centre-pt{width:11px!important;height:11px!important;border-radius:50%!important;background:var(--c-green)!important;border:2.5px solid #0d1b2a!important;box-shadow:0 0 0 1px rgba(3,201,136,.5)!important}
.trdtc-map-centre-wrap{display:inline-flex!important}
.trdtc-map-centre{position:relative!important;display:inline-flex!important;align-items:center!important;padding:3px 9px!important;border-radius:7px!important;background:rgba(13,27,42,.82)!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.1)!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important;white-space:nowrap!important;cursor:default!important}
.trdtc-map-centre::after{content:""!important;position:absolute!important;top:100%!important;left:50%!important;transform:translateX(-50%)!important;width:0!important;height:0!important;border-left:5px solid transparent!important;border-right:5px solid transparent!important;border-top:5px solid rgba(13,27,42,.82)!important}
.trdtc-map-centre-txt{font-size:11px!important;font-weight:600!important;color:rgba(255,255,255,.92)!important;letter-spacing:-.01em!important}
@keyframes trdtc-slide-up{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes trdtc-scale-in{from{transform:translateY(16px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
.trdtc-modal-x{position:absolute!important;top:12px!important;right:12px!important;z-index:10!important;width:32px!important;height:32px!important;border-radius:50%!important;background:rgba(0,0,0,.5)!important;border:none!important;color:rgba(255,255,255,.7)!important;font-size:14px!important;cursor:pointer!important;display:flex!important;align-items:center!important;justify-content:center!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important}
.trdtc-modal-embed{aspect-ratio:16/9!important;background:#000!important;width:100%!important;position:relative!important}
.trdtc-modal-embed iframe{width:100%!important;height:100%!important;border:none!important;display:block!important}
.trdtc-modal-embed>div{width:100%!important;height:100%!important}

/* ── Video modal - centred lightbox (mirrors the homepage), NOT a bottom sheet ──
   Applied only to modals showing a playable video (.trdtc-modal--video). The 16:9
   video sits centred on a dark blurred backdrop with letterbox bars top and bottom;
   the close button floats in the letterbox area (a direct child of the modal, so it
   anchors to the viewport corner). Locked / upsell modals keep the bottom sheet.
   The native fullscreen button inside the Gumlet iframe is untouched - a user who
   wants true landscape fullscreen taps it, exactly like YouTube. */
.trdtc-modal--video{align-items:center!important}
@media(max-width:699px){.trdtc-modal--video{padding:0!important}}
/* 4.99.0 · Zelfde recept als de promo op de homepage (homepage.css, .tr-hp__modal-bg):
   de pagina blijft als vage vormen zichtbaar, en de cursor zegt dat een klik
   ernaast sluit. Was .82 + brightness .5, nog donkerder dan de promo. Mobiel gelijk. */
.trdtc-modal--video .trdtc-modal-bg{background:rgba(5,10,20,.6)!important;-webkit-backdrop-filter:blur(14px) brightness(.7)!important;backdrop-filter:blur(14px) brightness(.7)!important;cursor:pointer!important}
.trdtc-modal--video .trdtc-modal-card{position:relative!important;background:transparent!important;border-radius:12px!important;overflow:hidden!important;width:min(1120px, 92vw, calc(90vh * 16 / 9))!important;max-height:none!important;box-shadow:0 30px 90px rgba(0,0,0,.6)!important;animation:trdtc-fade-in .25s ease!important}
@media(max-width:699px){.trdtc-modal--video .trdtc-modal-card{border-radius:0!important;width:100%!important;max-width:100%!important;box-shadow:none!important}}
.trdtc-modal--video .trdtc-modal-card::before{content:none!important;display:none!important}
.trdtc-modal--video .trdtc-modal-x{position:absolute!important;top:16px!important;right:16px!important;width:44px!important;height:44px!important;background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.14)!important;color:#fff!important;font-size:16px!important;z-index:20!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}
@media(min-width:700px){.trdtc-modal--video .trdtc-modal-x{top:20px!important;right:20px!important}}

/* ── Map modal - immersive lightbox (mirrors the video modal) ────────────────────
   Fullscreen on mobile, a large centred card on desktop; same dark blurred backdrop
   and floating translucent close as the video lightbox. The MapLibre map fills the
   card. On mobile the close, the route chip and the zoom controls clear the notch and
   the home indicator via the safe-area insets. Only the UNLOCKED (full) map gets this;
   the locked teaser keeps its bottom-sheet paywall treatment. */
.trdtc-modal--map{align-items:center!important}
@media(max-width:699px){.trdtc-modal--map{align-items:stretch!important;padding:0!important}}
.trdtc-modal--map .trdtc-modal-bg{background:rgba(5,10,20,.82)!important;-webkit-backdrop-filter:blur(10px) brightness(.5)!important;backdrop-filter:blur(10px) brightness(.5)!important}
@media(max-width:699px){.trdtc-modal--map .trdtc-modal-bg{background:rgba(5,10,20,.92)!important;-webkit-backdrop-filter:blur(8px) brightness(.45)!important;backdrop-filter:blur(8px) brightness(.45)!important}}
.trdtc-modal--map .trdtc-modal-card{position:relative!important;background:#0d1b2a!important;border-radius:12px!important;overflow:hidden!important;width:min(1120px, 92vw, calc(90vh * 16 / 9))!important;aspect-ratio:16/9!important;box-shadow:0 30px 90px rgba(0,0,0,.6)!important;animation:trdtc-fade-in .25s ease!important}
@media(max-width:699px){.trdtc-modal--map .trdtc-modal-card{border-radius:0!important;width:100%!important;max-width:100%!important;height:100%!important;aspect-ratio:auto!important;max-height:none!important;box-shadow:none!important}}
.trdtc-modal--map .trdtc-route-map{flex:1 1 auto!important;width:100%!important;height:100%!important;min-height:0!important}
.trdtc-modal--map .trdtc-modal-embed{flex:1 1 auto!important;height:100%!important;min-height:0!important;aspect-ratio:auto!important}
/* no bottom-sheet grab handle here - the map isn't swipe-to-dismiss (a drag pans it) */
.trdtc-modal--map .trdtc-modal-card::before{content:none!important;display:none!important}
.trdtc-modal--map .trdtc-modal-x{position:absolute!important;top:16px!important;right:16px!important;width:44px!important;height:44px!important;background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.14)!important;color:#fff!important;z-index:20!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}
@media(min-width:700px){.trdtc-modal--map .trdtc-modal-x{top:20px!important;right:20px!important}}
@media(max-width:699px){
  .trdtc-modal--map .trdtc-modal-x{top:calc(env(safe-area-inset-top, 0px) + 12px)!important;right:12px!important}
  .trdtc-modal--map .trdtc-route-map-bar{top:calc(env(safe-area-inset-top, 0px) + 12px)!important;left:12px!important;max-width:calc(100% - 84px)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .trdtc-modal--map .maplibregl-ctrl-bottom-right{margin-bottom:calc(env(safe-area-inset-bottom, 0px) + 10px)!important}
}

/* ── Detail modal - native <dialog> in the browser TOP LAYER (Cornerstone-proof)
   Root cause of every earlier failure: position:fixed resolves against the nearest
   ancestor that has a transform / filter / perspective / contain. Cornerstone & Pro
   put those on wrappers (and sometimes on <body> itself) for section animations and
   full-width overflow. When that happens, inset:0 no longer means "the viewport" -
   it means "as tall as that wrapper / the whole page", so the overlay becomes page-
   height and scrolls forever. Portalling to <body> does NOT help if <body> itself
   carries a transform.

   showModal() renders the dialog in the TOP LAYER - a browser-managed layer above
   the entire document that is immune to ANY ancestor transform, filter, overflow,
   contain or z-index. The dialog itself is the scroll container (inset:0 = the real
   viewport; no vh/svh/dvh needed). Crucially there is NO position:fixed anywhere
   inside it: the persistent close lives in a position:sticky top strip, and sticky
   is measured against the dialog's own scroll box - so it too is immune to whatever
   Cornerstone does to ancestors. ::backdrop supplies the dimming (top-layer as well).

   Closed <dialog> is display:none by default, but our base .trdtc-modal rule forces
   display:flex!important, which would show a closed dialog - so we explicitly hide
   :not([open]) and only lay it out when [open]. */
.trdtc-modal--sheet:not([open]){display:none!important}
/* Bottom sheet - FIXED-height card (Cornerstone-proof + reflow-proof)
   The dialog fills the viewport (inset:0) in the top layer. The card is anchored with
   position:absolute from a fixed top gap down to the bottom, so its height is decided by
   those offsets - NOT by its content. That's the fix: when the height depended on content
   (flex:0 0 auto + max-height), the card grew as the hero image and text loaded, and a
   bottom-anchored card resizing mid-entry is what yanked it up then dropped it back down.
   With a fixed frame the card can't reflow, so the entry is dead steady. position:absolute
   resolves against the dialog (its nearest positioned ancestor - the dialog is
   position:fixed), so a transform on <body> from Cornerstone still can't reach it. The gap
   above (transparent) shows the dimmed ::backdrop. The card itself is the scroller. */
.trdtc-modal--sheet[open]{display:block!important;position:fixed!important;inset:0!important;width:auto!important;height:auto!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;overflow:hidden!important;animation:none!important}
.trdtc-modal--sheet::backdrop{background:rgba(5,10,20,.72)!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important}
/* the card = the sheet + the scroll container, pinned from the gap to the bottom.
   ENTRY: a transform transition (not @keyframes). openModal() adds .trdtc-sheet-enter
   (translateY(100%), no transition) BEFORE showModal(), so the first painted frame is
   off-screen; it's removed one frame later → clean slide up. */
.trdtc-modal--sheet .trdtc-modal-card{position:absolute!important;left:0!important;right:0!important;bottom:0!important;top:calc(env(safe-area-inset-top, 0px) + 44px)!important;width:auto!important;max-width:none!important;max-height:none!important;min-height:0!important;margin:0!important;background:#0d1b2a!important;border-radius:16px 16px 0 0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;transform:translateY(0)!important;transition:transform .34s cubic-bezier(.16,1,.3,1)!important;will-change:transform!important}
/* 4.61.0 · DE WITTE BALK NAAST DE MEDIA IN HET SHEET.
   De kaart hierboven is de scrollcontainer (overflow-y:auto). Past de sheet
   niet in het scherm, dan tekent het OS een scrollbalk - op een Mac met een
   muis of "altijd tonen", op Windows altijd - en de RAIL van die balk wordt in
   de systeemkleur geschilderd: wit, over de navy kaart, ~15px breed, de volle
   hoogte. De media staat op 100% van de contentbox en wordt 15px smaller.
   Vandaar "soms" (alleen bij overflow) en "weg bij afspelen" (dat opent de
   video-lightbox, een andere modal zonder scrollcontainer).

   color-scheme:dark laat het OS een donkere balk tekenen - één standaard
   eigenschap, geen hack. scrollbar-color/-width zijn de standaardvorm voor
   Firefox en Chrome 121+; de ::-webkit-* regels dekken oudere Safari/Chrome.
   De rail wordt de kaartkleur, de duim halfdoorzichtig wit. De balk blijft
   bestaan (scroll moet vindbaar blijven), hij valt alleen niet meer op. */
.trdtc-modal--sheet .trdtc-modal-card{color-scheme:dark!important;scrollbar-width:thin!important;scrollbar-color:rgba(255,255,255,.28) #0d1b2a!important}
.trdtc-modal--sheet .trdtc-modal-card::-webkit-scrollbar{width:10px!important}
.trdtc-modal--sheet .trdtc-modal-card::-webkit-scrollbar-track{background:#0d1b2a!important}
.trdtc-modal--sheet .trdtc-modal-card::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28)!important;border-radius:99px!important;border:2px solid #0d1b2a!important}
.trdtc-modal--sheet.trdtc-sheet-enter .trdtc-modal-card{transform:translateY(100%)!important;transition:none!important}
/* zero-height sticky strip → no flow space (hero sits edge-to-top under the rounded
   corners), but the close button inside it stays pinned to the top of the card as
   its content scrolls */
.trdtc-detail-topbar{position:sticky!important;top:0!important;height:0!important;z-index:5!important;overflow:visible!important}
.trdtc-detail-topbar .trdtc-modal-x{position:absolute!important;top:12px!important;right:12px!important;width:36px!important;height:36px!important}
.trdtc-modal--sheet .trdtc-detail-scroll{overflow:visible!important;min-height:0!important}
.trdtc-modal-detail .trdtc-detail-media{border-radius:0!important}
@media(prefers-reduced-motion:reduce){
  .trdtc-modal--sheet .trdtc-modal-card{transition:none!important}
  .trdtc-modal--sheet.trdtc-sheet-enter .trdtc-modal-card{transform:translateY(0)!important;opacity:1!important}
}
/* desktop: floating card centred both ways (overrides the absolute pinning), dimmed
   ::backdrop around it. Gentle fade + small rise instead of a full slide-up. */
@media(min-width:700px){
  .trdtc-modal--sheet[open]{display:flex!important;align-items:center!important;justify-content:center!important;padding:24px!important;overflow:hidden!important}
  .trdtc-modal--sheet .trdtc-modal-card{position:relative!important;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;width:auto!important;max-width:920px!important;max-height:100%!important;margin:0 auto!important;border-radius:16px!important;transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .2s ease!important}
  .trdtc-modal--sheet.trdtc-sheet-enter .trdtc-modal-card{transform:translateY(20px)!important;opacity:0!important;transition:none!important}
  .trdtc-detail-topbar .trdtc-modal-x{top:16px!important;right:16px!important}
}

/* Façade - lightweight poster shown until the iframe is injected on click */
.trdtc-facade{cursor:pointer!important;overflow:hidden!important}
.trdtc-facade[data-loaded]{cursor:default!important}
.trdtc-facade-poster{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;margin:0!important;padding:0!important;border:none!important;z-index:0!important;transition:opacity .3s ease!important}
/* After play is tapped the poster stays as a DARK cover ON TOP of the injected iframe,
   so a slow player load never flashes the browser's white iframe-loading background.
   It fades out only once the player has actually rendered (JS adds .is-playing). */
.trdtc-facade[data-loaded] .trdtc-facade-poster{z-index:4!important}
.trdtc-facade.is-playing .trdtc-facade-poster{opacity:0!important;pointer-events:none!important}
/* Dark fallback cover for the rare video with no poster thumbnail - same idea, so the
   white iframe background is never visible during a slow load. Fades out with the poster. */
.trdtc-facade[data-loaded]::after{content:""!important;position:absolute!important;inset:0!important;z-index:3!important;background:#0d1b2a!important;pointer-events:none!important;transition:opacity .3s ease!important}
.trdtc-facade.is-playing::after{opacity:0!important}
.trdtc-facade[data-loaded] .trdtc-facade-scrim, .trdtc-facade[data-loaded] .trdtc-facade-4k, .trdtc-facade[data-loaded] .trdtc-facade-play{display:none!important}
.trdtc-facade-scrim{position:absolute!important;inset:0!important;z-index:1!important;background:radial-gradient(ellipse at center,rgba(0,0,0,.15) 0%,rgba(0,0,0,.5) 100%)!important;pointer-events:none!important}
.trdtc-facade-4k{position:absolute!important;top:14px!important;left:14px!important;z-index:3!important;font-size:10px!important;font-weight:800!important;color:#fff!important;padding:4px 7px!important;border-radius:4px!important;background:rgba(3,201,136,.2)!important;border:1px solid rgba(3,201,136,.5)!important;letter-spacing:.06em!important;line-height:1!important}
.trdtc-facade-play{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:3!important;width:64px!important;height:64px!important;border-radius:50%!important;background:var(--c-green)!important;border:none!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--c-ink)!important;cursor:pointer!important;box-shadow:0 6px 24px rgba(3,201,136,.4)!important;transition:transform .2s var(--ease),background .2s!important}
.trdtc-facade-play svg{margin-left:3px!important;display:block!important}
.trdtc-facade:hover .trdtc-facade-play{transform:translate(-50%,-50%) scale(1.08)!important;background:var(--c-green-d)!important}

/* Upsell panel */
/* ════════════════════════════════════════════════════════════════
   LOCKED MEDIA - shared anatomy for video / map / gpx locked states.
   A blurred backdrop fills the surface; the overlay floats centred on top.
   Premium feel: one even heavy blur over the whole image, a refined scrim
   for guaranteed contrast, and a single elegant lock glyph (Apple-style).
   ════════════════════════════════════════════════════════════════ */
.trdtc-lock-media{position:relative!important;width:100%!important;aspect-ratio:16/9!important;min-height:340px!important;overflow:hidden!important;background:var(--c-navy)!important;display:flex!important;align-items:center!important;justify-content:center!important}
@media(max-width:699px){.trdtc-lock-media{min-height:300px!important}}
/* Backdrop layer holds the fallback road visual + the thumbnail, blurred as
   one. Scale hides the feathered blur edge. */
.trdtc-lock-bg{position:absolute!important;inset:0!important;overflow:hidden!important}
.trdtc-lock-fallback{position:absolute!important;inset:0!important;background:linear-gradient(135deg,#1b2f48 0%,#0d1b2a 100%)!important}
.trdtc-lock-fallback svg{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:.10!important}
.trdtc-lock-img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;filter:blur(12px) saturate(1.05)!important;transform:scale(1.1)!important;display:block!important;margin:0!important;padding:0!important;border:none!important;border-radius:0!important;max-width:none!important;clip-path:none!important;-webkit-mask:none!important;mask:none!important}
/* Guaranteed contrast floor - flat darkening + soft centre vignette.
   Independent of the image; if blur fails, this alone keeps text readable. */
.trdtc-lock-scrim{position:absolute!important;inset:0!important;background:linear-gradient(rgba(13,27,42,.62),rgba(13,27,42,.62)),radial-gradient(ellipse 80% 80% at center,rgba(13,27,42,.35) 0%,rgba(13,27,42,.8) 100%)!important;pointer-events:none!important}
.trdtc-lock{position:relative!important;z-index:2!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;padding:36px 28px!important;max-width:340px!important}
/* Focal glyph - one elegant frosted circle with the lock mark itself.
   No secondary badge dot (that read as cheap). */
.trdtc-lock-glyph{position:relative!important;width:62px!important;height:62px!important;border-radius:50%!important;background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.18)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#fff!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;margin-bottom:20px!important;box-shadow:0 8px 32px rgba(0,0,0,.3)!important}
.trdtc-lock-glyph>svg{display:block!important;opacity:.95!important}
.trdtc-lock-title{font-size:16px!important;font-weight:600!important;color:#fff!important;letter-spacing:-.01em!important;text-shadow:0 1px 12px rgba(0,0,0,.5)!important}
.trdtc-lock-price{font-size:13px!important;color:rgba(255,255,255,.65)!important;margin-top:9px!important;text-shadow:0 1px 8px rgba(0,0,0,.5)!important}
.trdtc-lock-was{color:rgba(255,255,255,.45)!important;text-decoration:line-through!important;text-decoration-color:rgba(255,255,255,.35)!important;margin:0 2px!important}
.trdtc-lock-now{color:#fff!important;font-weight:600!important}
.trdtc-lock-cta{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:13px 30px!important;border-radius:11px!important;background:var(--c-green)!important;color:var(--c-ink)!important;font-weight:700!important;font-size:14.5px!important;text-decoration:none!important;margin-top:22px!important;box-shadow:0 8px 28px rgba(3,201,136,.36)!important;transition:transform .2s var(--ease),background .2s!important}
.trdtc-lock-cta:hover{background:var(--c-green-d)!important;transform:translateY(-1px)!important}
.trdtc-lock-cta svg{display:block!important}
.trdtc-lock-login{font-size:12.5px!important;color:rgba(255,255,255,.55)!important;text-decoration:none!important;margin-top:16px!important}
.trdtc-lock-login:hover{color:#fff!important;text-decoration:underline!important;text-underline-offset:2px!important}
/* Locked MAP: the real (teaser) MapLibre map, CSS-blurred, with the scrim +
   overlay on top. Shows the actual route shape - blurred - per the brief. */
/* 4.76.2: same centring as .trdtc-lock-media (flex), not absolute + left:50%.
   An absolutely positioned block without a width shrinks to fit the space
   RIGHT of its left edge - with left:50% that is half the card, ~180px on a
   phone: "Get / access" on two lines, "one-" broken. Desktop hid it because
   half of 680px is still the block's 340px max. */
.trdtc-lock-map{position:relative!important;width:100%!important;aspect-ratio:16/9!important;min-height:340px!important;overflow:hidden!important;background:var(--c-navy)!important;display:flex!important;align-items:center!important;justify-content:center!important}
@media(max-width:699px){.trdtc-lock-map{min-height:300px!important}}
.trdtc-lock-map .trdtc-route-map{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;filter:blur(6px) saturate(1.05)!important;transform:scale(1.06)!important;pointer-events:none!important}
.trdtc-lock-map .trdtc-lock-scrim{z-index:1!important}
.trdtc-lock-map .trdtc-lock{position:relative!important;top:auto!important;left:auto!important;transform:none!important;width:min(340px,100%)!important}

/* ════════════════════════════════════════════════════════════════
   PASS RATE COMPARISON TABLE
   ════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════
   AT A GLANCE - stat cards
   ════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════
   REDUCED MOTION
   ════════════════════════════════════════════════════════════════ */
@media(prefers-reduced-motion:reduce){
.trdtc *, .trdtc *::before, .trdtc *::after{transition-duration:0.01ms!important;animation-duration:0.01ms!important}
}

/* Cornerstone parent reset */
:where(.x-container:has(>.trdtc), .x-section:has(>.trdtc), .x-main:has(.trdtc), .entry-content:has(>.trdtc), main:has(.trdtc)){padding-top:0!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important}
/* iOS-reliable scroll lock: pin the body in place (top:-scrollY is set inline by JS).
   overflow:hidden alone is ignored by iOS Safari's touch scrolling. width:100% keeps
   the page from collapsing when it leaves normal flow. Scroll is restored on close. */
body.trdtc-modal-open{position:fixed!important;left:0!important;right:0!important;width:100%!important;overflow:hidden!important}

/* ═══════════════════════════════════════════════════════════════
 *  FULLY-NAVY CONVERSION (v2)
 *  Sections moved off light backgrounds: intro/About, pass_rate,
 *  reviews, pricing, location, faq. Override BOTH the section bg
 *  (done via --nav/--deep modifier in PHP) AND the inner panels/
 *  cards that paint their own light background, plus text colours.
 *  Scoped to --nav/--deep so original light styling is intact if
 *  a modifier is reverted.
 * ═══════════════════════════════════════════════════════════════ */

/* ---- headings + prose ---- */
.trdtc-sec--nav .trdtc-h2, .trdtc-sec--deep .trdtc-h2{color:rgba(255,255,255,.94)!important}
.trdtc-sec--nav .trdtc-sub, .trdtc-sec--deep .trdtc-sub{color:rgba(255,255,255,.55)!important}

/* ---- About "Read more" expand button (was light) ---- */
.trdtc-sec--nav .trdtc-expand, .trdtc-sec--deep .trdtc-expand{background:rgba(255,255,255,.06)!important;color:rgba(255,255,255,.75)!important;border-color:rgba(255,255,255,.12)!important}
.trdtc-sec--nav .trdtc-expand:hover, .trdtc-sec--deep .trdtc-expand:hover{background:rgba(255,255,255,.1)!important}

/* ---- FAQ on dark zones ---- */
.trdtc-sec--nav .trdtc-faq-q, .trdtc-sec--deep .trdtc-faq-q{color:#fff!important}
.trdtc-sec--nav .trdtc-faq-a, .trdtc-sec--deep .trdtc-faq-a{color:rgba(255,255,255,.65)!important}
.trdtc-sec--nav .trdtc-faq-item, .trdtc-sec--deep .trdtc-faq-item{border-bottom-color:rgba(255,255,255,.08)!important}
.trdtc-sec--nav .trdtc-faq-help, .trdtc-sec--deep .trdtc-faq-help{color:rgba(255,255,255,.5)!important}

/* ---- upsell card if shown on navy ---- */

/* ═══════════════════════════════════════════════════════════════
 *  MEMBER ACCESS NOTE (replaces pricing slider for logged-in members)
 * ═══════════════════════════════════════════════════════════════ */

/* About "Read more" chevron rotation + collapsible block spacing */
.trdtc-expand[data-expand="about"]{margin-top:18px!important}

/* ═══════════════════════════════════════════════════════════════
 *  MOBILE CLEAN HERO - stats become a swipe rail (≤699px)
 *  (hero map already hidden <900px; this matches the reviewed
 *   clean-hero design: tiny faint stats that scroll horizontally)
 * ═══════════════════════════════════════════════════════════════ */
@media(max-width:699px){
  /* Horizontal slider on mobile. Cards are 245px (matching the homepage review
     sliders) so the next card clearly peeks past the edge - that peek is the
     primary "swipe me" signal. cursor:grab gives desktop/trackpad parity with
     the homepage sliders; the peek does the work on touch. */
  .trdtc-hero-stats{display:flex!important;grid-template-columns:none!important;overflow-x:auto!important;gap:10px!important;margin-left:-20px!important;margin-right:-20px!important;padding-left:20px!important;padding-right:20px!important;scroll-snap-type:x mandatory!important;scroll-padding-left:20px!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;cursor:grab!important;overscroll-behavior-x:contain!important;box-shadow:none!important;border-radius:0!important;background:transparent!important;border:0!important}
  .trdtc-hero-stats::-webkit-scrollbar{height:0!important;display:none!important}
  .trdtc-hero-stat{min-width:245px!important;flex:0 0 auto!important;scroll-snap-align:start!important;padding:20px 20px!important;background:#16273a!important;border:1px solid rgba(255,255,255,.07)!important;border-radius:12px!important}
}

/* ════════════════════════════════════════════════════════════════
   ABOUT (zone 4) - fact-first, text-left / panel-right (v11)
   Inherits the section DNA: green icon block, .5px hairlines, 12.5px
   titles, ingetogen palette. Replaces the retired .trdtc-loc styling.
   ════════════════════════════════════════════════════════════════ */
.trdtc-about-grid{display:grid!important;grid-template-columns:1fr!important;gap:24px!important}
@media(min-width:860px){.trdtc-about-grid{grid-template-columns:1fr 360px!important;gap:40px!important;align-items:start!important}}
.trdtc-about-side{min-width:0!important}
.trdtc-about-text .trdtc-sec-head{margin-bottom:14px!important}
.trdtc-about-prose{font-size:13.5px!important;line-height:1.75!important;color:rgba(255,255,255,.66)!important;max-width:560px!important}
.trdtc-about-prose p{margin:0 0 13px!important}
.trdtc-about-prose p:last-child{margin-bottom:0!important}
.trdtc-about-prose b, .trdtc-about-prose strong{color:#fff!important;font-weight:600!important}
.trdtc-about-prose a{color:var(--c-green)!important;text-decoration:none!important}
.trdtc-about-prose a:hover{text-decoration:underline!important}
/* Expert / E-E-A-T byline - slim row under the about prose */
.trdtc-byline{display:flex!important;align-items:center!important;gap:13px!important;margin-top:22px!important;padding:14px 16px!important;background:rgba(255,255,255,.03)!important;border:.5px solid rgba(255,255,255,.07)!important;border-radius:12px!important;max-width:560px!important}
.trdtc-byline-av{flex:0 0 42px!important;width:42px!important;height:42px!important;border-radius:50%!important;background:rgba(3,201,136,.12)!important;border:.5px solid rgba(3,201,136,.25)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--c-green)!important;font-size:15px!important;font-weight:700!important;overflow:hidden!important}
.trdtc-byline-av img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;margin:0!important;padding:0!important;border:none!important;border-radius:50%!important}
.trdtc-byline-main{flex:1!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:3px!important}
.trdtc-byline-line{font-size:12.5px!important;color:rgba(255,255,255,.66)!important;line-height:1.5!important}
.trdtc-byline-line b{color:#fff!important;font-weight:600!important}
.trdtc-byline-bio{font-size:11.5px!important;color:rgba(255,255,255,.45)!important;line-height:1.5!important}
.trdtc-byline-link{font-size:11.5px!important;color:var(--c-green)!important;text-decoration:none!important;font-weight:600!important}
.trdtc-byline-link:hover{text-decoration:underline!important}

/* shared green icon block (=.trdtc-jnum DNA) */
.trdtc-about-ico{flex:0 0 30px!important;width:30px!important;height:30px!important;border-radius:8px!important;background:rgba(3,201,136,.1)!important;border:.5px solid rgba(3,201,136,.18)!important;display:flex!important;align-items:center!important;justify-content:center!important;color:var(--c-green)!important}
.trdtc-about-ico--sm{flex:0 0 26px!important;width:26px!important;height:26px!important;border-radius:6px!important}
.trdtc-about-ico svg{display:block!important}

/* right panel */
.trdtc-about-panel{background:rgba(255,255,255,.035)!important;border:.5px solid rgba(255,255,255,.06)!important;border-radius:14px!important;overflow:hidden!important}
.trdtc-about-map{aspect-ratio:16/10!important;position:relative!important;overflow:hidden!important;border-bottom:.5px solid rgba(255,255,255,.06)!important}
.trdtc-about-map iframe{width:100%!important;height:100%!important;border:none!important;display:block!important;filter:grayscale(.2) contrast(1.04)!important}
.trdtc-about-map--static{background:linear-gradient(135deg,#0d1b2a,#1b263b)!important;display:block!important}
.trdtc-about-map-grid{position:absolute!important;inset:0!important;opacity:.5!important;background-image:linear-gradient(rgba(3,201,136,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(3,201,136,.06) 1px,transparent 1px)!important;background-size:26px 26px!important}
/* 4.73.0 · The pin is a zero-size anchor at the exact centre of the box, so
   the dot sits on the coordinate whether the map underneath has loaded or
   not: MapLibre is centred on the same lat/lng, so no Marker is needed. */
.trdtc-about-map-pin{position:absolute!important;left:50%!important;top:50%!important;width:0!important;height:0!important;z-index:2!important;pointer-events:none!important}
.trdtc-about-map-dot{position:absolute!important;left:-6px!important;top:-6px!important;width:12px!important;height:12px!important;border-radius:50%!important;background:var(--c-green)!important;border:2.5px solid #0d1b2a!important;box-shadow:0 0 0 1px rgba(3,201,136,.5)!important}
.trdtc-about-map-lbl{position:absolute!important;top:12px!important;left:50%!important;transform:translateX(-50%)!important;white-space:nowrap!important;font-size:10px!important;line-height:1!important;color:rgba(255,255,255,.55)!important;letter-spacing:-.01em!important}
/* The real map. Painted into the canvas layer between grid and pin; fades
   in once the tiles are there, and the grid stays as the fallback beneath. */
.trdtc-about-map-canvas{position:absolute!important;inset:0!important;z-index:1!important;opacity:0!important;transition:opacity .45s var(--ease)!important}
.trdtc-about-map.is-live .trdtc-about-map-canvas{opacity:1!important}
.trdtc-about-map.is-live .trdtc-about-map-lbl{top:11px!important;padding:4px 8px!important;border-radius:6px!important;background:rgba(13,27,42,.72)!important;border:.5px solid rgba(255,255,255,.1)!important;color:rgba(255,255,255,.85)!important;font-weight:600!important;-webkit-backdrop-filter:blur(6px)!important;backdrop-filter:blur(6px)!important}
.trdtc-about-map .maplibregl-canvas-container,.trdtc-about-map .maplibregl-canvas{width:100%!important;height:100%!important}
.trdtc-about-map .maplibregl-canvas{outline:none!important}
/* Attribution: the CARTO and OpenStreetMap licences require it, so it stays.
   Same glass dot the share-routes map uses: open on load, collapsed after a
   moment, always reachable. Glyph inverted so it reads on navy. */
.trdtc-about-map .maplibregl-ctrl-bottom-right{z-index:3!important}
.trdtc-about-map .maplibregl-ctrl-attrib.maplibregl-compact{background:rgba(22,39,58,.55)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:999px!important;min-height:22px!important;margin:0 8px 8px 0!important;box-shadow:none!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}
.trdtc-about-map .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show) .maplibregl-ctrl-attrib-inner{display:none!important}
.trdtc-about-map .maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:11px!important;padding:2px 24px 2px 9px!important}
.trdtc-about-map .maplibregl-ctrl-attrib-button{width:22px!important;height:22px!important;background-color:transparent!important;opacity:.6!important;filter:invert(1)!important}
.trdtc-about-map .maplibregl-ctrl-attrib-button:hover{opacity:1!important}
.trdtc-about-map .maplibregl-ctrl-attrib-inner,.trdtc-about-map .maplibregl-ctrl-attrib-inner a{font-size:10px!important;line-height:1.5!important;color:rgba(255,255,255,.55)!important;font-family:inherit!important}
.trdtc-about-rows{padding:6px 0!important}
.trdtc-about-row{display:flex!important;gap:12px!important;align-items:flex-start!important;padding:13px 18px!important;border-top:.5px solid rgba(255,255,255,.05)!important}
.trdtc-about-row:first-child{border-top:none!important}
.trdtc-about-info{flex:1!important;min-width:0!important;display:flex!important;flex-direction:column!important}
.trdtc-about-k{font-size:9px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:rgba(255,255,255,.4)!important;margin-bottom:3px!important}
.trdtc-about-v{font-size:12.5px!important;color:rgba(255,255,255,.86)!important;line-height:1.45!important}
.trdtc-about-v a{color:var(--c-green)!important;text-decoration:none!important}
.trdtc-about-v a:hover{text-decoration:underline!important}
.trdtc-about-sub{font-size:10.5px!important;color:rgba(255,255,255,.42)!important;margin-top:3px!important;line-height:1.45!important}
.trdtc-about-foot{padding:14px 18px!important;border-top:.5px solid rgba(255,255,255,.06)!important;background:rgba(255,255,255,.02)!important}
.trdtc-about-dir{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:100%!important;padding:11px!important;border-radius:9px!important;background:var(--c-green)!important;color:var(--c-ink)!important;font-size:13px!important;font-weight:700!important;text-decoration:none!important;transition:background .15s var(--ease)!important}
.trdtc-about-dir:hover{background:var(--c-green-d)!important}

/* theory footnote row */
.trdtc-about-theory{display:flex!important;align-items:center!important;gap:11px!important;margin-top:14px!important;padding:13px 15px!important;border-radius:10px!important;background:rgba(255,255,255,.03)!important;border:.5px solid rgba(255,255,255,.07)!important;text-decoration:none!important;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)!important}
a.trdtc-about-theory:hover{border-color:rgba(3,201,136,.2)!important;background:rgba(3,201,136,.04)!important}
.trdtc-about-theory-main{flex:1!important;min-width:0!important;display:flex!important;flex-direction:column!important}
.trdtc-about-theory-t{font-size:12.5px!important;font-weight:600!important;color:rgba(255,255,255,.92)!important}
.trdtc-about-theory-arr{flex:0 0 auto!important;color:rgba(255,255,255,.4)!important;transition:transform var(--dur) var(--ease)!important}
a.trdtc-about-theory:hover .trdtc-about-theory-arr{transform:translateX(3px)!important;color:var(--c-green)!important}
.trdtc-about-theory-arr svg{display:block!important}

/* ════════════════════════════════════════════════════════════════
   NEARBY (zone 4) - comparison table (v11)
   This centre pinned + highlighted; neighbours below by distance.
   ════════════════════════════════════════════════════════════════ */
.trdtc-cmp-intro{font-size:13.5px!important;line-height:1.75!important;color:rgba(255,255,255,.66)!important;max-width:680px!important;margin:0 0 20px!important}
.trdtc-cmp-intro p{margin:0 0 11px!important}
.trdtc-cmp-intro p:last-child{margin-bottom:0!important}
.trdtc-cmp-intro b, .trdtc-cmp-intro strong{color:#fff!important;font-weight:600!important}
.trdtc-cmp-intro a{color:var(--c-green)!important;text-decoration:none!important}
.trdtc-cmp-intro a:hover{text-decoration:underline!important}
.trdtc-cmp{background:rgba(255,255,255,.035)!important;border:.5px solid rgba(255,255,255,.06)!important;border-radius:14px!important;overflow:hidden!important}
.trdtc-cmp-table{width:100%!important;border-collapse:collapse!important}
.trdtc-cmp-table th{font-size:9px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:rgba(255,255,255,.4)!important;text-align:left!important;padding:13px 16px!important;background:rgba(255,255,255,.03)!important;border-bottom:.5px solid rgba(255,255,255,.1)!important}
.trdtc-cmp-table th:not(:first-child){text-align:center!important}
.trdtc-cmp-table td{padding:14px 16px!important;border-bottom:.5px solid rgba(255,255,255,.06)!important;font-size:13px!important;color:rgba(255,255,255,.78)!important}
.trdtc-cmp-table td:not(:first-child){text-align:center!important;font-feature-settings:'tnum' 1!important;white-space:nowrap!important}
.trdtc-cmp-table tr:last-child td{border-bottom:none!important}
.trdtc-cmp-cur td{background:rgba(3,201,136,.06)!important}
.trdtc-cmp-cur td:first-child{font-weight:700!important;color:#fff!important}
.trdtc-cmp-here{font-size:8.5px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.03em!important;color:rgba(3,201,136,.9)!important;background:rgba(3,201,136,.12)!important;border-radius:4px!important;padding:2px 6px!important;margin-left:7px!important;white-space:nowrap!important}
.trdtc-cmp-name a{color:var(--c-green)!important;text-decoration:none!important;font-weight:600!important}
.trdtc-cmp-name a:hover{text-decoration:underline!important}
.trdtc-cmp-big{font-size:14px!important;font-weight:700!important;color:rgba(255,255,255,.92)!important}
/* 4.73.0 · fifth column (filmed routes). Below 700px the row is four cells
   wide at most, so routes steps out and the padding tightens. */
@media(max-width:699px){
.trdtc-cmp-col-routes{display:none!important}
.trdtc-cmp-table th,.trdtc-cmp-table td{padding-left:12px!important;padding-right:12px!important}
/* 4.76.3 · the three number columns take exactly their content (nowrap above
   + width:1% here) and the name column absorbs the rest, so "20 wk" stays on
   one line and a name only wraps below ~340px. The "You're here" chip drops
   under the name instead of half-wrapping beside it. */
.trdtc-cmp-table th:not(:first-child),.trdtc-cmp-table td:not(:first-child){width:1%!important}
.trdtc-cmp-here{display:table!important;margin:6px 0 0!important}
/* The sub is restated word for word by the intro's first sentence; on a
   phone that is two extra lines between the H2 and the same sentence. */
#trdtc-nearby .trdtc-sub--lead{display:none!important}
}

/* browse-all link (=.trdtc-man-cta DNA) */
.trdtc-browse{display:inline-flex!important;align-items:center!important;gap:8px!important;margin-top:20px!important;padding:12px 18px!important;border-radius:10px!important;background:rgba(255,255,255,.06)!important;color:rgba(255,255,255,.78)!important;border:.5px solid rgba(255,255,255,.1)!important;font-size:12.5px!important;font-weight:600!important;text-decoration:none!important;transition:background .15s,border-color .15s,color .15s!important}
.trdtc-browse:hover{background:rgba(3,201,136,.1)!important;border-color:rgba(3,201,136,.25)!important;color:#fff!important}
.trdtc-browse svg{color:var(--c-green)!important;flex-shrink:0!important}

/* ════════════════════════════════════════════════════════════════
   PRICING (zone 5) - moved to the shared component
   (assets/css/pricing.css, rendered by includes/pricing.php).
   ════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════
   FAQ (zone 5) - city-specific accordion, DTC dark (v11)
   ════════════════════════════════════════════════════════════════ */
.trdtc-faq-help{font-size:12.5px!important;line-height:1.6!important;color:rgba(255,255,255,.5)!important;margin-top:12px!important}
.trdtc-faq-help a{color:var(--c-green)!important;text-decoration:none!important}
.trdtc-faq-help a:hover{text-decoration:underline!important}
.trdtc-faq-list{display:flex!important;flex-direction:column!important}
.trdtc-faq-item{border-bottom:1px solid rgba(255,255,255,.08)!important}
.trdtc-faq-item:first-child{border-top:1px solid rgba(255,255,255,.08)!important}
.trdtc-faq-q{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;width:100%!important;text-align:left!important;background:none!important;border:none!important;cursor:pointer!important;padding:18px 0!important;font-family:inherit!important}
.trdtc-faq-q-text{font-size:14.5px!important;font-weight:600!important;color:#fff!important;line-height:1.4!important}
.trdtc-faq-chevron{flex-shrink:0!important;color:rgba(255,255,255,.4)!important;transition:transform .25s var(--ease)!important}
.trdtc-faq-chevron svg{display:block!important}
.trdtc-faq-item.is-open .trdtc-faq-chevron{transform:rotate(180deg)!important}
.trdtc-faq-a{max-height:0!important;overflow:hidden!important;opacity:0!important;transition:max-height .3s var(--ease),opacity .25s var(--ease),padding .3s var(--ease)!important}
.trdtc-faq-item.is-open .trdtc-faq-a{max-height:500px!important;opacity:1!important;padding-bottom:18px!important}
.trdtc-faq-a-inner{font-size:13.5px!important;line-height:1.7!important;color:rgba(255,255,255,.6)!important}
.trdtc-faq-a-inner p{margin:0 0 10px!important}
.trdtc-faq-a-inner p:last-child{margin-bottom:0!important}
.trdtc-faq-a-inner b, .trdtc-faq-a-inner strong{color:#fff!important;font-weight:600!important}
.trdtc-faq-a-inner a{color:var(--c-green)!important;text-decoration:none!important}

/* ════════════════════════════════════════════════════════════════
   ZONE 5 CENTERED CONVERSION BLOCK (v11.1)
   Pricing + FAQ centre their heading, accent line and content, and
   the pricing grid is constrained + centred (homepage parity). Scoped
   to .trdtc-sec--center so the rest of the page stays left-aligned.
   ════════════════════════════════════════════════════════════════ */
.trdtc-sec--center .trdtc-sec-head{text-align:center!important;display:flex!important;flex-direction:column!important;align-items:center!important}
.trdtc-sec--center .trdtc-accent-line{margin-left:auto!important;margin-right:auto!important}
.trdtc-sec--center .trdtc-sub--lead{max-width:560px!important;margin-left:auto!important;margin-right:auto!important}
/* FAQ: single centred column (was a 2-col layout) */
.trdtc-sec--center .trdtc-faq-list{max-width:760px!important;margin-left:auto!important;margin-right:auto!important}
.trdtc-sec--center .trdtc-faq-help{text-align:center!important}

/* v3.8.0 - stadnaam off-white i.p.v. groen (twee regels behouden, stad op regel 2) */
.trdtc-hero-city{color:#f8f9fa !important}

/* ════════════════════════════════════════════════════════════════
   v3.8.3 - DTC hero: WCAG-kleuren gelijk aan de hubs + ruimte op hoge schermen
   ════════════════════════════════════════════════════════════════ */
/* eyebrow-icon groen → neutraal; tekstkleuren naar de schaal */
.trdtc-hero-updated-ico{color:rgba(255,255,255,.55) !important;opacity:1 !important}
.trdtc-hero-updated{color:rgba(255,255,255,.55) !important}
.trdtc-hero-bread a,.trdtc-hero-bread-back{color:rgba(255,255,255,.55) !important}
.trdtc-hero-bread-cur{color:rgba(255,255,255,.8) !important}
.trdtc-hero-bread-back-ico{color:rgba(255,255,255,.55) !important}
.trdtc-hero-intro{color:rgba(255,255,255,.62) !important}
/* Log in gelijk aan de hubs (#fff i.p.v. .5) */
.trdtc-hero-login{color:#fff !important;font-weight:600 !important}
.trdtc-hero-login:hover{color:var(--c-green) !important}
/* trust */
.trdtc-hero-tp{border-top-color:rgba(255,255,255,.10) !important}
.trdtc-hero-tp-label,.trdtc-hero-tp-name{color:rgba(255,255,255,.8) !important}
.trdtc-hero-tp-count{color:rgba(255,255,255,.55) !important}
/* verticale ruimte op hoge schermen: inhoud top-alignen + hero-hoogte door de
   INHOUD laten bepalen i.p.v. de viewport. Zo rekt de rechterkolom (map) precies
   mee met de tekst: map-bovenkant bij de H1, Route 1-kaart bij de Trustpilot-regel.
   Voorheen gaf min-height:80vh op hoge schermen een veel te hoge kolom, waardoor de
   map meerekte en de Route 1-kaart helemaal naar onderen werd geduwd. */
.trdtc-hero-left{justify-content:flex-start !important}
@media(min-width:900px){.trdtc-hero-grid{min-height:0 !important}}

/* v3.8.5 - stat-cellen centreren: de volle-breedte balk (die de seam verbergt)
   oogde links-geklonterd/uitgerekt doordat de inhoud links stond. Gecentreerd
   staat elk getal midden tussen zijn hairline-dividers → gebalanceerde metrics-balk. */
.trdtc-hero-stat{text-align:center !important}

/* v3.8.6 - intro gelijk aan de hubs voor site-brede unity: zelfde measure (540px) én
   grootte (16.5px / lh 1.65). Linkerkolom iets breder (1fr 1.1fr) zodat de volle 540px
   past; de map schuift mee naar ~610px (was ~710px) maar blijft het dominante element. */
@media(min-width:900px){.trdtc-hero-grid{grid-template-columns:1fr 1.1fr !important}}
.trdtc-hero-intro{font-size:16.5px !important;line-height:1.65 !important;max-width:540px !important}

/* ── Schools byline ──────────────────────────────────────────────────
 * The driving schools that contributed local detail for this centre,
 * in exactly the same shape as the byline above it. Deliberately one
 * shade softer: the filmed route is our own work and the local detail
 * is an addition to it, and that order should be visible.
 *
 * Names only, no logos. Driving school logos arrive in every ratio,
 * often on a white background, and a row of them on a dark page reads
 * as advertising rather than as a credit.
 *
 * The links carry rel="sponsored nofollow" (set in the renderer). There
 * is commission involved, so the relationship is commercial and that is
 * no longer a judgement call.
 * ─────────────────────────────────────────────────────────────────── */
.trdtc-byline--schools{margin-top:10px!important;background:rgba(255,255,255,.022)!important;align-items:flex-start!important}
.trdtc-byline--schools .trdtc-byline-av{margin-top:2px!important}
.trdtc-byline-av--icon{color:rgba(3,201,136,.85)!important;background:rgba(3,201,136,.09)!important;border-color:rgba(3,201,136,.2)!important}
.trdtc-byline-school{color:rgba(255,255,255,.82)!important;text-decoration:none!important;border-bottom:1px solid rgba(255,255,255,.22)!important;padding-bottom:1px!important;font-weight:600!important;transition:color .15s,border-color .15s!important}
.trdtc-byline-school:hover{color:#fff!important;border-bottom-color:rgba(255,255,255,.5)!important}

/* ════════════════════════════════════════════════════════════════════
 *  SCROLLBARS
 *
 *  The house declaration, the same one browse-modal.css and workwithus
 *  use: thin, an almost invisible thumb, no track.
 *
 *  The ::-webkit- block is an addition. scrollbar-color only arrived in
 *  Chrome 121 and Safari still ignores it, so on anything older the house
 *  rule does nothing and the browser default shows through, which is the
 *  pale bar on a white track you see beside a junction photo.
 * ════════════════════════════════════════════════════════════════════ */
.trdtc-modal-card,
.trdtc-gpx-body,
.trdtc-detail-scroll,
.trdtc-modal--sheet .trdtc-modal-card{
	scrollbar-width:thin!important;
	scrollbar-color:rgba(255,255,255,.1) transparent!important;
	overscroll-behavior:contain!important;
	-webkit-overflow-scrolling:touch!important;
}
.trdtc-modal-card::-webkit-scrollbar,
.trdtc-gpx-body::-webkit-scrollbar,
.trdtc-detail-scroll::-webkit-scrollbar{width:6px!important;height:6px!important}
.trdtc-modal-card::-webkit-scrollbar-track,
.trdtc-gpx-body::-webkit-scrollbar-track,
.trdtc-detail-scroll::-webkit-scrollbar-track{background:transparent!important}
.trdtc-modal-card::-webkit-scrollbar-thumb,
.trdtc-gpx-body::-webkit-scrollbar-thumb,
.trdtc-detail-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12)!important;
	border-radius:999px!important}
.trdtc-modal-card::-webkit-scrollbar-thumb:hover,
.trdtc-gpx-body::-webkit-scrollbar-thumb:hover,
.trdtc-detail-scroll::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)!important}

/* ── The photo in the details view ───────────────────────────────
 *  Full width, less height. The image already carries object-fit:cover,
 *  so shortening the box crops into the middle rather than squashing it:
 *  the same shot, closer in.
 *
 *  ONE NUMBER TO TUNE: the aspect-ratio below. 16/9 is the old height,
 *  2.4/1 is what it is now. Higher first number, shorter band.
 * ──────────────────────────────────────────────────────────────── */
.trdtc-modal-detail .trdtc-detail-media{
	aspect-ratio:2.4/1!important;
	max-height:min(42vh, 380px)!important;
	height:auto!important;
	flex:none!important;
}
@media(max-width:699px){
	/* A cinematic band on a phone is a letterbox strip, so it stays 16/9. */
	.trdtc-modal-detail .trdtc-detail-media{aspect-ratio:16/9!important;
		max-height:34vh!important}
}

/* ── SPRINGDOEL ───────────────────────────────────────────────────────
   Een ankersprong zet het doel tegen de bovenrand van de viewport en houdt
   geen rekening met de plakkende header eroverheen. Zonder deze regel
   verdwijnt de kop van dit blok erachter en begin je een stuk te laag.

   Dezelfde waarde als .tsmt-learn, .trwwu-get, .traff-earn en de rest:
   headerhoogte plus 24px lucht. */
#trdtc-routes{scroll-margin-top:calc(var(--hdr-total-h,72px) + 24px) !important}

/* ═══════════════════════════════════════════════════════════════════════
   4.64.0 · CONTINUE WITH ROUTE N - als rij-item, niet als tegel
   Markup: renderer hero() via strip 'after'; vulling: frontend.js cwShow().

   Wat Netflix en HBO in een rij doen: het beeld is het item, de tekst is
   bijschrift. Dus: een 16:9-thumbnail van de route (120×68, op mobiel 96×54)
 - hetzelfde frame als op de kaart - met een klein icoon erín, en drie
   regels ernaast die nergens groter zijn dan de telling erboven: 12 / 15 /
   12. Geen kader: het beeld heeft een schaduw en een 1px-lijn op 8% wit, dat
   is de hele omlijsting. In rust stil (beeld op 92%, icoon op 92%); bij
   hover licht het beeld op, wordt 3% groter, en de naam groen - dezelfde
   curve als .trdtc-route-media.

   Vervangt de tegel van 4.62/4.63 (kader, schijf van 40px, titel op 17px):
   alle drie maakten hem groter dan de rest, en de vaste breedte kapte de
   naam af. Nu geen vaste breedte, en de naam mag twee regels.

   Verschijnen: server-side gevuld met .is-in vanaf de eerste paint (account,
   4.63); alleen na het eerste kijken in een verse sessie vult JS hem en
   fade-t hij in. Reduced-motion: geen fade, geen beweging.
   ═══════════════════════════════════════════════════════════════════════ */
.trdtc-cw{display:flex!important;align-items:center!important;gap:14px!important;margin:20px 0 0!important;padding:0!important;max-width:100%!important;background:none!important;border:0!important;border-radius:0!important;color:#fff!important;text-decoration:none!important;cursor:pointer!important}
.trdtc-cw[hidden]{display:none!important}
.trdtc-cw:not(.is-in){opacity:0!important}
.trdtc-cw.is-in{opacity:1!important;transition:opacity .28s ease!important}
.trdtc-cw:focus-visible{outline:2px solid var(--c-green)!important;outline-offset:4px!important;border-radius:8px!important}
.trdtc-cw-thumb{position:relative!important;flex:none!important;width:120px!important;height:68px!important;border-radius:8px!important;overflow:hidden!important;background:#132437!important;box-shadow:0 2px 8px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.08)!important;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s cubic-bezier(.22,1,.36,1)!important}
.trdtc-cw-img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;filter:brightness(.92)!important;transition:filter .18s cubic-bezier(.22,1,.36,1)!important}
.trdtc-cw-img[hidden]{display:none!important}
.trdtc-cw-thumb::after{content:''!important;position:absolute!important;inset:0!important;background:linear-gradient(to top,rgba(12,25,39,.45),rgba(12,25,39,0) 60%)!important;pointer-events:none!important}
.trdtc-cw-play{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;z-index:1!important;width:26px!important;height:26px!important;border-radius:50%!important;background:var(--c-green)!important;color:var(--c-ink,#0d1b2a)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;opacity:.92!important;box-shadow:0 2px 8px rgba(0,0,0,.35)!important;transition:opacity .18s!important}
.trdtc-cw-play svg{margin-left:1px!important}
.trdtc-cw-txt{min-width:0!important;display:flex!important;flex-direction:column!important;gap:3px!important}
.trdtc-cw-k{font-size:var(--t-2,12px)!important;font-weight:600!important;color:rgba(255,255,255,.55)!important;line-height:1.3!important}
.trdtc-cw-t{font-size:var(--t-5,15px)!important;font-weight:700!important;color:#fff!important;line-height:1.25!important;letter-spacing:-.01em!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;transition:color .18s!important}
.trdtc-cw-d{font-size:var(--t-2,12px)!important;color:rgba(255,255,255,.5)!important;line-height:1.3!important}
.trdtc-cw:hover .trdtc-cw-thumb{transform:scale(1.03)!important;box-shadow:0 6px 18px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.14)!important}
.trdtc-cw:hover .trdtc-cw-img{filter:brightness(1.08)!important}
.trdtc-cw:hover .trdtc-cw-play{opacity:1!important}
.trdtc-cw:hover .trdtc-cw-t{color:var(--c-green)!important}
@media (max-width:719px){
	.trdtc-cw{gap:12px!important;margin-top:16px!important}
	.trdtc-cw-thumb{width:96px!important;height:54px!important}
}
@media (prefers-reduced-motion:reduce){
	.trdtc-cw.is-in,.trdtc-cw-thumb,.trdtc-cw-img,.trdtc-cw-play,.trdtc-cw-t{transition:none!important}
	.trdtc-cw:hover .trdtc-cw-thumb{transform:none!important}
}

/* De kaart die de rij bedoelt: groene rand en de badge "Last opened" naast 4K,
   in de maat en het glas van de 4K-badge, zodat je hem in het grid terugvindt. */
.trdtc-route.is-last .trdtc-route-media{box-shadow:inset 0 0 0 2px var(--c-green)!important}
.trdtc-route-last{box-sizing:border-box!important;height:20px!important;display:inline-flex!important;align-items:center!important;font-size:9px!important;font-weight:700!important;color:var(--c-ink,#0d1b2a)!important;padding:0 7px!important;border-radius:5px!important;background:var(--c-green)!important;letter-spacing:.02em!important;line-height:1!important}
.trdtc-route-last[hidden]{display:none!important}

/* De ledenkop van de routes: één regel in plaats van accentlijn + H2 + twee
   alinea's. Zelfde .trdtc-h2, alleen zonder de marge eronder en zonder lead. */
.trdtc-sec-head--row{margin-bottom:14px!important}
.trdtc-sec-head--row .trdtc-h2--row{margin:0!important}

/* ═══════════════════════════════════════════════════════════════════════
   4.66.0 · HOVER-PREVIEW OP VERGRENDELDE ROUTES - de blur stapt even opzij

   In rust blijft alles zoals het was: gewaasd, slot, chipje. Zodra de clip
   speelt (.is-previewing op de media) gaat de blur van de thumb af en de
   schaal terug naar 1, in dezelfde 0.6s waarin de clip-laag infade-t. Bij
   verlaten (mouseleave → stopPreview) verdwijnt .is-previewing en is de blur
   terug. Het slot (z-index 3) en het chipje (3) staan boven de clip-laag (0)
   en blijven dus zichtbaar op het scherpe beeld.

   Waarom scherp en niet "een beetje blur": een bewegend 4K-beeld met 3px blur
   leest niet als "vergrendeld" maar als slechte videokwaliteit - het tegen-
   deel van wat een kaart met "4K" erop wil zeggen. De boodschap "vergrendeld"
   zit in het slot, het chipje en de groene knop eronder; die blijven.
   ═══════════════════════════════════════════════════════════════════════ */
/* 4.104.0 · De hover komt nu uit de eindversie, met het navigatievenster linksboven en de badge rechtsboven.
   Tijdens het spelen wijken titel, labels en het verloop, anders liggen ze daar overheen. Het slot en het
   chipje blijven staan. */
.trdtc-route-head,.trdtc-route-badges{transition:opacity .35s ease!important}
.trdtc-route-media.is-previewing .trdtc-route-head,.trdtc-route-media.is-previewing .trdtc-route-badges,.trdtc-route-media.is-previewing .trdtc-route-scrim{opacity:0!important}
.trdtc-route.is-locked .trdtc-route-thumb{transition:filter .6s ease,transform .6s ease!important}
.trdtc-route.is-locked .trdtc-route-media.is-previewing .trdtc-route-thumb{filter:none!important;transform:scale(1)!important}
.trdtc-detail-media.is-locked .trdtc-detail-thumb{transition:filter .6s ease,transform .6s ease!important}
.trdtc-detail-media.is-locked.is-previewing .trdtc-detail-thumb{filter:none!important;transform:scale(1)!important}
@media (prefers-reduced-motion:reduce){
	.trdtc-route.is-locked .trdtc-route-thumb,.trdtc-detail-media.is-locked .trdtc-detail-thumb{transition:none!important}
}
/* 4.88.0 · Het Trustpilot-slot in de andere standen is een div met de
   gedeelde .tr-tp erin, geen link. Zelfde bovenlijn en ruimte als de eigen
   regel; de maat komt uit assets/css/trustpilot.css. */
.trdtc-hero-tp--slot{cursor:default!important}
.trdtc-hero-tp--slot .tr-tp--box{max-width:100%!important}
/* ═══════════════════════════════════════════════════════════════════════
   4.105.0 · Eindscherm van de gratis preview (route 1): de knop "Get access" klikbaar
   De video eindigt op een navy kaart (pipeline endcard.py, 1920x1080: kaart 860x468 op 530,300, knop
   232x66 op 844,606). Twee lagen over de speler, allebei in de modal-card (16:9, net zo groot als de video):
   .trdtc-endcta     doorzichtige link over de kaart in de laatste seconden (JS: .is-endcard op de card);
                     hover legt een groene ring om de knop in beeld.
   .trdtc-endscreen  na het einde dezelfde kaart in HTML (JS: .is-ended), boven het zwarte eindbeeld van
                     Gumlet, met een echte knop en "Watch again". Alles in --u = 1/1920 van de breedte, zodat
                     hij precies op het laatste videobeeld valt. Kleuren letterlijk: de modal hangt aan <body>,
                     buiten .trdtc, dus zonder de --c-variabelen.
   ═══════════════════════════════════════════════════════════════════════ */
/* 4.105.1 · Het lettertype van de video (Inter 4.0, uit de pipeline), alleen voor dit eindscherm. De site laadt zelf geen Inter
   (frame.css: 'Inter Fallback' is Arial), en dan zou de wissel van video naar HTML in de letters te zien zijn.
   Subset Latin, 25 kB per gewicht; frontend.js laadt ze vooraf zodra de speler klaarstaat. OFL: ../fonts/OFL.txt. */
@font-face{font-family:'TR Endcard';src:url(../fonts/inter-endcard-500.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'TR Endcard';src:url(../fonts/inter-endcard-600.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'TR Endcard';src:url(../fonts/inter-endcard-700.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
.trdtc-modal--video .trdtc-modal-card{container-type:inline-size}
.trdtc-endcta[hidden],.trdtc-endscreen[hidden]{display:none!important}
.trdtc-endcta{position:absolute!important;left:27.604%!important;top:27.778%!important;width:44.792%!important;height:43.333%!important;z-index:6!important;display:block!important;border-radius:calc(22 * 100cqw / 1920)!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent!important;outline:none!important;background:transparent!important}
.trdtc-endcta-ring{position:absolute!important;left:36.512%!important;top:65.385%!important;width:26.977%!important;height:14.103%!important;border-radius:calc(12 * 100cqw / 1920)!important;box-shadow:0 0 0 0 rgba(3,201,136,0)!important;background:rgba(255,255,255,0)!important;transition:box-shadow .18s ease,background .18s ease!important;pointer-events:none!important}
.trdtc-endcta:hover .trdtc-endcta-ring,.trdtc-endcta:focus-visible .trdtc-endcta-ring{background:rgba(255,255,255,.14)!important;box-shadow:0 0 0 calc(4 * 100cqw / 1920) rgba(3,201,136,.45),0 calc(10 * 100cqw / 1920) calc(36 * 100cqw / 1920) rgba(3,201,136,.35)!important}
.trdtc-endscreen{--u:calc(100cqw / 1920);position:absolute!important;inset:0!important;z-index:8!important;display:block!important;overflow:hidden!important;background:#0c1927!important;font-family:'TR Endcard','Inter','Inter Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important;-webkit-font-smoothing:antialiased!important;color:#fff!important;text-align:center!important;line-height:1!important;opacity:0!important;transition:opacity .14s linear!important}
.is-ended>.trdtc-endscreen{opacity:1!important}
/* achtergrond zoals in de video: weg vaag en donker, 58% navy erover, donkere hoeken. De video neemt het laatste beeld
   van de route (0,6), hier de thumbnail; die is meestal lichter, dus 0,52. */
.trdtc-es-bg{position:absolute!important;inset:calc(-60 * var(--u))!important;background-position:center!important;background-size:cover!important;filter:blur(calc(18 * var(--u))) brightness(.52)!important;transform:translateZ(0)!important}
.trdtc-es-shade{position:absolute!important;inset:0!important;background:radial-gradient(ellipse farthest-corner at 50% 50%,rgba(0,0,0,0) 0%,rgba(0,0,0,.022) 25%,rgba(0,0,0,.088) 50%,rgba(0,0,0,.175) 70.7%,rgba(0,0,0,.253) 85%,rgba(0,0,0,.35) 100%),rgba(12,25,39,.58)!important}
.trdtc-es-logo{position:absolute!important;left:50%!important;top:calc(146 * var(--u))!important;height:calc(50 * var(--u))!important;width:auto!important;max-width:none!important;transform:translateX(-50%)!important;margin:0!important;display:block!important}
.trdtc-es-card{position:absolute!important;display:block!important;text-decoration:none!important;color:#fff!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent!important;transition:box-shadow .18s ease!important;left:calc(530 * var(--u))!important;top:calc(300 * var(--u))!important;width:calc(860 * var(--u))!important;height:calc(468 * var(--u))!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border-radius:calc(22 * var(--u))!important;border:0!important;background:linear-gradient(180deg,rgba(255,255,255,.063) 0%,rgba(255,255,255,0) 45%),rgba(12,25,39,.62)!important;box-shadow:inset 0 0 0 max(1px,calc(1.5 * var(--u))) rgba(255,255,255,.118),0 calc(14 * var(--u)) calc(52 * var(--u)) rgba(12,25,39,.31)!important}
.trdtc-es-l1,.trdtc-es-town,.trdtc-es-l3{position:absolute!important;display:block!important;left:0!important;right:0!important;margin:0!important;padding:0!important;line-height:1!important;white-space:nowrap!important;letter-spacing:0!important}
.trdtc-es-l1{top:calc(49.46 * var(--u))!important;font-size:calc(40 * var(--u))!important;font-weight:600!important;color:#fff!important}
.trdtc-es-town{top:calc(112.19 * var(--u))!important;font-size:calc(104 * var(--u))!important;font-weight:700!important;color:#03c988!important}
.trdtc-es-town span{display:inline-block!important;font-size:inherit!important}
.trdtc-es-l3{top:calc(243.82 * var(--u))!important;font-size:calc(28 * var(--u))!important;font-weight:500!important;color:rgba(255,255,255,.7)!important}
.trdtc-es-btn{position:absolute!important;left:50%!important;top:calc(306 * var(--u))!important;height:calc(66 * var(--u))!important;transform:translateX(-50%)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;padding:0 calc(36 * var(--u))!important;border-radius:calc(12 * var(--u))!important;background:#03c988!important;color:#0c1927!important;font-size:calc(30 * var(--u))!important;font-weight:600!important;line-height:1!important;white-space:nowrap!important;text-decoration:none!important;transition:background .18s ease,box-shadow .18s ease,transform .18s ease!important}
.trdtc-es-btn span{position:relative!important;top:calc(1 * var(--u))!important}
.trdtc-es-card:hover .trdtc-es-btn,.trdtc-es-card:focus-visible .trdtc-es-btn{background:#02a873!important;box-shadow:0 calc(8 * var(--u)) calc(28 * var(--u)) rgba(3,201,136,.35)!important;transform:translateX(-50%) translateY(calc(-2 * var(--u)))!important;color:#0c1927!important}
.trdtc-es-card:focus-visible,.trdtc-es-replay:focus-visible{outline:2px solid #fff!important;outline-offset:3px!important}
.trdtc-es-card:hover{box-shadow:inset 0 0 0 max(1px,calc(1.5 * var(--u))) rgba(255,255,255,.22),0 calc(14 * var(--u)) calc(52 * var(--u)) rgba(12,25,39,.31)!important}
.trdtc-es-replay{position:absolute!important;left:50%!important;top:calc(800 * var(--u))!important;transform:translateX(-50%)!important;display:inline-flex!important;align-items:center!important;gap:calc(10 * var(--u))!important;margin:0!important;padding:calc(12 * var(--u)) calc(22 * var(--u))!important;min-height:28px!important;border-radius:999px!important;border:max(1px,calc(1.5 * var(--u))) solid rgba(255,255,255,.28)!important;background:rgba(255,255,255,.06)!important;color:rgba(255,255,255,.85)!important;font-family:inherit!important;font-size:max(11px,calc(24 * var(--u)))!important;font-weight:500!important;line-height:1!important;cursor:pointer!important;opacity:0!important;transition:opacity .3s ease .25s,background .18s ease,border-color .18s ease!important}
.trdtc-es-replay svg{width:max(12px,calc(26 * var(--u)))!important;height:auto!important;flex:none!important}
.is-ended>.trdtc-endscreen .trdtc-es-replay{opacity:1!important}
.trdtc-es-replay:hover{background:rgba(255,255,255,.14)!important;border-color:rgba(255,255,255,.5)!important;color:#fff!important}
@media (prefers-reduced-motion:reduce){.trdtc-endscreen,.trdtc-es-btn,.trdtc-es-replay,.trdtc-endcta-ring{transition:none!important}}

/* ════════════════════════════════════════════════════════════════
   4.121.0 · THE WAITING LIST - a centre that is not live yet
   (includes/class-waitlist.php). Same hero shell, grid, status row,
   intro and rating line as a live centre; only the CTA (an email
   field) and the visual (a map in the box of the route drawing)
   differ. px only (WORKSPACE trap 17). Approved design: round 3.
   ════════════════════════════════════════════════════════════════ */
.trdtc-wl-sr{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.trdtc-wl-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

/* the form sits where a live page has its button: 24 + 24 under the intro */
.trdtc-wl-form{display:flex!important;align-items:center!important;gap:6px!important;max-width:460px!important;margin:24px 0 0!important;padding:5px!important;border-radius:12px!important;background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.14)!important;transition:border-color .15s var(--ease)!important}
.trdtc-wl-form:focus-within{border-color:rgba(3,201,136,.6)!important}
.trdtc-wl-form input[type="email"],.trdtc-wl-form input[type="email"]:focus{flex:1 1 auto!important;min-width:0!important;width:auto!important;height:46px!important;margin:0!important;padding:0 12px!important;border:0!important;border-radius:0!important;background:transparent!important;color:#fff!important;font:400 16px/1 'Inter','Inter Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important;box-shadow:none!important;outline:none!important;-webkit-appearance:none!important;appearance:none!important}
.trdtc-wl-form input[type="email"]::placeholder{color:rgba(255,255,255,.38)!important;opacity:1!important}
.trdtc-wl-form .tr-cta{flex:none!important}
@media(max-width:359px){.trdtc-wl-form .tr-cta:not(#_trcta){padding:0 14px!important;font-size:14px!important}.trdtc-wl-form input[type="email"],.trdtc-wl-form input[type="email"]:focus{padding:0 8px!important}}
.trdtc-wl-fine{margin:12px 0 0!important;font-size:13px!important;line-height:1.4!important;color:rgba(255,255,255,.45)!important}
.trdtc-wl-fine.is-error{color:#f0997b!important}

/* answered: in place with JavaScript (.is-done), or as #trdtc-wl-joined
   after the form posted without it. The two lines come before the form in
   the markup, so :target can hide what follows. */
.trdtc-wl-done{display:none!important;align-items:flex-start!important;gap:10px!important;max-width:460px!important;margin:24px 0 0!important;padding:14px 16px!important;border-radius:12px!important;background:rgba(3,201,136,.08)!important;border:1px solid rgba(3,201,136,.28)!important;font-size:15px!important;line-height:1.5!important;color:#cdf3e3!important;outline:none!important}
.trdtc-wl-done svg{flex:none!important;width:18px!important;height:18px!important;margin-top:2px!important;color:var(--c-green)!important}
.trdtc-wl-done:target,.trdtc-wl.is-done .trdtc-wl-done{display:flex!important}
.trdtc-wl-done:target~.trdtc-wl-form,.trdtc-wl-done:target~.trdtc-wl-fine,.trdtc-wl.is-done .trdtc-wl-form,.trdtc-wl.is-done .trdtc-wl-fine{display:none!important}
.trdtc-wl-retry{display:none!important;max-width:460px!important;margin:24px 0 0!important;font-size:14px!important;line-height:1.5!important;color:#f0997b!important;outline:none!important}
.trdtc-wl-retry:target{display:block!important}
.trdtc-wl-retry:target~.trdtc-wl-form{margin-top:12px!important}

/* a filmed centre close by: one line of text, not a card */
.trdtc-wl-near{display:flex!important;align-items:baseline!important;flex-wrap:wrap!important;gap:4px 8px!important;max-width:460px!important;margin:24px 0 0!important;font-size:14px!important;line-height:1.5!important;color:rgba(255,255,255,.6)!important;text-decoration:none!important}
.trdtc-wl-near em{font-style:normal!important}
.trdtc-wl-near b{color:#fff!important;font-weight:600!important}
.trdtc-wl-near span{display:inline-flex!important;align-items:center!important;gap:5px!important;color:var(--c-green)!important;font-weight:600!important;white-space:nowrap!important}
.trdtc-wl-near svg{flex:none!important}
.trdtc-wl-near:hover span{text-decoration:underline!important;text-underline-offset:3px!important}

/* 4.121.2 · The hero is the whole page here, so it meets the footer
   directly: --c-navy (12,25,39) on the footer's #0d1b2a (13,27,42) is a hard
   line across the full width. The last 200px fade into the footer colour,
   as the FAQ section does on a live centre page (WORKSPACE trap 12). */
.trdtc-hero.trdtc-wl{background:linear-gradient(to bottom,var(--c-navy) 0,var(--c-navy) calc(100% - 200px),#0d1b2a 100%)!important}

/* the longest names ("Birmingham (Cocks Moors Woods Leisure Centre)") */
.trdtc-wl.is-long .trdtc-hero-city{font-size:clamp(30px,3.8vw,46px)!important;line-height:1.08!important;text-wrap:balance!important}
/* no lone "live." on the last line at 900px, where the column is 413px */
.trdtc-wl .trdtc-hero-intro{text-wrap:pretty!important}

/* the map: in the box of the route drawing, no frame, page colour behind
   the streets (waitlist.js), fading out at the edges. Hidden below 900px
   with the rest of .trdtc-hero-vis. Dot and credit appear with the map.
   4.121.1: and fading out towards the bottom, so the streets are gone
   before the hero ends and nothing touches the footer: the radial mask
   intersected with a linear one (mask-composite). */
.trdtc-wl .trdtc-hero-vis{pointer-events:none!important}
.trdtc-wl-map{position:absolute!important;inset:0!important;opacity:0!important;transition:opacity .4s var(--ease)!important;
	-webkit-mask-image:radial-gradient(closest-side at 50% 50%,#000 38%,rgba(0,0,0,.55) 68%,transparent 100%),linear-gradient(to bottom,#000 50%,transparent 90%)!important;-webkit-mask-composite:source-in!important;
	mask-image:radial-gradient(closest-side at 50% 50%,#000 38%,rgba(0,0,0,.55) 68%,transparent 100%),linear-gradient(to bottom,#000 50%,transparent 90%)!important;mask-composite:intersect!important}
.trdtc-wl-map.is-live{opacity:.9!important}
.trdtc-wl-pin{position:absolute!important;left:50%!important;top:50%!important;z-index:2!important;width:14px!important;height:14px!important;margin:-7px 0 0 -7px!important;border-radius:50%!important;background:#e9b25f!important;box-shadow:0 0 0 3px var(--c-navy),0 0 0 9px rgba(233,178,95,.16),0 0 0 22px rgba(233,178,95,.06)!important;opacity:0!important;transition:opacity .4s var(--ease)!important}
.trdtc-wl-map.is-live~.trdtc-wl-pin{opacity:1!important}

/* the map credit (4.121.1): an (i), like MapLibre's compact control on the
   other centre maps. Open, the line sits to its left. <details>, so it
   opens by click, tap and keyboard without script (trap 6). Hidden, and
   out of the tab order, until the map is there. */
.trdtc-wl-attr{position:absolute!important;right:8px!important;bottom:8px!important;z-index:3!important;display:flex!important;flex-direction:row-reverse!important;align-items:center!important;gap:6px!important;max-width:calc(100% - 16px)!important;pointer-events:auto!important;visibility:hidden!important;opacity:0!important;transition:opacity .4s var(--ease),visibility 0s linear .4s!important}
.trdtc-wl-map.is-live~.trdtc-wl-attr{visibility:visible!important;opacity:1!important;transition:opacity .4s var(--ease)!important}
.trdtc-wl-attr summary{display:flex!important;align-items:center!important;justify-content:center!important;flex:none!important;width:24px!important;height:24px!important;border-radius:50%!important;cursor:pointer!important;list-style:none!important;background:rgba(12,25,39,.8)!important;border:1px solid rgba(255,255,255,.14)!important;color:rgba(255,255,255,.55)!important;transition:color .15s var(--ease),border-color .15s var(--ease)!important}
.trdtc-wl-attr summary::-webkit-details-marker{display:none!important}
.trdtc-wl-attr summary::marker{content:''!important}
.trdtc-wl-attr summary:hover,.trdtc-wl-attr[open] summary{color:#fff!important;border-color:rgba(255,255,255,.32)!important}
.trdtc-wl-attr summary:focus-visible{outline:2px solid var(--c-green)!important;outline-offset:2px!important}
.trdtc-wl-attr summary svg{display:block!important;width:14px!important;height:14px!important}
.trdtc-wl-attr span{display:block!important;padding:4px 10px!important;border-radius:999px!important;background:rgba(12,25,39,.88)!important;border:1px solid rgba(255,255,255,.12)!important;font-size:11px!important;line-height:1.4!important;color:rgba(255,255,255,.65)!important;white-space:nowrap!important}
.trdtc-wl-attr a{color:rgba(255,255,255,.88)!important;text-decoration:underline!important;text-decoration-color:rgba(255,255,255,.3)!important;text-underline-offset:2px!important}
.trdtc-wl-attr a:hover{color:#fff!important}
@media (prefers-reduced-motion:reduce){.trdtc-wl-map,.trdtc-wl-pin,.trdtc-wl-attr,.trdtc-wl-attr summary,.trdtc-wl-form{transition:none!important}}

/* only an admin sees this: fixed to the bottom, so the page underneath is
   exactly what a visitor gets */
.trdtc-wl-admin{position:fixed!important;left:16px!important;right:16px!important;bottom:calc(16px + env(safe-area-inset-bottom,0px))!important;z-index:9990!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:4px 14px!important;max-width:900px!important;margin:0 auto!important;padding:10px 14px!important;border-radius:10px!important;background:#f6ecc9!important;color:#3d2e00!important;font-size:13px!important;line-height:1.4!important;box-shadow:0 10px 30px rgba(0,0,0,.45)!important}
.trdtc-wl-admin b{font-weight:700!important}
.trdtc-wl-admin a{color:#3d2e00!important;font-weight:600!important;text-decoration:underline!important;text-underline-offset:2px!important}
