/* Advanced Car Hire — staging rebuild.
   Bebas Neue display type, Manrope body, paper/rust/moss/sun palette. */
:root{
  /* Live-site palette (advancedcarhire.com), adopted 2026-10-24:
     white header/body, ink #212121, terracotta #b77a67 primary,
     deep rust #a46552 strong accent, dark brown #482d1f / #2b2119. */
  --paper:#ffffff; --paper2:#f4efe8; --ink:#212121; --muted:#646464;
  --line:rgba(33,33,33,.16); --rust:#b77a67; --rust2:#a46552; --moss:#482d1f;
  --sun:#d9a08c; --night:#2b2119; --cream:#f9f9f9;
  --display:"Bebas Neue",Impact,sans-serif; --body:"Manrope",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);line-height:1.6;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:4px}
.wrap{width:min(1240px,calc(100% - 48px));margin:auto}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.02;margin:0;letter-spacing:.01em}
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin:0 0 14px}
.lede{font-size:1.13rem;color:var(--muted);max-width:62ch}
section{padding:96px 0}
.section-head{max-width:760px;margin-bottom:48px}
.section-head h2{font-size:clamp(2.2rem,4.5vw,3.4rem)}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--rust);color:#fff;text-decoration:none;font-weight:800;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;padding:16px 28px;border:1px solid var(--rust);transition:background .2s,border-color .2s}
.btn:hover{background:var(--rust2);border-color:var(--rust2)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn-ghost:hover{background:rgba(255,255,255,.14);border-color:#fff}
.btn-dark{background:var(--night);border-color:var(--night)}
.btn-dark:hover{background:var(--moss);border-color:var(--moss)}

/* Header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;background:rgba(13,16,12,.86);backdrop-filter:blur(10px);color:var(--cream);border-bottom:1px solid rgba(247,242,232,.14)}
.site-header .inner{width:min(1240px,calc(100% - 48px));margin:auto;display:flex;align-items:center;gap:32px;padding:12px 0}
.site-header .brand{display:flex;align-items:center;flex:none;min-width:0}
.site-header .brand img{height:46px;width:auto;max-width:230px;object-fit:contain}
.wordmark{font-family:var(--display);font-size:1.45rem;letter-spacing:.06em;text-decoration:none;line-height:1;white-space:nowrap}
.wordmark span{color:var(--rust2)}
.wordmark small{display:block;font-family:var(--body);font-size:.58rem;font-weight:800;letter-spacing:.34em;color:rgba(247,242,232,.75);margin-top:3px}
.site-header nav{margin-left:auto;display:flex;align-items:center;gap:30px}
.site-header nav a{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--cream)}
.site-header nav a:hover,.site-header nav a[aria-current="page"]{color:var(--sun)}
.site-header .book{border:1px solid rgba(247,242,232,.7);padding:10px 18px}
.site-header .book:hover{background:var(--rust);border-color:var(--rust);color:#fff}
@media(max-width:820px){.site-header .inner nav a:not(.book){display:none}}

/* Hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;color:#fff;padding:132px 0 72px;background:var(--night)}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,9,.42) 0%,rgba(10,12,9,.05) 38%,rgba(10,12,9,.78) 100%)}
.hero .wrap{position:relative;z-index:2}
.hero .eyebrow{color:var(--sun)}
.hero h1{font-size:clamp(2.9rem,6.2vw,5.3rem);max-width:12ch}
.hero p{font-size:1.15rem;max-width:56ch;color:rgba(255,255,255,.88)}
.hero .cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:32px}
.hero .badges{display:flex;gap:10px 26px;flex-wrap:wrap;margin-top:38px;padding-top:24px;border-top:1px solid rgba(255,255,255,.28);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.page-hero{position:relative;color:#fff;padding:160px 0 76px;background:var(--night);overflow:hidden}
.page-hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,11,9,.14),rgba(14,11,9,.44))}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{font-size:clamp(2.8rem,6vw,4.8rem)}
.page-hero .eyebrow{color:var(--sun)}
.page-hero p{max-width:58ch;color:rgba(255,255,255,.88);font-size:1.08rem}

/* Trust strip */
.trust{background:var(--night);color:var(--cream);padding:0}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.trust .cell{padding:34px 28px;border-left:1px solid rgba(247,242,232,.16)}
.trust .cell:first-child{border-left:0}
.trust .num{font-family:var(--display);font-size:2.3rem;color:var(--sun);line-height:1}
.trust .lbl{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(247,242,232,.78);margin-top:8px}
@media(max-width:820px){.trust .wrap{grid-template-columns:1fr 1fr}.trust .cell{border-top:1px solid rgba(247,242,232,.16)}}

/* Cards & grids */
.grid{display:grid;gap:26px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:960px){.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column}
.card .ph{aspect-ratio:4/3;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .ph img{transform:scale(1.04)}
.card .bd{padding:26px 26px 30px;display:flex;flex-direction:column;gap:10px;flex:1}
.card h3{font-size:1.55rem}
.card p{margin:0;color:var(--muted);font-size:.96rem}
.specs{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.specs span b{color:var(--rust)}
.card .more{font-weight:800;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rust);text-decoration:none;margin-top:14px}
.feature{background:transparent;border:1px solid var(--line);padding:30px 28px}
.feature h3{font-size:1.4rem;margin-bottom:8px}
.feature p{margin:0;color:var(--muted);font-size:.95rem}
.feature .n{font-family:var(--display);color:var(--rust);font-size:1.1rem;letter-spacing:.15em}

/* Split bands */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.split .img{aspect-ratio:4/3.4;overflow:hidden}
.split .img img{width:100%;height:100%;object-fit:cover}
.band-night{background:var(--paper2);color:var(--ink)}
.band-night .lede,.band-night p{color:var(--muted)}
.band-paper2{background:var(--paper2)}
.band-moss{background:var(--moss);color:var(--cream)}
.band-moss .eyebrow{color:var(--sun)}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:900px){.steps{grid-template-columns:1fr}}
.step{border-top:3px solid var(--rust);padding-top:20px}
.step .n{font-family:var(--display);font-size:2.6rem;color:var(--rust);line-height:1}
.step h3{font-size:1.5rem;margin:10px 0 8px}
.step p{margin:0;color:var(--muted);font-size:.96rem}

/* FAQ */
.faq details{border-top:1px solid var(--line);padding:20px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-weight:800;font-size:1.02rem;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--rust);font-family:var(--display);font-size:1.4rem;line-height:1}
.faq details[open ] summary::after{content:"–"}
.faq p{color:var(--muted);max-width:70ch;margin:10px 0 0}

/* Rate tables */
.rate-block{background:#fff;border:1px solid var(--line);margin-bottom:44px}
.rate-block>header{padding:30px 32px 6px}
.rate-block>header h3{font-size:2rem}
.rate-block>header p{margin:4px 0 0;color:var(--muted)}
.season{padding:18px 32px 30px}
.season h4{font-family:var(--body);font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--rust);margin:14px 0 10px}
.season h4 span{color:var(--muted);letter-spacing:.04em;font-weight:700}
table.rates{width:100%;border-collapse:collapse;font-size:.95rem}
table.rates th,table.rates td{padding:11px 14px;text-align:right;border-bottom:1px solid var(--line)}
table.rates th:first-child,table.rates td:first-child{text-align:left}
table.rates thead th{background:var(--night);color:var(--cream);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;border-bottom:0}
table.rates tbody tr:nth-child(even){background:rgba(23,26,20,.035)}
table.rates td.price{font-weight:800}
.table-scroll{overflow-x:auto}
.rate-note{padding:0 32px 26px;color:var(--muted);font-size:.86rem}
.legend{display:flex;gap:12px 30px;flex-wrap:wrap;background:var(--night);color:var(--cream);padding:26px 30px;margin-bottom:44px}
.legend div b{font-family:var(--display);font-weight:400;letter-spacing:.08em;color:var(--sun);display:block;font-size:1.15rem}
.legend div{font-size:.9rem}
.terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 44px}
@media(max-width:900px){.terms-grid{grid-template-columns:1fr}}
.terms-grid h3{font-size:1.45rem;margin-bottom:8px}
.terms-grid ul{margin:0;padding-left:18px;color:var(--muted);font-size:.95rem}
.terms-grid li{margin-bottom:6px}

