/* ============================================================
   Mayflower Boulder Limo Light — theme.css
   Sections:
   1. Tokens and base
   2. Buttons and primitives
   3. Header, top strip, mobile flyout
   4. Home sections
   5. Inner page and landing sections
   6. WordPress core, prose, blog, forms
   7. Responsive
   ============================================================ */

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --ink:#14150f;
  --ink-soft:#23241d;
  --ink-line:#2a2b24;
  --ink-card:#191a14;
  --slate:#5b6058;
  --slate-light:#82887e;
  --paper:#f2f3f0;
  --paper-2:#e6e8e2;
  --stone:#e6e8e1;
  --card:#ffffff;
  --line:#dcdfd7;
  --line-strong:#c6cabe;
  --amber:#d49951;
  --amber-deep:#a8702d;
  --amber-wash:#f7ecdd;
  --r:4px;
  --shadow-sm:0 1px 2px rgba(20,21,15,.06);
  --shadow-md:0 12px 32px -12px rgba(20,21,15,.22);
  --shadow-lg:0 28px 70px -24px rgba(20,21,15,.38);
  --wrap:1220px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Inter",system-ui,sans-serif;font-size:15.5px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}

h1,h2,h3,h4{font-family:"Urbanist",sans-serif;letter-spacing:-.025em;margin:0}
h1{font-size:clamp(2.6rem,4.9vw,4.2rem);font-weight:800;line-height:1;letter-spacing:-.035em}
h2{font-size:clamp(1.95rem,3.4vw,2.95rem);font-weight:800;line-height:1.04}
h3{font-size:1.2rem;font-weight:700;line-height:1.2}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px}
.sec{padding:100px 0}
/* Alternating bands. White against paper is a 1.03:1 step and reads as one
   flat block, so the alternate is a deeper stone. White cards sitting on it
   gain contrast rather than losing it. */
/* Four section tones, rotated so no two neighbours match:
   white #ffffff, cream #f2f3f0 (the page default), darker cream #dfe2d9,
   and ink #14150f for the full-contrast bands. */
