/* Madeira by Taxi · Safari · Prime — approval mockup
   Refined system: flat colour, hairlines, typography-led. No gradients. */
:root{
  --paper:#F7F5F0; --paper-2:#EFEBE3; --white:#FFFFFF; --ink:#121212; --ink-2:#1C1C1B; --ink-3:#2A2A28;
  --mute:#67635B; --mute-inv:#A9A398; --line:#E3DED4; --line-2:#CFC8BB; --line-inv:rgba(255,255,255,.12);
  --yellow:#F6B800; --yellow-soft:#FDF3D3; --forest:#15311F; --forest-2:#1D422C; --moss:#A3BD3C;
  --stone:#C9BFAC; --wa:#1DA851; --red:#C23B22;
  --font:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1200px; --pad:clamp(20px,4vw,40px); --r:3px;
  --shadow:0 1px 2px rgba(18,18,18,.04),0 8px 28px rgba(18,18,18,.07);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--font);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font);margin:0;font-stretch:88%;letter-spacing:-.022em;text-wrap:balance}
h1{font-size:clamp(40px,6vw,80px);line-height:1.02;font-weight:800;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
h2{font-size:clamp(30px,3.6vw,48px);line-height:1.06;font-weight:800}
h3{font-size:clamp(19px,1.6vw,22px);line-height:1.25;font-weight:700;font-stretch:94%;letter-spacing:-.01em}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.label,.kicker,.group-label{font:600 12px/1.3 var(--font);letter-spacing:.14em;text-transform:uppercase;font-stretch:100%}
.kicker{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--mute)}
.kicker::before{display:none}
.safari .kicker::before{background:var(--moss)}
.bg-ink .kicker,.bg-f .kicker,.phero.f .kicker,.phero.k .kicker,.prime-hero .kicker{color:var(--mute-inv)}
.hero .kicker{color:rgba(255,255,255,.85)}
.group-label{display:block;color:var(--mute);padding-bottom:14px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.lead{font-size:clamp(17px,1.5vw,20px);line-height:1.55;max-width:58ch;color:var(--mute)}
.bg-ink .lead,.bg-f .lead,.phero.f .lead,.phero.k .lead,.prime-hero .lead{color:#CFCAC0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--yellow);padding:12px 16px;z-index:300}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.on-yellow :focus-visible,.phero.y :focus-visible{outline-color:var(--ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:1px solid var(--ink);border-radius:var(--r);
  background:var(--ink);color:#fff;font:600 15.5px/1 var(--font);letter-spacing:.005em;text-decoration:none;cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .18s;white-space:nowrap}
.btn:hover{background:var(--ink-3);border-color:var(--ink-3)}
.btn:active{transform:translateY(1px)}
.btn-y{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.btn-y:hover{background:#FFC62B;border-color:#FFC62B}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{background:var(--white);border-color:var(--ink)}
.btn-inv{border-color:#fff;background:#fff;color:var(--ink)}
.btn-inv:hover{background:var(--yellow);border-color:var(--yellow)}
.btn-ghost-inv{border-color:rgba(255,255,255,.45);background:transparent;color:#fff}
.btn-ghost-inv:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-wa{background:var(--wa);border-color:var(--wa);color:#fff}
.btn-wa:hover{background:#178F45;border-color:#178F45}
.btn svg{width:19px;height:19px;fill:currentColor;flex:none}
/* Outline WhatsApp button on the dark home hero: the glyph carries the
   green so it reads as WhatsApp at a glance, like the band button. */
.btn-wa-glyph svg{fill:var(--wa)}
.btn-wa-glyph:hover svg{fill:#178F45}
.btn-sm{min-height:44px;padding:0 18px;font-size:14.5px}
.link-arrow{font-weight:600;text-decoration:none;font-size:15.5px;display:inline-flex;gap:8px;min-height:44px;align-items:center;border-bottom:1px solid currentColor;line-height:1.2;padding:0}
.link-arrow:hover{color:var(--mute)}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* thin taxi accent */
.checker{height:6px;background-color:var(--ink);background-image:conic-gradient(var(--yellow) 25%,transparent 0 50%,var(--yellow) 0 75%,transparent 0);background-size:12px 12px}

/* top bar + header */
.topbar{background:var(--ink);color:#DAD5CB;font:500 13px/1 var(--font)}
.topbar .wrap{display:flex;gap:24px;align-items:center;min-height:40px;justify-content:space-between}
.topbar a{text-decoration:none;display:inline-flex;align-items:center;min-height:40px}
.topbar a:hover{color:#fff}
.topbar .tb-l{display:flex;gap:24px}
.topbar .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--wa);margin-right:9px;box-shadow:0 0 0 3px rgba(29,168,81,.25)}
@media(max-width:720px){.topbar{display:none}}
.hdr{position:sticky;top:0;z-index:100;background:rgba(247,245,240,.96);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px)}
.hdr .wrap{display:flex;align-items:center;gap:20px;min-height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand-mark{width:40px;height:40px;border-radius:var(--r);background:var(--yellow);display:grid;place-items:center;font:800 21px/1 var(--font);font-stretch:85%;color:var(--ink);box-shadow:inset 0 -4px 0 rgba(0,0,0,.12)}
.brand-t{display:flex;flex-direction:column;line-height:1}
.brand-t b{font:800 19px/1 var(--font);font-stretch:88%;letter-spacing:-.02em}
.brand-t small{font:500 12px/1 var(--font);color:var(--mute);margin-top:5px;letter-spacing:.02em;white-space:nowrap}
.nav{display:flex;align-items:center;gap:4px}
.nav a{white-space:nowrap;font-weight:500;font-size:15px;text-decoration:none;padding:0 12px;min-height:44px;display:flex;align-items:center;position:relative;color:var(--ink-3)}
.nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a[aria-current="page"]{color:var(--ink);font-weight:600}
.lang{position:relative}
.lang button{min-height:44px;min-width:58px;border:1px solid var(--line-2);border-radius:var(--r);background:transparent;font:600 13.5px/1 var(--font);letter-spacing:.04em;cursor:pointer;padding:0 12px;display:flex;gap:8px;align-items:center;color:var(--ink)}
.lang button:hover{border-color:var(--ink)}
.lang button::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px}
.lang ul{position:absolute;right:0;top:calc(100% + 8px);margin:0;padding:6px;list-style:none;background:var(--white);border:1px solid var(--line);border-radius:6px;min-width:170px;box-shadow:var(--shadow);display:none;z-index:5}
.lang.open ul{display:block}
.lang li a{display:flex;justify-content:space-between;padding:0 12px;min-height:44px;align-items:center;text-decoration:none;font-weight:500;border-radius:4px;font-size:15px}
.lang li a:hover{background:var(--paper)}
.lang li a[aria-current="true"]{background:var(--yellow-soft);font-weight:600}
.lang li a span{font-size:12px;color:var(--mute);letter-spacing:.08em}
.hdr-cta{display:inline-flex}
.burger{display:none;width:48px;height:48px;border:1px solid var(--line-2);border-radius:var(--r);background:transparent;cursor:pointer;padding:0;position:relative}
.burger span,.burger span::before,.burger span::after{position:absolute;left:13px;width:20px;height:2px;background:var(--ink);content:"";transition:transform .2s}
.burger span{top:22px}.burger span::before{top:-6px;left:0}.burger span::after{top:6px;left:0}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
.nav .nav-cta{display:none}
@media(max-width:1180px){
  .burger{display:block}
  .hdr-cta{display:none}
  .nav{position:fixed;inset:74px 0 0 0;background:var(--paper);flex-direction:column;align-items:stretch;padding:12px var(--pad) 40px;gap:0;display:none;overflow:auto;border-top:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{font:700 26px/1 var(--font);font-stretch:88%;letter-spacing:-.02em;min-height:64px;border-bottom:1px solid var(--line);padding:0;color:var(--ink)}
  .nav a::after{display:none}
  .nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 4px 0 0 var(--yellow);padding-left:16px}
  .nav .nav-cta{margin-top:28px;display:flex!important;background:var(--yellow);justify-content:center;font-size:18px;border:0;border-radius:var(--r);min-height:56px;padding:0}
  body.nav-open{overflow:hidden}
}
@media(max-width:420px){.brand-t b{font-size:17px}.brand-t small{font-size:11px}.lang button{min-width:52px;padding:0 10px}}

/* hero (home) */
.hero{position:relative;min-height:min(90vh,820px);display:flex;align-items:flex-end;color:#fff;background:var(--ink);overflow:hidden}
/* A wide scene in a tall phone frame loses its subject to the centre
   crop, so the focal point is named rather than left to chance. */
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
/* Weighted to the bottom, where the text sits, so the photograph keeps
   its colour at the top instead of being flattened by a grey wash. */
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,12,.30) 0%,rgba(8,10,12,.22) 32%,rgba(8,10,12,.52) 72%,rgba(8,10,12,.74) 100%)}
.hero .wrap{position:relative;z-index:2;width:100%;padding-top:140px;padding-bottom:clamp(40px,6vw,80px)}
.hero-inner{max-width:760px}
.hero h1{font-size:clamp(44px,7vw,92px);text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hero h1 em{font-style:normal;color:#fff;display:block}
.hero .lead{color:rgba(255,255,255,.9);margin:22px 0 32px;max-width:52ch;font-size:clamp(17px,1.6vw,21px)}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.gbadge{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-height:44px;font-size:15px}
.gbadge svg{width:22px;height:22px;background:#fff;border-radius:50%;padding:4px;fill:#4285F4;box-sizing:content-box}
.gbadge .stars{color:var(--yellow);letter-spacing:1px;margin-right:6px}
.gbadge small{font-size:14px;opacity:.85}
.gbadge:hover small{opacity:1;text-decoration:underline}

/* page hero (split) */
.phero{display:grid;grid-template-columns:1fr 1fr;background:var(--paper);border-bottom:1px solid var(--line)}
.phero .ph-txt{padding:clamp(48px,7vw,104px) var(--pad) clamp(40px,6vw,80px) max(var(--pad),calc((100vw - var(--wrap))/2 + var(--pad)));display:flex;flex-direction:column;justify-content:flex-end;gap:10px}
.phero .ph-img{position:relative;min-height:440px;background:var(--ink)}
.phero .ph-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero h1{margin:4px 0 6px}
.phero .lead{margin:6px 0 18px}
.phero.y{background:var(--yellow);border-bottom:0}
.phero.y .lead{color:rgba(18,18,18,.78)}
.phero.y .kicker{color:rgba(18,18,18,.7)}.phero.y .kicker::before{background:var(--ink)}
.phero.y .btn-ghost{border-color:rgba(18,18,18,.35)}
.phero.f{background:var(--forest);color:#fff;border-bottom:0}
.phero.k{background:var(--ink);color:#fff;border-bottom:0}
@media(max-width:860px){.phero{grid-template-columns:1fr}.phero .ph-img{min-height:280px;order:-1}.phero .ph-txt{padding:36px var(--pad) 44px}}
.crumbs{font:500 13.5px/1.4 var(--font);display:flex;flex-wrap:wrap;gap:8px;opacity:.8;margin-bottom:14px}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* sections */
.sec{padding:clamp(64px,9vw,128px) 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:clamp(32px,4.5vw,56px);flex-wrap:wrap}
.sec-head>div{max-width:720px}
.sec-head p{max-width:44ch;margin:0;color:var(--mute)}
.bg-ink{background:var(--ink);color:#fff}
.bg-y{background:var(--yellow)}
.bg-f{background:var(--forest);color:#fff}
.bg-f .sec-head p,.bg-ink .sec-head p{color:#CFCAC0}
.bg-2{background:var(--paper-2)}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* airport strip */
.strip{background:var(--yellow);color:var(--ink)}
.strip .wrap{display:grid;grid-template-columns:1.2fr auto auto 1fr;align-items:center;gap:0}
.strip .s-l{padding:26px 36px 26px 0;display:flex;flex-direction:column;justify-content:center}
.strip .s-l b{font:800 24px/1.1 var(--font);font-stretch:88%;letter-spacing:-.015em}
.strip .s-l span{font-size:14.5px;margin-top:6px;color:rgba(18,18,18,.75)}
.meter{padding:18px 36px;border-left:1px solid rgba(18,18,18,.18);display:flex;align-items:baseline;gap:12px}
.meter .v{font:800 clamp(40px,4.6vw,60px)/1 var(--font);font-stretch:85%;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.meter .v sup{font-size:.42em;vertical-align:.95em;margin-left:2px}
.meter .l{font:600 12px/1.3 var(--font);letter-spacing:.12em;text-transform:uppercase}
.strip .s-r{display:flex;align-items:center;justify-content:flex-end;padding-left:36px;border-left:1px solid rgba(18,18,18,.18);align-self:stretch}
/* The price on its own invites a comparison with Bolt; the reason beside it
   invites a decision. Full width under the figures, so it reads as part of
   the offer rather than as small print. */
.strip .s-note{grid-column:1/-1;margin:0;padding:0 0 22px;font-size:14.5px;color:rgba(18,18,18,.78);border-top:1px solid rgba(18,18,18,.16);padding-top:16px}
@media(max-width:900px){
  .strip .wrap{grid-template-columns:1fr 1fr}
  .strip .s-l{grid-column:1/-1;padding:24px 0 10px}
  .meter{padding:10px 0 22px;border-left:0;flex-direction:column;gap:6px}
  .meter+.meter{padding-left:20px;border-left:1px solid rgba(18,18,18,.18)}
  .strip .s-r{grid-column:1/-1;border-left:0;padding:0 0 24px;justify-content:stretch}
  .strip .s-r .btn{width:100%}
}

/* three doors */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.door{display:flex;flex-direction:column;text-decoration:none;background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:box-shadow .25s,transform .25s,border-color .25s}
.door:hover{box-shadow:var(--shadow);transform:translateY(-3px);border-color:var(--line-2)}
.door .d-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ink)}
.door .d-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.door:hover .d-img img{transform:scale(1.04)}
.door .d-tag{position:absolute;left:16px;top:16px;font:600 12px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;padding:8px 10px;border-radius:2px;background:var(--yellow);color:var(--ink)}
.door.s .d-tag{background:var(--forest);color:#fff}
.door.p .d-tag{background:var(--ink);color:#fff}
.door .d-body{padding:26px 26px 24px;display:flex;flex-direction:column;gap:14px;flex:1;position:relative}
.door .d-num{font:600 13px/1 var(--font);color:var(--mute);letter-spacing:.1em}
.door .d-name{font-size:30px;font-weight:800;font-stretch:86%;letter-spacing:-.025em;margin-top:-4px}
.door ul{margin:0;padding:0;list-style:none;font-size:15.5px;color:var(--ink-3)}
.door li{padding:10px 0;border-top:1px solid var(--line);display:flex;gap:12px;align-items:baseline}
.door li::before{content:"";width:6px;height:6px;background:var(--yellow);flex:none;transform:translateY(-2px)}
.door.s li::before{background:var(--moss)}.door.p li::before{background:var(--ink)}
.door .d-go{margin-top:auto;padding-top:8px;font-weight:600;font-size:15.5px;display:flex;justify-content:space-between;align-items:center}
.door .d-go i{font-style:normal;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);font-size:18px;transition:background .2s,border-color .2s}
.door:hover .d-go i{background:var(--yellow);border-color:var(--yellow)}
@media(max-width:960px){.doors{grid-template-columns:1fr}.door .d-img{aspect-ratio:16/9}}

/* "coming soon" teaser.
   Deliberately no photograph: the boat is not his yet and the deal is not
   closed, so nothing on screen identifies it. The curiosity has to come
   from the layout instead — it carries 04 so it reads as the next one in
   the numbered set of three services above it, not as a stray banner. */
.soon{padding-top:0}
.soon-card{position:relative;overflow:hidden;border-radius:var(--r);color:#fff;
  padding:clamp(34px,4.6vw,64px);padding-bottom:clamp(64px,7vw,104px);
  background:#0C2E47}
.soon-card>*{position:relative;z-index:2}

/* Swell along the bottom edge. Suggests water without depicting anything. */
.soon-wave{display:none}

/* The number that ties it to 01 / 02 / 03. */
.soon-num{position:absolute;right:clamp(16px,3vw,44px);top:50%;transform:translateY(-52%);
  z-index:1;font:800 clamp(110px,17vw,230px)/1 var(--font);font-stretch:88%;letter-spacing:-.05em;
  color:rgba(255,255,255,.07);user-select:none}

.soon-card .kicker{color:var(--yellow)}
.soon-card h2{margin-top:12px;font-size:clamp(26px,3.4vw,42px);max-width:15ch}
.soon-card p{margin-top:14px;color:rgba(255,255,255,.76);max-width:46ch}
.soon-card .btns{margin-top:28px}

@media(max-width:720px){
  .soon-card{text-align:left}
  .soon-card h2,.soon-card p{max-width:none}
  .soon-num{font-size:150px;right:-10px;top:auto;bottom:-18px;transform:none;opacity:.6}
}

/* grids & tour cards */
.grid{display:grid;gap:clamp(18px,2vw,28px)}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.g3,.g2,.g4{grid-template-columns:1fr}}
.tour{display:flex;flex-direction:column;text-decoration:none;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:box-shadow .25s,transform .25s}
.tour:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.bg-f .tour,.bg-ink .tour{border-color:transparent}
.tour .t-img{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--ink)}
.tour .t-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.tour:hover .t-img img{transform:scale(1.04)}
.tour .t-tag{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.95);color:var(--ink);font:600 11.5px/1 var(--font);text-transform:uppercase;letter-spacing:.1em;padding:8px 10px;border-radius:2px}
.tour .t-price{position:absolute;right:14px;bottom:14px;background:var(--yellow);color:var(--ink);padding:9px 12px;font:800 22px/1 var(--font);font-stretch:88%;border-radius:2px;letter-spacing:-.01em}
.tour .t-price small{font:500 12.5px var(--font);margin-left:4px;letter-spacing:0}
.tour .t-body{padding:22px 22px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.tour .t-body h3{font-size:22px;font-weight:750;font-stretch:90%}
.tour .t-body p{margin:0 0 6px;color:var(--mute);font-size:15.5px;line-height:1.5}
.tour .t-meta{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13.5px;color:var(--mute)}
.tour .t-meta span{display:inline-flex;align-items:center;gap:7px}
.tour .t-meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--moss)}

.card{border:1px solid var(--line);border-radius:var(--r);padding:28px;background:var(--white)}
.card h3{margin-bottom:10px}
.card p{color:var(--mute);font-size:15.5px}
.card p:last-child{margin-bottom:0}
.card .label{display:block;color:var(--mute);margin-bottom:10px}
.card .ic{width:48px;height:48px;border-radius:50%;background:var(--yellow-soft);display:grid;place-items:center;margin-bottom:20px;font-size:20px;color:var(--ink)}
.bg-ink .card{background:var(--ink-2);border-color:var(--line-inv);color:#fff}
.bg-f .card{background:var(--forest-2);border-color:var(--line-inv);color:#fff}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:8px}
.stat{padding:8px 28px;border-left:1px solid var(--line-inv)}
.stat:first-child{border-left:0;padding-left:0}
.stat b{display:block;font:800 clamp(44px,5vw,68px)/1 var(--font);font-stretch:84%;letter-spacing:-.035em;color:#fff;font-variant-numeric:tabular-nums}
.stat span{font-size:15px;line-height:1.45;display:block;margin-top:12px;color:var(--mute-inv);max-width:22ch}
.stat:first-child b{color:var(--yellow)}
@media(max-width:860px){.stats{grid-template-columns:1fr 1fr;row-gap:36px}.stat:nth-child(3){border-left:0;padding-left:0}.stat{padding-right:12px}}

/* quotes */
.quote{margin:0;padding:26px 0 0;background:transparent;border:0;border-top:2px solid var(--ink);border-radius:0;display:flex;flex-direction:column}
.quote blockquote{margin:0 0 20px;font:600 clamp(19px,1.8vw,23px)/1.35 var(--font);font-stretch:94%;letter-spacing:-.01em}
.quote cite{font-style:normal;font-size:14.5px;font-weight:600;margin-top:auto;display:flex;align-items:center;gap:10px}
.quote cite::before{content:"";width:18px;height:1px;background:var(--line-2)}
.quote .note{margin:-8px 0 16px}
.quote .stars{color:var(--yellow);letter-spacing:2px;font-size:15px;display:block;margin-bottom:14px}

/* payments */
.pays{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pay{height:40px;min-width:62px;padding:0 12px;border:1px solid var(--line);border-radius:4px;background:#fff;display:flex;align-items:center;justify-content:center;gap:7px;color:#111;font:600 12.5px/1 var(--font)}
.pay svg{height:20px;width:auto}
.pay.visa svg{height:22px;fill:#1A1F71}
.pay.mc svg{height:24px}
.pay.ap svg{height:26px;fill:#000}
.pay.cash svg{height:16px}
.ftr .pay{border-color:transparent}

/* tables */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
table.tbl{width:100%;border-collapse:collapse;min-width:560px}
.tbl th,.tbl td{padding:18px 22px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl thead th{background:var(--paper);color:var(--mute);font:600 12px var(--font);text-transform:uppercase;letter-spacing:.12em}
.tbl td b{font-weight:600}
.tbl td.num{font:800 26px/1 var(--font);font-stretch:88%;white-space:nowrap;letter-spacing:-.02em}
.tbl td:last-child{text-align:right}
.tbl tr.hl td{background:var(--yellow-soft)}
.tbc{display:inline-block;font:500 13px/1 var(--font);color:var(--mute);background:var(--paper);border:1px dashed var(--line-2);padding:7px 9px;border-radius:2px;white-space:nowrap}
.note{font-size:14px;line-height:1.55;color:var(--mute)}
.bg-ink .note,.bg-f .note{color:var(--mute-inv)}

/* tour detail */
.tdetail{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}
.tdetail h2{font-size:clamp(26px,2.8vw,36px)}
@media(max-width:900px){.tdetail{grid-template-columns:1fr}}
.route{list-style:none;margin:0;padding:0;counter-reset:s;position:relative}
.route li{position:relative;padding:0 0 26px 52px;counter-increment:s}
.route li::before{content:counter(s);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--white);border:1px solid var(--line-2);display:grid;place-items:center;font:600 13px/1 var(--font);color:var(--mute);z-index:1;font-variant-numeric:tabular-nums}
.route li::after{content:"";position:absolute;left:16px;top:32px;bottom:0;width:1px;background:var(--line-2)}
.route li:last-child{padding-bottom:0}
.route li:last-child::after{display:none}
.route li:first-child::before,.route li:last-child::before{background:var(--forest);border-color:var(--forest);color:#fff}
.route b{display:block;font:700 20px/1.2 var(--font);font-stretch:92%;padding-top:5px;letter-spacing:-.01em}
.route .walk{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:14px;color:var(--forest-2);font-weight:500}
.route .walk::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--moss)}
.pricebox{border:1px solid var(--line);border-radius:6px;background:var(--white);position:sticky;top:100px;box-shadow:var(--shadow);overflow:hidden}
.pricebox .pb-top{background:var(--forest);color:#fff;padding:26px 26px 24px}
.pricebox .pb-top .label{color:var(--mute-inv)}
.pricebox .pb-v{font:800 64px/1 var(--font);font-stretch:84%;letter-spacing:-.035em;margin-top:8px}
.pricebox .pb-v small{font:500 16px var(--font);color:#CFCAC0;margin-left:8px;letter-spacing:0}
.pricebox .pb-rows{padding:8px 26px}
.pricebox .row{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
.pricebox .row:last-child{border-bottom:0}
.pricebox .row span:first-child{color:var(--mute)}
.pricebox .row span:last-child{text-align:right;font-weight:600}
.pricebox .pb-cta{padding:6px 26px 26px;display:grid;gap:10px}
.pricebox .pb-cta .btn{width:100%}
@media(max-width:900px){.pricebox{position:static}}
.surch{display:grid;border:1px solid var(--line);border-radius:var(--r);background:var(--white);overflow:hidden}
.surch>div{display:grid;grid-template-columns:96px 1fr;border-bottom:1px solid var(--line);align-items:center}
.surch>div:last-child{border-bottom:0}
.surch b{display:grid;place-items:center;align-self:stretch;font:800 20px/1 var(--font);font-stretch:88%;background:var(--paper);border-right:1px solid var(--line);padding:16px 0}
.surch>div:first-child b{background:#EEF3DA;color:#3F5210}
.surch>div:last-child b{background:var(--yellow-soft)}
.surch p{margin:0;padding:14px 18px;font-size:15px;color:var(--ink-3)}
.incl{list-style:none;padding:0;margin:0;display:grid}
.incl li{padding:14px 0 14px 36px;border-bottom:1px solid var(--line);position:relative}
.incl li:last-child{border-bottom:0}
.incl li::before{content:"";position:absolute;left:0;top:16px;width:22px;height:22px;border-radius:50%;background:var(--moss) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' stroke='%23fff' stroke-width='2.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.incl.y li::before{background-color:var(--yellow);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' stroke='%23121212' stroke-width='2.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

/* placeholder photo */
.ph-missing{position:relative;background:var(--paper-2);color:var(--mute);display:grid;place-items:center;text-align:center;padding:36px;min-height:320px;border:1px dashed var(--line-2);border-radius:var(--r)}
.ph-missing svg{width:min(320px,78%);height:auto;margin:0 auto 18px;fill:none;stroke:var(--line-2);stroke-width:2}
.ph-missing span{font-size:14px;font-weight:500}

/* prime */
.prime-hero{background:var(--ink);color:#fff}
.prime-hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;max-width:none}
.prime-hero .ph-txt{padding:clamp(56px,8vw,120px) var(--pad) clamp(48px,7vw,96px) max(var(--pad),calc((100vw - var(--wrap))/2 + var(--pad)));display:flex;flex-direction:column;gap:14px;justify-content:center}
.prime-hero .ph-img{position:relative;min-height:480px}
.prime-hero .ph-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prime-hero .tag{font:600 12px var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}
.prime-hero h1{font-weight:700;letter-spacing:-.03em}
.prime-hero h1 span{color:var(--stone);display:block;font-weight:400}
.prime-hero .crumbs{color:var(--mute-inv)}
@media(max-width:860px){.prime-hero .wrap{grid-template-columns:1fr}.prime-hero .ph-img{min-height:280px;order:-1}.prime-hero .ph-txt{padding:40px var(--pad) 48px}}
.svc-list{border-top:1px solid var(--line-inv)}
.svc-list>div{display:grid;grid-template-columns:80px 1fr 1.2fr;gap:24px;padding:32px 0;border-bottom:1px solid var(--line-inv);align-items:baseline}
.svc-list .n{font:500 14px var(--font);color:var(--stone);letter-spacing:.1em}
.svc-list h3{font-size:clamp(22px,2.4vw,30px);font-weight:600;letter-spacing:-.02em}
.svc-list p{margin:0;color:#BDB7AC}
@media(max-width:760px){.svc-list>div{grid-template-columns:48px 1fr;gap:10px 16px}.svc-list p{grid-column:2}}

/* booking */
.bk{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}
.bk>*{min-width:0}
@media(max-width:960px){.bk{grid-template-columns:1fr}}
.steps{display:flex;list-style:none;padding:0;margin:0 0 36px;position:relative;gap:6px}
.steps li{flex:1;min-width:0;padding-top:12px;font:500 13px/1.2 var(--font);color:var(--mute);border-top:3px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.steps li b{font-weight:600;margin-right:5px;font-variant-numeric:tabular-nums}
.steps li.done{border-top-color:var(--ink);color:var(--ink)}
.steps li.cur{border-top-color:var(--yellow);color:var(--ink);font-weight:600}
@media(max-width:700px){
  .steps{gap:4px;margin-bottom:28px;padding-bottom:26px}
  .steps li{font-size:0;padding-top:0;border-top-width:4px}
  .steps::after{content:attr(data-label);position:absolute;left:0;top:16px;font:600 14px/1 var(--font);color:var(--ink)}
}
.panel{display:none}
.panel.on{display:block;animation:rise .3s ease-out}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.panel h2{font-size:clamp(28px,3.4vw,40px);margin-bottom:8px}
.panel>p.note{margin-bottom:28px;font-size:15.5px}
.opt-group{margin-bottom:28px}
.opt-group>h4{font:600 12px var(--font);text-transform:uppercase;letter-spacing:.14em;margin:0 0 12px;color:var(--mute)}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.opt{position:relative;display:block;cursor:pointer}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt .o{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:4px;padding:16px 44px 16px 16px;background:var(--white);min-height:74px;height:100%;transition:border-color .15s,box-shadow .15s;position:relative}
.opt .o::after{content:"";position:absolute;right:14px;top:16px;width:18px;height:18px;border-radius:50%;border:1px solid var(--line-2);background:#fff}
.opt:hover .o{border-color:var(--line-2)}
.opt .o b{font:600 16px/1.25 var(--font)}
.opt .o small{font-size:13.5px;color:var(--mute)}
.opt .o .pr{font:500 14px var(--font);color:var(--mute)}
.opt input:checked+.o{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.opt input:checked+.o::after{border:0;background:var(--yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' stroke='%23121212' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.opt input:checked+.o .pr{color:var(--ink);font-weight:600}
.opt input:focus-visible+.o{outline:2px solid var(--yellow);outline-offset:2px}
.fld{display:grid;gap:8px;margin-bottom:18px}
.fld label{font:600 14px var(--font)}
.fld input,.fld select,.fld textarea{font:400 16.5px var(--font);min-height:52px;border:1px solid var(--line-2);border-radius:4px;background:#fff;padding:12px 14px;width:100%;color:var(--ink);-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(246,184,0,.35)}
.fld select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23121212' stroke-width='1.8' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.fld input[readonly]{background:var(--paper);color:var(--ink-3)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.frow{grid-template-columns:1fr}}
.stepper{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:4px;background:#fff;padding:12px 12px 12px 18px;margin-bottom:10px}
.stepper .sl b{display:block;font:600 16.5px var(--font)}
.stepper .sl small{font-size:14px;color:var(--mute)}
.stepper .sc{display:flex;align-items:center;gap:8px}
.stepper button{width:46px;height:46px;border:1px solid var(--line-2);border-radius:50%;background:#fff;font:400 22px/1 var(--font);cursor:pointer;color:var(--ink);transition:border-color .15s,background .15s}
.stepper button:hover:not(:disabled){border-color:var(--ink);background:var(--paper)}
.stepper button:disabled{opacity:.35;cursor:not-allowed}
.stepper output{min-width:36px;text-align:center;font:700 22px var(--font);font-variant-numeric:tabular-nums}
.bk-nav{display:flex;justify-content:space-between;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.bk-err{background:#FBEDEA;color:#7A2414;border-radius:4px;padding:12px 16px;margin:0 0 20px;font-weight:500;font-size:15px;display:none}
.bk-err.on{display:block}
.summary{border:1px solid var(--line);border-radius:6px;background:var(--white);position:sticky;top:100px;box-shadow:var(--shadow);overflow:hidden}
.summary .s-h{padding:18px 22px;font:600 12px var(--font);text-transform:uppercase;letter-spacing:.14em;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--mute)}
.summary dl{margin:0;padding:6px 22px}
.summary dl>div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.summary dl>div:last-child{border-bottom:0}
.summary dt{color:var(--mute)}
.summary dd{margin:0;text-align:right;font-weight:600}
.summary .s-lines{padding:12px 22px;background:var(--paper);border-top:1px solid var(--line)}
.summary .s-lines div{display:flex;justify-content:space-between;font-size:14.5px;padding:4px 0;color:var(--ink-3);font-variant-numeric:tabular-nums}
.summary .s-total{display:flex;justify-content:space-between;align-items:baseline;padding:20px 22px;border-top:1px solid var(--line)}
.summary .s-total span{font-weight:600}
.summary .s-total .est-lbl{display:block;font-size:12.5px;font-weight:500;color:var(--mute);margin-top:4px}
.summary .s-total b{font:800 36px/1 var(--font);font-stretch:86%;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.demo-flag{display:flex;gap:12px;align-items:flex-start;background:var(--yellow-soft);color:var(--ink-3);padding:14px 16px;font-size:14.5px;line-height:1.5;margin-bottom:24px;border-radius:4px;border:1px solid #F1DF9E}
.demo-flag::before{content:"Demo";background:var(--ink);color:#fff;padding:3px 7px;font:600 11px/1.3 var(--font);letter-spacing:.08em;text-transform:uppercase;flex:none;border-radius:2px;margin-top:1px}
.paytabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}
@media(max-width:620px){.paytabs{grid-template-columns:1fr 1fr}}
.paytabs button{min-height:68px;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:500 13.5px var(--font);color:var(--ink);padding:8px;transition:border-color .15s}
.paytabs button:hover{border-color:var(--line-2)}
.paytabs button[aria-selected="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:600}
.paytabs svg{height:22px;width:auto}
.stripe-box{border:1px solid var(--line);border-radius:6px;background:#fff;padding:22px}
.stripe-box .sb-h{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--mute);margin-bottom:16px}
.stripe-box .sb-h svg{height:20px;fill:#635BFF}
.applepay-btn{width:100%;min-height:56px;background:#000;color:#fff;border:0;border-radius:6px;font:500 20px -apple-system,system-ui,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px}
.applepay-btn svg{height:24px;fill:#fff}
.spin{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.confirm{border:1px solid var(--line);border-radius:6px;background:var(--white);overflow:hidden;box-shadow:var(--shadow);max-width:820px}
.confirm .c-top{background:var(--forest);color:#fff;padding:clamp(28px,5vw,48px)}
.confirm .c-top .tick{width:56px;height:56px;border-radius:50%;background:var(--yellow);color:var(--ink);display:grid;place-items:center;font:700 28px var(--font);margin-bottom:22px}
.confirm .c-top p{color:#D7D2C8}
.confirm .ref{font:600 14.5px var(--font);letter-spacing:.06em;background:rgba(255,255,255,.1);color:#fff;display:inline-block;padding:9px 12px;margin-top:14px;border-radius:3px}
.confirm .c-body{padding:clamp(24px,4vw,40px)}
.next-steps{counter-reset:n;list-style:none;padding:0;margin:0 0 28px}
.next-steps li{counter-increment:n;padding:14px 0 14px 48px;position:relative;border-bottom:1px solid var(--line)}
.next-steps li::before{content:counter(n);position:absolute;left:0;top:12px;width:30px;height:30px;border-radius:50%;background:var(--yellow-soft);display:grid;place-items:center;font:600 14px var(--font)}
.mobile-total{display:none}
@media(max-width:960px){
  .summary{position:static}
  .mobile-total{display:flex;position:sticky;bottom:0;z-index:40;background:var(--ink);color:#fff;justify-content:space-between;align-items:center;padding:14px var(--pad);margin:24px calc(-1*var(--pad)) 0}
  .mobile-total b{font:800 26px var(--font);font-stretch:86%;color:var(--yellow)}
  .mobile-total span{font-size:14px;color:var(--mute-inv)}
}

/* reviews */
.rv{border:1px solid var(--line);border-radius:var(--r);background:var(--white);display:flex;flex-direction:column;overflow:hidden}
.rv .rv-h{padding:18px 22px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}
.rv .rv-h svg{width:22px;height:22px}
.rv .rv-h b{font:600 16px var(--font)}
.rv .rv-v{padding:26px 22px 6px;font:800 clamp(52px,5.5vw,72px)/1 var(--font);font-stretch:84%;letter-spacing:-.04em}
.rv .rv-v small{font-size:.34em;font-weight:500;color:var(--mute);letter-spacing:0;margin-left:4px}
.rv .rv-s{padding:6px 22px 22px;font-size:14.5px;color:var(--mute)}
.rv .stars{color:var(--yellow);font-size:18px;letter-spacing:2px;padding:0 22px}
.rv .btn{margin:auto 22px 22px}
.rv.g .rv-h svg{fill:#4285F4}
.rv.fb .rv-h svg,.rv.fs .rv-h svg{fill:#1877F2}
.rv.ta .rv-h svg{fill:#00AA6C}

/* contact */
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cgrid>a,.cgrid>div{padding:26px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;display:flex;flex-direction:column;gap:8px;background:var(--white);min-height:132px;transition:border-color .2s,box-shadow .2s}
.cgrid span{font:600 12px var(--font);text-transform:uppercase;letter-spacing:.12em;color:var(--mute)}
.cgrid b{font:700 clamp(19px,1.8vw,23px)/1.25 var(--font);font-stretch:92%;letter-spacing:-.01em;word-break:break-word}
.cgrid a:hover{border-color:var(--ink);box-shadow:var(--shadow)}
.cgrid .wa{background:var(--wa);color:#fff;border-color:var(--wa)}
.cgrid .wa span{color:rgba(255,255,255,.8)}
@media(max-width:980px){.cgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.cgrid{grid-template-columns:1fr}}
.map{border:1px solid var(--line);border-radius:var(--r);aspect-ratio:4/3;background:var(--paper-2);overflow:hidden}
.map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.35)}
.socials{display:flex;flex-wrap:wrap;gap:10px}
.socials a{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px 0 14px;border:1px solid var(--line-2);border-radius:999px;text-decoration:none;font-weight:500;font-size:15px;background:transparent;transition:border-color .15s,background .15s}
.socials a svg{width:18px;height:18px;fill:currentColor}
.socials a:hover{background:var(--white);border-color:var(--ink)}

/* legal */
.prose{max-width:72ch}
.prose h2{font-size:clamp(22px,2.4vw,28px);margin:40px 0 12px}
.prose p{color:var(--ink-3)}

/* footer */
.ftr{background:var(--ink);color:#DAD5CB;padding-top:clamp(56px,7vw,96px);font-size:15.5px}
.ftr .f-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:48px;padding-bottom:56px}
.ftr h4{font:600 12px var(--font);text-transform:uppercase;letter-spacing:.14em;color:var(--mute-inv);margin-bottom:16px}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr li a{display:inline-flex;min-height:44px;align-items:center;text-decoration:none;color:#DAD5CB}
.ftr li a:hover{color:#fff}
.ftr p{color:var(--mute-inv);max-width:36ch}
.ftr .f-big{font:800 clamp(28px,3vw,38px)/1.05 var(--font);font-stretch:86%;letter-spacing:-.025em;margin-bottom:16px;color:#fff}
.ftr .f-big span{color:var(--yellow)}
.ftr .f-bot{border-top:1px solid var(--line-inv);padding:24px 0 110px;display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;font-size:13.5px;color:var(--mute-inv)}
.ftr .lr{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-inv);color:#fff;padding:0 14px;text-decoration:none;font:500 14px var(--font);min-height:44px;margin-top:16px;border-radius:var(--r)}
.ftr .lr:hover{border-color:#fff}
.ftr .lr i{font-style:normal;background:var(--red);color:#fff;font:700 11px var(--font);padding:4px 5px;border-radius:2px}
@media(max-width:900px){.ftr .f-top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ftr .f-top{grid-template-columns:1fr;gap:36px}}

/* CTA band */
/* Full-bleed photograph band, directly above the yellow call-to-action.
   Short and wide on purpose: it is a breath before the CTA, not a hero. */
.photoband{position:relative;overflow:hidden;background:var(--ink)}
.photoband>img{width:100%;height:clamp(240px,34vw,420px);object-fit:cover;object-position:50% 46%;display:block}
.photoband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,12,.10) 0%,rgba(8,10,12,.20) 45%,rgba(8,10,12,.68) 100%)}
.photoband .wrap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:clamp(22px,3vw,40px)}
.photoband p{margin:0;color:#fff;font-size:clamp(19px,2.3vw,30px);font-weight:700;font-stretch:88%;letter-spacing:-.018em;max-width:22ch;text-shadow:0 2px 18px rgba(0,0,0,.35)}
@media(max-width:640px){.photoband>img{object-position:58% 46%}.photoband p{max-width:none}}

.cta-band{background:var(--yellow);color:var(--ink)}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px 40px;padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);flex-wrap:wrap}
.cta-band h2{font-size:clamp(28px,3.4vw,44px)}
.cta-band .btn{background:var(--ink);border-color:var(--ink);color:#fff}
.cta-band .btn:hover{background:var(--ink-3)}
/* WhatsApp green on taxi yellow is two loud colours fighting, so the pill
   stays dark and the glyph carries the recognition instead. */
.cta-band .btn-wa-band svg{fill:var(--wa)}
.cta-band .btn-wa-band:hover svg{fill:#25D366}
.cta-band .btn-ghost-inv{background:transparent;color:var(--ink);border-color:rgba(18,18,18,.35)}
.cta-band .btn-ghost-inv:hover{background:#fff;border-color:#fff}

/* chat widget */
.chat-fab{position:fixed;right:20px;bottom:20px;z-index:150;display:flex;align-items:center;gap:10px;min-height:54px;padding:0 20px 0 16px;background:var(--wa);color:#fff;border:0;border-radius:999px;font:600 15px var(--font);cursor:pointer;box-shadow:0 6px 24px rgba(0,0,0,.18),0 1px 3px rgba(0,0,0,.12);transition:transform .2s,box-shadow .2s}
.chat-fab:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.22)}
.chat-fab svg{width:24px;height:24px;fill:#fff}
.chat-fab .pulse{width:8px;height:8px;background:var(--yellow);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(246,184,0,.7)}50%{box-shadow:0 0 0 6px rgba(246,184,0,0)}}
.chat-fab[aria-expanded="true"]{display:none}
@media(max-width:640px){.chat-fab{right:14px;bottom:14px;min-height:52px}}
.chat{position:fixed;right:20px;bottom:20px;z-index:160;width:min(400px,calc(100vw - 24px));height:min(660px,calc(100dvh - 40px));background:var(--white);border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.22),0 2px 8px rgba(0,0,0,.08);display:none;flex-direction:column;overflow:hidden}
.chat.open{display:flex;animation:rise .25s ease-out}
@media(max-width:560px){.chat{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0}}
.chat-h{background:var(--ink);color:#fff;display:flex;align-items:center;gap:12px;padding:14px 12px 14px 16px}
.chat-h .av{width:40px;height:40px;background:var(--yellow);color:var(--ink);border-radius:50%;display:grid;place-items:center;font:800 18px var(--font);flex:none;position:relative}
.chat-h .av::after{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:50%;background:var(--wa);border:2px solid var(--ink)}
.chat-h b{display:block;font-size:15.5px;font-weight:600}
.chat-h small{font-size:13px;color:var(--mute-inv)}
.chat-h button{margin-left:auto;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:22px;cursor:pointer}
.chat-h button:hover{background:rgba(255,255,255,.16)}
.chat-log{flex:1;overflow-y:auto;padding:18px 14px;display:flex;flex-direction:column;gap:8px;background:var(--paper)}
.msg{max-width:84%;padding:11px 14px;font-size:15px;line-height:1.45;background:#fff;white-space:pre-line;border-radius:14px;box-shadow:0 1px 1px rgba(0,0,0,.05)}
.msg.bot{align-self:flex-start;border-bottom-left-radius:4px}
.msg.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}
.msg a{font-weight:600;color:var(--forest-2)}
.msg.typing{display:flex;gap:4px;padding:15px 16px}
.msg.typing i{width:6px;height:6px;background:var(--mute);border-radius:50%;animation:bl 1s infinite}
.msg.typing i:nth-child(2){animation-delay:.15s}.msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes bl{0%,100%{opacity:.25}50%{opacity:1}}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-self:stretch;margin-top:4px}
.chips button{min-height:40px;padding:8px 14px;border:1px solid var(--line-2);border-radius:999px;background:#fff;font:500 14px/1.2 var(--font);cursor:pointer;color:var(--ink);text-align:left;transition:border-color .15s,background .15s}
.chips button:hover{border-color:var(--ink);background:var(--yellow-soft)}
.bk-card{align-self:stretch;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 1px 1px rgba(0,0,0,.05),0 4px 16px rgba(0,0,0,.06)}
.bk-card .bc-h{background:var(--forest);color:#fff;padding:10px 14px;font:600 12px var(--font);text-transform:uppercase;letter-spacing:.1em;display:flex;justify-content:space-between}
.bk-card dl{margin:0;padding:6px 14px}
.bk-card dl div{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:7px 0;border-bottom:1px solid var(--line)}
.bk-card dl div:last-child{border-bottom:0}
.bk-card dt{color:var(--mute)}
.bk-card dd{margin:0;font-weight:600;text-align:right}
.bk-card .btn{margin:6px 14px 14px;width:calc(100% - 28px)}
.chat-f{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.chat-f input{flex:1;min-height:46px;border:1px solid var(--line-2);border-radius:999px;padding:0 16px;font:400 16px var(--font);min-width:0}
.chat-f input:focus{outline:none;border-color:var(--ink)}
.chat-f button{width:46px;min-height:46px;border:0;border-radius:50%;background:var(--yellow);color:var(--ink);cursor:pointer;font-size:17px}
.chat-demo{font:500 11.5px var(--font);text-align:center;color:var(--mute);padding:0 10px 10px;background:#fff;letter-spacing:.04em}

/* misc */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.framed{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.pill{font:500 14px/1 var(--font);border:1px solid currentColor;padding:9px 12px;border-radius:999px}
.phero.f .pill,.phero.k .pill{border-color:rgba(255,255,255,.3)}
.phero.y .pill{border-color:rgba(18,18,18,.3)}
.bg-2 .pill{border-color:var(--line-2)}
.fleet{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.fleet>div{padding:26px;border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.fleet b{display:block;font:800 48px/1 var(--font);font-stretch:84%;letter-spacing:-.03em}
.fleet b small{font:500 14px var(--font);margin-left:6px;color:var(--mute);letter-spacing:0}
.fleet h3{font-size:18px;margin:14px 0 6px}
.fleet p{margin:0;font-size:15px;color:var(--mute)}
.fleet .acc{background:var(--yellow-soft);border-color:#F1DF9E}
@media(max-width:900px){.fleet{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.fleet{grid-template-columns:1fr}}
.e404{min-height:60vh;display:grid;place-items:center;text-align:center}
.e404 .kicker{justify-content:center}
body.nav-open .chat-fab{display:none}
@media(max-width:960px){body.book .chat-fab{bottom:84px}}

/* mobile hero */
@media(max-width:640px){
  .hero{min-height:0}
  .hero>img{object-position:45% 42%}
  .hero::after{background:linear-gradient(180deg,rgba(8,10,12,.38) 0%,rgba(8,10,12,.34) 28%,rgba(8,10,12,.62) 70%,rgba(8,10,12,.80) 100%)}
  .hero .wrap{padding-top:200px;padding-bottom:92px}
  .hero h1{font-size:clamp(40px,11.5vw,56px)}
  .hero .lead{font-size:16.5px;margin:16px 0 24px}
  .hero .btns{flex-wrap:nowrap}
  .hero .btns .btn{flex:1;padding:0 14px}
  .hero-badges{margin-top:22px}
  .sec{padding:64px 0}
}

/* ---- polish pass 2 ---- */
.ico{width:24px;height:24px;display:block}
.ico.lg{width:44px;height:44px;stroke-width:1.5}
.card .ic{background:var(--yellow-soft);color:var(--ink)}
.card .ic .ico{width:22px;height:22px}
.fleet b .ico.lg{color:var(--ink)}
.cgrid b.sm{font-size:clamp(16px,1.5vw,19px);overflow-wrap:anywhere;word-break:normal}
.rv .rv-v.rv-name{font-size:clamp(28px,2.6vw,34px);line-height:1.05;letter-spacing:-.02em;padding-top:28px}

/* Prime */
.prime-hero .lead{color:#CFCAC0}
.prime-hero .ph-img::after{content:"";position:absolute;inset:0;background:rgba(10,10,10,.12)}
.p-facts{background:var(--ink-2);color:#E6E1D7;border-top:1px solid var(--line-inv);border-bottom:1px solid var(--line-inv)}
.p-facts .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.p-facts .wrap>div{display:flex;align-items:center;gap:12px;padding:22px 20px;border-left:1px solid var(--line-inv);font-weight:500;font-size:15.5px}
.p-facts .wrap>div:first-child{border-left:0;padding-left:0}
.p-facts .ico{color:var(--stone);flex:none}
@media(max-width:860px){.p-facts .wrap{grid-template-columns:1fr 1fr}.p-facts .wrap>div{padding:18px 12px;border-left:0}.p-facts .wrap>div:nth-child(odd){padding-left:0}.p-facts .wrap>div:nth-child(-n+2){border-bottom:1px solid var(--line-inv)}.p-facts .wrap>div{font-size:14.5px}}
.prime-svcs .kicker::before{background:var(--stone)}
.p-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-inv);border:1px solid var(--line-inv);border-radius:var(--r);overflow:hidden}
.p-card{background:var(--ink);padding:clamp(28px,3.4vw,44px);display:grid;grid-template-columns:1fr;position:relative;transition:background .25s}
.p-card:hover{background:var(--ink-2)}
.p-card .p-ic,.p-card .n{display:none}

.p-card h3{font-size:clamp(21px,2vw,26px);font-weight:700}
.p-card p{margin:10px 0 0;color:#BDB7AC;font-size:15.5px;max-width:42ch}
@media(max-width:760px){.p-cards{grid-template-columns:1fr}}
.van-panel{background:var(--ink);border-radius:var(--r);min-height:360px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}
.van-art{flex:1;display:grid;place-items:center;padding:48px 32px 16px}
.van-art svg{width:min(380px,85%);height:auto;fill:none;stroke:var(--stone);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.van-cap{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:18px 24px;border-top:1px solid var(--line-inv);color:#fff}
.van-cap b{font-weight:600}
.van-cap span{font-size:13.5px;color:var(--mute-inv)}
.q-chips{display:grid;gap:10px}
.q-chip{display:flex;justify-content:space-between;align-items:center;min-height:64px;padding:0 22px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;font-weight:600;font-size:17px;transition:border-color .2s,box-shadow .2s,transform .2s}
.q-chip i{font-style:normal;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--paper);transition:background .2s}
.q-chip:hover{border-color:var(--ink);box-shadow:var(--shadow)}
.q-chip:hover i{background:var(--yellow)}

/* page-hero buttons on mobile */
@media(max-width:640px){
  .phero .btns,.prime-hero .btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .phero .btns .btn,.prime-hero .btns .btn{padding:0 12px;font-size:15px;white-space:normal;text-align:center;line-height:1.2}
  .tdetail h2{margin-top:40px!important}
}

/* chat fab: icon-only on phones + intro tooltip */
.chat-tip{display:none}
@media(max-width:640px){
  .chat-fab{width:58px;height:58px;min-height:0;padding:0;justify-content:center;right:14px;bottom:14px}
  .chat-fab>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .chat-fab .pulse{position:absolute;top:4px;right:4px;width:12px;height:12px;border:2px solid var(--wa)}
  .chat-fab svg{width:28px;height:28px}
  .chat-tip{display:block;position:fixed;right:82px;bottom:26px;z-index:149;background:var(--ink);color:#fff;font:600 14px/1 var(--font);padding:11px 14px;border-radius:999px;box-shadow:var(--shadow);opacity:0;transform:translateX(8px);transition:opacity .3s,transform .3s;pointer-events:none;white-space:nowrap}
  .chat-tip.on{opacity:1;transform:none}
  body.book .chat-tip{bottom:96px}
  body.nav-open .chat-tip{display:none}
}
@media(max-width:760px){
  .p-card{grid-template-columns:1fr;padding:26px 22px}
  .p-card .p-ic{grid-row:auto;margin-bottom:16px;width:46px;height:46px}
  .p-card .n{right:22px;top:30px}
  .p-card h3{padding-right:0}
  .p-card p{grid-column:1}
  .van-panel{min-height:260px}
}
@media(max-width:600px){.cgrid>a,.cgrid>div{min-height:0;padding:20px 22px}}
.meter .v.v-sm{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.01em}
.meter{flex-direction:column;align-items:flex-start;gap:6px}
.tbl td.num{font-size:22px}
.tbl td.num .per{font:500 13px var(--font);color:var(--mute);letter-spacing:0}
.tbl .est{font:800 22px/1 var(--font);font-stretch:88%;letter-spacing:-.01em;white-space:nowrap}
.tbl .muted{color:var(--mute);font-size:14.5px}
.surcharge-note{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:10px 14px;align-items:center;margin-top:16px;padding:14px 18px;background:var(--yellow-soft);border:1px solid #F1DF9E;border-radius:var(--r)}
.surcharge-note span{font:800 16px/1 var(--font);background:var(--ink);color:var(--yellow);padding:6px 8px;border-radius:2px}
.surcharge-note p{margin:0;font-size:15px}
@media(max-width:700px){.surcharge-note{grid-template-columns:auto 1fr}}
.meter .l-sub{text-transform:none;letter-spacing:0;font-weight:500;font-size:13px;opacity:.8;margin-top:-2px}
.tbl span.num{font:800 20px/1 var(--font);font-stretch:88%;letter-spacing:-.01em}

/* ---- brand badge + MadeiraPrime gold treatment ---- */
:root{--gold:#D8B45C;--gold-2:#F0DCA6}
.hero .wrap{position:relative}
/* The badge lives in the footer only. On the hero it was a second copy
   of the same image, sat over the headline — which is what made it read
   as stuck on rather than designed in. */
.p-badge{width:168px;height:auto;border-radius:10px;border:1px solid rgba(216,180,92,.45);margin-bottom:6px}
.f-badge{width:116px;height:auto;border-radius:8px;margin-top:22px;opacity:.95}
/* gold accents, MadeiraPrime only */
.prime .kicker::before{background:var(--gold)}
.prime-hero .tag{color:var(--gold);letter-spacing:.22em}
.prime-hero h1{position:relative}
.prime-hero h1 span{color:var(--gold-2);font-weight:300}

.prime .p-facts .ico{color:var(--gold)}
.prime .p-card .p-ic{border-color:rgba(216,180,92,.45);color:var(--gold)}
.prime .p-card .n{color:var(--gold)}
.prime .btn-inv:hover{background:var(--gold);border-color:var(--gold);color:#16150F}
.prime .van-panel{border:1px solid rgba(216,180,92,.28)}
.prime .van-art svg{stroke:var(--gold)}
.prime .van-cap{border-top-color:rgba(216,180,92,.28)}
.prime .q-chip:hover i{background:var(--gold)}
.prime .incl li::before{background-color:var(--gold)}
/* brand watermark on dark bands */
.has-wm{position:relative;overflow:hidden}
.has-wm::before{content:"";position:absolute;right:-60px;top:50%;transform:translateY(-50%);width:min(440px,42vw);aspect-ratio:1;background:url("/assets/img/badge-watermark.png") center/contain no-repeat;opacity:.07;pointer-events:none}
.has-wm>.wrap{position:relative;z-index:1}
@media(max-width:860px){.has-wm::before{width:300px;right:-90px;opacity:.06}}
.prime-hero .ph-txt{position:relative}
.van-photo{margin:0;border-radius:var(--r);overflow:hidden;background:var(--ink);box-shadow:var(--shadow)}
.van-photo img{width:100%;height:auto;display:block}
.van-photo figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:16px 22px;background:var(--ink);color:#fff}
.van-photo figcaption b{font-weight:600}
.van-photo figcaption span{font-size:13.5px;color:var(--gold);letter-spacing:.12em;text-transform:uppercase}
.gal{margin:0;border-radius:var(--r);overflow:hidden;position:relative;background:var(--ink)}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gal figcaption{position:absolute;left:0;bottom:0;right:0;padding:14px 16px;color:#fff;font:600 13px var(--font);letter-spacing:.1em;text-transform:uppercase;background:rgba(10,10,10,.55)}
.tour .t-dur{position:absolute;right:14px;bottom:14px;background:var(--ink);color:#fff;padding:8px 11px;font:600 14px var(--font);border-radius:2px;letter-spacing:.02em}
.prime-hero .lic{margin:0;font:600 12.5px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--mute-inv)}
.meter .v .v-from{display:block;font:600 12px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.cond{list-style:none;padding:0;margin:18px 0 0}
.cond li{position:relative;padding:12px 0 12px 30px;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--ink-3)}
.cond li:last-child{border-bottom:0}
.cond li::before{content:"";position:absolute;left:0;top:19px;width:10px;height:10px;border-radius:50%;border:2px solid var(--yellow)}
.surch .zname{display:block;font:600 11.5px var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:3px}
.phero.y .p-badge{width:132px;border-color:rgba(18,18,18,.25);margin:6px 0 10px}
/* hero: never wider than the screen, even with enlarged system text */
.hero .wrap,.hero-inner{min-width:0;max-width:100%}
@media(max-width:640px){
  .hero h1{font-size:clamp(34px,10.4vw,52px);overflow-wrap:anywhere}
  .hero .lead{overflow-wrap:break-word}
  .hero .btns{flex-wrap:wrap}
  .hero .btns .btn{flex:1 1 140px;min-width:0;white-space:normal;text-align:center}
}
/* business cards (19 Sep) */
.bcard-sec .split{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.bcard-fig{margin:0 auto;max-width:360px;width:100%;transform:rotate(-2.5deg);border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -24px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.12);background:#fff;transition:transform .3s}
.bcard-fig:hover{transform:rotate(0) scale(1.02)}
.bcard-fig img{display:block;width:100%;height:auto}
.bc-list{list-style:none;padding:0;margin:22px 0 26px;border-top:1px solid var(--line)}
.bc-list li{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)}
.bc-list span{color:var(--mute)}
.bc-list a,.bc-list b{font-weight:600;text-decoration:none;color:inherit}
@media(max-width:860px){.bcard-sec .split{grid-template-columns:1fr}.bcard-fig{max-width:300px}}

/* language flags (visible switcher) */
.flag{width:24px;height:16px;border-radius:3px;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.14);display:block}
.lang{display:flex;align-items:center}
.lang-flags{display:flex;gap:2px;padding:3px;border:1px solid var(--line-2);border-radius:var(--r)}
.lang-flags a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:38px;min-height:42px;border-radius:calc(var(--r) - 2px);text-decoration:none;font:600 10.5px/1 var(--font);letter-spacing:.06em;color:var(--mute);opacity:.72;transition:opacity .15s,background .15s}
.lang-flags a:hover{opacity:1;background:var(--white)}
.lang-flags a[aria-current="true"]{opacity:1;background:var(--yellow-soft);color:var(--ink)}
.lang button{display:none}
.lang button .flag{width:22px;height:15px}
.lang li a{justify-content:flex-start;gap:10px}
.lang li a span{margin-left:auto}
.nav-langs{display:none}
@media(max-width:1180px){
  .nav-langs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:6px 0 14px;border-bottom:1px solid var(--line)}
  .nav .nav-langs a{font:600 14px/1 var(--font);min-height:52px;border:1px solid var(--line-2);border-radius:var(--r);justify-content:center;gap:8px;padding:0;border-bottom:1px solid var(--line-2)}
  .nav .nav-langs a[aria-current="true"]{background:var(--yellow-soft);border-color:var(--ink);box-shadow:none;padding-left:0}
}
@media(max-width:640px){
  .lang-flags{display:none}
  .lang button{display:flex}
}
/* mobile menu: header has backdrop-filter, which makes it the containing block for the fixed nav; size the nav explicitly */
@media(max-width:1180px){.nav{inset:auto;top:100%;left:0;right:0;height:calc(100vh - 74px);height:calc(100dvh - 74px)}}
@media(max-width:1180px){
  .nav-langs{grid-template-columns:repeat(5,1fr);gap:6px}
  .nav .nav-langs a{flex-direction:column;gap:5px;font-size:12.5px;min-height:58px}
}

/* language offer bar */
.langbar{background:var(--ink);color:#fff}
.langbar .wrap{display:flex;align-items:center;gap:16px;min-height:52px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.langbar p{margin:0;font-size:14.5px;flex:1 1 220px}
.langbar .btn{min-height:38px}
.langbar button{margin-left:auto;background:transparent;border:0;color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:6px 4px;opacity:.7}
.langbar button:hover{opacity:1}

/* 24/7 badge — the thing airport and cruise customers actually filter on,
   so it is a badge with a live pulse rather than a line of body copy. */
.open247{display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:0 16px;margin:0 0 14px;border-radius:999px;background:var(--ink);color:#fff;font:700 13.5px/1 var(--font);letter-spacing:.01em}
.open247 i{width:8px;height:8px;border-radius:50%;background:var(--wa);flex:none;animation:pulse247 2.2s infinite}
@keyframes pulse247{0%,100%{box-shadow:0 0 0 0 rgba(29,168,81,.6)}50%{box-shadow:0 0 0 7px rgba(29,168,81,0)}}
.prime-hero .open247{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28)}
@media(prefers-reduced-motion:reduce){.open247 i{animation:none}}

/* Plain service list: heading + line, no icon tiles. */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px 56px}
.svc-grid>div{border-top:1px solid var(--ink);padding-top:18px}
.svc-grid h3{margin-bottom:8px;font-size:clamp(20px,1.8vw,24px)}
.svc-grid p{margin:0;color:var(--mute)}
@media(max-width:640px){.svc-grid{grid-template-columns:1fr;gap:28px}}