/* Footer */
.site-footer{background:var(--night);color:var(--cream);padding:76px 0 0;margin-top:0}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:56px}
@media(max-width:900px){.site-footer .cols{grid-template-columns:1fr 1fr}}
.site-footer h4{font-size:.78rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--cream);margin:0 0 16px}
.site-footer p,.site-footer a{color:rgba(247,242,232,.8);font-size:.94rem}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:9px}
.logo-plate{background:var(--cream);display:inline-block;padding:14px 18px;margin-bottom:18px}
.logo-plate img{width:190px;height:auto}
.site-footer .base{border-top:1px solid rgba(247,242,232,.16);padding:22px 0;font-size:.84rem;color:rgba(247,242,232,.6);display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between}
.cta-band{background:var(--rust);color:#fff;padding:70px 0}
.cta-band h2{font-size:clamp(2.2rem,5vw,3.6rem)}
.cta-band .wrap{display:flex;align-items:center;gap:36px;flex-wrap:wrap;justify-content:space-between}
.cta-band p{margin:6px 0 0;color:rgba(255,255,255,.85)}
.cta-band .btn{background:#fff;color:var(--rust);border-color:#fff}
.cta-band .btn:hover{background:var(--cream)}

/* === 2026-10-24 full rebuild additions === */
/* Ask AI strip */
.askai{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0}
.askai h2{font-size:clamp(1.5rem,2.6vw,2.1rem);text-align:center;letter-spacing:.04em;max-width:900px;margin:0 auto}
.askai .sub{text-align:center;color:var(--muted);margin:14px auto 0;max-width:60ch}
.ai-chips{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:34px}
.ai-chip{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:.8rem;letter-spacing:.06em;color:var(--ink);transition:transform .2s}
.ai-chip:hover{transform:translateY(-3px)}
.ai-chip .ic{width:64px;height:64px;background:#fff;border:1px solid var(--line);border-radius:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(23,26,20,.08)}
.ai-chip svg{width:34px;height:34px}
/* Floating widgets */
.float-stack{position:fixed;right:20px;bottom:20px;z-index:90;display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.wa-float{display:flex;align-items:center;gap:10px;background:#25d366;color:#fff;text-decoration:none;font-weight:800;font-size:.85rem;padding:13px 18px;border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.28)}
.wa-float svg{width:22px;height:22px;flex:none}
.ai-float{display:flex;align-items:center;gap:10px;background:var(--night);color:var(--cream);border:1px solid rgba(247,242,232,.25);font-family:var(--body);font-weight:800;font-size:.85rem;padding:13px 18px;border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.28);cursor:pointer}
.ai-float .dot{width:9px;height:9px;border-radius:50%;background:var(--sun)}
.ai-panel{position:fixed;right:20px;bottom:138px;z-index:91;width:min(370px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px rgba(0,0,0,.3);display:none;flex-direction:column;max-height:min(560px,70vh)}
.ai-panel.open{display:flex}
.ai-panel header{background:var(--night);color:var(--cream);padding:16px 18px}
.ai-panel header b{font-family:var(--display);font-weight:400;letter-spacing:.06em;font-size:1.15rem;display:block}
.ai-panel header span{font-size:.76rem;color:rgba(247,242,232,.7)}
.ai-panel .msgs{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;font-size:.92rem}
.ai-panel .msg{padding:10px 13px;border-radius:12px;max-width:92%}
.ai-panel .msg.bot{background:var(--paper);align-self:flex-start}
.ai-panel .msg.user{background:var(--moss);color:#fff;align-self:flex-end}
.ai-panel .msg a{color:var(--rust);font-weight:700}
.ai-panel form{display:flex;border-top:1px solid var(--line)}
.ai-panel input{flex:1;border:0;padding:13px 14px;font-family:var(--body);font-size:.92rem;outline:none}
.ai-panel button{background:var(--rust);color:#fff;border:0;padding:0 18px;font-weight:800;cursor:pointer}
/* Stay in the loop */
.loop-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.loop-form input[type=email],.loop-form input[type=text]{flex:1;min-width:160px;padding:13px 15px;border:1px solid var(--line);font-family:var(--body);font-size:.95rem;background:#fff;color:var(--ink)}
.loop-form textarea{flex:1 1 100%;padding:13px 15px;border:1px solid var(--line);font-family:var(--body);font-size:.95rem;background:#fff;color:var(--ink)}
.loop-form select{flex:1;min-width:160px;padding:13px 15px;border:1px solid var(--line);font-family:var(--body);font-size:.95rem;background:#fff;color:var(--ink)}
/* Quote (inquiry) form */
.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.qf-field{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:700;color:var(--ink)}
.qf-field input,.qf-field select,.qf-field textarea{padding:12px 14px;border:1px solid var(--line);font-family:var(--body);font-size:.95rem;font-weight:400;background:#fff;color:var(--ink);width:100%}
.qf-field legend{font-size:.88rem;font-weight:700;padding:0}
.qf-radio{border:0;margin:0;padding:2px 0 0;display:flex;flex-direction:row;gap:20px;align-items:center;flex-wrap:wrap}
.qf-radio label{font-weight:600;display:flex;gap:7px;align-items:center}
.qf-radio legend{float:left;margin-right:20px}
.qf-wide{grid-column:1/-1}
.qf-optin{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:.9rem;font-weight:600;color:var(--slate);cursor:pointer}
.qf-optin input{margin-top:3px;width:17px;height:17px;accent-color:var(--rust);flex:none}
.quote-form button{justify-self:start}
.quote-form .loop-msg{grid-column:1/-1}
@media (max-width:680px){.quote-form{grid-template-columns:1fr}}
.loop-form button{background:var(--rust);color:#fff;border:1px solid var(--rust);padding:13px 22px;font-weight:800;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.loop-form button:hover{background:var(--rust2)}
.loop-msg{font-size:.88rem;margin-top:10px}
.site-footer .loop-form input[type=email],.site-footer .loop-form input[type=text]{background:rgba(247,242,232,.08);border-color:rgba(247,242,232,.3);color:var(--cream)}
/* Footer extras */
.partner-logos{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.partner-logos a{display:inline-flex;background:var(--cream);padding:8px 12px}
.partner-logos svg{height:34px;width:auto;max-width:130px}
.socials{display:flex;gap:10px;margin-top:16px}
.socials a{width:38px;height:38px;border:1px solid rgba(247,242,232,.35);border-radius:50%;display:flex;align-items:center;justify-content:center}
.socials a:hover{background:var(--rust);border-color:var(--rust)}
.socials svg{width:18px;height:18px;fill:var(--cream)}
/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.gallery-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.gallery-grid{grid-template-columns:1fr}}
.gallery-grid figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery-grid figure:hover img{transform:scale(1.05)}
/* Reviews */
.review-card{background:#fff;border:1px solid var(--line);padding:28px}
.review-card .stars{color:var(--sun);letter-spacing:3px;font-size:1.05rem}
.review-card blockquote{margin:12px 0;font-size:1rem;color:var(--ink)}
.review-card figcaption{color:var(--muted);font-size:.86rem;font-weight:700}
/* Blog / prose */
.prose{max-width:760px}
.prose h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin:44px 0 14px}
.prose h3{font-size:1.5rem;margin:32px 0 10px}
.prose p{color:#33382f;margin:0 0 16px}
.prose ul,.prose ol{color:#33382f;margin:0 0 16px;padding-left:22px}
.prose li{margin-bottom:7px}
.prose img{margin:26px 0}
.post-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column}
.post-card .ph{aspect-ratio:16/9;overflow:hidden}
.post-card .ph img{width:100%;height:100%;object-fit:cover}
.post-card .bd{padding:24px;display:flex;flex-direction:column;gap:9px;flex:1}
.post-card h3{font-size:1.45rem}
.post-card h3 a{text-decoration:none}
.post-card p{margin:0;color:var(--muted);font-size:.94rem}
.post-card .more{font-weight:800;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rust);text-decoration:none;margin-top:auto;padding-top:10px}
/* Map */
.map-embed{border:1px solid var(--line);line-height:0}
.map-embed iframe{width:100%;height:420px;border:0}
/* Booking */
.booking-frame{border:1px solid var(--line);background:#fff;line-height:0}
.booking-frame iframe{width:100%;height:980px;border:0}
@media(max-width:700px){.booking-frame iframe{height:1180px}}
/* Misc */
.chip-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.chip{border:1px solid var(--line);padding:8px 14px;font-size:.8rem;font-weight:700;letter-spacing:.05em;background:#fff}
.notice{background:#fff;border-left:4px solid var(--sun);padding:18px 22px;color:var(--muted);font-size:.95rem}
.video-embed{aspect-ratio:16/9;line-height:0}
.video-embed iframe{width:100%;height:100%;border:0}

/* ---- Booking embed (HQ Rentals public flow) ---- */
.booking-frame{background:#fff;border:1px solid var(--line);line-height:0}
.booking-frame iframe{width:100%;height:1020px;border:0;display:block}
@media(max-width:720px){.booking-frame iframe{height:880px}}

/* ---- Vehicle cards, live-site design (4x4 variants A and B) ---- */
.veh-grid{display:grid;grid-template-columns:1fr;gap:26px}
@media(min-width:700px){.veh-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1200px){.veh-grid{grid-template-columns:repeat(4,1fr)}}
.veh-card{background:#fff;border:1px solid rgba(23,26,20,.08);border-radius:16px;box-shadow:0 12px 32px rgba(23,26,20,.07);display:flex;flex-direction:column;padding:32px 26px 28px;text-align:center}
.veh-card h3{font-family:var(--body);font-weight:800;font-size:1.28rem;line-height:1.3;color:#a46552;letter-spacing:0}
.veh-price{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-top:18px;color:var(--ink)}
.veh-price .from{font-style:italic;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase}
.veh-price .amt{font-weight:800;font-size:1.65rem}
.veh-price .per{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase}
.veh-card hr{width:58%;margin:20px auto 18px;border:0;border-top:1px solid #d9a88f}
.veh-card .desc{color:#3d4139;font-size:.94rem;line-height:1.55;text-align:justify;margin:0}
.veh-media{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-top:10px}
.veh-media img{width:100%;height:100%;object-fit:contain}
.veh-media.photo img{object-fit:cover;border-radius:6px}
.veh-specs{display:grid;grid-template-columns:1fr 1.25fr 1fr;margin-top:auto;padding-top:24px}
.veh-specs>div{padding:10px 4px;text-align:center}
.veh-specs>div small{display:block;font-size:.54rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;opacity:.9;margin-bottom:3px}
.veh-specs>div b{display:block;font-size:.76rem;letter-spacing:.03em;text-transform:uppercase;line-height:1.3}
.veh-specs .c1,.veh-specs .c3{background:#b77a68;color:#fff}
.veh-specs .c2{background:#f2e9d8;color:var(--ink)}
.veh-select{margin-top:22px;background:#b77a68;color:#fff;border-radius:999px;padding:15px 20px;font-weight:700;font-size:.95rem;text-decoration:none;display:block;transition:background .2s}
.veh-select:hover{background:var(--rust)}
.veh-note{grid-column:1/-1;background:#fff;border:1px solid rgba(23,26,20,.08);border-radius:16px;padding:22px 26px;color:#3d4139;font-size:.95rem}
.veh-note b{color:#a46552}

/* ---- Live Google reviews ---- */
.review-card .who{display:flex;gap:12px;align-items:center;margin-bottom:4px}
.review-card .avatar{flex:none;width:42px;height:42px;border-radius:50%;background:var(--moss);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.05rem;overflow:hidden}
.review-card .avatar img{width:100%;height:100%;object-fit:cover}
.review-card .who b{display:block;font-size:.95rem;line-height:1.25}
.review-card .who span{color:var(--muted);font-size:.8rem}
.g-source{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* ---- Stage 6: live-site chrome, homepage components ---- */
.site-header{background:#ffffff;color:var(--ink);border-bottom:1px solid rgba(33,33,33,.1);box-shadow:0 2px 18px rgba(33,33,33,.05);backdrop-filter:none}
.site-header nav a{color:var(--ink)}
.site-header nav a:hover,.site-header nav a[aria-current="page"]{color:var(--rust2)}
.site-header .book{background:var(--rust);border:1px solid var(--rust);color:#fff;border-radius:999px}
.site-header .book:hover{background:var(--rust2);border-color:var(--rust2);color:#fff}
.btn-white{background:#fff;color:var(--rust2);border-color:#fff}
.btn-white:hover{background:var(--cream);color:var(--rust2)}
.logo-plate{border-radius:12px}
.partner-logos{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.partner-logos a{background:#fff;border-radius:10px;padding:8px 14px;display:inline-flex;align-items:center}
.partner-logos img{height:34px;width:auto;display:block}
.rep-strip{background:#fff;border-bottom:1px solid var(--line);padding:28px 0}
.rep-strip .wrap{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}
.rep{display:flex;align-items:center;gap:14px;padding:12px 22px;border:1px solid var(--line);border-radius:14px;text-decoration:none;background:#fff}
.rep:hover{border-color:var(--rust)}
.rep .stars{color:#f6b500;letter-spacing:2px;font-size:1.05rem}
.rep b{font-size:1rem;display:block;line-height:1.25}
.rep small{display:block;color:var(--muted);font-weight:600;font-size:.78rem}
.fleet-home{display:grid;grid-template-columns:1fr;gap:26px}
@media(min-width:860px){.fleet-home{grid-template-columns:1fr 1fr}}
.ets-card{grid-column:1/-1}
@media(min-width:860px){.ets-card{display:grid;grid-template-columns:1fr 1.25fr}}
.ets-card .ph{min-height:240px}
.gallery-strip{display:flex;gap:14px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.gallery-strip figure{flex:0 0 auto;width:300px;height:210px;margin:0;border-radius:12px;overflow:hidden;scroll-snap-align:start}
.gallery-strip img{width:100%;height:100%;object-fit:cover}
.ai-logos{display:flex;gap:42px;flex-wrap:wrap;justify-content:center;margin-top:32px}
.ai-logos .ai-logo{display:flex;flex-direction:column;align-items:center;gap:9px;font-weight:700;font-size:.82rem;color:var(--ink)}
.ai-logos .ai-logo svg{height:32px;width:32px}
.ai-panel header{position:relative;padding-right:46px}
.ai-close{position:absolute;top:10px;right:12px;background:transparent;border:0;color:var(--cream);font-size:1.35rem;line-height:1;cursor:pointer;padding:6px 8px;border-radius:8px}
.ai-close:hover{background:rgba(255,255,255,.14)}


/* ==== Stage 7 (round-2 review) ==== */
/* C12 Services and Pricing dropdown */
.site-header nav .has-drop{position:relative;display:inline-flex}
.site-header nav .drop{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%,6px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 50px -18px rgba(33,25,18,.35);padding:8px;min-width:228px;opacity:0;pointer-events:none;transition:.18s;z-index:60}
.site-header nav .has-drop:hover .drop,.site-header nav .has-drop:focus-within .drop{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.site-header nav .drop a{display:block;padding:10px 14px;border-radius:9px;color:var(--ink);font-weight:600;white-space:nowrap}
.site-header nav .drop a:hover{background:var(--paper2);color:var(--rust2)}
@media(max-width:900px){.site-header nav .drop{display:none}}
/* E21 cover pills */
.pill{display:inline-block;font-family:'Archivo',sans-serif;font-weight:700;font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;padding:3px 10px;border-radius:999px;vertical-align:middle;margin-left:9px}
.pill-incl{background:#e9f4e3;color:#2e6b1e;border:1px solid #bcd8b2}
.pill-rec{background:var(--rust2);color:#fff;border:1px solid var(--rust2)}
/* F23 WhatsApp popup card */
button.wa-float{border:0;cursor:pointer;font:inherit}
.wa-card{position:fixed;right:22px;bottom:104px;width:min(320px,calc(100vw - 32px));background:#fff;border-radius:18px;box-shadow:0 30px 60px -18px rgba(20,16,12,.45);padding:18px;z-index:97;display:none}
.wa-card.open{display:block}
.wa-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.wa-head img{height:30px;width:auto}
.wa-head strong{font-family:'Archivo',sans-serif;font-size:1rem;color:var(--ink)}
.wa-x{margin-left:auto;background:none;border:0;font-size:1.3rem;line-height:1;color:var(--muted);cursor:pointer}
.wa-card p{color:var(--muted);font-size:.94rem;margin:0 0 14px}
.wa-start{display:block;text-align:center;background:#25d366;color:#fff;font-family:'Archivo',sans-serif;font-weight:700;padding:12px;border-radius:999px}
.wa-start:hover{background:#1fb857;color:#fff}
/* D16 offers ribbon */
.ribbon{background:var(--rust2);color:#fff;overflow:hidden;white-space:nowrap}
.ribbon .track{display:inline-block;padding:9px 0;font-family:'Archivo',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;animation:ribmove 36s linear infinite}
@keyframes ribmove{to{transform:translateX(-50%)}}
/* H31 reputation strip v2 */
.rep-strip{padding:26px 0}
.rep-items{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.rep-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 22px;box-shadow:0 14px 30px -22px rgba(33,25,18,.35)}
.rep-item svg{width:30px;height:30px;flex:none}
.rep-item .rt{line-height:1.25}
.rep-item .rt b{font-family:'Archivo',sans-serif;font-size:1rem;color:var(--ink);display:block}
.rep-item .rt span{font-size:.85rem;color:var(--muted)}
.rep-item .stars{color:#f6a609;font-size:1.02rem;letter-spacing:.14em}
/* H28/H29 footer family + loop row + spacing */
.site-footer{padding-top:84px}
.site-footer .cols{gap:52px;padding-bottom:14px}
.foot-family{font-size:.92rem;color:rgba(247,242,232,.75)}
.foot-family a{color:var(--cream);text-decoration:underline;text-underline-offset:3px}
.loop-row{padding:30px 0 34px;display:flex;justify-content:flex-start}
.loop-box{max-width:480px}
.loop-box h4{margin:0 0 8px}
.loop-box p{margin:0 0 12px;color:rgba(247,242,232,.7);font-size:.94rem}
.note-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:1000px){.note-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.note-cards{grid-template-columns:1fr}}

details.tc{margin-top:20px;border:1px solid var(--line);border-radius:14px;padding:16px 20px;background:#fff}
details.tc summary{font-family:'Archivo',sans-serif;font-weight:700;cursor:pointer;color:var(--ink)}
details.tc .prose{margin-top:12px}

/* ==== Stage 8 (round-3 review, 2026-10-27) ==== */
/* A1/A2 header: compact single-line quote button + hamburger Menu */
.site-header .book{white-space:nowrap}
.menu-btn{display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--ink);border:1px solid rgba(33,33,33,.45);padding:10px 14px;font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;flex:none}
.menu-btn:hover{border-color:var(--rust2);color:var(--rust2)}
.menu-bars{display:inline-flex;flex-direction:column;gap:3.5px}
.menu-bars i{display:block;width:17px;height:2px;background:currentColor}
.menu-panel{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 30px 50px -22px rgba(33,25,18,.35);z-index:55}
.menu-panel[hidden]{display:none}
.menu-inner{width:min(1240px,calc(100% - 48px));margin:auto;padding:26px 0 30px;display:grid;grid-template-columns:1.6fr 1fr;gap:34px}
.menu-links{display:grid;grid-template-columns:1fr 1fr;gap:4px 26px;align-content:start}
.menu-links a{padding:9px 2px;font-weight:700;font-size:.95rem;text-decoration:none;color:var(--ink);border-bottom:1px solid rgba(33,33,33,.07)}
.menu-links a:hover{color:var(--rust2)}
.menu-prefs{display:flex;flex-direction:column;gap:14px;align-content:start}
.menu-prefs label{display:flex;flex-direction:column;gap:6px;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.menu-prefs select{padding:11px 12px;border:1px solid var(--line);font-family:var(--body);font-size:.95rem;font-weight:600;background:#fff;color:var(--ink);text-transform:none;letter-spacing:0}
.menu-note{margin:2px 0 0;font-size:.84rem;color:var(--muted)}
@media(max-width:1100px){.site-header .inner nav a:not(.book){display:none}.site-header .inner nav .has-drop{display:none}}
@media(max-width:820px){
  .site-header .inner{width:calc(100% - 24px);gap:10px;padding:10px 0}
  .site-header .brand img{height:32px;max-width:128px}
  .site-header nav{gap:10px}
  .site-header .book{padding:9px 12px;font-size:.66rem;letter-spacing:.05em}
  .menu-btn{padding:9px 11px;font-size:.68rem;gap:7px}
  .menu-inner{grid-template-columns:1fr;width:calc(100% - 32px);padding:20px 0 24px;gap:22px}
}
/* A3 floating widgets: WhatsApp icon only; Ask AI keeps its own width */
.wa-float{width:58px;height:58px;padding:0;border-radius:50%;justify-content:center}
.wa-float svg{width:29px;height:29px}
.wa-card{bottom:158px}
/* B hero: live-site format — centred, stacked CTAs, checklist, rating, socials */
.hero{align-items:center;text-align:center;padding:148px 0 84px}
.hero .wrap{display:flex;flex-direction:column;align-items:center}
.hero .eyebrow{color:#fff}
.hero h1{max-width:21ch;margin:0 auto}
.hero-checks{font-weight:700;font-size:1.03rem;line-height:1.55;color:#fff;max-width:62ch;margin:24px auto 0}
.hero .cta-col{display:flex;flex-direction:column;gap:14px;width:min(330px,100%);margin-top:34px}
.hero .cta-col .btn{width:100%;justify-content:center;border-radius:999px;padding:17px 28px}
.hero-rating{margin:26px 0 0;font-weight:600;font-size:1rem;color:#fff}
.hero-socials{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;margin-top:24px}
.hero-socials a{display:inline-flex;opacity:.95}
.hero-socials a:hover{opacity:1;transform:translateY(-2px)}
.hero-socials svg{width:25px;height:25px;fill:#fff}
.page-hero .eyebrow{color:#fff}
@media(max-width:640px){.hero{padding:118px 0 62px}.hero-checks{font-size:.94rem}.hero-socials{gap:19px}}
/* C5 review widgets: hidden on mobile, exactly equal width on desktop */
.rep-items{width:100%}
.rep-item{flex:1 1 0;min-width:0}
@media(max-width:820px){.rep-strip{display:none}}
/* E11 expert CTA band: equal-width buttons */
.cta-band .cta-actions{display:flex;gap:14px;flex-wrap:wrap}
.cta-band .cta-actions .btn{width:252px;justify-content:center}
@media(max-width:560px){.cta-band .cta-actions{width:100%}.cta-band .cta-actions .btn{width:100%}}
/* F12 tighter mobile section spacing */
@media(max-width:820px){
  section{padding:54px 0}
  .section-head{margin-bottom:32px}
  .askai{padding:44px 0}
  .cta-band{padding:48px 0}
  .site-footer{padding-top:56px}
  .trust .cell{padding:24px 18px}
}
/* F13 story without photo */
.story-solo{max-width:820px}
/* F14 camping headline: two balanced lines on mobile */
@media(max-width:640px){.camp-h2 .br2{display:block}}
/* H18 AI logo strip: 3 over 2 on mobile (Grok beside Perplexity on row two) */
@media(max-width:640px){
  .ai-logos{gap:26px 6px}
  .ai-logos .ai-logo{flex:0 0 calc(33.333% - 6px)}
}

/* ==== Stage 9 (round-2 review, 2026-10-27) ==== */
/* 1 hero: two lines only, smaller text, moved up, larger hero overall */
.hero{min-height:97vh;padding:116px 0 84px}
.hero h1{font-size:clamp(2.35rem,5vw,4.1rem);max-width:26ch}
.hero-line{display:block}
.hero-checks{display:flex;flex-direction:column;align-items:center;gap:9px}
.hero-family{font-size:.76rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.92)}
.hero-rest{font-size:1rem;font-weight:700;line-height:1.55}
.hero p{font-size:1.02rem}
@media(max-width:640px){.hero{padding:102px 0 62px}.hero h1{font-size:2.25rem}.hero-rest{font-size:.92rem}}
/* 2 header: full live nav fits on one row, social icons */
.site-header nav{gap:17px}
.site-header nav a{font-size:.72rem;letter-spacing:.05em;white-space:nowrap}
.nav-socials{display:inline-flex;gap:11px;align-items:center}
.nav-socials a{display:inline-flex;line-height:0}
.nav-socials svg{width:17px;height:17px;fill:var(--ink)}
.nav-socials a:hover svg{fill:var(--rust2)}
@media(max-width:1280px){.site-header .inner nav a:not(.book){display:none}.site-header .inner nav .has-drop{display:none}.nav-socials{display:none}}
.menu-socials{display:flex;gap:14px;margin-top:4px}
.menu-socials a{display:inline-flex;line-height:0}
.menu-socials svg{width:21px;height:21px;fill:var(--ink)}
.menu-socials a:hover svg{fill:var(--rust2)}
/* 3 menu button: hamburger stripes only, no word, no border */
.menu-btn{border:0;background:transparent;padding:10px 8px}
.menu-btn:hover{border:0;color:var(--rust2);background:transparent}
/* 4 stats block: black background */
.trust{background:#000}
.trust .cell{border-left-color:rgba(255,255,255,.16)}
/* 5 Ask AI panel: redesign, centred close, consistent type size */
.ai-panel{border-radius:18px;overflow:hidden;font-size:.95rem;bottom:150px}
.ai-panel header{text-align:center;padding:18px 52px 16px}
.ai-panel header b{font-size:1.05rem;letter-spacing:.05em}
.ai-panel header span{font-size:.95rem;line-height:1.45;display:block;margin-top:3px}
.ai-panel .msgs{font-size:.95rem;line-height:1.55;gap:12px;padding:18px}
.ai-panel input{font-size:.95rem;padding:14px}
.ai-panel form button{font-size:.95rem;padding:0 20px}
.ai-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;top:50%;right:10px;transform:translateY(-50%);padding:0;font-size:1.3rem}
/* 6 WhatsApp popup: logo only in the head row */
.wa-head img{height:32px}
.wa-card{bottom:170px}
/* 7 quote form: collection and return date fields no longer stretch wide */
.quote-form .qf-field input[type="date"]{max-width:270px}
.quote-form .qf-field input[type="number"]{max-width:200px}
@media(max-width:680px){.quote-form .qf-field input[type="date"],.quote-form .qf-field input[type="number"]{max-width:100%}}
/* 8 matching section heading sizes */
.h2-equal{font-size:clamp(2rem,4vw,3rem)!important}
/* 9 Stay in the Loop: Sign Up button full width, section and footer */
.loop-form button.loop-signup{flex:1 1 100%;width:100%;text-align:center;justify-content:center}
.loop-form .loop-msg{flex:1 1 100%}
/* 11 pressed state for quote and primary buttons: deep brown from the palette */
.btn:active{background:var(--moss);border-color:var(--moss);color:#fff}
.btn-white:active,.cta-band .btn:active{background:#fff;border-color:#fff;color:var(--rust2)}
.loop-form button:active,.veh-select:active{background:var(--moss);border-color:var(--moss);color:#fff}
.site-header .book:active{background:var(--moss);border-color:var(--moss);color:#fff}
.menu-inner>*{min-width:0}
.menu-links{min-width:0}
.menu-links a{white-space:normal;overflow-wrap:break-word}
.menu-panel .menu-links{display:grid;grid-template-columns:1fr 1fr}
@media(max-width:820px){.menu-panel .menu-links{grid-template-columns:1fr}}

/* ==== Stage 10 (round-3 review, 2026-10-27) ==== */
/* 16 general rule: balanced headings, no orphan words */
h1,h2,h3{text-wrap:balance}
/* 1 header + hero proportions: slimmer white bar, hero sized like the live site */
.site-header .inner{padding:9px 0}
.site-header .brand img{height:44px}
.hero{min-height:88vh;padding:104px 0 72px}
.hero h1{font-size:clamp(2.2rem,4.6vw,3.8rem)}
@media(max-width:640px){.hero{padding:94px 0 56px}}
/* 6 kill the bright orange (#c85b33) in every interactive state: palette only.
   Hovers: terracotta --rust for text/links, deep brown --moss for filled buttons. */
.btn:hover{background:var(--moss);border-color:var(--moss);color:#fff}
.btn-white{color:var(--rust)}
.btn-white:hover{background:var(--cream);color:var(--rust)}
.site-header nav a:hover,.site-header nav a[aria-current="page"]{color:var(--rust)}
.site-header .book:hover{background:var(--moss);border-color:var(--moss);color:#fff}
.site-header nav .drop a:hover{color:var(--rust)}
.menu-btn:hover{color:var(--rust)}
.menu-links a:hover{color:var(--rust)}
.loop-form button:hover{background:var(--moss)}
.ai-float .dot{background:var(--rust)}
a:focus-visible,button:focus-visible{outline:2px solid var(--rust);outline-offset:2px}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus,
.loop-form input:focus{border-color:var(--rust)}
/* 7 stats band: numbers in the site's light colour on dark, no orange */
.trust .num{color:#f7f2e8}
/* 8a dropdown bridge: no dead gap between nav item and panel */
.site-header nav .drop{top:100%;margin-top:10px}
.site-header nav .drop::before{content:"";position:absolute;left:-10px;right:-10px;top:-12px;height:12px}
/* 9/10 one-line section headings on desktop */
.section-head.head-wide{max-width:1240px}
@media(min-width:821px){.head-wide h2{white-space:nowrap}}
/* 11 fleet card names as links */
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--rust)}
article.card[id]{scroll-margin-top:104px}
/* 12 quote form: uniform column widths (lifts the stage-9 caps on date/number fields) */
.quote-form .qf-field input[type="date"],.quote-form .qf-field input[type="number"]{max-width:none}
/* 13 tightened gaps around the From the Road section */
.pad-b-half{padding-bottom:48px}
.pad-t-half{padding-top:48px}
.pad-half{padding-top:48px;padding-bottom:48px}
@media(max-width:820px){.pad-b-half{padding-bottom:27px}.pad-t-half{padding-top:27px}.pad-half{padding-top:27px;padding-bottom:27px}}
/* 14 camping split: photo column stretches the full height of the text column */
.split-stretch{align-items:stretch}
.split .img-stack{aspect-ratio:auto;display:flex;flex-direction:column;gap:14px}
.split .img-stack img{flex:1 1 0;min-height:0;width:100%;object-fit:cover}
@media(max-width:900px){.split .img-stack img{flex:none;height:auto;aspect-ratio:4/3}}
/* 16 footer Visit us: own full-width row, address on one line */
.visit-row{padding:26px 0 6px}
.visit-row h4{margin-bottom:10px}
.visit-addr{white-space:nowrap;margin:0}
.visit-hours{margin:4px 0 0}
@media(max-width:820px){.visit-addr{white-space:normal}}
/* 17 Ask AI strip logos are links now */
.ai-logos a.ai-logo{text-decoration:none;transition:transform .2s}
.ai-logos a.ai-logo:hover{transform:translateY(-3px)}
.ai-note{text-align:center;color:var(--muted);margin:18px auto 0;font-size:.92rem;max-width:60ch}
/* 4 floating buttons side by side on desktop: Ask AI left, WhatsApp right */
@media(min-width:821px){
  .float-stack{flex-direction:row;align-items:center}
  .float-stack .ai-float{order:1}
  .float-stack .wa-float{order:2}
  .wa-card{bottom:96px}
  .ai-panel{bottom:96px}
}
/* Stage 10 fix: keep the compact mobile header (stage-10 desktop sizing must not leak) */
@media(max-width:820px){
  .site-header .inner{padding:10px 0}
  .site-header .brand img{height:32px}
}

/* Outline button (partner cross-links) */
.btn-outline{background:transparent;color:var(--night);border-color:var(--night);text-wrap:balance;text-align:center}
.btn-outline:hover{background:var(--night);border-color:var(--night);color:#fff}
.btn-outline:active{background:var(--moss);border-color:var(--moss);color:#fff}

/* ==== Stage 11 (review, 2026-10-31): header ~1.3x on wide screens, stepped down at mid widths, hamburger under 1250px; menu simplified in site.js ==== */
@media(min-width:1401px){
  .site-header .inner{width:min(1600px,calc(100% - 48px));padding:15px 0;gap:40px}
  .site-header .brand img{height:60px;max-width:300px}
  .site-header nav{gap:22px}
  .site-header nav a{font-size:.94rem;letter-spacing:.06em}
  .site-header .book{padding:13px 24px;font-size:.94rem}
  .menu-btn{padding:13px 10px}
  .menu-bars{gap:4.5px}
  .menu-bars i{width:22px;height:2.5px}
  .nav-socials{gap:14px}
  .nav-socials svg{width:22px;height:22px}
  .menu-inner{width:min(1600px,calc(100% - 48px))}
}
@media(min-width:821px) and (max-width:1400px){
  .site-header .inner{width:calc(100% - 32px);padding:12px 0;gap:24px}
  .site-header .brand img{height:46px;max-width:230px}
  .site-header nav{gap:12px}
  .site-header nav a{font-size:.78rem;letter-spacing:.05em}
  .site-header .book{padding:11px 18px;font-size:.8rem}
  .menu-inner{width:calc(100% - 32px)}
  .nav-socials{display:none}
}
@media(max-width:1249px){.site-header .inner nav a:not(.book){display:none}.site-header .inner nav .has-drop{display:none}.nav-socials{display:none}}

/* ==== Stage 12 (review, 2026-10-31): buttons pop on hover, like the social icons ==== */
.btn,.site-header .book,.veh-select,.loop-form button,.quote-form button{transition:background .2s,border-color .2s,color .2s,transform .18s ease,box-shadow .18s ease}
.btn:hover,.veh-select:hover,.loop-form button:hover,.quote-form button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 14px 26px -12px rgba(33,25,18,.5)}
.site-header .book:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 12px 22px -10px rgba(33,25,18,.45)}
.btn:hover{background:var(--rust2);border-color:var(--rust2);color:#fff}
.btn-dark:hover{background:var(--moss);border-color:var(--moss);color:#fff}
.btn-white:hover{background:var(--cream);border-color:#fff;color:var(--rust)}
.btn-ghost:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff}
.btn-outline:hover{background:var(--night);border-color:var(--night);color:#fff}
.cta-band .btn:hover{background:var(--cream);border-color:#fff;color:var(--rust)}
.btn:active,.site-header .book:active,.veh-select:active,.loop-form button:active{transform:translateY(0) scale(1);box-shadow:0 4px 10px -6px rgba(33,25,18,.4)}
@media (prefers-reduced-motion: reduce){.btn:hover,.site-header .book:hover,.veh-select:hover,.loop-form button:hover,.quote-form button:hover{transform:none}html{scroll-behavior:auto}.ribbon .track{animation:none}}

/* ==== Stage 13 (review, 2026-10-31): homepage hero experiment — left-aligned text, brighter image, vehicle in frame ==== */
.hero-left{text-align:left}
.hero-left::after{background:linear-gradient(90deg,rgba(10,12,9,.58) 0%,rgba(10,12,9,.30) 46%,rgba(10,12,9,.06) 74%,rgba(10,12,9,0) 100%),linear-gradient(180deg,rgba(10,12,9,.18) 0%,rgba(10,12,9,0) 30%,rgba(10,12,9,.34) 100%)}
.hero-left img.bg{opacity:1;object-position:78% 50%}
.hero-left .wrap{align-items:flex-start}
.hero-left h1{margin:0;text-align:left;max-width:19ch}
.hero-left .hero-checks{align-items:flex-start;text-align:left;margin-left:0;margin-right:0}
.hero-left .cta-col{flex-direction:row;width:auto;flex-wrap:wrap}
.hero-left .cta-col .btn{width:auto}
.hero-left .hero-rating{text-align:left}
.hero-left .hero-socials{justify-content:flex-start}
@media(max-width:640px){
  .hero-left::after{background:linear-gradient(90deg,rgba(10,12,9,.66) 0%,rgba(10,12,9,.42) 55%,rgba(10,12,9,.16) 100%),linear-gradient(180deg,rgba(10,12,9,.2) 0%,rgba(10,12,9,0) 30%,rgba(10,12,9,.4) 100%)}
  .hero-left img.bg{object-position:72% 50%}
  .hero-left .cta-col{flex-direction:column;width:min(330px,100%)}
  .hero-left .cta-col .btn{width:100%}
}

/* ==== Stage 14 (review, 2026-10-31): stats strip in brand rust with ink text ==== */
.trust{background:#B77A68;color:var(--ink)}
.trust .num{color:#212121}
.trust .lbl{color:rgba(33,33,33,.78)}
.trust .cell{border-left-color:rgba(33,33,33,.22)}
@media(max-width:820px){.trust .cell{border-top-color:rgba(33,33,33,.22)}}

/* ==== Stage 15 (2026-10-31): #c85b33 orange BANNED site-wide. Hovers deepen the brand rust instead. ==== */

/* ==== Stage 16 (review, 2026-10-31): hero image anchored to the road so the full vehicle shows; stats strip text back to white ==== */
.hero-left img.bg{object-position:68% 100%}
@media(max-width:640px){.hero-left img.bg{object-position:62% 100%}}
.trust{color:#fff}
.trust .num{color:#fff}
.trust .lbl{color:rgba(255,255,255,.88)}
.trust .cell{border-left-color:rgba(255,255,255,.3)}
@media(max-width:820px){.trust .cell{border-top-color:rgba(255,255,255,.3)}}

/* ==== Stage 17 (review, 2026-10-31): header quote button unified with hero buttons, hamburger spacing, custom select arrows ==== */
.site-header .book{display:inline-flex;align-items:center;justify-content:center;line-height:1;text-decoration:none}
.site-header .book:hover{background:var(--rust2);border-color:var(--rust2);color:#fff;text-decoration:none}
.menu-btn{margin-left:16px}
.menu-prefs select,.qf-field select,.loop-form select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23212121' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px}
@media(max-width:820px){.menu-btn{margin-left:8px}}

/* ==== Stage 18 (review, 2026-10-31): header row on one centre line; quote button pops without leaving the line ==== */
.site-header nav a{display:inline-flex;align-items:center;height:44px}
.site-header .book{height:44px;align-self:center}
.site-header .brand{display:inline-flex;align-items:center}
.menu-btn{align-self:center}
.site-header .book:hover{transform:scale(1.04)}
@media(min-width:1401px){.site-header nav a{height:48px}.site-header .book{height:48px}}

/* ==== Stage 19 (review, 2026-10-31): ONE button standard — the Talk to the Team button. Rust, white text; hover keeps the colour, adds lift + shadow. One section text size. Even footer columns. ==== */
.btn,.btn-dark,.btn-outline,.veh-select,.loop-form button,.quote-form button{background:var(--rust);border-color:var(--rust);color:#fff}
.btn:hover,.btn-dark:hover,.btn-outline:hover,.veh-select:hover,.loop-form button:hover,.quote-form button:hover,.site-header .book:hover{background:var(--rust);border-color:var(--rust);color:#fff;transform:translateY(-2px) scale(1.02);box-shadow:0 14px 26px -12px rgba(33,25,18,.5)}
.btn:active,.btn-dark:active,.btn-outline:active,.veh-select:active,.loop-form button:active,.site-header .book:active{background:var(--rust);border-color:var(--rust);color:#fff;transform:translateY(0) scale(1);box-shadow:0 4px 10px -6px rgba(33,25,18,.4)}
.hero .btn-white{background:#fff;border-color:#fff;color:var(--rust)}
.hero .btn-white:hover{background:#fff;border-color:#fff;color:var(--rust);transform:translateY(-2px) scale(1.02);box-shadow:0 14px 26px -12px rgba(33,25,18,.5)}
.cta-band .btn{background:#fff;border-color:#fff;color:var(--rust)}
.cta-band .btn:hover{background:#fff;border-color:#fff;color:var(--rust);transform:translateY(-2px) scale(1.02);box-shadow:0 14px 26px -12px rgba(33,25,18,.5)}
.cta-band .btn-ghost{background:transparent;border-color:rgba(255,255,255,.75);color:#fff}
.cta-band .btn-ghost:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff;transform:translateY(-2px) scale(1.02);box-shadow:0 14px 26px -12px rgba(33,25,18,.5)}
section p{font-size:1.13rem;line-height:1.65}
.band-night p a:not(.btn){color:var(--sun);text-decoration:underline}
.site-footer .cols{grid-template-columns:repeat(4,1fr);gap:48px}
@media(max-width:900px){.site-footer .cols{grid-template-columns:1fr 1fr}}

/* ==== Stage 20 (review, 2026-10-31): hero shows the ENTIRE photo (box matches image aspect); header quote button gets the hero button's type; hamburger centred ==== */
@media(min-width:821px){
  .hero-left{aspect-ratio:8000/5333;min-height:660px;max-height:1300px}
  .hero-left img.bg{object-position:50% 50%}
}
.site-header .book{font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}
@media(min-width:1401px){.site-header .book{font-size:.85rem}}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0}
.menu-bars{display:flex;flex-direction:column;align-items:center}

/* ==== Stage 21 (review, 2026-10-31): buttons are never underlined, on any section ==== */
a.btn,.site-header .book{text-decoration:none!important}

/* ==== Stage 22 (review, 2026-10-31): hero fits the screen like his reference shot — full vehicle always in frame, crop comes off the sky only ==== */
@media(min-width:821px){
  .hero-left{aspect-ratio:auto;min-height:100vh;max-height:none}
  .hero-left img.bg{object-position:60% 100%}
}

/* ==== Stage 23 (review, 2026-10-31): quote button + hamburger share one centred container ==== */
.head-right{display:flex;align-items:center;gap:16px}
.head-right .menu-btn{margin-left:0}

/* ==== Stage 24 (review, 2026-10-31): hero photo nudged down a touch ==== */
@media(min-width:821px){.hero-left img.bg{object-position:60% 90%}}

/* ==== Stage 25 (review, 2026-10-31): Ask AI panel — plain white X top-right, one font, left-aligned header, dark-brown user bubble + Ask button ==== */
.ai-panel header{position:relative;text-align:left;padding:16px 52px 14px 18px}
.ai-panel header b,.ai-panel header span{font-family:var(--body)}
.ai-panel header b{font-weight:800;font-size:1.05rem;letter-spacing:0}
.ai-close{position:absolute;top:6px;right:8px;transform:none;width:auto;height:auto;background:transparent;border:0;color:#fff;font-size:1.5rem;line-height:1;padding:6px;cursor:pointer}
.ai-close:hover{background:transparent;color:#fff;opacity:.75}
.ai-panel .msg.user{background:var(--night)}
.ai-panel form button[type=submit]{background:var(--night)}

/* ==== Stage 26 (review, 2026-10-31): stats strip gains a fifth cell ==== */
.trust .wrap{grid-template-columns:repeat(5,1fr)}
@media(max-width:820px){.trust .wrap{grid-template-columns:1fr 1fr}.trust .cell:last-child{grid-column:span 2}}

/* ==== Stage 27 (review, 2026-10-31): footer Quick Questions column centred between Explore and Contact, Contact pinned right (footer is injected sitewide, so this applies on every page) ==== */
.site-footer .cols>div:nth-child(3){justify-self:center}
.site-footer .cols>div:nth-child(4){justify-self:end}
@media(max-width:900px){.site-footer .cols>div:nth-child(3),.site-footer .cols>div:nth-child(4){justify-self:start}}


/* ==== Stage 28 (review, 2026-10-31): footer link columns rebalanced — brand wider, the three link columns equal width and left-aligned, so the Quick Questions heading sits exactly midway between Explore and Contact (supersedes Stage 27) ==== */
.site-footer .cols{grid-template-columns:1.3fr 1fr 1fr 1fr}
.site-footer .cols>div:nth-child(3),.site-footer .cols>div:nth-child(4){justify-self:start}
@media(max-width:900px){.site-footer .cols{grid-template-columns:1fr 1fr}}

/* ==== Stage 29 (review, 2026-10-31): Ask AI close is a plain white X with no box (the generic panel-button rust background was winning on specificity); trust features get rust icons ==== */
.ai-panel button.ai-close{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;color:#fff!important}
.feature .fic{display:block;margin:0 0 14px}
.feature .fic svg{width:46px;height:46px;fill:var(--rust);display:block}

/* ==== Stage 30 (review, 2026-10-31): story photo stack was collapsing to zero height (aspect-ratio:auto + percentage-height images inside an align-items:start grid) — give each stacked image its own aspect ratio so the pair fills the text column ==== */
.split .img-stack img{flex:none;height:auto;aspect-ratio:16/11}
@media(max-width:900px){.split .img-stack img{aspect-ratio:4/3}}

/* ==== Stage 31 (review, 2026-10-31): Our Story gets chosen sunset photo, single and centred, in the photo's own portrait proportions ==== */
.split .story-img{aspect-ratio:3/4}
.split .story-img img{object-position:center}

/* ==== Stage 32 (review, 2026-10-31): one size for every section heading — plain section h2s had no size set and fell back to the small browser default while .section-head h2s were large. Base h2 now matches the section-head size; article (.prose) and banner (.askai) headings keep their own by specificity ==== */
h2{font-size:clamp(2.2rem,4.5vw,3.4rem)}
.cta-band h2{font-size:clamp(2.2rem,4.5vw,3.4rem)}

/* ==== Stage 33 (review, 2026-10-31): page-hero overlay strengthened so white hero text stays readable over bright landscape photos ==== */
.page-hero::after{background:linear-gradient(90deg,rgba(14,11,9,.68) 0%,rgba(14,11,9,.40) 55%,rgba(14,11,9,.22) 100%),linear-gradient(180deg,rgba(14,11,9,.20),rgba(14,11,9,.44))}
/* Stage 34: wider desktop nav item spacing (2026-10-31; centring previewed and reverted same day, menu stays right-aligned) */
@media(min-width:1250px) and (max-width:1400px){.site-header nav{gap:19px}}
@media(min-width:1401px){.site-header nav{gap:31px}}

.feature .fic img{width:46px;height:46px;display:block}
/* ==== Stage 35 (2026-10-31): footer link columns sized to their content with ONE fixed gap, so the whitespace between Explore > Quick Questions and Quick Questions > Contact is identical by construction (equal 1fr tracks left different slack inside each track, which is why Stages 27-28 never measured equal) ==== */
@media(min-width:1250px){
.site-footer .cols{grid-template-columns:1.35fr auto minmax(0,272px) auto;column-gap:60px}
.site-footer .cols>div:nth-child(3),.site-footer .cols>div:nth-child(4){justify-self:start}
}
/* ==== Stage 36 (2026-10-31): vehicle cards match the live site — centred description, drawings at full card width in natural aspect (the 4/3 contain box shrank them), photo cards keep their 4/3 cover crop ==== */
.veh-card .desc{text-align:center}
.veh-media{aspect-ratio:auto;display:block;margin-top:18px}
.veh-media img{width:100%;height:auto;object-fit:contain}
.veh-media.photo{aspect-ratio:4/3}
.veh-media.photo img{height:100%;object-fit:cover}
/* ==== Stage 37 (2026-10-31): Pricing & Fleet page — per-vehicle pricing accordions (click in and out) ==== */
.price-acc{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;overflow:hidden}
.price-acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:18px 22px}
.price-acc summary::-webkit-details-marker{display:none}
.price-acc .pa-name{font-weight:800;font-size:1.05rem;color:var(--ink)}
.price-acc .pa-from{color:var(--rust2);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.price-acc .pa-from::after{content:"+";margin-left:10px;font-size:1rem}
.price-acc[open ] .pa-from::after{content:"–"}
.price-acc .pa-body{padding:2px 22px 20px}
.price-acc .pa-sub{color:var(--muted);margin:0 0 12px}
.pa-group{font-size:1.35rem;margin:38px 0 14px}
/* ==== Stage 38 (2026-10-31): 4x4 Car Rental cards redesigned — drawings removed, photo-led cards ==== */
.veh-card.v2{padding:0;overflow:hidden}
.veh-card.v2 .veh-photo{aspect-ratio:16/10;overflow:hidden;background:#e9e2d4}
.veh-card.v2 .veh-photo img{width:100%;height:100%;object-fit:cover;display:block}
.veh-card.v2 .veh-body{padding:28px 26px 28px;display:flex;flex-direction:column;flex:1}
.veh-card.v2{transition:transform .25s ease,box-shadow .25s ease}
.veh-card.v2:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(23,26,20,.13)}

/* Stage 39 (2026-10-31): pricing extras headers + tall gallery cells */
#pricing .pa-group h3{font-family:var(--condensed);font-size:clamp(1.9rem,3.4vw,2.5rem);letter-spacing:.01em;text-transform:uppercase;margin:40px 0 8px}
#pricing .rate-block{margin-top:20px}
#pricing .rate-block h3{font-family:var(--condensed);font-size:26px;text-transform:uppercase;letter-spacing:.01em;text-align:left;margin:0 0 10px}
.gallery-grid.tall figure{aspect-ratio:3/4}

/* Stage 40 (2026-10-31): car-hire cards in fleet style; fleet note spacing */
.veh-grid .card .from-price{font-weight:800;color:var(--rust);letter-spacing:.03em;margin:0 0 8px;font-size:1.02rem}
.veh-note{margin-top:26px}

/* Stage 41 (2026-10-31): one display voice for pricing headings. Root cause of the mismatch flagged: several stage rules referenced var(--condensed), which is not a defined variable (the display variable is --display), so those headings silently fell back to the body font. */
#pricing h3.pa-group{font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.5rem);letter-spacing:.01em;text-transform:uppercase;margin:40px 0 8px}
.rate-block>header{padding:26px 32px 4px;text-align:left}
.rate-block>header h3{font-family:var(--display);font-size:1.55rem;letter-spacing:.01em}
.rate-block>h3{font-family:var(--display);font-size:1.55rem;letter-spacing:.01em;text-align:center;padding:26px 20px 4px;margin:0}
#pricing .rate-block h3{font-family:var(--display);font-size:1.55rem;text-align:center}
.price-acc summary b{font-family:var(--display);font-weight:400;font-size:1.55rem;letter-spacing:.01em}
.legend div b{font-size:1.35rem}

.price-acc summary .pa-name{font-family:var(--display);font-weight:400;font-size:1.55rem;letter-spacing:.01em}

/* Stage 42 (2026-10-31): clickable card titles + vehicle page galleries */
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--rust)}
.veh-gallery .vg-main{display:block;width:100%;height:100%;object-fit:cover}
.veh-gallery.block .vg-main{aspect-ratio:16/8;height:auto;border-radius:18px}
.vg-thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.vg-thumb{width:74px;height:56px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:none;cursor:pointer}
.vg-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.vg-thumb.is-active{border-color:var(--rust)}

/* Stage 43 (2026-10-31): vehicle photos centred sitewide; fleet extras tables left-aligned */
.card .ph img,.veh-gallery .vg-main,.vg-thumb img,.split .img img,.page-hero img.bg,.gallery-grid img,.veh-card.v2 .veh-photo img,.veh-media.photo img,.gallery-strip img{object-position:center}
#pricing .rate-block table.rates th,#pricing .rate-block table.rates td{text-align:left}

/* Stage 44 (2026-10-31): extras block titles left-aligned; Most Popular pill */
#pricing .rate-block>header{text-align:left}
#pricing .rate-block h3{text-align:left}
.pill-pop{background:var(--night);color:var(--cream);border:1px solid var(--night);box-shadow:0 2px 8px rgba(23,26,20,.28)}

/* Stage 46: See-more link in pricing accordion headers */
.price-acc .pa-name{margin-right:auto}
.price-acc .pa-more{color:var(--rust2);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.price-acc .pa-more:hover{color:var(--rust)}

/* Stage 47: reviews carousel + rating summary */
.rating-summary{display:flex;align-items:center;gap:12px;margin-top:16px;font-weight:700;color:var(--ink)}
.rating-summary .rating-num{font-family:var(--display);font-size:2.1rem;line-height:1}
.rating-summary .stars{color:var(--sun);letter-spacing:3px;font-size:1.05rem}
.rev-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 16px;scrollbar-width:none}
.rev-track::-webkit-scrollbar{display:none}
.rev-track .review-card{flex:0 0 min(430px,86vw);scroll-snap-align:start;margin:0;display:flex;flex-direction:column}
.rev-track .review-card blockquote{flex:1}
.rev-source{margin-top:14px;font-weight:700;color:var(--rust2);font-size:.88rem}
.rev-nav{display:flex;gap:10px;justify-content:flex-end}
.rev-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--rust);background:#fff;color:var(--rust2);font-size:1.05rem;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.rev-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 18px rgba(36,26,18,.14)}

/* Stage 48: camping strip on standard vehicle pages */
section.camp-strip{padding:40px 0}
.camp-strip-in{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.camp-strip h3{font-family:var(--display);font-size:1.55rem;letter-spacing:.01em;margin:0 0 6px}
.camp-strip p{margin:0;max-width:660px}

/* Stage 49: Ask AI close button anchored top-right of the popup */
.ai-panel .ai-close{position:absolute;top:10px;right:10px;width:38px;height:38px;padding:0;background:transparent;color:#fff;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;cursor:pointer}
.ai-panel .ai-close:hover{background:rgba(255,255,255,.14)}

/* Stage 50: mobile form fields at 16px so iOS does not auto-zoom on focus */
@media(max-width:820px){
.qf-field input,.qf-field select,.qf-field textarea,.loop-form input,.loop-form select,.loop-form textarea,.menu-prefs select,.ai-panel input{font-size:16px}
}

/* Stage 51: tighter rate tables on small screens */
@media(max-width:640px){table.rates th,table.rates td{padding:8px 9px;font-size:.86rem}}

/* Stage 52: footer columns must shrink on small screens (min-content form was forcing 543px page width) */
@media(max-width:900px){
.site-footer .cols>*{min-width:0}
.site-footer .loop-form input,.site-footer .loop-form select,.site-footer .loop-form textarea{min-width:0}
.site-footer li a{display:inline-block;padding:3px 0}
}

/* Stage 52b: long footer contact strings (email) may wrap instead of forcing width */
@media(max-width:900px){.site-footer .cols li,.site-footer .cols a{overflow-wrap:anywhere}}

/* ==== Stage 53 (2026-11-01): audit fixes - stats strip wrap, tap targets, checkbox size, menu parity, skip link, floating-button clearance ==== */
.skip-link{position:absolute;left:16px;top:-80px;z-index:300;background:#171a14;color:#fff;padding:12px 20px;border-radius:0 0 12px 12px;font-weight:700;text-decoration:none;transition:top .2s ease}
.skip-link:focus{top:0}
.trust .wrap>*{min-width:0}
.trust .cell{min-width:0}
.trust .lbl{overflow-wrap:anywhere;hyphens:auto}
.veh-grid>*,.grid>*{min-width:0}
.veh-card{min-width:0}
.veh-card .desc{overflow-wrap:anywhere}
.socials a{width:44px;height:44px}
.menu-links a{min-height:44px;display:flex;align-items:center}
.menu-links a.menu-sub{padding-left:20px;font-weight:600;font-size:.9rem}
input[type="checkbox"]{width:18px;height:18px;accent-color:var(--rust);flex:none}
@media(max-width:900px){#ach-footer .base{padding-bottom:120px}}

/* ==== Stage 54 (2026-11-01): audit fix follow-up - long-word wrap (DE/NL compounds), pricing summary wrap, rates table fit at 360/390px ==== */
@media(max-width:900px){
  main h1,main h2,main h3,.prose p,.prose li,section p,section li{overflow-wrap:anywhere}
  table.rates th,table.rates td{overflow-wrap:anywhere}
  .table-scroll{max-width:100%}
}
@media(max-width:640px){
  .price-acc summary{flex-wrap:wrap}
  .price-acc .pa-from{white-space:normal}
  table.rates thead th{letter-spacing:.04em}
}

/* ==== Stage 55 (2026-11-01): launch-fix pass B12-B15 - locale stats labels, rating block, WhatsApp clearance, mobile menu ==== */
/* B15: .menu-links is a <nav> inside .site-header and inherits margin-left:auto from .site-header nav, which pushed the open menu's links to the right and shrank them. Pin the links full width and left aligned at every width. */
.menu-panel .menu-links{margin-left:0;justify-self:stretch;width:100%}
@media(max-width:820px){
  /* B15: the panel is taller than the viewport; let it scroll so the language and currency selects at the bottom are reachable */
  .menu-panel{max-height:calc(100vh - 58px);max-height:calc(100dvh - 58px);overflow-y:auto;overscroll-behavior:contain}
  .menu-panel .menu-inner{grid-template-columns:1fr}
  .menu-panel .menu-links{grid-template-columns:1fr}
}
/* B13: the rating number and the stars must never shrink or wrap; only the trailing text may wrap */
.rating-summary{flex-wrap:wrap}
.rating-summary .rating-num{flex:none;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.rating-summary .stars{flex:none;white-space:nowrap}
/* B12: DE/NL/FR stats labels are long compounds; smaller size, tighter tracking and hyphenated wrapping instead of mid-word splits (EN unchanged) */
@media(max-width:820px){
  html[lang="de"] .trust .lbl,html[lang="nl"] .trust .lbl,html[lang="fr"] .trust .lbl{font-size:.64rem;letter-spacing:.05em;overflow-wrap:break-word;hyphens:auto}
}
/* B14: smaller WhatsApp float tucked into the corner on small screens, and scroll clearance so focused/scrolled-to form controls stop above it */
@media(max-width:820px){
  .float-stack{right:14px;bottom:14px}
  .wa-float{width:50px;height:50px}
  .wa-float svg{width:25px;height:25px}
  input,select,textarea,.qf-field{scroll-margin-bottom:96px}
}
/* ==== Stage 56 (2026-11-01): audit-2 fixes - M1 DE/NL home stats labels, M3 WhatsApp float clearance ==== */
/* M1: DE/NL stats labels get a touch smaller with tighter tracking; soft hyphens in the home markup split the long compound cleanly (EN/FR untouched) */
@media(max-width:820px){
  html[lang="de"] .trust .lbl,html[lang="nl"] .trust .lbl{font-size:.6rem;letter-spacing:.02em}
}
/* M3: the floating WhatsApp stack must not sit over page text: hide it while the mobile menu panel is open (currency note stays readable), give FAQ accordions the same scroll clearance form controls already have, and deepen the footer base clearance on small screens */
body:has(#menu-panel:not([hidden])) .float-stack{visibility:hidden}
@media(max-width:900px){#ach-footer .base{padding-bottom:150px}}
@media(max-width:820px){.faq details{scroll-margin-bottom:104px}}

/* ==== Stage 57 (2026-11-01): Monty mobile review pass - hero, header pill, menu, WhatsApp, carousel, gallery framing, footer, rates tables, cover pills, luxury spacing ==== */
/* Fix 4: header quote pill a little smaller and closer to the hamburger on mobile */
@media(max-width:820px){
  .head-right{gap:6px}
  .site-header .book{padding:8px 12px;font-size:.68rem;letter-spacing:.06em}
}
/* Fix 5: menu panel links at ONE size/weight - the desktop rule .site-header nav a (.72rem) was shrinking top-level panel links while Stage 53 set sub items to .9rem, so subs rendered larger than parents */
.menu-panel .menu-links a{font-size:1rem;font-weight:700;letter-spacing:.01em;text-transform:none}
.menu-panel .menu-links a.menu-sub{font-size:1rem;font-weight:700;padding-left:20px}
/* Fix 6: language + currency selects move to the TOP of the mobile menu panel */
@media(max-width:820px){
  .menu-panel .menu-inner{display:flex;flex-direction:column;gap:18px}
  .menu-panel .menu-prefs{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .menu-panel .menu-prefs label{min-width:0}
  .menu-panel .menu-prefs .menu-note{grid-column:1/-1}
  .menu-panel .menu-prefs select{font-size:1rem;width:100%;min-width:0}
}
/* Fixes 1-3: hero on mobile - H1 forced to two lines, CTAs smaller, tighter stack and a lighter scrim so the camper shows */
@media(max-width:820px){
  .hero-left h1 .h1-l1,.hero-left h1 .h1-l2{display:block}
}
@media(max-width:640px){
  .hero-left h1{font-size:1.75rem;line-height:1.12;max-width:100%}
  html[lang="de"] .hero-left h1{font-size:1.125rem}
  html[lang="nl"] .hero-left h1{font-size:1.25rem}
  html[lang="fr"] .hero-left h1{font-size:1.1875rem}
  .hero{padding:96px 0 54px}
  .hero-checks{margin-top:18px}
  .hero-left .cta-col{flex-direction:column;width:auto;align-items:flex-start;gap:10px;margin-top:22px}
  .hero-left .cta-col .btn{width:auto;padding:12px 22px;font-size:.8rem}
  .hero-rating{margin-top:18px}
  .hero-socials{margin-top:18px}
  .hero-left::after{background:linear-gradient(90deg,rgba(10,12,9,.56) 0%,rgba(10,12,9,.34) 55%,rgba(10,12,9,.12) 100%),linear-gradient(180deg,rgba(10,12,9,.18) 0%,rgba(10,12,9,0) 30%,rgba(10,12,9,.34) 100%)}
}
/* Fix 7: WhatsApp float a bit larger on mobile; the card sits ~10px above the button (was ~106px of dead space) */
.wa-card{right:20px;bottom:88px}
@media(max-width:820px){
  .wa-float{width:56px;height:56px}
  .wa-float svg{width:28px;height:28px}
  .wa-card{right:14px;bottom:80px}
}
/* Fix 8: gentler snap so arrow steps land exactly on a card (JS scrolls to the card offset; mandatory snap could strand the track between cards on iOS) */
.rev-track{scroll-snap-type:x proximity;scroll-padding-left:2px}
/* Fix 9: gallery framing - keep the whole vehicle in the 4/3 frame (filename-keyed, applies wherever .gallery-grid is reused) */
.gallery-grid img[src$="reviews-cruiser-profile.jpg"]{object-position:100% 50%}
.gallery-grid img[src$="gallery-camper-mountain.jpg"]{object-position:50% 100%}
.gallery-grid img[src$="gallery-cruiser-dune.jpg"]{object-position:50% 100%}
.gallery-grid img[src$="gallery-camper-dune-small.jpg"]{object-position:50% 100%}
.gallery-grid img[src$="reviews-pov.jpg"]{object-position:50% 62%}
/* Fix 10: giraffe photos off mobile only (homepage Our Story sunset + the Etosha pan full-width shot) */
@media(max-width:820px){
  #our-story .story-img{display:none}
  img[src$="giraffes-etosha-pan.jpg"]{display:none}
}
/* Fix 11: footer socials keep their square shape (flex:none + wrap instead of squashing into ovals); brand column full width and tidier gaps on mobile */
.socials{flex-wrap:wrap}
.socials a{flex:none}
@media(max-width:900px){
  .site-footer .cols>div:first-child{grid-column:1/-1}
  .site-footer .cols{gap:38px 28px}
}
/* Fix 12: wide rates tables scroll sideways on mobile instead of squeezing (headers never split mid-word); 2-3 column ITEM/DETAIL and extras tables untouched */
@media(max-width:820px){
  .table-scroll table.rates:has(>thead>tr>th:nth-child(4)){min-width:620px}
  .table-scroll table.rates:has(>thead>tr>th:nth-child(4)) th,.table-scroll table.rates:has(>thead>tr>th:nth-child(4)) td{overflow-wrap:normal;word-break:normal}
  .table-scroll table.rates:has(>thead>tr>th:nth-child(4)) td.price{white-space:nowrap}
}
/* Fix 13: cover-card pill row (JS moves a heading's 2+ pills into .pill-row under the heading, left-aligned with the heading text) */
.pill-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.pill-row .pill{margin-left:0}
/* Fix 14: air between the equipment-list dropdown and Technical Specifications */
details.tc{margin-bottom:42px}

/* ==== Stage 58 (2026-11-01): hero H1 exactly two lines on DESKTOP too — Stage 57 made the .h1-l1/.h1-l2 spans block only <=820px, so on desktop they ran inline inside the Stage 13 max-width:19ch cap and wrapped mid-line (3 lines). Above 820px the spans are now block lines with nowrap, and the 19ch cap is lifted: at the standing desktop clamp(2.2rem,4.6vw,3.8rem) the longest locale line (DE line 1, 1045px at 60.8px) fits the 1240px wrap with room to spare, and because the font scales with vw the fit holds at every desktop width. Mobile (<=820px) is untouched. ==== */
@media(min-width:821px){
  .hero-left h1{max-width:none}
  .hero-left h1 .h1-l1,.hero-left h1 .h1-l2{display:block;white-space:nowrap}
}

/* ==== Stage 59 (2026-11-01): Monty mobile hero layout - hero fills the full screen, the two CTAs share one row at exactly equal width/height, and the rating line + socials anchor to the hero bottom. Mobile (<=820px) only; desktop hero untouched. The rating/socials need no wrapper: the hero wrap is already a flex column, so an auto top margin on the rating pushes the pair to the bottom. align-items:stretch makes the wrap fill the hero height so the auto margin has room to act (the wrap's global margin:auto would otherwise centre it vertically and defeat stretch, so its top/bottom margins are zeroed inside the hero). Long locale labels (DE/NL) may wrap inside their button; the pair stays equal width and, via stretch, equal height. ==== */
@media(max-width:820px){
  .hero-left{min-height:100vh;min-height:100svh;align-items:stretch;padding-bottom:26px}
  .hero-left .wrap{margin-top:0;margin-bottom:0}
  .hero-left .hero-rating{margin-top:auto;padding-top:30px}
  .hero-left .cta-col{flex-direction:row;flex-wrap:nowrap;align-items:stretch;width:100%;gap:12px;margin-top:22px}
  .hero-left .cta-col .btn{flex:1 1 0;width:auto;min-width:0;justify-content:center;text-align:center;padding:12px 10px;font-size:.8rem}
  html[lang="de"] .hero-left .cta-col .btn{font-size:.66rem;letter-spacing:.02em}
  html[lang="nl"] .hero-left .cta-col .btn{font-size:.72rem}
  html[lang="fr"] .hero-left .cta-col .btn{font-size:.75rem}
}

/* ==== Stage 60 (2026-11-01): Monty mobile hero refinements - the CTA row moves down into the bottom cluster (directly above the rating line) and the title group starts lower, more toward the middle of the hero. Mobile (<=820px) only; desktop hero untouched. The auto top margin moves from the rating to the CTA row, so the whole bottom cluster (CTAs, rating, socials) anchors to the hero bottom with small fixed gaps; the rating's old 30px top padding goes so the buttons sit right above the rating text (16px gap). The title shift is padding on the hero: +10svh on top of the standing mobile padding-top (96px at <=640px, 148px above that), so it scales with the screen and the fixed header keeps a clear gap. The wrap's bottom edge is unchanged, so the socials stay 26px above the hero bottom. The CTA row keeps a 22px top padding so it can never touch the subtitle when free space runs out (its auto margin is then 0). ==== */
@media(max-width:820px){
  .hero-left{padding-top:calc(148px + 10svh)}
  .hero-left .cta-col{margin-top:auto;padding-top:22px}
  .hero-left .hero-rating{margin-top:16px;padding-top:0}
}
@media(max-width:640px){
  .hero-left{padding-top:calc(96px + 10svh)}
}


/* ===== Stage 61 (opt-fixes 2026-11-01): WhatsApp float form clearance + sticky rate-table season column ===== */
.float-stack{bottom:calc(18px + env(safe-area-inset-bottom))}
@media (max-width:820px){.float-stack{bottom:calc(14px + env(safe-area-inset-bottom))}}
.float-stack,.wa-card{transition:opacity .25s ease,visibility .25s ease}
body.wa-away .float-stack,body.wa-away .wa-card{opacity:0;visibility:hidden;pointer-events:none}
.table-scroll table.rates th:first-child,.table-scroll table.rates td:first-child{position:sticky;left:0;box-shadow:6px 0 8px -6px rgba(23,26,20,.28)}
.table-scroll table.rates thead th:first-child{z-index:3;background:var(--night)}
.table-scroll table.rates tbody td:first-child{z-index:2;background:#fff}
.table-scroll table.rates tbody tr:nth-child(even) td:first-child{background:#f7f7f7}

/* ==== Stage 62 (form field widths, 2026-11-02) ==== */
/* Date inputs carry a large intrinsic minimum width on iOS Safari; as flex items inside .qf-field they refused to shrink and pushed the quote and contact forms past the right edge of the screen (Monty's screenshot, 2026-11-02). Let every control shrink to its field, cap it at the field width, and give inputs and selects one shared height so every field lines up identically in every form. */
.qf-field{min-width:0}
.qf-field input,.qf-field select,.qf-field textarea{min-width:0;max-width:100%}
.qf-field input[type="text"],.qf-field input[type="email"],.qf-field input[type="number"],.qf-field input[type="date"],.qf-field input[type="tel"],.qf-field select{height:50px}
.loop-form input,.loop-form select,.loop-form textarea{max-width:100%}

/* ==== Stage 63 (pricing tables fit on mobile, 2026-11-02) ==== */
/* Monty's iPhone screenshot: on /fleet/ only the 3-column Luxury Cruiser table fit its card; the 5-column Hilux tables carried a 620px min-width (Stage 57 Fix 12) inside the .table-scroll wrapper and forced sideways scrolling, and the Stage 61 sticky Season column's shadow clipped the season text at the left edge ("Low" read as "_ow"). On mobile (<=820px) the pricing tables on /fleet/ (inside .price-acc accordions) and on /partners/ (inside section#rates) now take the full card width (accordion side padding 22px -> 12px, summary kept in line), use fixed layout at 100% of the card with the first column at the Cruiser's share (41% on 3-column tables; the price columns share the rest equally), the sticky column and its shadow are switched off, and 5-column tables drop the 620px floor with tighter padding and type so all four price columns fit unclipped at 360-430px in every locale. Vehicle pages already fit without scrolling and keep their layout; non-pricing tables (e.g. the fuel planner) keep their designed scroll. Desktop is untouched. */
@media(max-width:820px){
  .price-acc summary{padding-left:12px;padding-right:12px}
  .price-acc .pa-body{padding-left:12px;padding-right:12px}
  .table-scroll table.rates th:first-child,.table-scroll table.rates td:first-child{position:static;box-shadow:none}
  .price-acc .table-scroll,#rates .table-scroll{overflow-x:visible}
  .price-acc table.rates:has(>thead>tr>th:nth-child(3)),#rates table.rates:has(>thead>tr>th:nth-child(3)){table-layout:fixed}
  .price-acc table.rates:has(>thead>tr>th:nth-child(3))>thead>tr>th:first-child,#rates table.rates:has(>thead>tr>th:nth-child(3))>thead>tr>th:first-child{width:41%}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)),#rates table.rates:has(>thead>tr>th:nth-child(4)){min-width:0}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)) th,.price-acc table.rates:has(>thead>tr>th:nth-child(4)) td,#rates table.rates:has(>thead>tr>th:nth-child(4)) th,#rates table.rates:has(>thead>tr>th:nth-child(4)) td{overflow-wrap:normal;word-break:normal}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4))>thead>tr>th:first-child,#rates table.rates:has(>thead>tr>th:nth-child(4))>thead>tr>th:first-child{width:27%}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)) td.price,#rates table.rates:has(>thead>tr>th:nth-child(4)) td.price{white-space:nowrap}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)) thead th,#rates table.rates:has(>thead>tr>th:nth-child(4)) thead th{letter-spacing:0}
}
@media(max-width:640px){
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)) th,.price-acc table.rates:has(>thead>tr>th:nth-child(4)) td,#rates table.rates:has(>thead>tr>th:nth-child(4)) th,#rates table.rates:has(>thead>tr>th:nth-child(4)) td{padding:8px 2px;font-size:.74rem}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)) thead th,#rates table.rates:has(>thead>tr>th:nth-child(4)) thead th{font-size:.56rem}
}
@media(max-width:480px){
  .price-acc table.rates:has(>thead>tr>th:nth-child(4))>thead>tr>th:first-child,#rates table.rates:has(>thead>tr>th:nth-child(4))>thead>tr>th:first-child{width:24%}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)) th,.price-acc table.rates:has(>thead>tr>th:nth-child(4)) td,#rates table.rates:has(>thead>tr>th:nth-child(4)) th,#rates table.rates:has(>thead>tr>th:nth-child(4)) td{font-size:.7rem}
  .price-acc table.rates:has(>thead>tr>th:nth-child(4)) thead th,#rates table.rates:has(>thead>tr>th:nth-child(4)) thead th{font-size:.52rem}
}

/* ==== Stage 64 (button-pair spacing, 2026-11-02) ==== */
/* The excess waiver page's "Talk it through with the team" CTA pair (Get a Free Quote / Book Online) sat in a plain paragraph as two inline buttons: on mobile they wrapped onto two lines that touched with no gap and read as one merged block. Any paragraph holding two adjacent buttons now lays them out as a flex row with the site's standard 14px pair gap (the same gap .cta-band .cta-actions and the thank-you pages use), so the pair wraps with a clear 14px gap at every width. Button styling itself is unchanged. */
p:has(>a.btn + a.btn){display:flex;flex-wrap:wrap;gap:14px}

/* === Stage 65: funnel additions (2026-11-02, Monty approved items 1/3/4/5/7) === */
.card .ph{position:relative}
.flag-pill{position:absolute;top:14px;left:14px;z-index:3;background:var(--rust);color:#fff;font-weight:800;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;padding:.5em 1em;border-radius:999px;box-shadow:0 0 0 5px rgba(183,122,104,.28),0 10px 22px rgba(0,0,0,.28)}
.flag-pill-inline{position:static;display:inline-block;margin-left:10px;vertical-align:middle;box-shadow:none}
.flag-pill-hero{top:118px;left:auto;right:24px}
@media(max-width:700px){.flag-pill-hero{top:96px;right:16px}}
.veh-cta{display:flex;justify-content:center;padding:4px 20px 0}
.pa-cta{padding:14px 18px 18px;text-align:right}
.bridge-sec{padding-bottom:0}
.bridge{border:2px solid var(--rust);border-radius:14px;padding:26px 28px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:space-between;background:#fff}
.bridge-txt{max-width:640px}
.bridge-txt h2{margin:0 0 6px}
.bridge-txt p{margin:0}
.bridge-price{margin-top:8px !important;font-weight:800;color:var(--rust2)}
.guide-band{background:var(--rust);color:#fff;padding:30px 0;margin-top:70px}
.guide-band-in{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:space-between}
.guide-band-txt{font-size:1.12rem;font-weight:700;margin:0;max-width:430px}
.guide-band .loop-form{margin-top:0;flex:1;min-width:300px}
.guide-band .loop-form button{background:#fff;color:var(--rust);border-color:#fff}
.guide-band .loop-form button:hover{background:var(--cream);color:var(--rust)}
.guide-band .loop-msg{color:#fff;flex:1 1 100%;margin:4px 0 0}
@media(max-width:700px){.guide-band-txt{max-width:none}.bridge{padding:22px}}

/* === Stage 66: header fit fix (2026-11-02, Monty report) — the Stage 11 wide
   treatment (1600px inner, full-size nav, 300px logo) overflowed its own
   container: the hamburger hung past the header's right edge at wide widths
   and was pushed off-screen entirely around 1401-1500px. Compact header now
   runs to 1699px; the wide treatment starts at 1700px with a 1760px inner. === */
@media(min-width:1401px) and (max-width:1699px){
  .site-header .inner{width:calc(100% - 32px);padding:12px 0;gap:24px}
  .site-header .brand img{height:46px;max-width:230px}
  .site-header nav{gap:12px}
  .site-header nav a{font-size:.78rem;letter-spacing:.05em;height:44px}
  .site-header .book{padding:11px 18px;font-size:.8rem;height:44px}
  .menu-inner{width:calc(100% - 32px)}
  .nav-socials{display:none}
}
@media(min-width:1700px){
  .site-header .inner{width:min(1760px,calc(100% - 48px))}
  .menu-inner{width:min(1760px,calc(100% - 48px))}
}

/* === Stage 67: Flagship pill hugs the Cruiser accordion title (2026-11-02, Monty) === */
.price-acc summary:has(.flag-pill-inline) .pa-name{margin-right:0}
.price-acc summary .flag-pill-inline{margin-right:auto;margin-left:0}

/* === Stage 68: vehicle-page spacing (2026-11-02, Monty) — Book Now sits mid-band
   with air around it; the gap between the rates section and the camper
   cross-sell strip shrinks from ~180px to ~68px === */
.veh-cta{padding:40px 20px 44px}
.band-paper2:has(+ .camp-strip){padding-bottom:16px}
section.camp-strip{padding-top:8px}

/* === Stage 69: bridge + guide-band spacing (2026-11-02, Monty) - the "Step up to
   the Cruiser" bridge gets the same air above as below (its own 96px top padding
   stacked on the rates section's 96px bottom padding, doubling the top gap), and
   the guide email band sits flush under the beige article section instead of
   floating below a white gap on blog posts and guides. === */
.bridge-sec{padding-top:0}
.guide-band{margin-top:0}

/* === Stage 70: form date/number fields can never outgrow their field
   (2026-11-02, Monty iPhone report) - Stage 62's max-width cap lost on
   specificity to the old fix-12 max-width:none on quote-form date/number
   inputs, so on iOS the collection/return fields still widened past the
   form's right edge when tapped. Restate the cap at winning specificity and
   lock the form grid tracks so no column can be pushed wider than its share. === */
.quote-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:680px){.quote-form{grid-template-columns:minmax(0,1fr)}}
.quote-form .qf-field input[type="date"],.quote-form .qf-field input[type="number"]{width:100%;min-width:0;max-width:100%}
.qf-field input[type="date"],.qf-field input[type="number"]{min-width:0;max-width:100%}

/* ==== Stage 71 (2026-11-02): mobile hero hierarchy — title a step larger on standard phone widths (390px+, where the two-line layout has room; smaller phones keep the Stage 57 sizes because the longest lines are already at full width there), and the benefits line under it set smaller and lighter so it reads as a subtitle. German keeps its smaller size at all phone widths (longest headline). ==== */
@media(max-width:640px){
  .hero-checks{font-size:.85rem;font-weight:600;color:rgba(255,255,255,.85);margin-top:14px}
  html[lang="nl"] .hero-left h1{font-size:1.375rem;line-height:1.08}
}
@media(min-width:390px) and (max-width:640px){
  .hero-left h1{font-size:1.95rem;line-height:1.08}
  html[lang="fr"] .hero-left h1{font-size:1.3125rem}
}

/* ==== Stage 72 (2026-11-02): the homepage trust/stats band (2003 / 6+ / 460+ / 24-7 / Free) is hidden on phones only, at Monty's request; it stays on desktop. The .trust block exists only on the four homepages. ==== */
@media(max-width:640px){
  .trust{display:none}
}

/* ==== Stage 73 (2026-11-02): mobile hero title enlarged to roughly the width Monty circled on his screenshot (about +13% on a 402px phone), still exactly two lines. Verified with the real Bebas Neue font (the sandbox fallback font is wider and misleading): 8.8vw holds one line per span at every width from 360 to 430px. The hero wrap side padding drops to 12px on phones to give the title the room. Supersedes Stage 71 sizes; Stage 71 subtitle rule still applies. ==== */
@media(max-width:640px){
  .hero .wrap{padding-left:12px;padding-right:12px}
  .hero-left h1{font-size:8.8vw;line-height:1.04}
  html[lang="de"] .hero-left h1{font-size:1.25rem}
  html[lang="fr"] .hero-left h1{font-size:1.33rem}
  html[lang="nl"] .hero-left h1{font-size:1.5rem}
}

/* ==== Stage 74 (2026-11-02): iOS date fields — Stage 70 fixed the width caps but the fields still rendered tall and wide on Monty's iPhone because input[type=date] never got the native-appearance reset the selects have: iOS then sizes the control itself and ignores the shared height/width. Full reset below so collection/return match every other field exactly, including the internal date-value alignment. ==== */
.qf-field input[type="date"]{-webkit-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%;height:50px;min-height:50px;box-sizing:border-box;padding:12px 14px;line-height:1.2;background:#fff;border-radius:0}
.qf-field input[type="date"]::-webkit-date-and-time-value{margin:0;padding:0;text-align:left;line-height:1.2}
.qf-field input[type="date"]::-webkit-inner-spin-button,.qf-field input[type="date"]::-webkit-clear-button{display:none;-webkit-appearance:none}
.qf-field input[type="date"]::-webkit-calendar-picker-indicator{opacity:.5;margin:0;padding:0}