.sec--white{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec--light{background:var(--stone);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec--light + .sec--light,.sec--white + .sec--white{border-top:0}
/* white cards on a white band need their edge back */
.sec--white .card,.sec--white .bcard,.sec--white .inc,.sec--white details,
.sec--white .ptable,.sec--white .planner,.sec--white .cal,.sec--white .vsc,
.sec--white .tier,.sec--white .sea,.sec--white .way,.sec--white .pp,
.sec--white .gp,.sec--white .rv,.sec--white .rel,.sec--white .rscore{border-color:var(--line-strong)}
.sec--white .vc-specs,.sec--white .meta{border-color:var(--line-strong)}
.sec--tight{padding-top:72px}
.lead{color:var(--slate);max-width:46ch}
.am,
h1 .amber,h2 .amber,h3 .amber,h4 .amber,.head .amber{color:var(--amber-deep)}
/* on the ink panels the accent needs the brighter amber to stay legible */
.routes .am,.routes .amber,.ev .am,.ev .amber,.cta-book span,.dhero .am,.dhero .amber,
.ghero .am,.ghero .amber,.tlside .am,.trust .amber,footer .amber{color:var(--amber)}
/* demo headings wrap emphasis in <strong>; the display face is already heavy,
   so keep the weight and let the amber span carry the accent */
h1 strong,h2 strong,h3 strong{font-weight:800;color:inherit}

.head{display:grid;grid-template-columns:1.35fr 1fr;gap:52px;align-items:end;margin-bottom:44px}
.head p{color:var(--slate);margin:0;font-size:14.5px;max-width:42ch}

/* ============================================================ BUTTONS */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:"Urbanist",sans-serif;font-weight:700;font-size:15px;letter-spacing:-.01em;padding:13px 22px;border-radius:var(--r);border:1px solid transparent;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn-amber{background:var(--amber);color:var(--ink);box-shadow:0 1px 0 var(--amber-deep)}
.btn-amber:hover{background:#e0a660}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#2b2c24}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-line:hover{border-color:var(--ink);background:#fff}
.btn-ghost{background:transparent;color:#fff;border-color:#3d3e35}
.btn-ghost:hover{border-color:var(--amber);color:var(--amber)}
.btn-block{width:100%;justify-content:center;padding:15px 22px;font-size:15.5px}
.btn .ar{transition:transform .18s ease}
.btn:hover .ar{transform:translateX(3px)}
:focus-visible{outline:2px solid var(--amber-deep);outline-offset:2px;border-radius:2px}

/* ============================================================ TOP STRIP + HEADER */
.strip{background:var(--ink);color:#9fa298;font-size:12.3px}
.strip .wrap{display:flex;align-items:center;justify-content:space-between;height:38px;gap:20px}
.strip b{color:#e8e9e2;font-weight:600}
.strip .r{display:flex;gap:22px;align-items:center}
.strip a:hover{color:var(--amber)}
.strip-l{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strip .r > *{white-space:nowrap}
.strip-tel{display:inline-flex;align-items:center;gap:7px}
.strip-tel svg{color:var(--amber);flex:none}
/* hours sit inside the area label on desktop; this copy is for small screens */
.strip-hours{display:none}
/* drop items as the screen narrows, instead of wrapping each onto several lines */
@media (max-width:1100px){.strip-mail{display:none}}
@media (max-width:880px){.strip-area{display:none}.strip-hours{display:inline}}
@media (max-width:640px){
  .strip .wrap{height:34px;justify-content:center;gap:0}
  .strip-l{display:none}
  .strip .r{gap:10px}
  .strip-hours{color:#9fa298}
  .strip-hours::after{content:"·";margin-left:10px;color:#5b5e55}
}

.hdr{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:132px;transition:height .28s cubic-bezier(.2,.7,.3,1)}
.logo{display:flex;align-items:center;justify-self:start}
.logo .mk{width:108px;height:108px;flex:none;border-radius:50%;background:var(--ink);display:grid;place-items:center;overflow:hidden;transition:width .28s cubic-bezier(.2,.7,.3,1),height .28s cubic-bezier(.2,.7,.3,1),transform .2s ease}
.logo:hover .mk{transform:scale(1.03)}
.logo .mk img{width:100%;height:100%;object-fit:contain;padding:5px}
.nav{display:flex;gap:30px;justify-self:center;font-size:15px;font-weight:500;white-space:nowrap}
.nav a{color:var(--ink-soft);padding:6px 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--amber);transition:right .22s ease}
.nav a:hover::after{right:0}
.hdr{transition:box-shadow .28s ease,background .28s ease}
.hdr.shrunk{box-shadow:0 1px 0 var(--line),0 10px 30px -22px rgba(20,21,15,.4)}
.hdr .end{justify-self:end;display:flex;align-items:center;gap:20px}
.hdr .end .tel{position:relative;padding-left:20px;border-left:1px solid var(--line);text-align:right}
.hdr .end .tel:first-child{padding-left:0;border-left:0}
.hdr .btn-amber{padding:14px 26px;font-size:15.5px}
.tel{font-family:"Urbanist";font-weight:800;font-size:16.5px;letter-spacing:-.02em}
.tel small{display:block;margin-top:3px;font-family:"Inter";font-size:10.4px;font-weight:600;color:var(--amber-deep);letter-spacing:.1em;text-transform:uppercase}
.hdr.shrunk .wrap{height:78px}
.hdr.shrunk .logo .mk{width:54px;height:54px}
.hdr.shrunk .logo .mk img{padding:3px}
@media (prefers-reduced-motion:reduce){.hdr .wrap,.logo .mk{transition:none}}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:var(--r);background:#fff;align-items:center;justify-content:center;cursor:pointer}

/* ============================================================ HERO */
.hero{position:relative;background:var(--paper);overflow:hidden;padding:76px 0 88px}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1fr 434px;gap:60px;align-items:center}
.hero-photo{position:absolute;top:0;right:0;bottom:0;width:54%;z-index:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 56%}
.hero-photo::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,var(--paper) 3%,rgba(242,243,240,.90) 19%,rgba(242,243,240,0) 54%),
  linear-gradient(180deg,rgba(242,243,240,.42) 0%,rgba(242,243,240,0) 24%,rgba(242,243,240,0) 72%,rgba(242,243,240,.94) 100%)}
.hero-copy{padding-bottom:0}
.hero h1{margin-bottom:24px;max-width:15ch}
.hero .lead{font-size:16.5px;max-width:44ch;margin-bottom:30px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:0}


/* booking card */
.bk{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden}
.bk-top{background:var(--ink);color:#fff;padding:17px 22px 0}
.bk-top h2{font-size:1.16rem;font-weight:700;letter-spacing:-.02em;margin-bottom:3px}
.bk-top p{font-size:12.4px;color:#9b9e93;margin:0 0 14px}
.tabs{display:flex;gap:4px}
.tab{flex:1;background:transparent;border:0;border-radius:var(--r) var(--r) 0 0;padding:11px 8px;color:#a7aa9f;font-family:"Urbanist";font-weight:700;font-size:13.4px;cursor:pointer;transition:.16s}
.tab:hover{color:#fff}
.tab[aria-selected="true"]{background:var(--card);color:var(--ink)}
.bk-body{padding:20px 22px 22px}
.fld{margin-bottom:12px}
.fld label{display:block;font-size:11.2px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}
.ctl{display:flex;align-items:center;gap:10px;border:1px solid var(--line-strong);border-radius:var(--r);background:#fcfcfb;padding:0 12px;height:46px;transition:.16s}
.ctl:focus-within{border-color:var(--ink);background:#fff;box-shadow:0 0 0 3px var(--amber-wash)}
.ctl > svg{flex:none;color:var(--amber-deep)}
.ctl input,.ctl select{border:0;background:transparent;width:100%;height:100%;outline:0;font-size:14.6px;font-weight:500;min-width:0}
.ctl select{appearance:none;cursor:pointer}
.ctl .chev{color:var(--slate-light);pointer-events:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pair{position:relative}
.swap{position:absolute;right:12px;top:calc(50% - 3px);transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:1px solid var(--line-strong);background:#fff;display:grid;place-items:center;cursor:pointer;z-index:3;box-shadow:var(--shadow-sm);transition:.18s}
.swap:hover{border-color:var(--ink);transform:translateY(-50%) rotate(180deg)}
.bk-note{margin-top:12px;font-size:12.1px;color:var(--slate);text-align:center;line-height:1.5}
.hide{display:none !important}

/* ============================================================ TRUST */
.trust{background:var(--ink);position:relative}
.trust .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.trust .wrap::-webkit-scrollbar{display:none}
.ti{display:flex;align-items:center;gap:9px;padding:0 22px;font-size:12.7px;font-weight:500;color:#c9cbc3;white-space:nowrap;flex:none}
.ti:first-child{padding-left:0}
.ti:last-child{padding-right:0}
.ti + .ti{border-left:1px solid var(--ink-line)}
.ti svg{flex:none;color:var(--amber)}

/* ============================================================ CARDS + PHOTOS */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.ph{position:relative;overflow:hidden;background:var(--paper-2)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.card:hover .ph img{transform:scale(1.04)}
.tag{position:absolute;top:12px;left:12px;z-index:2;background:var(--amber);color:var(--ink);font-family:"Urbanist";font-weight:800;font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:5px 10px;border-radius:var(--r)}

/* services */
.svc{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.sc{grid-column:span 2;display:flex;flex-direction:column}
.sc.wide{grid-column:span 3}
.sc .ph{aspect-ratio:16/10}
.sc.wide .ph{aspect-ratio:2/1}
.sc .in{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.sc h3{margin-bottom:8px}
.sc p{font-size:14px;color:var(--slate);margin-bottom:16px}
.meta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;border-top:1px solid var(--line)}
.price{font-family:"Urbanist";font-weight:800;font-size:14.5px}
.price em{font-style:normal;font-weight:600;font-size:12px;color:var(--slate)}
.meta .go{width:34px;height:34px;flex:none;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;transition:.18s;color:var(--ink)}
.card:hover .meta .go{background:var(--amber);border-color:var(--amber)}

/* ============================================================ PROOF */
.proof{background:var(--stone);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.pgrid p{font-size:14.6px;color:var(--slate)}
.pgrid strong{color:var(--ink);font-weight:600}
.pgrid a{color:var(--amber-deep);text-decoration:underline;text-underline-offset:2px}
.pshot{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:44px;aspect-ratio:24/9}
.pshot img{width:100%;height:100%;object-fit:cover}

/* ============================================================ FLEET */
.rail-top{display:flex;justify-content:flex-end;gap:8px;margin:-18px 0 18px}
.rnav{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--ink);transition:.18s}
.rnav:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.rnav[disabled]{opacity:.35;cursor:default;border-color:var(--line);background:transparent;color:var(--ink)}

.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:4px}
.rail::-webkit-scrollbar{display:none}
.vcard{flex:0 0 calc((100% - 32px)/3);scroll-snap-align:start;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.vcard:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}
.vcard .ph{aspect-ratio:4/3}
.vcard:hover .ph img{transform:scale(1.04)}
.vc-in{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.vc-kind{font-size:11.4px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--slate-light);margin-bottom:6px}
.vcard h3{font-size:1.28rem;margin-bottom:18px}
.vc-specs{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:18px}
.vc-cell{flex:1;padding-right:16px}
.vc-cell + .vc-cell{padding-left:16px;border-left:1px solid var(--line)}
.vc-cell span{display:block;font-size:10.8px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--slate-light);margin-bottom:5px}
.vc-cell b{font-family:"Urbanist";font-weight:800;font-size:1.02rem;letter-spacing:-.02em}
.vc-price{margin-top:auto;margin-bottom:16px;font-family:"Urbanist";font-weight:800;font-size:1.25rem;letter-spacing:-.03em}
.vc-price em{display:block;font-style:normal;font-family:"Inter";font-weight:500;font-size:11.8px;letter-spacing:0;color:var(--slate);margin-top:4px}

.rail-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:26px}
.rdot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:var(--line-strong);cursor:pointer;transition:width .22s cubic-bezier(.2,.7,.3,1),background .18s ease,border-radius .22s ease}
.rdot:hover{background:var(--slate-light)}
.rdot[aria-current="true"]{width:30px;border-radius:5px;background:var(--amber)}

/* ============================================================ ROUTES */
.routes{background:var(--ink);color:#fff}
.routes h2{color:#fff}
.routes .head p{color:#9fa298}
.rgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rt{background:var(--card);border:1px solid var(--card);border-radius:var(--r);overflow:hidden;position:relative;transition:transform .2s ease,box-shadow .2s ease}
.rt:hover{transform:translateY(-3px);box-shadow:0 18px 40px -20px rgba(0,0,0,.6)}
.rt .ph{aspect-ratio:16/9;background:var(--paper-2)}
.rt:hover .ph img{transform:scale(1.05)}
.rt .in{padding:18px 20px 20px}
.rt .from-to{font-size:11.2px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-light);margin-bottom:5px}
.rt .to{font-family:"Urbanist";font-weight:800;font-size:1.2rem;letter-spacing:-.025em;color:var(--ink);margin-bottom:13px}
.rt .prof{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.rt .prof svg{width:64px;height:24px;flex:none;overflow:visible}
.rt .prof span{font-size:11.4px;color:var(--slate)}
.rt .foot{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:13px}
.rt .amt{font-family:"Urbanist";font-weight:800;font-size:1.5rem;color:var(--amber-deep);line-height:1;letter-spacing:-.03em}
.rt .amt em{font-style:normal;font-size:10.6px;font-weight:600;color:var(--slate-light);display:block;margin-top:6px;letter-spacing:.07em;text-transform:uppercase}
.rt .dur{text-align:right;font-size:11.6px;color:var(--slate);line-height:1.5}
.rt .dur b{display:block;color:var(--ink);font-family:"Urbanist";font-size:13.8px;font-weight:700}
.rt .stretch{position:absolute;inset:0;z-index:4}
.rnote{margin-top:22px;font-size:12.4px;color:#8d9086;max-width:82ch;line-height:1.7}

/* ============================================================ EVENTS */
.evwrap{position:relative}
.evrail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;gap:16px}
.evrail::-webkit-scrollbar{display:none}
.ev{flex:0 0 100%;scroll-snap-align:start;border-radius:var(--r);overflow:hidden;background:var(--ink);color:#fff}
.ev-in{display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch}
.ev-copy{padding:52px 48px}
.ev h3{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;color:#fff;margin-bottom:16px}
.ev p{color:#a2a59b;font-size:14.8px;max-width:45ch}
.ev-list{list-style:none;padding:0;margin:22px 0 26px;display:grid;gap:11px}
.ev-list li{display:flex;gap:11px;align-items:flex-start;font-size:14.2px;color:#d5d7cf}
.ev-list svg{flex:none;margin-top:3px;color:var(--amber)}
.ev-art{position:relative;min-height:380px;overflow:hidden}
.ev-art img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.ev-nav{position:absolute;top:-70px;right:0;display:flex;gap:8px}
.ev-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:26px}

/* ============================================================ REVIEWS */
.rscore{display:grid;grid-template-columns:auto 1fr auto;gap:34px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px 30px;margin-bottom:16px}
.rscore .big{font-family:"Urbanist";font-size:3.1rem;font-weight:800;line-height:1;letter-spacing:-.04em}
.rscore .big small{display:block;font-family:"Inter";font-size:12px;font-weight:500;color:var(--slate);letter-spacing:0;margin-top:8px}
.rscore .txt{font-size:14.2px;color:var(--slate);max-width:52ch}
.plats{display:flex;gap:26px}
.plat{text-align:center}
.plat b{font-family:"Urbanist";font-size:1.25rem;font-weight:800;display:block;line-height:1}
.plat span{font-size:11.6px;color:var(--slate-light);display:block;margin-top:4px}
.rev{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rv{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.stars{display:flex;gap:3px;color:var(--amber);margin-bottom:14px}
.rv p{font-size:14.6px;color:var(--ink-soft)}
.who{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:11px}
.av{width:36px;height:36px;flex:none;border-radius:50%;background:var(--paper-2);display:grid;place-items:center;font-family:"Urbanist";font-weight:800;font-size:13px;color:var(--slate)}
.who b{font-size:13.6px;font-weight:600;display:block;line-height:1.3}
.who i{font-style:normal;font-size:12px;color:var(--slate-light)}

/* ============================================================ AREAS */
.areas{background:var(--stone);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.areagrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:stretch;margin-bottom:40px}
.area-shot{position:relative;border-radius:var(--r);overflow:hidden;height:100%;min-height:340px;background:var(--paper-2)}
.area-shot img{width:100%;height:100%;object-fit:cover}
.area-shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,21,15,0) 48%,rgba(20,21,15,.82) 100%)}
.area-cap{position:absolute;left:24px;right:24px;bottom:22px;z-index:2;color:#fff}
.area-cap b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.35rem;letter-spacing:-.025em}
.area-cap span{display:block;font-size:12.4px;color:#cfd2ca;margin-top:5px}
.area-copy p{font-size:14.8px;color:var(--slate)}
.area-copy strong{color:var(--ink);font-weight:600}
.chips-lg{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chips-lg a{border:1px solid var(--line-strong);border-radius:var(--r);padding:8px 14px;font-size:13.4px;font-weight:500;transition:.16s}
.chips-lg a:hover{border-color:var(--ink);background:var(--paper)}

/* ============================================================ FAQ */
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
details{background:var(--card);border:1px solid var(--line);border-radius:var(--r);transition:border-color .2s ease,box-shadow .2s ease}
details:hover{border-color:var(--line-strong)}
details[open]{border-color:var(--ink);box-shadow:var(--shadow-md)}
details summary{list-style:none;cursor:pointer;padding:20px 62px 20px 24px;position:relative;font-family:"Urbanist";font-weight:700;font-size:1.05rem;letter-spacing:-.015em;line-height:1.35}
details summary::-webkit-details-marker{display:none}
details summary::before{content:"";position:absolute;right:22px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);transition:.2s}
details[open] summary::before{background:var(--amber);border-color:var(--amber)}
details summary::after{content:"";position:absolute;right:33px;top:50%;width:9px;height:9px;border-right:2px solid var(--amber-deep);border-bottom:2px solid var(--amber-deep);transform:translateY(-72%) rotate(45deg);transition:transform .2s ease,border-color .2s ease}
details[open] summary::after{transform:translateY(-28%) rotate(-135deg);border-color:var(--ink)}
details .ans{padding:0 30px 22px 24px;color:var(--slate);font-size:14.6px}

/* ============================================================ CTA + FOOTER */
.cta{background:var(--paper);padding:88px 0 96px}
.cta-split{display:grid;grid-template-columns:1.34fr 1fr;border-radius:var(--r);overflow:hidden;box-shadow:0 40px 80px -40px rgba(20,21,15,.5)}

.cta-book{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:66px 58px}
.cta-book::after{content:"";position:absolute;right:-140px;top:-150px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(212,153,81,.26),rgba(212,153,81,0) 68%);pointer-events:none}
.cta-book > *{position:relative;z-index:2}
.cta-book h2{color:#fff;max-width:13ch;margin-bottom:16px}
.cta-book h2 span{color:var(--amber)}
.cta-book p{color:#a2a59b;max-width:42ch;margin:0 0 30px;font-size:15.4px}
.cta-points{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}
.cta-points span{border:1px solid #3a3b32;border-radius:var(--r);padding:7px 13px;font-size:12.4px;color:#c9cbc3}

.cta-call{display:flex;flex-direction:column;justify-content:center;background:var(--amber);color:var(--ink);padding:66px 48px;transition:background .22s ease}
.cta-call:hover{background:#e0a660}
.cta-call .lbl{font-size:11.2px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:rgba(20,21,15,.6);margin-bottom:16px}
.cta-call .num{display:block;font-family:"Urbanist";font-weight:800;font-size:clamp(2rem,3.5vw,3.05rem);line-height:1;letter-spacing:-.045em}
.cta-call .sub{margin-top:18px;font-size:14.2px;color:rgba(20,21,15,.74);max-width:28ch;line-height:1.55}
.cta-call .call-go{margin-top:30px;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;font-family:"Urbanist";font-weight:700;font-size:14.8px;padding-top:20px;border-top:1px solid rgba(20,21,15,.22)}
.cta-call .call-go svg{flex:none}
.cta-call:hover .call-go svg{transform:translateX(4px)}
.cta-call{align-items:flex-start}
.cta-act{display:flex;gap:12px;flex-wrap:wrap}

footer{background:var(--ink);color:#8d9086;padding:64px 0 0;font-size:13.5px}
.fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.1fr;gap:40px;padding-bottom:44px}
footer h4{color:#fff;font-size:12.6px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
footer a:hover{color:var(--amber)}
.fbrand .logo .mk{width:118px;height:118px;background:#20211a;border:1px solid var(--ink-line)}
.fbrand p{max-width:36ch;margin:16px 0}
.fbadges{display:flex;flex-wrap:wrap;gap:7px}
.fbadge{border:1px solid var(--ink-line);border-radius:var(--r);padding:5px 10px;font-size:11.6px;color:#c9cbc3}
.fbot{border-top:1px solid var(--ink-line);padding:20px 0;display:flex;justify-content:space-between;gap:20px;font-size:12.3px}

.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fff;border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:10px;box-shadow:0 -8px 24px -14px rgba(20,21,15,.3)}
.mbar .btn{flex:1;justify-content:center}

.rvl{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}
.rvl.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rvl{opacity:1;transform:none;transition:none}*{scroll-behavior:auto !important}}

/* ============================================================ RESPONSIVE */
@media (max-width:1140px){
  .nav,.hdr .tel{display:none}
  .burger{display:flex}
  .hdr .wrap{grid-template-columns:auto 1fr;height:110px}
  .logo .mk{width:88px;height:88px}
  .hdr.shrunk .wrap{height:70px}
  .hdr.shrunk .logo .mk{width:44px;height:44px}
  .hero .wrap{grid-template-columns:1fr;gap:0}
  /* Stacked layouts put the form straight after the heading: the copy
     wrapper dissolves so its pieces can be ordered around the form. */
  .hero-copy{display:contents}
  .hero h1{order:1;margin-bottom:22px;max-width:19ch}
  .hero-form{order:2}
  .hero .lead{order:3;margin:30px 0 18px}
  .hero-cta{order:4}
  /* the form is directly above, so a second Book button there is noise */
  .hero-cta [data-mbl-cta="hero-book"]{display:none}
  .hero-photo{width:100%;top:auto;height:46%}
  .hero-photo::after{background:linear-gradient(180deg,var(--paper) 0%,rgba(242,243,240,.82) 26%,rgba(242,243,240,0) 68%,rgba(242,243,240,.9) 100%)}
  .bk{max-width:520px;margin-bottom:56px}
  .vcard{flex:0 0 calc((100% - 16px)/2)}
  .rgrid{grid-template-columns:repeat(2,1fr)}
  .svc{grid-template-columns:repeat(4,1fr)}
  .sc{grid-column:span 2}
  .sc.wide{grid-column:span 4}
  .sc.wide .ph{aspect-ratio:21/8}
}
@media (max-width:880px){
  .sec{padding:70px 0}
  .head{grid-template-columns:1fr;gap:16px;align-items:start}
  .pgrid{grid-template-columns:1fr;gap:0}
  .ev-in{grid-template-columns:1fr}
  .ev-copy{padding:34px 24px}
  .ev-art{min-height:230px;order:-1}
  .ev-nav{position:static;justify-content:flex-end;margin-bottom:14px}
  .areagrid{grid-template-columns:1fr;gap:28px}
  .area-shot{height:auto;min-height:0;aspect-ratio:16/10}
  .faq{grid-template-columns:minmax(0,1fr)}
  .rev{grid-template-columns:1fr}
  .rscore{grid-template-columns:auto 1fr;gap:22px}
  .plats{grid-column:1/-1;justify-content:flex-start}
  .cta{padding-bottom:70px}
  .cta-split{grid-template-columns:1fr}
  .cta-book{padding:44px 28px}
  .cta-call{padding:40px 28px}

}
@media (max-width:640px){
  .wrap{padding:0 18px}
  .hdr .wrap{height:78px;gap:12px}
  .logo .mk{width:60px;height:60px}
  .hdr.shrunk .wrap{height:62px}
  .hdr.shrunk .logo .mk{width:42px;height:42px}
  .hdr .end{gap:10px}
  .hdr .btn-amber{padding:11px 16px;font-size:14px}
  /* On phones the copy sits over the photo and becomes unreadable, so the
     photo stops being a backdrop and becomes a band at the end of the hero. */
  .hero{display:flex;flex-direction:column}
  .hero .wrap{order:1}
  .hero-photo{order:2;position:static;width:100%;height:210px;margin-top:28px}
  .hero-photo::after{display:none}
  .hero{padding:20px 0 0}
  .hero h1{font-size:clamp(1.55rem,6.6vw,1.9rem);line-height:1.12;margin:0 0 16px;max-width:none;text-align:center;text-wrap:pretty}
  /* the desktop line breaks make short ragged lines here; let it span the form's width */
  .hero h1 br{display:none}
  .hero .lead{font-size:15.4px;margin:24px 0 16px}
  .fbrand .logo .mk{width:92px;height:92px}
  .svc,.rgrid{grid-template-columns:1fr}
  .vcard{flex:0 0 84%}
  .rail-top{margin:-10px 0 16px}
  .sc,.sc.wide{grid-column:span 1}
  .sc.wide .ph,.sc .ph{aspect-ratio:16/10}
  .trust .wrap{justify-content:flex-start;height:54px}
  .ti{padding:0 16px;font-size:12.2px}
  .mbar{display:flex}
  body{padding-bottom:74px}
  .fgrid{grid-template-columns:1fr 1fr;gap:30px 20px}
  .fgrid > *{min-width:0}
  .fgrid > .fbrand,.fgrid > :last-child{grid-column:1/-1}
  .fgrid a{overflow-wrap:anywhere}
  .fbot{flex-direction:column;gap:8px}
  .rscore .big{font-size:2.4rem}
}

/* ============================================================
   5. INNER PAGE AND LANDING SECTIONS
   ============================================================ */
/* ============================================================ INNER PAGE */
.pghero{background:var(--paper);padding:46px 0 0;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.pghero .wrap{display:grid;grid-template-columns:1.06fr .94fr;gap:54px;align-items:center;padding-bottom:46px}
.pghero + .sec,.pghero + .proof,.pghero + .areas{padding-top:64px}
.crumb{display:flex;align-items:center;gap:8px;font-size:12.6px;color:var(--slate-light);margin-bottom:22px;flex-wrap:wrap}
.crumb a:hover{color:var(--amber-deep)}
.crumb svg{opacity:.5}
.pghero h1{font-size:clamp(2.1rem,3.6vw,3.2rem);max-width:17ch;margin-bottom:18px}
.pghero .lead{font-size:16.2px;max-width:46ch;margin-bottom:26px}
.pgcta{display:flex;gap:12px;flex-wrap:wrap}
.pgshot{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/11;background:var(--paper-2)}
.pgshot img{width:100%;height:100%;object-fit:cover}
.pgshot .badge{position:absolute;left:0;bottom:0;z-index:2;background:var(--amber);color:var(--ink);padding:14px 22px;border-radius:0 var(--r) 0 0}
.pgshot .badge b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.5rem;line-height:1;letter-spacing:-.03em}
.pgshot .badge span{display:block;font-size:11.6px;font-weight:600;margin-top:5px}

.keyfacts{background:var(--ink)}
/* facts strip is ink with white figures and amber accents */
.keyfacts .kf b{color:#fff}
.keyfacts .kf:nth-child(odd) b{color:var(--amber)}
.keyfacts .kf span{color:#9fa298}
.keyfacts .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding-top:30px;padding-bottom:30px}
.kf{padding:0 28px;border-left:1px solid var(--ink-line)}
.kf:first-child{padding-left:0;border-left:0}
.kf b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.75rem;line-height:1;letter-spacing:-.035em;color:#fff}
.kf:nth-child(odd) b{color:var(--amber)}
.kf span{display:block;margin-top:8px;font-size:12.3px;color:#9fa298;line-height:1.4}

.incl{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.inc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px;transition:border-color .2s ease,box-shadow .2s ease}
.inc:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}
.inc .ic{width:40px;height:40px;border-radius:50%;background:var(--amber-wash);color:var(--amber-deep);display:grid;place-items:center;margin-bottom:16px}
.inc h3{font-size:1.06rem;margin-bottom:8px}
.inc p{font-size:14px;color:var(--slate);margin:0}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--ink)}
.step{padding:28px 26px 0 0}
.step + .step{padding-left:26px;border-left:1px solid var(--line)}
.step i{font-style:normal;font-family:"Urbanist";font-weight:800;font-size:2.2rem;letter-spacing:-.04em;color:var(--amber);display:block;line-height:1}
.step h3{font-size:1.05rem;margin:14px 0 8px}
.step p{font-size:13.8px;color:var(--slate);margin:0}

.ptable{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.ptrow{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:20px;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}
.ptrow:last-child{border-bottom:0}
.ptrow.hd{background:var(--paper);font-size:11.2px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);padding:14px 24px}
.ptrow strong{font-family:"Urbanist";font-weight:700;font-size:1.02rem}
.ptrow .amt{font-family:"Urbanist";font-weight:800;font-size:1.2rem;color:var(--amber-deep);letter-spacing:-.025em}
.ptrow .mut{color:var(--slate);font-size:14px}
.ptrow a.mini{font-family:"Urbanist";font-weight:700;font-size:13.6px;border:1px solid var(--line-strong);border-radius:var(--r);padding:8px 16px;transition:.18s}
.ptrow a.mini:hover{background:var(--ink);border-color:var(--ink);color:#fff}

.related{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.rel{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.rel .ph{aspect-ratio:16/10}
.rel:hover .ph img{transform:scale(1.04)}
.rel .rel-in{padding:20px 22px 22px}
.rel:hover{box-shadow:var(--shadow-md)}
.rel:hover{border-color:var(--ink);transform:translateY(-2px)}
.rel b{display:block;font-family:"Urbanist";font-weight:700;font-size:1.05rem;margin-bottom:6px}
.rel span{display:block;font-size:13.4px;color:var(--slate)}

@media (max-width:1140px){
  .pghero .wrap{grid-template-columns:1fr;gap:34px}
  .incl{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step:nth-child(3){border-left:0;padding-left:0}
  .step:nth-child(n+3){margin-top:20px}
  .related{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:880px){
  .keyfacts .wrap{grid-template-columns:1fr 1fr;gap:24px 0}
  .kf:nth-child(3){padding-left:0;border-left:0}
}
@media (max-width:640px){
  .incl,.steps,.related{grid-template-columns:1fr}
  .step,.step + .step{padding-left:0;border-left:0}
  .pgshot{aspect-ratio:4/3}
  .ptrow{grid-template-columns:1fr 1fr;gap:10px}
  .ptrow.hd{display:none}
  .ptrow a.mini{grid-column:1/-1;text-align:center}
}

/* ============================================================
   6. WORDPRESS CORE, PROSE, BLOG, FORMS
   ============================================================ */

/* --- nav menu output --- */
.nav ul.nav-menu{list-style:none;margin:0;padding:0;display:flex;gap:28px;align-items:center}
.nav ul.nav-menu > li{position:relative}
.nav a.nav-link{color:var(--ink-soft);padding:6px 0;position:relative;font-size:14.8px;font-weight:500;display:inline-block}
.nav a.nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--amber);transition:right .22s ease;pointer-events:none}
.nav a.nav-link:hover::after,
.nav li.current-menu-item > a.nav-link::after,
.nav li.current-menu-ancestor > a.nav-link::after{right:0}
/* WordPress tags an unrelated item current_page_parent on the front page,
   which made Services look active there. The front page has no current item. */
.home .nav li.current_page_parent > a.nav-link::after,
.home .nav li.current-menu-ancestor > a.nav-link::after,
.home .nav li.current-menu-item > a.nav-link::after{right:100%}
.home .nav a.nav-link:hover::after{right:0}
.nav ul.nav-menu > li.menu-item-has-children{padding-bottom:20px;margin-bottom:-20px}
.nav ul.sub-menu{position:absolute;top:100%;left:-16px;min-width:250px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-md);padding:8px;list-style:none;margin:0;display:none;z-index:70}
.nav ul.nav-menu > li:hover > ul.sub-menu,
.nav ul.nav-menu > li:focus-within > ul.sub-menu{display:block;animation:mbl-drop .18s ease both}
@keyframes mbl-drop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.nav ul.sub-menu{animation:none!important}}
.nav ul.sub-menu a{display:block;padding:9px 12px;border-radius:var(--r);font-size:14px;color:var(--ink-soft)}
.nav ul.sub-menu a:hover{background:var(--paper);color:var(--ink)}
.nav ul.sub-menu a::after{display:none}
.nav .menu-item-has-children > a.nav-link{padding-right:16px}
.nav .menu-item-has-children > a.nav-link::before{content:"";position:absolute;right:0;top:50%;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translate(0,-70%) rotate(45deg);opacity:.5;transition:transform .2s ease,opacity .2s ease}
.nav .menu-item-has-children:hover > a.nav-link::before,.nav .menu-item-has-children:focus-within > a.nav-link::before{transform:translate(0,-30%) rotate(-135deg);opacity:1}
/* Items with a caret stop the underline short of it, but only while hovered
   or genuinely current. Setting `right` unconditionally drew it permanently,
   which is why Services always looked active. */
.nav .menu-item-has-children > a.nav-link:hover::after,
.nav li.menu-item-has-children.current-menu-item > a.nav-link::after,
.nav li.menu-item-has-children.current-menu-ancestor > a.nav-link::after{right:16px}
.home .nav li.menu-item-has-children.current-menu-item > a.nav-link::after,
.home .nav li.menu-item-has-children.current-menu-ancestor > a.nav-link::after{right:100%}
.home .nav .menu-item-has-children > a.nav-link:hover::after{right:16px}

/* --- mobile flyout --- */
.flyout-overlay{position:fixed;inset:0;background:rgba(20,21,15,.5);backdrop-filter:blur(2px);z-index:90;opacity:0;transition:opacity .25s ease}
.flyout-overlay.on{opacity:1}
.flyout{position:fixed;top:0;right:0;bottom:0;width:min(400px,88vw);background:var(--card);border-left:1px solid var(--line);z-index:95;transform:translateX(102%);transition:transform .3s cubic-bezier(.2,.7,.3,1);display:flex;flex-direction:column;overflow-y:auto}
.flyout.on{transform:none}
.flyout-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line)}
.flyout-close{width:42px;height:42px;flex:none;border:1px solid var(--line-strong);border-radius:var(--r);background:#fff;display:grid;place-items:center;cursor:pointer}
.flyout-close:hover{border-color:var(--ink)}
.flyout-nav ul{list-style:none;margin:0;padding:10px 14px}
.flyout-nav a{display:block;padding:13px 10px;font-family:"Urbanist",sans-serif;font-weight:700;font-size:1.02rem;letter-spacing:-.015em;border-bottom:1px solid var(--line)}
.flyout-nav a:hover{color:var(--amber-deep)}
.flyout-nav ul.sub-menu{padding:0 0 8px 14px}
.flyout-nav ul.sub-menu a{font-family:"Inter",sans-serif;font-weight:500;font-size:14px;padding:9px 10px;color:var(--slate)}
.flyout-cta{padding:14px 22px}
.flyout-contact{padding:6px 22px 22px;display:grid;gap:10px}
.flyout-contact a,.flyout-contact div{display:flex;align-items:center;gap:11px;font-size:14px;color:var(--slate)}
.flyout-contact svg{flex:none;color:var(--amber-deep)}
.flyout-social{display:flex;gap:10px;padding:0 22px 26px}
.flyout-social a{width:38px;height:38px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;color:var(--slate)}
.flyout-social a:hover{border-color:var(--ink);color:var(--ink)}
body.flyout-open{overflow:hidden}

/* --- top strip social --- */
.topstrip-social{display:flex;gap:12px;align-items:center}
.topstrip-social a{color:#9fa298;display:flex}
.topstrip-social a:hover{color:var(--amber)}

/* --- page banner (inner pages without a bespoke hero) --- */
.pgbanner{background:var(--paper);border-bottom:1px solid var(--line);padding:52px 0}
.pgbanner h1{font-size:clamp(2.1rem,3.6vw,3.2rem);max-width:20ch;margin-bottom:16px}
.pgbanner .lead{font-size:16.2px;max-width:60ch}

/* --- long-form prose --- */
.prose{max-width:74ch;font-size:16px;color:var(--ink-soft)}
.prose > * + *{margin-top:1.05em}
.prose h2{font-size:clamp(1.5rem,2.4vw,2rem);margin-top:1.8em}
.prose h3{font-size:1.2rem;margin-top:1.6em}
.prose a{color:var(--amber-deep);text-decoration:underline;text-underline-offset:2px}
.prose ul,.prose ol{padding-left:1.2em}
.prose li + li{margin-top:.5em}
.prose img{border-radius:var(--r);margin:1.6em 0}
.prose blockquote{border-left:3px solid var(--amber);padding:6px 0 6px 22px;margin:1.6em 0;color:var(--slate);font-size:17px}
.prose table{width:100%;border-collapse:collapse;font-size:14.6px}
.prose th,.prose td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}
.prose th{font-family:"Urbanist",sans-serif;font-weight:700}
.prose code{background:var(--paper-2);padding:2px 6px;border-radius:3px;font-size:.92em}
.prose figure{margin:1.6em 0}
.prose figcaption{font-size:13px;color:var(--slate-light);margin-top:8px}

/* --- blog --- */
.postgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.pcard:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.pcard .ph{aspect-ratio:16/10}
.pcard .in{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.pcard .pmeta{font-size:11.6px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-light);margin-bottom:9px}
.pcard h3{font-size:1.12rem;margin-bottom:9px}
.pcard p{font-size:14px;color:var(--slate);margin-bottom:16px}
.pcard .more{margin-top:auto;font-family:"Urbanist",sans-serif;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px}
.pcard:hover .more{color:var(--amber-deep)}
.postnav{display:flex;justify-content:space-between;gap:16px;margin-top:40px;padding-top:26px;border-top:1px solid var(--line)}
.pagination{display:flex;gap:8px;justify-content:center;margin-top:40px}
.pagination .page-numbers{min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r);display:grid;place-items:center;font-family:"Urbanist",sans-serif;font-weight:700;font-size:14px}
.pagination .page-numbers:hover{border-color:var(--ink)}
.pagination .page-numbers.current{background:var(--ink);border-color:var(--ink);color:#fff}

/* --- forms (contact form, search) --- */
.mbl-form{display:grid;gap:14px;max-width:640px}
.mbl-form .frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mbl-form label{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}
.mbl-form input[type=text],.mbl-form input[type=email],.mbl-form input[type=tel],.mbl-form input[type=date],.mbl-form select,.mbl-form textarea,
.search-field{width:100%;border:1px solid var(--line-strong);border-radius:var(--r);background:#fcfcfb;padding:12px 14px;font-size:15px;font-weight:500;outline:0;transition:.16s}
.mbl-form textarea{min-height:150px;resize:vertical}
.mbl-form input:focus,.mbl-form select:focus,.mbl-form textarea:focus,.search-field:focus{border-color:var(--ink);background:#fff;box-shadow:0 0 0 3px var(--amber-wash)}
.mbl-form .note{font-size:12.6px;color:var(--slate)}
.mbl-notice{border-radius:var(--r);padding:14px 18px;font-size:14px;margin-bottom:16px}
.mbl-notice.ok{background:#eef5ed;border:1px solid #cfe2cb;color:#2f5a2b}
.mbl-notice.err{background:#fdeeee;border:1px solid #f0cdcd;color:#8a2f2f}

/* --- wp core --- */
.alignwide{max-width:1220px;margin-left:auto;margin-right:auto}
.alignfull{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw)}
.alignleft{float:left;margin:0 1.6em 1em 0}
.alignright{float:right;margin:0 0 1em 1.6em}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.wp-caption{max-width:100%}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:12px;left:12px;z-index:200;background:var(--ink);color:#fff;padding:12px 18px;border-radius:var(--r);width:auto;height:auto;clip:auto}

/* --- floating mobile action bar (Customizer controlled) --- */

@media (max-width:640px){
  .postgrid{grid-template-columns:1fr}
  .mbl-form .frow{grid-template-columns:1fr}
}
@media (max-width:1140px){
  .postgrid{grid-template-columns:repeat(2,1fr)}
}

/* --- shared inner-page banner, plain variant --- */
.pghero.is-plain .wrap{grid-template-columns:1fr}
.pghero.is-plain h1{max-width:22ch}

/* ============================================================
   7. TEMPLATE-SPECIFIC BLOCKS
   ============================================================ */

/* fleet page grid */
.fleetgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.veh .ph{aspect-ratio:16/10;background:#f6f6f4}
.veh-feats{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:9px}
.veh-feats li{display:flex;gap:9px;align-items:flex-start;font-size:13.6px;color:var(--slate)}
.veh-feats svg{flex:none;margin-top:3px;color:var(--amber-deep)}
.veh-eta{font-size:12.6px;color:var(--slate-light);margin:0 0 14px}

/* rates table extras */
.ptrow strong{display:flex;flex-direction:column;gap:4px}
.ptsub{font-family:"Inter",sans-serif;font-weight:400;font-size:12.8px;color:var(--slate-light)}
.ptrow .amt em{display:block;font-style:normal;font-family:"Inter",sans-serif;font-weight:500;font-size:11.6px;color:var(--slate-light);margin-top:4px}
.rate-disclaimer{margin-top:20px;font-size:13.2px;color:var(--slate);max-width:80ch;line-height:1.7}

/* booking, contact and landing sidebars */
.bookgrid,.contactgrid,.lpgrid{display:grid;grid-template-columns:1.5fr .85fr;gap:38px;align-items:start}
.booksides{display:grid;gap:14px;position:sticky;top:150px}
.bcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.bcard--flush{padding:0;overflow:hidden}
.bcard h3{font-size:1.1rem;margin-bottom:10px}
.bcard p{font-size:14px;color:var(--slate);margin-bottom:18px}
.bnote{margin:14px 0 0;font-size:13.4px}
.bnote a{color:var(--amber-deep);text-decoration:underline;text-underline-offset:2px}
.bprice{font-family:"Urbanist",sans-serif;font-weight:800;font-size:2.1rem;line-height:1;letter-spacing:-.04em;color:var(--amber-deep);margin-bottom:14px}
.bprice em{display:block;font-style:normal;font-family:"Inter",sans-serif;font-weight:500;font-size:12.2px;letter-spacing:0;color:var(--slate);margin-top:7px}
.blist{list-style:none;padding:0;margin:0;display:grid;gap:11px}
.blist li{display:flex;gap:10px;align-items:flex-start;font-size:13.8px;color:var(--ink-soft)}
.blist svg{flex:none;margin-top:3px;color:var(--amber-deep)}
.blist.plain li{display:block;color:var(--slate)}
.blist.plain a{color:var(--ink)}
.blist.plain a:hover{color:var(--amber-deep)}


@media (max-width:1140px){
  .fleetgrid{grid-template-columns:repeat(2,1fr)}
  .bookgrid,.contactgrid,.lpgrid{grid-template-columns:1fr;gap:30px}
  .booksides{position:static}
}
@media (max-width:640px){
  .fleetgrid{grid-template-columns:1fr}
}

/* --- built-in contact form (inc/contact-form.php markup) --- */
.mbl-cf-form{display:grid;gap:14px;max-width:660px}
.mbl-cf-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mbl-cf-form .field{display:block}
.mbl-cf-form .field-label{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}
.mbl-cf-form input[type=text],.mbl-cf-form input[type=email],.mbl-cf-form input[type=tel],.mbl-cf-form select,.mbl-cf-form textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--r);background:#fcfcfb;padding:12px 14px;font-size:15px;font-weight:500;outline:0;transition:.16s;font-family:inherit;color:var(--ink)}
.mbl-cf-form textarea{min-height:160px;resize:vertical}
.mbl-cf-form input:focus,.mbl-cf-form select:focus,.mbl-cf-form textarea:focus{border-color:var(--ink);background:#fff;box-shadow:0 0 0 3px var(--amber-wash)}
.mbl-cf-form .field.has-error input,.mbl-cf-form .field.has-error textarea,.mbl-cf-form .field.has-error select{border-color:#c46a6a}
.mbl-cf-form .field-error{display:block;margin-top:6px;font-size:12.4px;color:#8a2f2f}
.mbl-cf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.mbl-cf-check{display:flex;gap:10px;align-items:flex-start;font-size:13.6px;color:var(--slate)}
.mbl-cf-check input{margin-top:3px}
.mbl-cf-notice{border-radius:var(--r);padding:14px 18px;font-size:14px;margin-bottom:16px;background:#fdeeee;border:1px solid #f0cdcd;color:#8a2f2f}
.mbl-cf-success{border-radius:var(--r);padding:16px 20px;font-size:14.6px;background:#eef5ed;border:1px solid #cfe2cb;color:#2f5a2b}

/* the form ships its own button classes, so give them the theme's look */
.btn-amber.full,a.btn-amber.full,button.btn-amber{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:"Urbanist",sans-serif;font-weight:700;font-size:15.5px;letter-spacing:-.01em;padding:14px 24px;border:1px solid transparent;border-radius:var(--r);background:var(--amber);color:var(--ink);box-shadow:0 1px 0 var(--amber-deep);cursor:pointer;transition:transform .18s ease,background .18s ease}
.btn-amber.full{width:100%}
.btn-amber:hover{background:#e0a660;transform:translateY(-1px)}

@media (max-width:640px){
  .mbl-cf-form .field-row{grid-template-columns:1fr}
}

/* --- credential strip under an inner-page banner --- */
.pghero{border-bottom:0}
.trust--page + .sec,.trust--page + .proof,.trust--page + .areas{padding-top:70px}

/* ============================================================
   8. POLISH PASS
   ============================================================ */

/* section headings: keep the support paragraph from colliding with slider
   arrows, which sit in the same band on fleet and events */
.head{align-items:start}
.head p{padding-top:6px}
.rail-top{margin-top:-4px}

/* the closing CTA needs the same breathing room as a section */
.cta-book,.cta-call{min-height:360px}
.cta-call{justify-content:center}
.cta-call .num{margin-bottom:2px}

/* cards: a consistent lift, rather than three different hover treatments */
.card,.rt,.rel,.bcard,.inc,.pp,.gp,.vsc,.tier,.sea,.way{will-change:transform}

/* empty photo frames should collapse rather than show a torn icon */
.ph:empty,.ev-art:empty,.area-shot:empty,.pgshot:empty,.hero-photo:empty{display:none}
.ph.is-empty,.ev-art.is-empty{background:var(--paper-2)}

/* long route names should not push the price out of the card */
.rt .to,.vcard h3,.rel b{overflow-wrap:anywhere}

/* tables and wide blocks inside prose scroll rather than break the page */
.prose table,.prose pre{display:block;overflow-x:auto}

/* focus visibility on dark panels */
.routes :focus-visible,.cta-book :focus-visible,.ev :focus-visible,.dhero :focus-visible,.ghero :focus-visible{outline-color:var(--amber)}

/* stop the sticky header covering an anchor target */
:target{scroll-margin-top:150px}

/* print: drop the furniture */
@media print{
  .strip,.hdr,.fab,.flyout,.flyout-overlay,.cta,.rail-top,.rail-dots,.ev-nav,.ev-dots{display:none!important}
  body{background:#fff}
  .sec{padding:18px 0}
}


/* ---- rates page: included list as cards ---- */
.incl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.incl-grid .inc .ic{width:38px;height:38px}
.rate-hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:34px}
.rate-hero-stats div{padding:0 26px;border-left:1px solid var(--line-strong)}
.rate-hero-stats div:first-child{padding-left:0;border-left:0}
.rate-hero-stats b{display:block;font-family:"Urbanist",sans-serif;font-weight:800;font-size:1.9rem;line-height:1;letter-spacing:-.035em}
.rate-hero-stats span{display:block;margin-top:8px;font-size:12.4px;color:var(--slate)}
.rate-hero-stats div:nth-child(even) b{color:var(--amber-deep)}

/* ---- about page: portrait beside the story ---- */
.aboutgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:start}
.about-shot{position:sticky;top:150px;border-radius:var(--r);overflow:hidden;background:var(--paper-2);aspect-ratio:4/5}
.about-shot img{width:100%;height:100%;object-fit:cover}
.about-shot .badge{position:absolute;left:0;bottom:0;z-index:2;background:var(--amber);color:var(--ink);padding:14px 22px;border-radius:0 var(--r) 0 0}
.about-shot .badge b{display:block;font-family:"Urbanist",sans-serif;font-weight:800;font-size:1.4rem;line-height:1;letter-spacing:-.03em}
.about-shot .badge span{display:block;font-size:11.6px;font-weight:600;margin-top:5px}

@media (max-width:1140px){
  .incl-grid{grid-template-columns:repeat(2,1fr)}
  .aboutgrid{grid-template-columns:1fr;gap:30px}
  .about-shot{position:static;aspect-ratio:16/10}
}
@media (max-width:880px){
  .rate-hero-stats{grid-template-columns:1fr 1fr;gap:24px 0}
  .rate-hero-stats div:nth-child(3){padding-left:0;border-left:0}
}
@media (max-width:640px){
  .incl-grid{grid-template-columns:1fr}
  .rate-hero-stats{grid-template-columns:1fr}
  .rate-hero-stats div{padding-left:0;border-left:0}
}


/* ============================================================
   9. LANDING AND ROUTE PAGE LAYOUTS
   ============================================================ */
/* ---------- route page: DEN ---------- */
.dhero{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.dhero-bg{position:absolute;inset:0}
.dhero-bg img{width:100%;height:100%;object-fit:cover;opacity:.42}
.dhero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(20,21,15,.96) 0%,rgba(20,21,15,.82) 46%,rgba(20,21,15,.42) 100%)}
.dhero .wrap{position:relative;z-index:2;padding-top:72px;padding-bottom:78px;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end}
.dhero .crumb{color:#8d9086;margin-bottom:26px}
.dhero .crumb a:hover{color:var(--amber)}
.dhero h1{font-size:clamp(2.3rem,4.1vw,3.6rem);color:#fff;max-width:15ch;margin-bottom:20px}
.dhero p{color:#b6b8b0;font-size:16.4px;max-width:46ch;margin-bottom:30px}
.quote{background:var(--card);border-radius:var(--r);padding:26px 28px;box-shadow:var(--shadow-lg);color:var(--ink)}
.quote .lbl{font-size:11.2px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:12px}
.quote .big{font-family:"Urbanist";font-weight:800;font-size:3.4rem;line-height:1;letter-spacing:-.045em;color:var(--amber-deep)}
.quote .big em{font-style:normal;font-size:1rem;color:var(--slate);font-weight:600;letter-spacing:0;margin-left:8px}
.qlist{margin:20px 0 22px;display:grid;gap:10px}
.qlist div{display:flex;justify-content:space-between;gap:16px;font-size:13.8px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.qlist div:last-child{border-bottom:0;padding-bottom:0}
.qlist b{font-family:"Urbanist";font-weight:700}
.qlist span{color:var(--slate)}

.planner{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.prow{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;padding:17px 26px;border-bottom:1px solid var(--line);align-items:center}
.prow:last-child{border-bottom:0}
.prow.hd{background:var(--paper);font-size:11.2px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);padding:14px 26px}
.prow b{font-family:"Urbanist";font-weight:800;font-size:1.15rem;letter-spacing:-.025em}
.prow .leave{color:var(--amber-deep)}
.prow span{color:var(--slate);font-size:13.8px}

.pickpoints{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pp{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px;position:relative}
.pp i{font-style:normal;display:inline-block;font-family:"Urbanist";font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:#fff;padding:5px 11px;border-radius:var(--r);margin-bottom:16px}
.pp h3{font-size:1.08rem;margin-bottom:8px}
.pp p{font-size:13.9px;color:var(--slate);margin:0}
.pp.best i{background:var(--amber);color:var(--ink)}

@media (max-width:1140px){.dhero .wrap{grid-template-columns:1fr;gap:34px;align-items:start}.pickpoints{grid-template-columns:1fr}}
@media (max-width:640px){.prow{grid-template-columns:1fr 1fr}.prow.hd{display:none}.quote .big{font-size:2.6rem}}

/* ---------- route page: Red Rocks ---------- */
.rrhero{background:var(--paper);padding:52px 0 0;overflow:hidden}
.rrhero .wrap{display:grid;grid-template-columns:.95fr 1.05fr;gap:52px;align-items:center;padding-bottom:64px}
.rrhero h1{font-size:clamp(2.2rem,3.9vw,3.45rem);max-width:14ch;margin-bottom:20px}
.rrhero .lead{font-size:16.4px;max-width:44ch;margin-bottom:28px}
.rrframe{position:relative}
.rrframe img{width:100%;border-radius:var(--r);display:block;aspect-ratio:4/3;object-fit:cover}
.rrframe::before{content:"";position:absolute;left:-18px;top:-18px;right:34px;bottom:34px;border:2px solid var(--amber);border-radius:var(--r);z-index:0}
.rrframe img{position:relative;z-index:1}
.rrtag{position:absolute;right:-8px;bottom:-18px;z-index:2;background:var(--ink);color:#fff;border-radius:var(--r);padding:18px 24px;box-shadow:var(--shadow-lg)}
.rrtag b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.35rem;letter-spacing:-.03em}
.rrtag span{display:block;font-size:12px;color:#9fa298;margin-top:5px}

.tl{display:grid;gap:0;border-left:2px solid var(--line-strong);margin-left:9px}
.tl-item{position:relative;padding:0 0 34px 34px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:-10px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--card);border:2px solid var(--amber);box-shadow:0 0 0 4px var(--paper)}
.tl-item time{display:block;font-family:"Urbanist";font-weight:800;font-size:1.1rem;color:var(--amber-deep);letter-spacing:-.02em;margin-bottom:6px}
.tl-item h3{font-size:1.06rem;margin-bottom:7px}
.tl-item p{font-size:14px;color:var(--slate);margin:0}
.tlgrid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.tlside{background:var(--ink);color:#fff;border-radius:var(--r);padding:34px 32px}
.tlside h3{color:#fff;font-size:1.3rem;margin-bottom:14px}
.tlside p{color:#a2a59b;font-size:14.4px}
.tlside ul{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px}
.tlside li{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:#d5d7cf}
.tlside svg{flex:none;margin-top:3px;color:var(--amber)}

.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tier{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;display:flex;flex-direction:column}
.tier.pick{border-color:var(--ink);box-shadow:var(--shadow-md);position:relative}
.tier.pick::after{content:"Most booked";position:absolute;top:-11px;left:28px;background:var(--amber);color:var(--ink);font-family:"Urbanist";font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:var(--r)}
.tier h3{font-size:1.2rem;margin-bottom:6px}
.tier .who{font-size:13.4px;color:var(--slate);margin-bottom:20px;border:0;padding:0;display:block}
.tier .amt{font-family:"Urbanist";font-weight:800;font-size:2.3rem;line-height:1;letter-spacing:-.04em;margin-bottom:6px}
.tier .per{font-size:12.6px;color:var(--slate-light);margin-bottom:22px}
.tier ul{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:11px}
.tier li{display:flex;gap:10px;align-items:flex-start;font-size:13.8px;color:var(--ink-soft)}
.tier li svg{flex:none;margin-top:3px;color:var(--amber-deep)}
.tier .btn{margin-top:auto}

@media (max-width:1140px){.rrhero .wrap{grid-template-columns:1fr;gap:44px}.tlgrid{grid-template-columns:1fr;gap:34px}.tiers{grid-template-columns:1fr}}
@media (max-width:640px){.rrframe::before{display:none}.rrtag{position:static;margin-top:14px;display:inline-block}}

/* ---------- Estes Park ---------- */
.ehero{position:relative;background:var(--paper);padding:56px 0 0}
.ehero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;min-height:480px}
.ehero-copy{padding:20px 52px 70px 0;display:flex;flex-direction:column;justify-content:center}
.ehero h1{font-size:clamp(2.2rem,3.8vw,3.4rem);max-width:15ch;margin-bottom:20px}
.ehero .lead{font-size:16.2px;max-width:44ch;margin-bottom:28px}
.ehero-art{position:relative;margin-right:calc(-50vw + 50%);overflow:hidden}
.ehero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ehero-art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 0,rgba(242,243,240,0) 26%)}
.elev{display:flex;gap:0;border-top:2px solid var(--ink);max-width:520px;margin-top:6px}
.elev div{flex:1;padding:18px 18px 0 0}
.elev div+div{padding-left:18px;border-left:1px solid var(--line-strong)}
.elev b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.6rem;letter-spacing:-.03em;line-height:1}
.elev span{display:block;margin-top:7px;font-size:12px;color:var(--slate)}

.ways{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.way{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:32px}
.way.pref{border-color:var(--ink);box-shadow:var(--shadow-md)}
.way h3{font-size:1.3rem;margin-bottom:4px}
.way .sub{font-size:13.2px;color:var(--slate);margin-bottom:22px}
.way dl{display:grid;grid-template-columns:auto 1fr;gap:12px 24px;margin:0 0 22px;font-size:14px}
.way dt{color:var(--slate-light);font-size:11.4px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;align-self:center}
.way dd{margin:0;font-family:"Urbanist";font-weight:700;font-size:1.02rem}
.way p{font-size:14px;color:var(--slate);margin:0;padding-top:20px;border-top:1px solid var(--line)}

.season{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sea{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.sea b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.05rem;margin-bottom:8px}
.sea span{display:block;font-size:13.6px;color:var(--slate)}
@media (max-width:1140px){.ehero .wrap{grid-template-columns:1fr;min-height:0}.ehero-copy{padding:0 0 34px}.ehero-art{margin:0 calc(-50vw + 50%);height:300px;position:relative}.ehero-art::after{background:linear-gradient(180deg,var(--paper) 0,rgba(242,243,240,0) 30%)}.ways{grid-template-columns:1fr}.season{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.season{grid-template-columns:1fr}.elev{flex-wrap:wrap}.elev div{flex:0 0 50%}}

/* ---------- Fort Collins ---------- */
.fhero{background:var(--paper);padding:60px 0 0;text-align:center}
.fhero .crumb{justify-content:center}
.fhero h1{font-size:clamp(2.2rem,4vw,3.5rem);max-width:19ch;margin:0 auto 20px}
.fhero .lead{font-size:16.4px;max-width:58ch;margin:0 auto 30px}
.fhero .pgcta{justify-content:center;margin-bottom:54px}
.fband{position:relative;height:clamp(260px,30vw,420px);overflow:hidden;background:var(--ink)}
.fband img{width:100%;height:100%;object-fit:cover;object-position:center 58%}
.fband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,21,15,.2),rgba(20,21,15,0) 34%,rgba(20,21,15,.62))}
.fstrip{position:absolute;left:0;right:0;bottom:0;z-index:2}
.fstrip .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:26px}
.fs{padding:0 24px;border-left:1px solid rgba(255,255,255,.18)}
.fs:first-child{padding-left:0;border-left:0}
.fs b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.7rem;line-height:1;letter-spacing:-.035em;color:#fff}
.fs:nth-child(even) b{color:var(--amber)}
.fs span{display:block;margin-top:7px;font-size:12.2px;color:#c9cbc3}

.reasons{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.reason{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:28px 34px 28px 0;border-bottom:1px solid var(--line)}
.reason:nth-child(even){padding-left:34px;border-left:1px solid var(--line)}
.reason .n{font-family:"Urbanist";font-weight:800;font-size:1.5rem;color:var(--amber);line-height:1}
.reason h3{font-size:1.08rem;margin-bottom:7px}
.reason p{font-size:14px;color:var(--slate);margin:0}

.hourly{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;background:var(--ink);color:#fff;border-radius:var(--r);padding:48px 46px}
.hourly h3{color:#fff;font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.03em;margin-bottom:14px}
.hourly p{color:#a2a59b;font-size:14.8px;max-width:44ch}
.hcalc{background:#20211a;border:1px solid var(--ink-line);border-radius:var(--r);padding:26px}
.hcalc .row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--ink-line);font-size:14px;color:#c9cbc3}
.hcalc .row:last-of-type{border-bottom:0}
.hcalc .row b{font-family:"Urbanist";font-weight:700;color:#fff}
.hcalc .tot{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;padding-top:18px;border-top:2px solid var(--amber)}
.hcalc .tot span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9fa298}
.hcalc .tot b{font-family:"Urbanist";font-weight:800;font-size:2rem;color:var(--amber);letter-spacing:-.035em}
@media (max-width:1140px){.reasons{grid-template-columns:1fr}.reason:nth-child(even){padding-left:0;border-left:0}.hourly{grid-template-columns:1fr;padding:34px 26px;gap:28px}}
@media (max-width:880px){.fstrip .wrap{grid-template-columns:1fr 1fr;gap:18px 0}.fs:nth-child(3){padding-left:0;border-left:0}}

/* ---------- Longmont ---------- */
.lhero{background:var(--card);border-bottom:1px solid var(--line);padding:52px 0 56px}
.lhero .wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:center}
.lhero h1{font-size:clamp(2.1rem,3.6vw,3.2rem);max-width:16ch;margin-bottom:18px}
.lhero .lead{font-size:16.2px;max-width:46ch;margin-bottom:26px}
.lrail{border-left:3px solid var(--amber);padding-left:26px;display:grid;gap:20px}
.lrail div b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.9rem;line-height:1;letter-spacing:-.035em}
.lrail div span{display:block;margin-top:6px;font-size:12.6px;color:var(--slate)}

.vs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.vsc{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:30px 28px;display:flex;flex-direction:column}
.vsc.us{background:var(--ink);color:#fff;border-color:var(--ink)}
.vsc h3{font-size:1.15rem;margin-bottom:6px}
.vsc.us h3{color:#fff}
.vsc .cost{font-family:"Urbanist";font-weight:800;font-size:2.1rem;letter-spacing:-.04em;line-height:1;margin:16px 0 4px}
.vsc.us .cost{color:var(--amber)}
.vsc .note{font-size:12.4px;color:var(--slate-light);margin-bottom:22px}
.vsc.us .note{color:#9fa298}
.vsc ul{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:10px;font-size:13.6px;color:var(--slate)}
.vsc.us ul{color:#d5d7cf}
.vsc li{display:flex;gap:9px;align-items:flex-start}
.vsc li svg{flex:none;margin-top:3px;color:var(--amber-deep)}
.vsc.us li svg{color:var(--amber)}
.vsc li.no svg{color:var(--line-strong)}
.vsc .btn{margin-top:auto}
@media (max-width:1140px){.lhero .wrap{grid-template-columns:1fr;gap:34px}.vs{grid-template-columns:1fr}}

/* ---------- Loveland ---------- */
.vhero{background:var(--paper);padding:56px 0 46px;text-align:center}
.vhero .crumb{justify-content:center}
.vhero h1{font-size:clamp(2.1rem,3.7vw,3.3rem);max-width:18ch;margin:0 auto 18px}
.vhero .lead{font-size:16.2px;max-width:56ch;margin:0 auto}
.pick2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.p2{position:relative;border-radius:var(--r);overflow:hidden;background:var(--ink);color:#fff;min-height:520px;display:flex;flex-direction:column;justify-content:flex-end}
.p2 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transition:transform .6s cubic-bezier(.2,.7,.3,1),opacity .3s ease}
.p2:hover img{transform:scale(1.05);opacity:.68}
.p2::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,21,15,.25) 0%,rgba(20,21,15,.55) 46%,rgba(20,21,15,.95) 100%)}
.p2-in{position:relative;z-index:2;padding:40px 38px}
.p2-in .tag{display:inline-block;background:var(--amber);color:var(--ink);font-family:"Urbanist";font-weight:800;font-size:11px;letter-spacing:.07em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r);margin-bottom:18px}
.p2-in h3{color:#fff;font-size:clamp(1.5rem,2.4vw,2.05rem);letter-spacing:-.03em;margin-bottom:12px}
.p2-in p{color:#c4c6be;font-size:14.4px;max-width:38ch;margin-bottom:22px}
.p2-facts{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.2);padding-top:18px;margin-bottom:24px}
.p2-facts div{flex:1;padding-right:16px}
.p2-facts div+div{padding-left:16px;border-left:1px solid rgba(255,255,255,.18)}
.p2-facts b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.25rem;letter-spacing:-.03em;color:var(--amber)}
.p2-facts span{display:block;font-size:11.6px;color:#9fa298;margin-top:5px}
.warn{background:var(--amber-wash);border:1px solid #e9d3b4;border-radius:var(--r);padding:26px 30px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.warn .ic{width:40px;height:40px;border-radius:50%;background:var(--amber);color:var(--ink);display:grid;place-items:center;font-family:"Urbanist";font-weight:800}
.warn h3{font-size:1.1rem;margin-bottom:7px}
.warn p{margin:0;font-size:14.2px;color:#6b5a42}
@media (max-width:1140px){.pick2{grid-template-columns:1fr}.p2{min-height:420px}}
@media (max-width:640px){.warn{grid-template-columns:1fr}}

/* ---------- Lyons ---------- */
.yhero{background:var(--paper);padding:56px 0 66px;position:relative;overflow:hidden}
.yhero .wrap{display:grid;grid-template-columns:1fr .86fr;gap:52px;align-items:center}
.yhero h1{font-size:clamp(2.1rem,3.7vw,3.3rem);max-width:15ch;margin-bottom:18px}
.yhero .lead{font-size:16.2px;max-width:44ch;margin-bottom:28px}
.ystack{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:12px}
.ystack figure{margin:0;border-radius:var(--r);overflow:hidden;background:var(--paper-2)}
.ystack figure img{width:100%;height:100%;object-fit:cover;display:block}
.ystack .tall{grid-row:span 2;aspect-ratio:3/5}
.ystack .sq{aspect-ratio:1/1}
.ystack .plate{background:var(--ink);color:#fff;border-radius:var(--r);padding:22px;display:flex;flex-direction:column;justify-content:center;aspect-ratio:1/1}
.ystack .plate b{font-family:"Urbanist";font-weight:800;font-size:2rem;line-height:1;letter-spacing:-.04em;color:var(--amber)}
.ystack .plate span{font-size:12.4px;color:#9fa298;margin-top:8px;line-height:1.4}

.cal{border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden}
.crow{display:grid;grid-template-columns:auto 1.4fr 1fr auto;gap:24px;align-items:center;padding:20px 26px;border-bottom:1px solid var(--line)}
.crow:last-child{border-bottom:0}
.crow .when{font-family:"Urbanist";font-weight:800;font-size:1.05rem;color:var(--amber-deep);min-width:96px}
.crow b{font-family:"Urbanist";font-weight:700;font-size:1.05rem}
.crow span{color:var(--slate);font-size:13.8px}
.crow a{font-family:"Urbanist";font-weight:700;font-size:13.4px;border:1px solid var(--line-strong);border-radius:var(--r);padding:8px 16px;white-space:nowrap;transition:.18s}
.crow a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
@media (max-width:1140px){.yhero .wrap{grid-template-columns:1fr;gap:38px}.crow{grid-template-columns:1fr;gap:8px;align-items:start}.crow a{justify-self:start;margin-top:8px}}

/* ---------- Folsom Field ---------- */
.ghero{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.ghero::before{content:"";position:absolute;right:-180px;top:-180px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(212,153,81,.22),rgba(212,153,81,0) 68%)}
.ghero .wrap{position:relative;z-index:2;padding-top:66px;padding-bottom:0}
.ghero .crumb{color:#8d9086}
.ghero .crumb a:hover{color:var(--amber)}
.ghero h1{color:#fff;font-size:clamp(2.2rem,4vw,3.5rem);max-width:16ch;margin-bottom:20px}
.ghero p{color:#b6b8b0;font-size:16.4px;max-width:48ch;margin-bottom:30px}
.board{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink-line);border-radius:var(--r);overflow:hidden;background:#191a14;margin-top:52px;transform:translateY(46px)}
.board div{padding:26px 24px;border-left:1px solid var(--ink-line)}
.board div:first-child{border-left:0}
.board b{display:block;font-family:"Urbanist";font-weight:800;font-size:1.85rem;line-height:1;letter-spacing:-.04em;color:var(--amber)}
.board span{display:block;margin-top:9px;font-size:11.8px;letter-spacing:.06em;text-transform:uppercase;color:#8d9086}
.gspacer{height:46px;background:var(--paper)}

.gplan{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gp{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.gp .top{background:var(--paper);padding:16px 24px;border-bottom:1px solid var(--line);font-family:"Urbanist";font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.gp .in{padding:26px 24px}
.gp h3{font-size:1.15rem;margin-bottom:10px}
.gp p{font-size:14px;color:var(--slate);margin:0 0 18px}
.gp ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:13.6px;color:var(--ink-soft)}
.gp li{display:flex;gap:9px;align-items:flex-start}
.gp li svg{flex:none;margin-top:3px;color:var(--amber-deep)}
@media (max-width:1140px){.gplan{grid-template-columns:1fr}}
@media (max-width:880px){.board{grid-template-columns:1fr 1fr}.board div:nth-child(3){border-left:0}.board div:nth-child(n+3){border-top:1px solid var(--ink-line)}}

/* ---------- landing design 9: ink split, oversized price ---------- */
.nhero{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.nhero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:stretch;padding-left:26px;padding-right:0}
.nhero-copy{padding:66px 52px 70px 0;display:flex;flex-direction:column;justify-content:center}
.nhero .crumb{color:#8d9086;margin-bottom:24px}
.nhero .crumb a:hover{color:var(--amber)}
.nhero h1{color:#fff;font-size:clamp(2.1rem,3.7vw,3.3rem);max-width:15ch;margin-bottom:18px}
.nhero p{color:#b6b8b0;font-size:16.2px;max-width:44ch;margin-bottom:28px}
.nprice{border-top:2px solid var(--amber);padding-top:20px;margin-bottom:30px;max-width:30ch}
.nprice b{display:block;font-family:"Urbanist",sans-serif;font-weight:800;font-size:clamp(2.6rem,5vw,4rem);line-height:1;letter-spacing:-.045em;color:var(--amber)}
.nprice span{display:block;margin-top:12px;font-size:13px;color:#9fa298;line-height:1.5}
.nhero-art{position:relative;overflow:hidden;min-height:440px;margin-right:calc(-50vw + 50%)}
.nhero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nhero-art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0,rgba(20,21,15,0) 30%)}

/* ---------- landing design 10: full-bleed photo, centred card ---------- */
.bhero{position:relative;background:var(--ink);padding:90px 0;overflow:hidden}
.bhero-bg{position:absolute;inset:0}
.bhero-bg img{width:100%;height:100%;object-fit:cover;opacity:.5}
.bhero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,21,15,.72),rgba(20,21,15,.86))}
.bhero .wrap{position:relative;z-index:2;display:flex;justify-content:center}
.bhero-card{background:var(--card);border-radius:var(--r);padding:44px 46px;max-width:760px;width:100%;box-shadow:var(--shadow-lg);text-align:center}
.bhero-card .crumb{justify-content:center}
.bhero-card h1{font-size:clamp(2rem,3.5vw,3.1rem);margin:0 auto 16px;max-width:18ch}
.bhero-card p{color:var(--slate);font-size:16px;max-width:52ch;margin:0 auto 26px}
.bhero-card .pgcta{justify-content:center}
.bhero-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-bottom:26px}
.bhero-facts div{padding:0 18px;border-left:1px solid var(--line)}
.bhero-facts div:first-child{border-left:0}
.bhero-facts b{display:block;font-family:"Urbanist",sans-serif;font-weight:800;font-size:1.5rem;line-height:1;letter-spacing:-.035em;color:var(--amber-deep)}
.bhero-facts span{display:block;margin-top:7px;font-size:11.8px;color:var(--slate)}

@media (max-width:1140px){
  .nhero .wrap{grid-template-columns:1fr;padding-right:26px}
  .nhero-copy{padding:46px 0 34px}
  .nhero-art{margin:0 calc(-50vw + 50%);min-height:300px}
  .nhero-art::after{background:linear-gradient(180deg,var(--ink) 0,rgba(20,21,15,0) 26%)}
}
@media (max-width:640px){
  .bhero{padding:56px 0}
  .bhero-card{padding:30px 22px}
  .bhero-facts{grid-template-columns:1fr;gap:18px 0}
  .bhero-facts div{padding:0;border-left:0}
}

/* ---------- single service: content sections as icon cards ---------- */
.svcfeat{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.sf{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px 32px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.sf:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.sf-ic{width:46px;height:46px;border-radius:50%;background:var(--amber-wash);color:var(--amber-deep);display:grid;place-items:center;margin-bottom:18px}
.sf h3{font-size:1.18rem;margin-bottom:10px;letter-spacing:-.02em}
.sf-body{color:var(--slate);font-size:14.6px}
.sf-body p{margin:0 0 .8em}
.sf-body p:last-child{margin-bottom:0}
.sf-body ul,.sf-body ol{margin:0 0 .8em;padding-left:1.15em}
.sf-body li + li{margin-top:.45em}
.sf-body strong{color:var(--ink);font-weight:600}
.sf-body a{color:var(--amber-deep);text-decoration:underline;text-underline-offset:2px}

/* ---------- single service: destination photo row ---------- */
.shotrow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.shot{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.shot:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.shot .ph{aspect-ratio:4/3}
.shot:hover .ph img{transform:scale(1.04)}
.shot-in{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:18px 20px}
.shot-in b{font-family:"Urbanist",sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:-.02em}
.shot-in span{font-family:"Urbanist",sans-serif;font-weight:800;font-size:.98rem;color:var(--amber-deep);white-space:nowrap}

@media (max-width:1140px){.svcfeat{grid-template-columns:1fr}.shotrow{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.shotrow{grid-template-columns:1fr}.sf{padding:24px 22px}}

/* ---------- booking page: centred hero, then the plugin's own layout ---------- */
.bookhero{background:var(--paper);padding:56px 0 40px;text-align:center}
.bookhero .crumb{justify-content:center;margin-bottom:20px}
.bookhero h1{font-size:clamp(2.1rem,3.7vw,3.3rem);max-width:18ch;margin:0 auto 18px}
.bookhero h1 strong{font-weight:800}
.bookhero .lead{font-size:16.2px;max-width:54ch;margin:0 auto}
.bookhero-call{margin:22px 0 0;font-size:14.4px;color:var(--slate)}
.bookhero-call a{font-family:"Urbanist",sans-serif;font-weight:800;color:var(--amber-deep);margin-left:6px;letter-spacing:-.01em}
.bookhero-call a:hover{text-decoration:underline;text-underline-offset:3px}

.bookform{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:52px 0 72px}
.booknote{margin:26px auto 0;max-width:80ch;text-align:center;font-size:13px;color:var(--slate);line-height:1.7}

@media (max-width:640px){
  .bookhero{padding:38px 0 28px}
  .bookform{padding:34px 0 48px}
}

/* ============================================================
   10. FLOATING CALL AND BOOK BUTTONS
   The buttons appear once the visitor is past the hero, which already
   carries the same actions, and step aside while the footer's booking
   panel is on screen so two sets are never visible together.
   ============================================================ */
.fab{position:fixed;right:22px;bottom:22px;z-index:85;display:flex;flex-direction:column;align-items:flex-end;gap:12px;
  opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .3s ease,transform .3s cubic-bezier(.2,.7,.3,1)}
.fab.on{opacity:1;transform:none;pointer-events:auto}
.fab-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;
  font-family:"Urbanist",sans-serif;font-weight:800;font-size:13.6px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
  box-shadow:0 16px 32px -14px rgba(20,21,15,.5);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.fab-btn:hover{transform:translateY(-2px);box-shadow:0 20px 36px -14px rgba(20,21,15,.55)}
.fab-btn svg{flex:none}
.fab-call{background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.14)}
.fab-call:hover{background:#23241d}
.fab-book{background:var(--amber);color:var(--ink);border:1px solid var(--amber-deep)}
.fab-book:hover{background:#e0a660}
/* one soft ring when the buttons first appear, to catch the eye once */
.fab.on .fab-book{animation:fab-ring 1.6s ease-out .4s 2}
@keyframes fab-ring{0%{box-shadow:0 0 0 0 rgba(212,153,81,.55),0 16px 32px -14px rgba(20,21,15,.5)}100%{box-shadow:0 0 0 16px rgba(212,153,81,0),0 16px 32px -14px rgba(20,21,15,.5)}}

@media (prefers-reduced-motion:reduce){
  .fab{transition:none;animation:none}
  .fab.on .fab-book{animation:none}
}

/* phones: the pills become one row across the bottom */
@media (max-width:640px){
  .fab{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));flex-direction:row;flex-wrap:wrap;align-items:stretch;gap:10px}
  .fab-btn{flex:1;height:50px;padding:0 14px;font-size:12.6px;letter-spacing:.08em}
  body.has-floatbar{padding-bottom:78px}
}

/* ---- social icons: top strip (left) and footer brand column ---- */
.strip .topstrip-social{display:flex;align-items:center;gap:15px}
.strip .topstrip-social a{color:#9fa298;display:inline-flex;transition:color .16s ease}
.strip .topstrip-social a:hover{color:var(--amber)}
.fsocial{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.fsocial a{width:38px;height:38px;border:1px solid var(--ink-line);border-radius:50%;display:grid;place-items:center;color:#c9cbc3;transition:color .16s ease,border-color .16s ease,background .16s ease}
.fsocial a:hover{color:var(--ink);background:var(--amber);border-color:var(--amber)}
@media (max-width:640px){.fsocial a{width:42px;height:42px}}

/* ============================================================ PHONE OVERFLOW GUARD
   The booking widget holds native date and time controls whose intrinsic
   width does not shrink. A plain 1fr track is floored at that intrinsic
   minimum, so every stacked hero grid grew past the viewport, and the
   hero's own overflow:hidden then clipped the heading and the form instead
   of scrolling. minmax(0,1fr) lets the track drop below that floor; the
   widget's internal min-width:0 rules take it from there. */
@media (max-width:1140px){
  .hero .wrap,
  .dhero .wrap,
  .rrhero .wrap,
  .ehero .wrap,
  .lhero .wrap,
  .yhero .wrap{grid-template-columns:minmax(0,1fr)}
  /* .hero-copy is display:contents here, so these are the real grid items */
  .hero h1,.hero .lead,.hero-cta,.hero-form,.hero-copy{min-width:0}
  .hero-form > *{max-width:100%}
}
@media (max-width:640px){
  /* .hero turns into a column flex container at this width, and a flex item
     will not stretch below its own min-content without this. */
  .hero .wrap{width:100%;min-width:0}
}
