/* tvl-site.css — The Vancouver Locksmith, site-wide components.
   Source of truth: the 2026-09-23 "TVL Editorial Sections" canvas.
   One responsive sheet: desktop artboards above 768px, mobile artboards below.
   Every class is prefixed tvl- so nothing collides with the Linq page shell.
   Pages are body-only code_html fragments wrapped in <div class="tvl-site">. */

@font-face{font-family:"Cooper Hewitt";src:url("/static/fonts/cooper-hewitt-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Cooper Hewitt";src:url("/static/fonts/cooper-hewitt-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Cooper Hewitt";src:url("/static/fonts/cooper-hewitt-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Bebas Neue";src:url("/static/fonts/bebas-neue-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* The Linq code-page shell adds no reset, so <body> keeps the browser's 8px margin
   and a white page shows as a frame around the site. This sheet only loads on TVL
   pages, so a bare html/body rule is safe here. */
html,body{margin:0;padding:0;background:#EBEBEB}

.tvl-site{
  --ink:#14161A; --bg:#EBEBEB; --mist:#DBE2EA; --white:#FFFFFF;
  --body:#3A4048; --muted:#5C626A; --nav:#4A4F57;
  --accent:#1C6F78; --call:#C2410C; --navy:#16232E; --panel:#1C1F24;
  --pale:#D7E4EE; --pale-2:#AEBDC8; --ft-text:#DCDEE2; --ft-muted:#8E959D; --ft-rule:#2A3038;
  --dot:1.5px dotted rgba(20,22,26,.4);
  --gut:80px; --gut-edge:48px; --max:1440px;
  --display:"Bebas Neue",Impact,"Arial Narrow",sans-serif;
  --sans:"Cooper Hewitt",ui-sans-serif,system-ui,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  background:var(--bg); color:var(--ink); font-family:var(--sans);
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
/* Resets use :where() so they carry zero specificity and never beat a component class. */
:where(.tvl-site) *,:where(.tvl-site) *::before,:where(.tvl-site) *::after{box-sizing:border-box}
:where(.tvl-site) img{display:block;max-width:100%}
:where(.tvl-site) a{color:inherit;text-decoration:none}
:where(.tvl-site) :is(h1,h2,h3,p){margin:0}
:where(.tvl-site) svg{flex:none}
.tvl-site :focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.tvl-in{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.tvl-in--edge{padding-inline:var(--gut-edge)}
.tvl-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px;font-weight:700}
.tvl-skip:focus{left:12px}

/* ---------- Type ---------- */
.tvl-h1,.tvl-h2,.tvl-display{font-family:var(--display);font-weight:700;letter-spacing:.01em;line-height:.95;color:var(--ink);text-wrap:balance}
.tvl-h1{font-size:78px;line-height:.9}
.tvl-h2{font-size:52px}
.tvl-h2--rail{font-size:48px}
.tvl-h2--stmt{font-size:56px}
.tvl-eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.tvl-rule{width:64px;height:4px;background:var(--ink)}
.tvl-rule--call{background:var(--call)}
.tvl-lede{font-size:17px;line-height:1.6;color:var(--body);max-width:620px}
.tvl-note{font-size:15px;line-height:1.55;color:var(--muted)}
.tvl-head{display:flex;flex-direction:column;gap:18px}
.tvl-head .tvl-btn{align-self:flex-start}

/* ---------- Buttons & chips ---------- */
.tvl-btns{display:flex;flex-wrap:wrap;gap:10px}
.tvl-btn{min-height:52px;padding:0 24px;border-radius:999px;font-family:var(--sans);font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1.5px solid transparent;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease}
.tvl-btn--call{background:var(--call);color:#fff}
.tvl-btn--call:hover{background:#A8380A}
.tvl-btn--ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.tvl-btn--ghost:hover{background:var(--ink);color:#fff}
.tvl-btn--dark{background:var(--ink);color:#fff;padding:0 26px}
.tvl-btn--dark:hover{background:var(--accent)}
.tvl-btn--ghost-light{border-color:rgba(255,255,255,.6);color:#fff;padding:0 26px}
.tvl-btn--ghost-light:hover{background:#fff;color:var(--ink)}
.tvl-chips{display:flex;flex-wrap:wrap;gap:8px}
.tvl-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:#fff;font-size:13px;font-weight:700;color:var(--ink)}
.tvl-chip svg{color:var(--accent)}

/* ---------- Header ---------- */
.tvl-hd{height:78px;display:flex;align-items:center;justify-content:space-between}
.tvl-logo{display:flex;align-items:center}
.tvl-logo img{height:46px;width:auto}
.tvl-hd__nav{display:flex;align-items:center;gap:30px}
.tvl-hd__nav>a:not(.tvl-hd__call){color:var(--nav);font-size:15px;font-weight:700;transition:color .2s ease}
.tvl-hd__nav>a:not(.tvl-hd__call):hover{color:var(--accent)}
.tvl-hd__call{font-size:17px;font-weight:800;letter-spacing:.02em;padding:12px 24px;border-radius:999px;background:var(--ink);color:#fff;transition:background .3s var(--ease)}
.tvl-hd__call:hover{background:var(--call)}
.tvl-hd__callm{display:none}

/* ---------- Hero (inner, condensed 50/50) ---------- */
.tvl-hero{padding-top:24px;padding-bottom:40px;border-bottom:var(--dot)}
.tvl-hero__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;min-height:540px}
.tvl-hero__card{background:var(--mist);border-radius:22px;padding:36px 40px;display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.tvl-hero__top,.tvl-hero__foot{display:flex;flex-direction:column;gap:16px}
.tvl-crumbs{font-size:13px;font-weight:700;color:var(--muted)}
.tvl-crumbs a{color:var(--muted)}
.tvl-crumbs a:hover{color:var(--accent)}
.tvl-crumbs [aria-current]{color:var(--ink)}
.tvl-hero__lead{font-size:23px;font-weight:800;line-height:1.3;color:var(--ink);text-wrap:balance}
.tvl-hero__body{font-size:17px;line-height:1.55;color:var(--body);max-width:56ch}
.tvl-hero__photos{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:20px}
.tvl-photo{position:relative;border-radius:22px;overflow:hidden;background:#0B1620;min-height:0}
.tvl-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- Rail (sub-services) ---------- */
.tvl-railsec{border-bottom:var(--dot)}
.tvl-railsec__grid{max-width:var(--max);margin-inline:auto;display:grid;grid-template-columns:420px minmax(0,1fr);align-items:stretch}
.tvl-railsec__head{padding:72px 40px 64px var(--gut);border-right:var(--dot)}
.tvl-rail__nav{display:flex;gap:8px;margin-top:8px}
.tvl-rail__nav[hidden]{display:none}
.tvl-rail__btn{min-height:48px;width:48px;border-radius:50%;border:1.5px solid rgba(20,22,26,.25);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .2s ease,color .2s ease}
.tvl-rail__btn--next{border:0;background:var(--ink);color:#fff}
.tvl-rail__btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.tvl-rail{min-width:0;padding:72px var(--gut) 64px 24px;display:flex;align-items:stretch;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:24px;scrollbar-width:none}
.tvl-rail::-webkit-scrollbar{display:none}
.tvl-rcard{flex:0 0 320px;scroll-snap-align:start;padding:26px;border-radius:20px;background:#fff;display:flex;flex-direction:column;gap:14px;color:var(--ink);transition:transform .25s ease}
.tvl-rcard:hover{transform:translateY(-6px)}
.tvl-rcard__n{font-weight:800;font-size:26px;line-height:1}
.tvl-rcard__bar{width:40px;height:3px;background:var(--ink)}
.tvl-rcard h3{font-size:19px;font-weight:800;line-height:1.25}
.tvl-rcard p{font-size:15px;line-height:1.6;color:var(--body);flex-grow:1}
.tvl-rcard__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px}
.tvl-rcard__tag{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.tvl-plus{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(20,22,26,.3);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .25s ease,color .25s ease,border-color .25s ease}
.tvl-plus path{transition:transform .3s ease,opacity .3s ease;transform-box:fill-box;transform-origin:center}
.tvl-plus .tvl-plus-a{opacity:0;transform:translateX(-5px)}
.tvl-rcard:hover .tvl-plus{background:var(--ink);color:#fff;border-color:var(--ink)}
.tvl-rcard:hover .tvl-plus .tvl-plus-v{opacity:0;transform:rotate(90deg) scale(.2)}
.tvl-rcard:hover .tvl-plus .tvl-plus-a{opacity:1;transform:none}
.tvl-rail__hint{display:none}

/* ---------- Trust strip ---------- */
.tvl-trust{background:var(--ink);padding-block:28px}
.tvl-trust__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tvl-trust__item{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:var(--panel);color:#fff}
a.tvl-trust__item:hover{border-color:rgba(255,255,255,.3)}
.tvl-trust__ic{width:36px;height:36px;flex:none;border-radius:10px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center}
.tvl-trust__item h2{font-family:var(--sans);font-size:15px;font-weight:800;line-height:1.25;white-space:nowrap;color:#fff}

/* ---------- Generic section ---------- */
.tvl-sec{padding-block:88px;border-bottom:var(--dot)}
.tvl-cols{display:grid;gap:72px;align-items:start}
.tvl-cols--split{grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr)}
.tvl-cols--tiles{grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:64px;align-items:center}
.tvl-cols--faq{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:64px}
.tvl-cols--stmt{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}

/* split list (numbered, dotted) */
.tvl-split{display:flex;flex-direction:column}
.tvl-split__row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;padding:24px 0;border-top:var(--dot)}
.tvl-split__n{font-weight:800;font-size:22px;line-height:1.2;color:var(--accent)}
.tvl-split__row>div{display:flex;flex-direction:column;gap:8px}
.tvl-split__row h3{font-size:20px;font-weight:800;line-height:1.3}
.tvl-split__row p{font-size:15px;line-height:1.65;color:var(--body)}

/* tiles */
.tvl-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tvl-tile{background:#fff;border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:transform .2s ease,box-shadow .2s ease}
.tvl-tile:hover{transform:translateY(-3px);box-shadow:0 10px 24px -14px rgba(20,22,26,.45)}
.tvl-tile__ic{width:40px;height:40px;border-radius:12px;background:var(--ink);display:flex;align-items:center;justify-content:center;color:#fff}
.tvl-tile h3{font-size:17px;font-weight:800;line-height:1.3}
.tvl-tile p{font-size:14px;line-height:1.55;color:var(--muted)}

/* FAQ — native <details>, works without JS */
.tvl-faq{display:flex;flex-direction:column}
.tvl-q{border-top:var(--dot)}
.tvl-q summary{list-style:none;min-height:64px;padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;color:var(--ink)}
.tvl-q summary::-webkit-details-marker{display:none}
.tvl-q summary h3{font-size:19px;font-weight:800}
.tvl-q__sign{width:36px;height:36px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(20,22,26,.2);color:var(--ink);transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease}
.tvl-q[open] .tvl-q__sign{transform:rotate(45deg);background:var(--ink);border-color:var(--ink);color:#fff}
.tvl-q summary:hover .tvl-q__sign{border-color:var(--ink)}
.tvl-q p{margin:0 0 20px;max-width:720px;font-size:15px;line-height:1.65;color:var(--body)}

/* statement (light card beside a heading) */
.tvl-stmt__card{display:flex;flex-direction:column;gap:16px;padding:32px;border-radius:22px;background:#fff}
.tvl-stmt__card p{font-size:18px;line-height:1.65;color:var(--body)}

/* photo band */
.tvl-band{padding-block:48px;border-bottom:var(--dot)}
.tvl-band .tvl-photo{height:460px}

/* ---------- Final CTA ---------- */
.tvl-cta{background:var(--navy);color:#fff;padding-block:88px}
.tvl-cta__grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:64px;align-items:end}
.tvl-cta__copy{display:flex;flex-direction:column;gap:18px}
.tvl-cta .tvl-eyebrow{color:var(--pale-2)}
.tvl-cta .tvl-h2{font-size:60px;color:#fff}
.tvl-cta__copy>p{font-size:18px;line-height:1.6;color:var(--pale);max-width:600px}
.tvl-cta__act{display:flex;flex-direction:column;gap:18px}
.tvl-cta__links{display:flex;flex-wrap:wrap;gap:8px}
.tvl-cta__links a{padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.25);color:var(--pale);font-size:13px;font-weight:700;transition:border-color .2s ease,color .2s ease}
.tvl-cta__links a:hover{border-color:#fff;color:#fff}

/* ---------- Footer ---------- */
.tvl-ft{background:var(--ink);color:var(--ft-text);padding-block:52px 36px}
.tvl-ft__grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:34px;align-items:start}
.tvl-ft .tvl-logo{display:inline-flex;margin-bottom:18px}
.tvl-ft .tvl-logo img{height:44px}
.tvl-ft__about{max-width:42ch;font-size:14px;line-height:1.62;color:var(--pale-2)}
.tvl-ft__h{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ft-muted);font-weight:700;margin-bottom:14px}
.tvl-ft__addr{font-size:14px;line-height:1.7;color:var(--ft-text);font-style:normal}
.tvl-ft__addr a{color:#fff}
.tvl-ft__links{display:flex;flex-direction:column;gap:9px;font-size:14px}
.tvl-ft__links a,.tvl-ft__addr a{transition:color .2s ease}
.tvl-ft__links a:hover,.tvl-ft__addr a:hover{color:var(--pale-2)}
.tvl-ft__legal{margin-top:36px;padding-top:20px;border-top:1px solid var(--ft-rule);font-size:12px;line-height:1.6;color:var(--ft-muted)}

/* ---------- Floating button, version C (desktop) — <details>, no JS needed ---------- */
.tvl-fab{position:fixed;right:28px;bottom:24px;z-index:40;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:14px}
.tvl-fab>summary{list-style:none;width:64px;height:64px;border-radius:50%;background:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 16px 36px -12px rgba(0,0,0,.55);position:relative;color:#fff}
.tvl-fab>summary::-webkit-details-marker{display:none}
.tvl-fab__dot{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:var(--call);border:2.5px solid var(--ink)}
.tvl-fab .tvl-ic-x{display:none}
.tvl-fab[open] .tvl-ic-chat{display:none}
.tvl-fab[open] .tvl-ic-x{display:block}
.tvl-fab__card{width:300px;padding:22px;border-radius:22px;background:#fff;box-shadow:0 24px 60px -20px rgba(0,0,0,.45);border:1px solid rgba(20,22,26,.06);display:flex;flex-direction:column;gap:12px;animation:tvl-pop .25s var(--ease)}
.tvl-fab__card .tvl-display{font-size:30px}
.tvl-fab__card p{font-size:14px;line-height:1.5;color:var(--muted)}
.tvl-fab__card .tvl-btn{min-height:50px;width:100%}
@keyframes tvl-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Mobile bottom bar + slide-out menu (hidden on desktop) ---------- */
.tvl-bar,.tvl-menu{display:none}

@media (prefers-reduced-motion:reduce){
  .tvl-site *,.tvl-site *::before,.tvl-site *::after{transition:none !important;animation:none !important}
  .tvl-rail{scroll-behavior:auto}
}

/* ---------- Mid widths: keep two-column sections from crushing ---------- */
@media (max-width:1180px){
  .tvl-site{--gut:48px}
  .tvl-h1{font-size:64px}
  .tvl-cols--split,.tvl-cols--tiles,.tvl-cols--faq,.tvl-cols--stmt{grid-template-columns:minmax(0,1fr);gap:40px}
  .tvl-railsec__grid{grid-template-columns:320px minmax(0,1fr)}
  .tvl-trust__row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tvl-cta__grid{grid-template-columns:minmax(0,1fr);gap:36px;align-items:start}
  .tvl-ft__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tvl-ft__grid>:first-child{grid-column:1/-1}
  .tvl-hd__nav{gap:20px}
}

/* ---------- Mobile (the 390px artboards) ---------- */
@media (max-width:767.98px){
  .tvl-site{--gut:20px;--gut-edge:12px;padding-bottom:84px}
  .tvl-h1{font-size:48px}
  .tvl-h2,.tvl-h2--rail,.tvl-h2--stmt{font-size:38px}
  .tvl-eyebrow{font-size:12px}
  .tvl-rule{width:52px}
  .tvl-lede{font-size:16px}
  .tvl-note{font-size:14px}
  .tvl-head{gap:14px}

  .tvl-hd{height:64px}
  .tvl-hd.tvl-in{padding-inline:18px}
  .tvl-logo img{height:32px}
  .tvl-hd__nav{display:none}
  .tvl-hd__callm{display:flex;min-height:44px;align-items:center;font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:0 18px;border-radius:999px;background:var(--ink);color:#fff}

  .tvl-hero{padding-top:8px;padding-bottom:28px}
  .tvl-hero__grid{grid-template-columns:minmax(0,1fr);gap:12px;min-height:0}
  .tvl-hero__card{border-radius:20px;padding:24px 20px;gap:14px}
  .tvl-hero__top,.tvl-hero__foot{gap:14px}
  .tvl-crumbs{font-size:12px}
  .tvl-hero__lead{font-size:19px;line-height:1.35}
  .tvl-hero__body{font-size:16px}
  .tvl-hero__foot .tvl-btns{flex-direction:column;padding-top:4px}
  .tvl-hero__foot .tvl-btn{width:100%}
  .tvl-chips{gap:6px}
  .tvl-chip{padding:7px 12px;font-size:12px}
  .tvl-hero__photos{grid-template-columns:minmax(0,1fr)}
  .tvl-hero__photos .tvl-photo{height:260px}
  .tvl-hero__photos .tvl-photo+.tvl-photo{display:none}

  .tvl-railsec{padding:40px 0 36px}
  .tvl-railsec__grid{display:flex;flex-direction:column;gap:20px}
  .tvl-railsec__head{padding:0 var(--gut);border-right:0}
  .tvl-rail__nav{display:none}
  .tvl-rail{padding:0 var(--gut);gap:12px;scroll-padding-left:var(--gut)}
  .tvl-rcard{flex-basis:272px;padding:20px;border-radius:18px;gap:10px}
  .tvl-rcard:hover{transform:none}
  .tvl-rcard__n{font-size:22px}
  .tvl-rcard__bar{width:32px}
  .tvl-rcard h3{font-size:17px}
  .tvl-rcard p{font-size:14px;line-height:1.55}
  .tvl-rcard__foot{padding-top:0}
  .tvl-rcard__tag{font-size:12px}
  .tvl-plus{width:auto;height:auto;border:0;background:transparent}
  .tvl-plus .tvl-plus-v{display:none}
  .tvl-plus .tvl-plus-a{opacity:1;transform:none}
  .tvl-rail__hint{display:block;padding:0 var(--gut);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

  .tvl-trust{padding-block:20px}
  .tvl-trust .tvl-in{padding-inline:0}
  .tvl-trust__row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-inline:12px;scroll-padding-left:12px;scrollbar-width:none}
  .tvl-trust__row::-webkit-scrollbar{display:none}
  .tvl-trust__item{flex:0 0 auto;scroll-snap-align:start;padding:12px 16px}
  .tvl-trust__item h2{font-size:14px}

  .tvl-sec{padding-block:34px}
  .tvl-cols{gap:22px}
  .tvl-split__row{grid-template-columns:36px minmax(0,1fr);gap:12px;padding:14px 0}
  .tvl-split__n{font-size:18px}
  .tvl-split__row>div{gap:6px}
  .tvl-split__row h3{font-size:17px}
  .tvl-split__row p{font-size:15px;line-height:1.6}

  .tvl-cols--tiles{display:flex;flex-direction:column}
  .tvl-cols--tiles .tvl-head .tvl-btn{display:none}
  .tvl-tiles{grid-template-columns:minmax(0,1fr);gap:10px}
  .tvl-tile{border-radius:16px;padding:16px 18px;gap:4px;border-left:4px solid var(--ink)}
  .tvl-tile:hover{transform:none;box-shadow:none}
  .tvl-tile__ic{display:none}
  .tvl-tile h3{font-size:16px}
  .tvl-tile p{line-height:1.5}
  .tvl-tiles__cta{min-height:50px;font-size:15px}

  .tvl-q summary{min-height:56px;padding:14px 0}
  .tvl-q summary h3{font-size:17px}
  .tvl-q__sign{width:32px;height:32px}
  .tvl-q p{margin-bottom:16px}

  .tvl-stmt__card{padding:22px 20px;border-radius:18px}
  .tvl-stmt__card p{font-size:16px}

  .tvl-band{padding:24px 12px}
  .tvl-band .tvl-in{padding-inline:0}
  .tvl-band .tvl-photo{height:240px;border-radius:20px}

  .tvl-cta{padding-block:44px}
  .tvl-cta .tvl-h2{font-size:40px}
  .tvl-cta__copy>p{font-size:16px}
  .tvl-cta__act .tvl-btns{flex-direction:column}
  .tvl-cta__act .tvl-btn{width:100%}

  .tvl-ft{padding-block:32px 28px}
  .tvl-ft__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}
  .tvl-ft__grid>:nth-child(2){grid-column:1/-1}
  .tvl-ft .tvl-logo img{height:36px}
  .tvl-ft__links{gap:6px}
  .tvl-ft__legal{margin-top:26px}

  .tvl-fab{display:none}

  /* bottom bar */
  .tvl-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:stretch;background:#fff;border-top:1px solid rgba(20,22,26,.1);box-shadow:0 -10px 30px -18px rgba(0,0,0,.35);padding:4px 8px calc(10px + env(safe-area-inset-bottom))}
  .tvl-bar>a{flex:1 1 0;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ink);background:transparent;border:0;font-family:inherit;cursor:pointer;padding:0}
  .tvl-bar span.tvl-bar__label{font-size:12px;font-weight:700;letter-spacing:.04em}
  .tvl-bar__book{width:46px;height:46px;margin-top:-22px;border-radius:50%;background:var(--call);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 22px -10px rgba(194,65,12,.7);border:4px solid #fff;color:#fff}

  /* slide-out menu: opens on #tvl-menu:target without JS; JS adds .is-open */
  .tvl-menu{display:block;position:fixed;inset:0;z-index:60;pointer-events:none;visibility:hidden;transition:visibility 0s linear .35s}
  .tvl-menu__shade{position:absolute;inset:0;background:rgba(12,14,18,.55);opacity:0;transition:opacity .3s ease}
  .tvl-menu__panel{position:absolute;top:0;right:0;bottom:0;width:min(330px,85vw);background:#fff;display:flex;flex-direction:column;box-shadow:-20px 0 50px -20px rgba(0,0,0,.4);transform:translateX(105%);transition:transform .35s var(--ease)}
  .tvl-menu:target,.tvl-menu.is-open{pointer-events:auto;visibility:visible;transition:visibility 0s}
  .tvl-menu:target .tvl-menu__shade,.tvl-menu.is-open .tvl-menu__shade{opacity:1}
  .tvl-menu:target .tvl-menu__panel,.tvl-menu.is-open .tvl-menu__panel{transform:none}
  .tvl-menu__top{flex:none;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid rgba(20,22,26,.08)}
  .tvl-menu__top .tvl-logo img{height:28px}
  .tvl-menu__close{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(20,22,26,.16);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink)}
  .tvl-menu__body{flex-grow:1;overflow-y:auto;padding:18px 20px 20px;display:flex;flex-direction:column;gap:18px}
  .tvl-menu__h{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-bottom:4px}
  .tvl-menu__svc{display:flex;flex-direction:column}
  .tvl-menu__svc a{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(20,22,26,.08);color:var(--ink)}
  .tvl-menu__svc b{display:block;font-size:17px;font-weight:800}
  .tvl-menu__svc small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
  .tvl-menu__more{display:flex;flex-direction:column}
  .tvl-menu__more a{min-height:48px;display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:700;color:var(--ink)}
  .tvl-menu__foot{flex:none;padding:16px 20px 22px;border-top:1px solid rgba(20,22,26,.08);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tvl-menu__foot .tvl-btn{min-height:52px;font-size:15px;padding:0 12px;gap:8px}
}

/* Tiles "See starting prices" button: the desktop one sits in the head, the mobile one after the tiles */
.tvl-tiles__cta{display:none !important}
@media (max-width:767.98px){.tvl-tiles__cta{display:flex !important}}

/* =====================================================================
   Homepage, Prices and Book components (added 2026-09-24)
   ===================================================================== */

/* ---------- Homepage hero ---------- */
.tvl-hh{padding-top:24px;padding-bottom:40px;border-bottom:var(--dot);display:flex;flex-direction:column;gap:20px}
.tvl-hh__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;min-height:692px}
.tvl-hh__left{display:flex;flex-direction:column;gap:20px}
.tvl-hh__card{flex-grow:1;background:var(--mist);border-radius:22px;padding:38px 40px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;position:relative}
.tvl-hh__req{position:absolute;top:28px;right:28px;width:46px;height:46px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.tvl-hh__req:hover{background:var(--ink);color:#fff}
.tvl-hh .tvl-h1{font-size:82px;line-height:.88;letter-spacing:.005em;max-width:600px}
.tvl-hh__panelwrap{display:flex;flex-direction:column;gap:14px}
.tvl-hh__panel{display:flex;flex-direction:column;gap:14px;align-items:flex-start;min-height:104px}
.tvl-hh__panel[hidden]{display:none}
.tvl-hh__panel p{font-size:20px;line-height:1.45;color:var(--body);max-width:36ch}
.tvl-hh__panel a{font-size:14px;font-weight:700;color:var(--accent)}
.tvl-hh__panel a:hover{text-decoration:underline}
.tvl-hh__tabs{display:flex;gap:8px;flex-wrap:wrap}
.tvl-hh__tab{min-height:44px;padding:0 18px;border-radius:999px;border:0;background:#fff;color:var(--body);font-family:inherit;font-size:14px;font-weight:700;display:inline-flex;align-items:center;cursor:pointer;transition:background .2s ease,color .2s ease}
.tvl-hh__tab[aria-selected="true"]{background:var(--ink);color:#fff}
.tvl-hh__tab:hover{color:var(--ink)}
.tvl-hh__tab[aria-selected="true"]:hover{color:#fff}
.tvl-hh__tiles{flex:none;height:248px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.tvl-ptile{border-radius:22px;background:#0B1620;padding:22px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;color:#fff}
.tvl-ptile img,.tvl-hh__dark>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.tvl-ptile:hover img{transform:scale(1.04)}
.tvl-ptile::before,.tvl-ptile::after,.tvl-hh__dark::before,.tvl-hh__dark::after{content:"";position:absolute;pointer-events:none}
.tvl-ptile::before{left:0;right:0;bottom:0;height:64%;background:linear-gradient(180deg,rgba(7,16,23,0) 0%,rgba(7,16,23,.5) 44%,rgba(7,16,23,.93) 100%)}
.tvl-ptile::after{top:0;left:0;width:74%;height:62%;background:radial-gradient(ellipse at top left,rgba(7,16,23,.9) 0%,rgba(7,16,23,.46) 44%,rgba(7,16,23,0) 78%)}
.tvl-ptile__k{position:relative;z-index:1;font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pale)}
.tvl-ptile__t{position:relative;z-index:1;font-size:17px;font-weight:700;line-height:1.35}
.tvl-hh__dark{border-radius:22px;background:var(--navy);padding:34px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;position:relative;overflow:hidden}
.tvl-hh__dark>img{object-position:74% 46%}
.tvl-hh__dark::before{left:0;right:0;bottom:0;height:62%;background:linear-gradient(180deg,rgba(7,16,23,0) 0%,rgba(7,16,23,.55) 38%,rgba(7,16,23,.94) 100%)}
.tvl-hh__dark::after{top:0;left:0;right:0;height:58%;background:linear-gradient(180deg,rgba(7,16,23,.92) 0%,rgba(7,16,23,.62) 32%,rgba(7,16,23,.18) 58%,rgba(7,16,23,0) 80%)}
.tvl-hh__dark>*:not(img){position:relative;z-index:1}
.tvl-hh__quote{font-size:19px;line-height:1.5;color:#E4EAEF;max-width:40ch;text-align:right;align-self:flex-end}
.tvl-hh__talk{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.tvl-hh__talk small{display:block;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8FA3B2;margin-bottom:6px}
.tvl-hh__num{font-size:44px;font-weight:800;line-height:1;letter-spacing:-.02em;color:#fff;white-space:nowrap;transition:color .5s var(--ease)}
.tvl-hh__num:hover{color:var(--call)}
.tvl-hh__acts{display:flex;gap:9px;flex-wrap:wrap}
.tvl-hh__acts .tvl-btn{min-height:48px;padding:0 22px;font-size:15px}
.tvl-btn--white{background:#fff;color:var(--ink)}
.tvl-btn--white:hover{background:var(--mist)}
.tvl-hh__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 4px;flex-wrap:wrap}
.tvl-hh__foot a{font-size:15px;font-weight:700;color:var(--body)}
.tvl-hh__foot a:hover{color:var(--accent)}
.tvl-hh__foot span{font-size:14px;color:var(--muted)}

/* ---------- Forms (request form, Book form, Ask a question) ---------- */
.tvl-form{margin:0;border-radius:22px;background:#fff;border:1px solid rgba(20,22,26,.08);padding:28px;display:flex;flex-direction:column;gap:18px}
.tvl-form__title{font-family:var(--display);font-weight:700;letter-spacing:.01em;line-height:.95;font-size:32px;color:var(--ink)}
.tvl-form__head{display:flex;align-items:center;gap:12px}
.tvl-form__head .tvl-form__title{flex-grow:1}
.tvl-form__stepno{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.tvl-form__back{width:44px;height:44px;flex:none;border-radius:50%;border:1.5px solid rgba(20,22,26,.16);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.tvl-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tvl-form__row--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tvl-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.tvl-field label,.tvl-form__label{font-size:14px;font-weight:700;color:var(--ink)}
.tvl-form__label--caps{font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.tvl-field label small{font-weight:400;color:var(--muted);font-size:13px}
.tvl-input{width:100%;min-height:50px;padding:0 14px;border:1px solid #DCDEE2;border-radius:12px;background:#F7F8F9;color:var(--ink);font-family:inherit;font-size:15px}
textarea.tvl-input{min-height:110px;padding:12px 14px;resize:vertical}
.tvl-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(28,111,120,.18);background:#fff}
.tvl-form fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:9px}
.tvl-form legend{padding:0;margin-bottom:9px}
.tvl-opts{display:grid;gap:8px}
.tvl-opts--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tvl-opts--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tvl-opt{position:relative;display:block;cursor:pointer}
.tvl-opt input{position:absolute;opacity:0;width:1px;height:1px}
.tvl-opt span{min-height:48px;padding:10px 12px;border-radius:14px;border:1.5px solid rgba(20,22,26,.12);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;font-size:15px;font-weight:800;color:var(--ink);transition:border-color .2s ease,background .2s ease}
.tvl-opt small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.tvl-opt:hover span{border-color:rgba(20,22,26,.3)}
.tvl-opt input:checked+span{border-color:var(--accent);background:#F1FBFB}
.tvl-opt--solid input:checked+span{background:var(--accent);color:#fff}
.tvl-opt--solid input:checked+span small{color:rgba(255,255,255,.8)}
.tvl-opt--emerg input:checked+span{border-color:#B42318;background:#FDF3F2}
.tvl-opt input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.tvl-choice{min-height:84px;padding:16px 18px;border-radius:18px;border:1.5px solid rgba(20,22,26,.1);background:#F7F8F9;display:flex;align-items:center;gap:16px;font-family:inherit;text-align:left;cursor:pointer;color:var(--ink);width:100%;transition:transform .2s ease,box-shadow .2s ease}
.tvl-choice:hover{transform:translateY(-3px);box-shadow:0 10px 24px -14px rgba(20,22,26,.45)}
.tvl-choice__ic{width:48px;height:48px;flex:none;border-radius:14px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center}
.tvl-choice__ic--accent{background:var(--accent)}
.tvl-choice b{display:block;font-size:18px;font-weight:800}
.tvl-choice small{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:var(--muted)}
.tvl-form__note{padding:14px;border-radius:14px;background:#FDF3F2;border:1.5px solid #F4CFCB;display:flex;flex-direction:column;gap:10px}
.tvl-form__note p{font-size:14px;line-height:1.5;color:var(--ink)}
.tvl-form__note .tvl-btn{min-height:46px;font-size:15px}
.tvl-form__small{font-size:13px;line-height:1.5;color:var(--muted)}
.tvl-form__foot{padding-top:14px;border-top:1px solid rgba(20,22,26,.08);font-size:13px;color:var(--muted)}
.tvl-form__foot a{color:var(--ink);font-weight:700}
.tvl-btn--block{width:100%;min-height:54px;font-size:17px}
.tvl-btn--accent{background:var(--accent);color:#fff}
.tvl-btn--accent:hover{background:#155960}
.tvl-form [hidden]{display:none!important}
.tvl-form__done{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.tvl-form__tick{width:52px;height:52px;border-radius:50%;background:#F1FBFB;color:var(--accent);display:flex;align-items:center;justify-content:center}
.tvl-form__sum{display:flex;flex-wrap:wrap;gap:6px}
.tvl-form__sum span{padding:6px 12px;border-radius:999px;background:#F1F3F5;font-size:13px;font-weight:700}
.tvl-form__done p{font-size:15px;line-height:1.55;color:var(--muted)}
.tvl-form__err{font-size:14px;font-weight:700;color:#B42318}
.tvl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* calendar (JS builds it; the native date field is the no-JS fallback) */
.tvl-cal{display:flex;flex-direction:column;gap:12px}
.tvl-cal__bar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tvl-cal__bar>div{display:flex;align-items:center;gap:6px}
.tvl-cal__nav{width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(20,22,26,.16);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.tvl-cal__nav:disabled{opacity:.35;cursor:default}
.tvl-cal__toggle{min-height:36px;padding:0 14px;border-radius:999px;border:1.5px solid rgba(20,22,26,.16);background:#fff;color:var(--ink);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.tvl-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.tvl-cal__dow{text-align:center;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tvl-cal__day{min-height:56px;border-radius:12px;border:1.5px solid rgba(20,22,26,.12);background:#fff;color:var(--ink);font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;padding:0}
.tvl-cal__day--m{min-height:44px;font-size:15px;font-weight:700}
.tvl-cal__day small{font-size:11px;font-weight:700;text-transform:uppercase}
.tvl-cal__day b{font-size:17px;font-weight:800}
.tvl-cal__day[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.tvl-cal__day:disabled{border-color:transparent;background:transparent;color:#B7BCC2;cursor:default}
.tvl-cal__blank{visibility:hidden}
.tvl-js .tvl-cal__native{display:none}

/* request section (homepage) */
.tvl-req{border-bottom:var(--dot);padding-block:88px}
.tvl-req__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px;align-items:start}
.tvl-req .tvl-h2{font-size:62px}
.tvl-req .tvl-rule{width:72px}
.tvl-req .tvl-lede{font-size:18px;max-width:520px}
.tvl-linkcaps{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-top:8px}
.tvl-linkcaps:hover{color:var(--accent)}

/* ---------- Services photo rail (homepage) ---------- */
.tvl-srail{border-bottom:var(--dot)}
.tvl-srail__grid{max-width:var(--max);margin-inline:auto;display:grid;grid-template-columns:400px minmax(0,1fr);align-items:stretch}
.tvl-srail__head{padding:64px 40px 48px var(--gut);border-right:var(--dot);display:flex;flex-direction:column;gap:20px}
.tvl-srail__head .tvl-rule{width:56px}
.tvl-srail__head p{font-size:16px;line-height:1.6;color:var(--body)}
.tvl-srail__head .tvl-linkcaps{margin-top:auto;font-size:13px}
.tvl-srail .tvl-rail{padding:0 var(--gut) 0 24px;gap:24px}
.tvl-scard{flex:0 0 300px;scroll-snap-align:start;padding:64px 0 48px;display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.tvl-scard__top{display:flex;align-items:flex-start;gap:12px}
.tvl-scard__n{font-weight:800;font-size:26px;line-height:1}
.tvl-scard h3{font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding-top:2px}
.tvl-scard__sub{display:block;margin-top:4px;font-size:13px;color:var(--muted)}
.tvl-scard__bar{width:40px;height:3px;background:var(--ink)}
.tvl-scard__img{position:relative;height:360px;border-radius:18px;overflow:hidden;background:var(--navy);display:flex;align-items:center;justify-content:center;color:var(--pale-2)}
.tvl-scard__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.tvl-scard:hover .tvl-scard__img img{transform:scale(1.05)}
.tvl-scard:hover h3{color:var(--accent)}

/* ---------- Dark band with buttons (after hours) ---------- */
.tvl-dband{background:var(--navy);color:#fff;padding-block:88px}
.tvl-dband__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:64px;align-items:center}
.tvl-dband .tvl-eyebrow{color:var(--pale-2)}
.tvl-dband .tvl-h2{font-size:64px;color:#fff}
.tvl-dband__body{display:flex;flex-direction:column;gap:16px}
.tvl-dband__body p{font-size:18px;line-height:1.6;color:var(--pale)}
.tvl-dband__body p.tvl-dband__small{font-size:15px;line-height:1.55;color:var(--pale-2)}

/* tiles: 3-up variant, and big section headings used on the homepage */
.tvl-tiles--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tvl-tiles--3 .tvl-tile{padding:22px}
.tvl-h2--xl{font-size:64px}
.tvl-lede--lg{font-size:18px;max-width:640px}

/* ---------- Service area ---------- */
.tvl-area__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;align-items:center}
.tvl-area__chips{display:flex;flex-wrap:wrap;gap:8px}
.tvl-area__chips>*{padding:8px 14px;border-radius:999px;background:#fff;font-size:14px;font-weight:700;color:var(--ink)}
.tvl-area__chips a:hover{background:var(--ink);color:#fff}
.tvl-area .tvl-photo{height:440px}

/* ---------- Ask a question ---------- */
.tvl-ask{margin-top:28px}
.tvl-ask .tvl-form{padding:28px 30px}
.tvl-ask__kick{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.tvl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Price table ---------- */
.tvl-ptable{background:#fff;border-radius:20px;overflow:hidden;padding:8px 0;margin:0}
.tvl-ptable>div{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:18px 24px;border-top:1px solid rgba(20,22,26,.08)}
.tvl-ptable>div:first-child{border-top:0}
.tvl-ptable dt{margin:0;font-size:17px;font-weight:800;color:var(--ink)}
.tvl-ptable dd{margin:0;font-size:16px;font-weight:700;color:var(--body);text-align:right;max-width:55%}
.tvl-head a.tvl-note{color:var(--muted)}
.tvl-head a.tvl-note:hover{color:var(--accent)}
.tvl-links{font-size:15px;line-height:1.55;color:var(--muted)}
.tvl-links a{font-weight:700;color:var(--ink);text-decoration:underline;text-decoration-color:rgba(20,22,26,.3);text-underline-offset:3px}
.tvl-links a:hover{color:var(--accent)}

/* ---------- Plain two-column statement (heading left, paragraphs right) ---------- */
.tvl-prose{display:flex;flex-direction:column;gap:16px}
.tvl-prose p{font-size:18px;line-height:1.65;color:var(--body)}

/* ---------- Contact cards ---------- */
.tvl-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tvl-ccard{background:#fff;border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:10px}
.tvl-ccard h3{font-size:18px;font-weight:800;line-height:1.3}
.tvl-ccard p{font-size:15px;line-height:1.55;color:var(--body)}
.tvl-ccard a{font-weight:700;color:var(--accent)}

/* ---------- Book section: steps left, form right ---------- */
.tvl-book__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}

@media (max-width:1180px){
  .tvl-hh .tvl-h1{font-size:64px}
  .tvl-hh__grid{grid-template-columns:minmax(0,1fr);min-height:0}
  .tvl-hh__dark{min-height:420px}
  .tvl-req__grid,.tvl-dband__grid,.tvl-area__grid,.tvl-book__grid{grid-template-columns:minmax(0,1fr);gap:36px}
  .tvl-srail__grid{grid-template-columns:320px minmax(0,1fr)}
  .tvl-tiles--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tvl-cards{grid-template-columns:minmax(0,1fr)}
}

@media (max-width:767.98px){
  .tvl-hero--nophoto-m .tvl-hero__photos{display:none}

  .tvl-hh{padding-top:8px;padding-bottom:28px;gap:12px}
  .tvl-hh.tvl-in--edge{padding-inline:12px}
  .tvl-hh__card{border-radius:20px;padding:24px 20px;gap:20px}
  .tvl-hh .tvl-h1{font-size:48px;max-width:none;padding-right:52px}
  .tvl-hh__req{top:20px;right:18px}
  .tvl-hh__panel{min-height:0}
  .tvl-hh__panel p{font-size:17px}
  .tvl-hh__tab{min-height:40px;padding:0 14px;font-size:13px}
  .tvl-hh__tiles{height:200px;gap:12px}
  .tvl-ptile{border-radius:18px;padding:16px}
  .tvl-ptile__k{font-size:12px}
  .tvl-ptile__t{font-size:14px}
  .tvl-hh__dark{border-radius:20px;padding:24px 20px;min-height:360px}
  .tvl-hh__quote{font-size:16px}
  .tvl-hh__num{font-size:36px}
  .tvl-hh__foot{padding:0 8px}
  .tvl-hh__foot span{display:none}

  .tvl-req{padding-block:34px}
  .tvl-req .tvl-h2{font-size:40px}
  .tvl-req .tvl-lede{font-size:16px}
  .tvl-form{padding:20px;border-radius:18px;gap:16px}
  .tvl-form__title{font-size:28px}
  .tvl-form__row,.tvl-form__row--3{grid-template-columns:minmax(0,1fr)}
  .tvl-opt span{font-size:14px;padding:8px}
  .tvl-cal__grid{gap:4px}
  .tvl-cal__day{min-height:50px}

  .tvl-srail{padding:40px 0 36px}
  .tvl-srail__grid{display:flex;flex-direction:column;gap:20px}
  .tvl-srail__head{padding:0 var(--gut);border-right:0;gap:14px}
  .tvl-srail .tvl-rail{padding:0 var(--gut);gap:12px}
  .tvl-scard{flex-basis:260px;padding:0;gap:10px}
  .tvl-scard__img{height:280px}

  .tvl-dband{padding-block:44px}
  .tvl-dband .tvl-h2,.tvl-h2--xl{font-size:40px}
  .tvl-dband__body p,.tvl-lede--lg{font-size:16px}
  .tvl-dband .tvl-btns{flex-direction:column}
  .tvl-dband .tvl-btn{width:100%}
  .tvl-tiles--3{grid-template-columns:minmax(0,1fr)}
  .tvl-area .tvl-photo{height:240px}
  .tvl-area .tvl-btns{flex-direction:column}
  .tvl-area .tvl-btn{width:100%}
  .tvl-ptable>div{padding:14px 16px;gap:14px}
  .tvl-ptable dt{font-size:15px}
  .tvl-ptable dd{font-size:14px}
  .tvl-prose p{font-size:16px}
}

.tvl-form__group{display:flex;flex-direction:column;gap:16px}
.tvl-form legend small{font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px}
.tvl-cta__tag{font-size:15px;line-height:1.55;color:var(--pale-2)}
.tvl-form [data-when]{display:flex;flex-direction:column;gap:16px}

/* Layering fix (2026-09-25): the scrims are pseudo-elements, and ::before paints
   before the <img>, so it sat UNDER the photo. Explicit stacking: photo 0,
   scrims 1, text 2. */
.tvl-ptile img,.tvl-hh__dark>img{z-index:0}
.tvl-ptile::before,.tvl-ptile::after,.tvl-hh__dark::before,.tvl-hh__dark::after{z-index:1}
.tvl-ptile__k,.tvl-ptile__t,.tvl-hh__dark>*:not(img){z-index:2}

/* Phone: hero chips stay on one line and scroll sideways, like the trust strip */
@media (max-width:767.98px){
  .tvl-hero__foot .tvl-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-20px;padding-inline:20px}
  .tvl-hero__foot .tvl-chips::-webkit-scrollbar{display:none}
  .tvl-hero__foot .tvl-chip{flex:none;white-space:nowrap}
}
