/* ---------- 01 Obsidian Gold — tokens ---------- */
:root{
  /* primitives */
  --c-bg:#0B0B0D; --c-surface:#141417; --c-surface-2:#1C1C21;
  --c-text:#F4F1EA; --c-muted:#DCD7CE;
  --c-gold:#C9A84C; --c-gold-deep:#9A7B2F; --c-gold-light:#D9BA5F;
  --c-border:rgba(255,255,255,.10);
  --c-gold-line:rgba(201,168,76,.42); --c-gold-soft:rgba(201,168,76,.10);
  /* semantic */
  --bg:var(--c-bg); --surface:var(--c-surface); --surface-2:var(--c-surface-2);
  --text:var(--c-text); --muted:var(--c-muted);
  --accent:var(--c-gold); --accent-deep:var(--c-gold-deep); --accent-light:var(--c-gold-light);
  --line:var(--c-border); --line-gold:var(--c-gold-line); --accent-soft:var(--c-gold-soft);
  --on-accent:#0B0B0D;
  /* type */
  --font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-body:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --fs-display:clamp(2.8rem,6vw,5.5rem);
  --fs-h2:clamp(2.25rem,4vw,3.5rem);
  --fs-h3:1.625rem;
  --fs-body:1.0625rem;
  --fs-lead:1.125rem;
  --fs-small:.9375rem;
  --fs-label:.75rem;
  --track:.18em;
  /* rhythm (8px) */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px; --s6:48px; --s7:56px; --s8:64px; --s10:80px; --s12:96px; --s14:112px;
  --container:1280px; --gutter:24px; --radius:3px;
  /* elevation scale — one ladder, four rungs, used by every card */
  --e1:0 1px 2px rgba(0,0,0,.40);
  --e2:0 6px 16px -4px rgba(0,0,0,.55);
  --e3:0 16px 34px -10px rgba(0,0,0,.66);
  --e4:0 28px 60px -14px rgba(0,0,0,.72);
  --ring-gold:0 0 0 1px rgba(201,168,76,.30);
  --card-radius:6px;
  --lift:-3px; --navh:80px;
  --ease:cubic-bezier(.22,.61,.36,1); --t-fast:180ms; --t-mid:220ms;
  color-scheme:dark;
}
/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--navh) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--fs-body)/1.7 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
[hidden]{display:none!important}
a{color:var(--accent)}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
::selection{background:var(--accent);color:var(--on-accent)}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-64px;z-index:100;padding:12px 18px;background:var(--accent);color:var(--on-accent);font:600 .8125rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius);text-decoration:none;transition:top var(--t-fast)}
.skip:focus{top:16px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* ---------- type ---------- */
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:-.01em;margin:0;color:var(--text)}
h1{font-size:var(--fs-display);line-height:1;font-weight:600}
h1 em{font-style:italic;font-weight:500;color:var(--accent)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);line-height:1.15}
.eyebrow{display:inline-flex;align-items:center;gap:14px;font:600 var(--fs-label)/1 var(--font-body);letter-spacing:var(--track);text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--accent);flex:none}
.lead{font-size:var(--fs-lead);font-weight:300;line-height:1.7;color:var(--muted)}
.label{font:500 var(--fs-label)/1.4 var(--font-body);letter-spacing:var(--track);text-transform:uppercase;color:var(--muted)}
.num{font:600 2.5rem/1 var(--font-display);color:var(--accent);font-variant-numeric:lining-nums}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border:1px solid transparent;border-radius:var(--radius);font:600 .8125rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background-color var(--t-mid) var(--ease),color var(--t-mid) var(--ease),border-color var(--t-mid) var(--ease),transform var(--t-mid) var(--ease)}
.btn .ico{width:18px;height:18px}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-light);border-color:var(--accent-light);transform:translateY(-1px)}
.btn-outline{background:transparent;border-color:var(--line-gold);color:var(--accent)}
.btn-outline:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.btn-block{width:100%}
.link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:600 var(--fs-label)/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);text-decoration:none;position:relative}
.link::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--t-mid) var(--ease);z-index:2}
.link:hover::after{transform:scaleX(1)}
.link .ico{width:16px;height:16px;transition:transform var(--t-mid) var(--ease)}
.link:hover .ico{transform:translateX(4px)}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:60;height:var(--navh);background:rgba(11,11,13,.62);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,0);transition:background-color var(--t-mid) var(--ease),border-color var(--t-mid) var(--ease)}
.nav.is-scrolled{background:rgba(11,11,13,.92);border-bottom-color:var(--line-gold)}
.nav-in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}
.brand{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);min-height:44px;flex:none}
.brand-mark{width:44px;height:44px;flex:none;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;font:600 .9375rem/1 var(--font-display);letter-spacing:.08em;color:var(--accent);box-shadow:inset 0 0 0 3px var(--bg),inset 0 0 0 4px rgba(201,168,76,.45);padding-left:.08em}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{font:600 1.375rem/1 var(--font-display);letter-spacing:.01em;color:var(--text);white-space:nowrap}
@media (max-width:480px){.brand-name{font-size:1.125rem}.brand{gap:10px}.nav-in{gap:12px}.nav-cta{gap:10px}}
@media (max-width:400px){.brand-name{font-size:1.0625rem}.brand-mark{width:40px;height:40px}}
@media (max-width:360px){.brand-name{font-size:1rem}.brand-mark{width:38px;height:38px}.brand{gap:8px}}
.brand-sub{margin-top:5px;font:500 .5625rem/1 var(--font-body);letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}
.nav-links{display:none;align-items:center;gap:var(--s4)}
.nav-links a{display:inline-flex;align-items:center;white-space:nowrap;min-height:44px;font:500 var(--fs-label)/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--text);text-decoration:none;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:9px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--t-mid) var(--ease);z-index:2}
.nav-links a:hover::after,.nav-links a:focus-visible::after{transform:scaleX(1)}
.nav-cta{display:flex;align-items:center;gap:var(--s3)}
.nav-phone{display:none;white-space:nowrap;align-items:center;gap:10px;min-height:44px;font:500 var(--fs-small)/1 var(--font-body);letter-spacing:.02em;color:var(--text);text-decoration:none;transition:color var(--t-fast)}
.nav-phone .ico{color:var(--accent);width:18px;height:18px}
.nav-phone:hover{color:var(--accent)}
.nav-phone-mini{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--accent);border:1px solid var(--line-gold);border-radius:var(--radius);transition:background-color var(--t-fast)}
.nav-phone-mini:hover{background:var(--accent-soft)}
.nav .btn{min-height:44px;padding:0 20px}
.nav-book{display:none}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--t-fast)}
.menu-btn:hover{border-color:var(--accent)}
.menu-btn .i-x{display:none}
.menu-btn[aria-expanded="true"] .i-menu{display:none}
.menu-btn[aria-expanded="true"] .i-x{display:block}
.menu{position:fixed;left:0;right:0;top:var(--navh);bottom:0;z-index:55;background:var(--bg);padding:var(--s4) var(--gutter) var(--s6);overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity var(--t-mid) var(--ease),transform var(--t-mid) var(--ease),visibility 0s var(--t-mid)}
/* the header's backdrop blur makes it the containing block for the fixed menu, which collapsed the open menu
   to the bar's own height. While the menu is open the bar goes solid and drops the blur. */
body.menu-open .nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}
.menu.is-open{visibility:visible;opacity:1;transform:none;transition:opacity var(--t-mid) var(--ease),transform var(--t-mid) var(--ease),visibility 0s 0s}
.menu ul{display:flex;flex-direction:column}
.menu li{border-bottom:1px solid var(--line)}
.menu li a{display:flex;align-items:center;justify-content:space-between;min-height:60px;padding:8px 0;font:600 1.75rem/1 var(--font-display);color:var(--text);text-decoration:none}
.menu li a .ico{color:var(--accent);width:18px;height:18px}
.menu-foot{margin-top:var(--s4);display:grid;gap:var(--s2)}
.menu-foot .btn{width:100%}
@media (min-width:1180px){
  .nav-links{display:flex}
  .nav-phone{display:inline-flex}
  .nav-phone-mini,.menu-btn{display:none}
  .nav-book{display:inline-flex}
  .menu{display:none}
}
/* between 1180 and 1279 the eight-item nav plus the full phone number is 26px too wide: show the phone icon instead */
@media (min-width:1180px) and (max-width:1279px){.nav-phone{display:none}.nav-phone-mini{display:inline-flex}}
@media (min-width:1180px){ /* compact spacing at every desktop width: eight items plus phone and button must fit the 1280px container */
  .nav-in{gap:var(--s3)}
  .nav-links{gap:var(--s2)}
  .nav-links a{letter-spacing:.1em}
  .nav-cta{gap:14px}
  .nav-phone{font-size:.875rem}
}
@media (max-width:1179px){
  :root{--navh:72px}
}
@media (max-width:479px){
  .brand-name{font-size:1.1875rem}
  .nav-cta{gap:12px}
}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;margin-top:calc(-1 * var(--navh));min-height:600px;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--navh) + var(--s7)) 0 var(--s7);overflow:hidden}
.hero>.container{margin-block:auto}
.hero>.container{width:100%}
@media (min-width:1024px){.hero{min-height:720px;padding-top:calc(var(--navh) + var(--s8))}}
.hero-media{position:absolute;inset:0;z-index:-1;background:var(--surface)}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:72% 42%;filter:saturate(.97) contrast(1.02)}
.hero-media::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,11,13,.72) 0%,rgba(11,11,13,.46) 42%,rgba(11,11,13,.12) 72%,rgba(11,11,13,0) 100%),linear-gradient(180deg,rgba(11,11,13,.34) 0%,rgba(11,11,13,0) 30%,rgba(11,11,13,.10) 70%,rgba(11,11,13,.62) 100%);z-index:1}
.hero-media::after{content:"";position:absolute;inset:0;background:rgba(201,168,76,.03);mix-blend-mode:overlay;z-index:2}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s6);align-items:center}
.hero-copy{max-width:none}
.hero-copy{padding-top:var(--s2)}
.hero-copy h1{margin-top:var(--s3);text-shadow:0 2px 24px rgba(0,0,0,.55)}
.hero-copy .lead{margin-top:var(--s4);color:#E4E0D8;text-shadow:0 1px 14px rgba(0,0,0,.6);font-size:clamp(1.0625rem,1.35vw,1.3125rem)}
/* the flagship question sits between the keyword H1 and its answer */
.hero-copy .hero-q{margin-top:var(--s4);font:600 clamp(1.1875rem,1.9vw,1.625rem)/1.35 var(--font-display);letter-spacing:0;color:var(--accent);text-shadow:0 1px 14px rgba(0,0,0,.6)}
.hero-copy .hero-q + .lead{margin-top:var(--s2)}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
.hero-actions .btn{flex:1 1 auto}
.trust-strip{background:var(--surface);border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line)}
.chips{margin:0;padding:var(--s3) 0;display:grid;grid-template-columns:1fr 1fr;gap:14px var(--s3)}
.chip{display:inline-flex;align-items:center;gap:10px;font:500 var(--fs-label)/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.chip .ico{width:15px;height:15px;color:var(--accent)}
@media (min-width:640px){
  .hero-actions .btn{flex:0 0 auto}
  .chips{display:flex;flex-wrap:wrap;justify-content:space-between}
}
@media (min-width:1024px){
  .hero{padding:calc(var(--navh) + var(--s10)) 0 var(--s8)}
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:var(--s8);min-height:calc(100vh - var(--navh) - 300px);align-content:center}
  .hero-copy{padding-top:0}
}
@media (min-width:1280px){
  .hero-grid{gap:var(--s8)}
}

/* ---------- quote widget ---------- */
.quote{position:relative;background:rgba(20,20,23,.72);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line-gold);border-radius:4px;padding:var(--s4);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.quote::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,168,76,.14);border-radius:3px;pointer-events:none;z-index:1}
.quote-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s2);padding-bottom:var(--s3);margin-bottom:var(--s3);border-bottom:1px solid var(--line)}
.quote-head h2{font-size:1.875rem;margin-top:10px}
.quote-toggle{flex:none;font:500 .6875rem/1.4 var(--font-body);letter-spacing:.08em;color:var(--accent);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(201,168,76,.5);min-height:44px;display:inline-flex;align-items:center;text-align:right;transition:text-decoration-color var(--t-fast)}
.quote-toggle:hover{text-decoration-color:var(--accent)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.field{display:flex;flex-direction:column;min-width:0}
.field label{font:500 .6875rem/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field input,.field select{width:100%;height:48px;padding:0 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);color:var(--text);font:400 .9375rem/1 var(--font-body);transition:border-color var(--t-fast),background-color var(--t-fast),box-shadow var(--t-fast);min-width:0}
.field input::placeholder{color:rgba(244,241,234,.55)}
.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(201,168,76,.22);background:rgba(255,255,255,.06)}
.field select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23C9A84C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center}
.field select option{background:var(--surface-2);color:var(--text)}
.field input[type="date"],.field input[type="time"]{font-family:var(--font-body)}
.fields-2{display:contents}
.quote .btn{margin-top:var(--s2)}
.quote-note{display:flex;align-items:center;gap:10px;margin-top:var(--s2);font:400 .8125rem/1.5 var(--font-body);color:var(--muted)}
.quote-note .ico{width:16px;height:16px;color:var(--accent)}
.quote-msg{margin-top:var(--s2);padding:14px 16px;border-left:2px solid var(--accent);background:var(--accent-soft);font-size:var(--fs-small);line-height:1.6;color:var(--text)}
.quote-msg a{color:var(--accent);font-weight:600;text-decoration:none;white-space:nowrap}
.quote-msg a:hover{text-decoration:underline}
@media (max-width:479px){
  .quote{padding:var(--s3)}
  .fields{grid-template-columns:1fr}
  .quote-head{flex-direction:column;align-items:flex-start;gap:4px}
  .quote-toggle{text-align:left;min-height:36px}
}

/* ---------- sections ---------- */
.section{padding:clamp(48px,5.5vw,72px) 0;border-top:1px solid var(--line)}
.section.alt{background:var(--surface)}
.sec-head{margin-bottom:var(--s7)}
.sec-head h2{margin-top:var(--s3)}
.sec-head .lead{margin-top:var(--s3)}
@media (max-width:767px){.sec-head{margin-bottom:var(--s5)}}

/* photo frame (warm tint + inner hairline) */
.ph{position:relative;overflow:hidden;border-radius:4px;background:var(--surface-2)}
.ph img{width:100%;height:100%;object-fit:cover;filter:sepia(.16) saturate(.88) contrast(1.02)}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(201,168,76,.10),rgba(11,11,13,.32));pointer-events:none;z-index:2}
.ph::before{content:"";position:absolute;inset:14px;border:1px solid rgba(201,168,76,.38);border-radius:2px;z-index:2;pointer-events:none}
.ph.fill{min-height:420px}
.ph.fill img{position:absolute;inset:0}
.ph-cap{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:var(--s4);background:linear-gradient(180deg,rgba(11,11,13,0),rgba(11,11,13,.85))}
.ph-cap .label{color:var(--accent)}
.ph-cap q,.ph-cap .pull{display:block;margin-top:10px;font:500 italic clamp(1.5rem,2vw,1.875rem)/1.25 var(--font-display);color:var(--text);quotes:"\201C" "\201D"}
@media (max-width:1023px){.ph.fill{min-height:0;aspect-ratio:16/10}.ph.fill img{position:static}}

/* ---------- stats ---------- */
.stats{border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line);background:var(--bg)}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.stat{background:var(--bg);padding:var(--s5) var(--s3)}
.stat-n{font:600 clamp(2.75rem,5vw,4.5rem)/1 var(--font-display);color:var(--text);font-variant-numeric:lining-nums;display:flex;align-items:baseline;gap:2px}
.stat-n .plus{color:var(--accent);font-style:italic;font-weight:500;font-size:.7em}
.stat-l{margin-top:12px}
@media (min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr)}.stat{padding:var(--s6) var(--s4)}}

/* ---------- airports ---------- */
.air-grid{display:grid;grid-template-columns:1fr;gap:var(--s5)}
.air-list li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line);transition:background-color var(--t-fast)}
.air-list li:last-child{border-bottom:1px solid var(--line)}
.air-code{font:600 2rem/1 var(--font-display);color:var(--accent);letter-spacing:.02em;padding-top:4px}
.air-body h3{font-size:1.5rem}
.air-body p{margin-top:8px;color:var(--muted);font-size:var(--fs-small)}
.air-meet{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font:500 .6875rem/1.4 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.air-meet .ico{width:14px;height:14px;color:var(--accent)}
@media (min-width:1024px){
  .air-grid{grid-template-columns:5fr 7fr;gap:var(--s8);align-items:stretch}
  .air-list li{grid-template-columns:120px minmax(0,1fr);padding:var(--s4) 0}
  .air-list li:first-child{padding-top:0;border-top:0}
  .air-code{font-size:2.5rem}
}

/* ---------- services ---------- */
.grid-lines{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.cell{background:var(--bg);padding:var(--s5) var(--s4);position:relative;transition:background-color var(--t-mid) var(--ease)}
.section.alt .cell{background:var(--surface)}
.cell:hover{background:var(--surface-2)}
.cell-n{position:absolute;top:var(--s4);right:var(--s4);font:500 italic 1.125rem/1 var(--font-display);color:var(--accent-deep);letter-spacing:.04em}
.cell-icon{width:52px;height:52px;border:1px solid var(--line-gold);border-radius:50%;display:grid;place-items:center;color:var(--accent);margin-bottom:var(--s4);transition:border-color var(--t-mid),background-color var(--t-mid)}
.cell:hover .cell-icon{border-color:var(--accent);background:var(--accent-soft)}
.cell-icon .ico{width:22px;height:22px}
.cell h3{font-size:1.625rem}
.cell p{margin-top:12px;color:var(--muted);font-size:var(--fs-small)}
.cell.ph{padding:0;min-height:320px}
.cell.ph img{position:absolute;inset:0}
.cell.ph:hover{background:var(--surface-2)}
@media (min-width:640px){.grid-lines{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.grid-lines.cols-3{grid-template-columns:repeat(3,1fr)}.cell{padding:var(--s6) var(--s5)}}

/* ---------- fleet ---------- */
.fleet-banner{aspect-ratio:1600/613;margin-bottom:var(--s7)}
.fleet-banner img{position:absolute;inset:0}
.fleet-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fleet{background:var(--bg);padding:var(--s5) 0 var(--s5);display:flex;flex-direction:column}
.fleet .num{font-size:3rem;font-style:italic;font-weight:500}
.fleet h3{margin-top:var(--s2)}
.spec{display:flex;flex-wrap:wrap;gap:8px var(--s3);margin-top:14px;font:500 .75rem/1.4 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.spec span{display:inline-flex;align-items:center;gap:8px}
.spec .ico{width:16px;height:16px;color:var(--accent)}
.fleet p{margin-top:var(--s2);color:var(--muted);font-size:var(--fs-small)}
.models{margin-top:var(--s2);font:400 .75rem/1.6 var(--font-body);letter-spacing:.06em;color:var(--muted)}
.models b{font-weight:600;color:var(--text);letter-spacing:.14em;text-transform:uppercase;font-size:.625rem;display:block;margin-bottom:2px}
.fleet .link{margin-top:auto;padding-top:var(--s2)}
@media (min-width:640px){.fleet-grid{grid-template-columns:1fr 1fr}.fleet{padding:var(--s5) var(--s4)}.fleet:nth-child(odd){padding-left:0}.fleet:nth-child(even){padding-right:0}}
@media (min-width:1024px){.fleet-grid{grid-template-columns:repeat(4,1fr)}.fleet{padding:var(--s6) var(--s4)}.fleet:first-child{padding-left:0}.fleet:last-child{padding-right:0}.fleet:nth-child(2){padding-right:var(--s4)}.fleet:nth-child(3){padding-left:var(--s4)}}

/* ---------- rates ---------- */
.rates-wrap{border-top:1px solid var(--line-gold)}
table.rates{width:100%;border-collapse:collapse}
.rates th,.rates td{text-align:left;padding:20px var(--s2);border-bottom:1px solid var(--line);vertical-align:middle}
.rates th{font:500 .6875rem/1.4 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-top:var(--s3);padding-bottom:var(--s3)}
.rates th:first-child,.rates td:first-child{padding-left:0}
.rates th:last-child,.rates td:last-child{padding-right:0}
.rates td{font:500 1rem/1.4 var(--font-body);color:var(--text)}
.rates td .sub{display:block;font:400 .75rem/1.4 var(--font-body);color:var(--muted);letter-spacing:.04em}
.rates td.price{font:600 1.625rem/1 var(--font-display);font-variant-numeric:lining-nums tabular-nums;color:var(--text)}
.rates td.price .cur{color:var(--accent);font-size:.75em;font-weight:500;margin-right:1px}
.rates tbody tr{transition:background-color var(--t-fast)}
.rates tbody tr:hover{background:rgba(255,255,255,.025)}
.rates-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s5)}
.rates-foot p{color:var(--muted);font-size:var(--fs-small)}
@media (min-width:768px){.rates th,.rates td{padding-left:var(--s3);padding-right:var(--s3)}.rates th:not(:first-child),.rates td:not(:first-child){text-align:right}}
@media (max-width:767px){
  table.rates,.rates tbody,.rates tr,.rates td{display:block}
  .rates thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .rates tr{display:grid;grid-template-columns:repeat(2,1fr);gap:12px var(--s2);padding:var(--s3) 0;border-bottom:1px solid var(--line)}
  .rates td{padding:0;border:0}
  .rates td:first-child{grid-column:1/-1;font-size:1.125rem}
  .rates td.price{font-size:1.5rem}
  .rates td[data-l]::before{content:attr(data-l);display:block;font:500 .625rem/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
}
@media (min-width:480px) and (max-width:767px){.rates tr{grid-template-columns:repeat(4,1fr)}}

/* ---------- how it works ---------- */
.steps{display:grid;grid-template-columns:1fr;gap:var(--s5)}
.step{position:relative;border-top:1px solid var(--line);padding-top:var(--s4)}
.step::before{content:"";position:absolute;top:-1px;left:0;width:56px;height:1px;background:var(--accent);z-index:1}
.step .num{font-size:3rem;font-style:italic;font-weight:500}
.step h3{margin-top:var(--s2);font-size:1.5rem}
.step p{margin-top:12px;color:var(--muted);font-size:var(--fs-small)}
@media (min-width:640px){.steps{grid-template-columns:1fr 1fr;gap:var(--s6) var(--s5)}}
@media (min-width:1024px){.steps{grid-template-columns:repeat(4,1fr);gap:var(--s6)}}

/* ---------- corporate ---------- */
.corp-grid{display:grid;grid-template-columns:1fr;gap:var(--s5)}
.corp-body .lead{margin-top:var(--s3);color:var(--muted)}
.corp-body h2{margin-top:var(--s3)}
.corp-list{margin-top:var(--s4);display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
.corp-list li{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font:500 .75rem/1.4 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.corp-list .ico{width:18px;height:18px;color:var(--accent)}
.corp-body .btn{margin-top:var(--s4)}
@media (min-width:640px){.corp-list{grid-template-columns:1fr 1fr;column-gap:var(--s4)}}
@media (min-width:1024px){.corp-grid{grid-template-columns:5fr 7fr;gap:var(--s10);align-items:center}}

/* ---------- why us ---------- */
.why .cell h3{font-size:1.5rem}

/* ---------- testimonials ---------- */
.testi{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.testi figure{margin:0;background:var(--surface);padding:var(--s5) 0;display:flex;flex-direction:column}
.testi .mark{font:700 5rem/.6 var(--font-display);color:var(--accent);height:40px;display:block}
.testi blockquote{margin:0;font:500 italic clamp(1.375rem,1.7vw,1.625rem)/1.4 var(--font-display);color:var(--text)}
.testi figcaption{margin-top:auto;padding-top:var(--s3)}
.testi .who{display:block;font:600 .75rem/1.4 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--text)}
.testi .where{display:block;margin-top:4px;font:400 .8125rem/1.4 var(--font-body);color:var(--muted);letter-spacing:.04em}
@media (min-width:768px){.testi{grid-template-columns:repeat(3,1fr)}.testi figure{padding:var(--s6) var(--s4)}.testi figure:first-child{padding-left:0}.testi figure:last-child{padding-right:0}}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--line-gold)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);width:100%;text-align:left;padding:var(--s3) 0;min-height:64px;font:600 clamp(1.25rem,1.6vw,1.5rem)/1.25 var(--font-display);color:var(--text);transition:color var(--t-fast)}
.faq-q:hover{color:var(--accent)}
.faq-q .ico{width:36px;height:36px;padding:9px;border:1px solid var(--line-gold);border-radius:50%;color:var(--accent);transition:transform var(--t-mid) var(--ease),background-color var(--t-mid)}
.faq-q[aria-expanded="true"] .ico{transform:rotate(45deg);background:var(--accent-soft)}
.faq-a{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows 300ms var(--ease),visibility 0s 300ms}
.faq-item.is-open .faq-a{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows 300ms var(--ease),visibility 0s 0s}
.faq-a-in{overflow:hidden;min-height:0}
.faq-a p{padding:0 0 var(--s4);color:var(--muted);font-size:var(--fs-body)}
.faq-a a{color:var(--accent);text-decoration:none;font-weight:600}
.faq-a a:hover{text-decoration:underline}
@media (min-width:768px){.faq-a p{padding-right:var(--s10)}}

/* ---------- cta band ---------- */
.cta{position:relative;isolation:isolate;padding:clamp(64px,7vw,96px) 0;text-align:center;border-top:1px solid var(--line-gold);overflow:hidden}
.cta-media{position:absolute;inset:0;z-index:-1;background:var(--surface)}
.cta-media img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;filter:sepia(.18) saturate(.85)}
.cta-media::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.86),rgba(11,11,13,.72) 50%,rgba(11,11,13,.9));z-index:1}
.cta-media::after{content:"";position:absolute;inset:0;background:rgba(201,168,76,.10);mix-blend-mode:overlay;z-index:2}
.cta .eyebrow{justify-content:center}
.cta .eyebrow::after{content:"";width:32px;height:1px;background:var(--accent)}
.cta h2{margin-top:var(--s3);font-size:clamp(2.75rem,5.5vw,4.75rem)}
.cta .lead{margin-top:var(--s3);color:#D8D3C8}
.cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s2);margin-top:var(--s5)}

/* ---------- flat-rate quote section ---------- */
.quote-section{position:relative;overflow:hidden}
.quote-section::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(900px 460px at 82% 0%,rgba(201,168,76,.09),transparent 68%)}
.quote-section .sec-head .lead a.tel-inline{color:var(--accent);text-decoration:none;white-space:nowrap;border-bottom:1px solid rgba(201,168,76,.45)}
.quote-section .sec-head .lead a.tel-inline:hover{border-bottom-color:var(--accent)}
.quote-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5);align-items:start}
.quote-section .quote{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface)}
.quote-section .quote h3{font:600 1.75rem/1.15 var(--font-display);letter-spacing:.01em;margin-top:10px}
.quote-aside{display:flex;flex-direction:column;gap:var(--s4);height:100%}
.quote-points{display:grid;gap:var(--s3);align-content:start;margin:0;padding:0;list-style:none}
.quote-call{margin-top:auto;padding:var(--s3);border:1px solid var(--line-gold);border-radius:var(--radius);background:var(--accent-soft)}
.quote-call .label{margin:0 0 10px}
.quote-call-num{display:inline-flex;align-items:center;gap:10px;min-height:44px;font:600 1.5rem/1 var(--font-display);letter-spacing:.01em;color:var(--text);text-decoration:none;transition:color var(--t-fast)}
.quote-call-num:hover{color:var(--accent)}
.quote-call-num .ico{width:20px;height:20px;color:var(--accent)}
.quote-call p{margin-top:10px;font-size:.8125rem;line-height:1.6;color:var(--muted)}
.quote-call p a{color:var(--accent);text-decoration:none;white-space:nowrap}
.quote-call p a:hover{text-decoration:underline}
.quote-points li{display:flex;gap:14px;align-items:flex-start;padding-bottom:var(--s3);border-bottom:1px solid var(--line)}
.quote-points li:last-child{border-bottom:0;padding-bottom:0}
.quote-points .ico{width:18px;height:18px;flex:none;margin-top:5px;color:var(--accent)}
.quote-points span{color:var(--muted);font-size:var(--fs-small);line-height:1.7}
.quote-points strong{display:block;color:var(--text);font-weight:600;letter-spacing:.01em}
@media (min-width:900px){
  .quote-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--s7)}
  .quote-section .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1180px){
  .quote-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--s8)}
}

/* ---------- blog ---------- */
.blog-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s6)}
.blog-head h2{margin-top:var(--s2)}
.blog-grid{display:grid;grid-template-columns:1fr;gap:var(--s3)}
@media (min-width:768px){.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.blog-card{display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:border-color var(--t-mid) var(--ease),transform var(--t-mid) var(--ease)}
.blog-card:hover{border-color:var(--line-gold);transform:translateY(-4px)}
.blog-ph{display:block;aspect-ratio:16/9;border-radius:0}
.blog-ph img{position:absolute;inset:0;transition:transform 600ms var(--ease)}
.blog-card:hover .blog-ph img{transform:scale(1.04)}
.blog-body{display:flex;flex-direction:column;gap:12px;padding:var(--s3);flex:1}
.blog-body h3{font-size:1.5rem;line-height:1.2}
.blog-body h3 a{color:var(--text);text-decoration:none;transition:color var(--t-fast)}
.blog-body h3 a:hover{color:var(--accent)}
.blog-body .ex{color:var(--muted);font-size:var(--fs-small);line-height:1.7}
.blog-body .link{margin-top:auto}



/* ---------- airport cars ---------- */
.vcards{display:grid;grid-template-columns:1fr;gap:var(--s3)}
@media (min-width:640px){.vcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.vcards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.vcards.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.vcard{display:flex;flex-direction:column;min-width:0;overflow:hidden;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--card-radius);
  box-shadow:var(--e1);
  transition:transform var(--t-mid) var(--ease),border-color var(--t-mid) var(--ease),box-shadow var(--t-mid) var(--ease)}
.vcard::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;z-index:3;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;
  transition:opacity var(--t-mid) var(--ease);pointer-events:none}
.vcard{position:relative}
@media (hover:hover){
  .vcard:hover{transform:translateY(var(--lift));border-color:var(--line-gold);box-shadow:var(--e3),var(--ring-gold)}
  .vcard:hover::before{opacity:1}
  .vcard:hover .vcard-ph img{transform:scale(1.04)}
}
.vcard:focus-within{border-color:var(--line-gold);box-shadow:var(--e3),var(--ring-gold)}
.vcard-ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--surface-2)}
.vcard-ph picture{display:block;height:100%}
.vcard-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 700ms var(--ease)}
.vcard-ph::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(11,11,13,0) 55%,rgba(11,11,13,.55))}
.vcard-body{display:flex;flex-direction:column;gap:12px;padding:var(--s4);flex:1}
.vcard-model{font:500 .6875rem/1.3 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.vcard-body h3{font-size:1.625rem}
.vcard-specs{display:flex;flex-wrap:wrap;gap:8px var(--s3);margin:0;padding:0;list-style:none}
.vcard-specs li{display:inline-flex;align-items:center;gap:8px;font:500 .6875rem/1.2 var(--font-body);
  letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.vcard-specs .ico{width:15px;height:15px;color:var(--accent)}
.vcard-note{color:var(--muted);font-size:var(--fs-small);line-height:1.7}
.vcard-price{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2);
  margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--line-gold)}
.vcard-route{font:500 .6875rem/1.3 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.vcard-amount{font:600 2rem/1 var(--font-display);font-variant-numeric:lining-nums tabular-nums;color:var(--text)}
.vcard-amount .cur{color:var(--accent);font-size:.6em;margin-right:2px}

/* ================= card system =================
   One elevation ladder and one interaction language for every card on the site.
   Hover lifts with transform only (never layout), keyboard focus gets the same
   treatment, and touch devices skip the lift because hover never fires there. */
.card,.town,.pop-card,.blog-card,.callout,.quote-call,.save-box,.region-chip{
  position:relative;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--card-radius);
  box-shadow:var(--e1);
  transition:transform var(--t-mid) var(--ease),
             border-color var(--t-mid) var(--ease),
             box-shadow var(--t-mid) var(--ease),
             background-color var(--t-mid) var(--ease)}

/* a hairline of gold along the top edge, revealed on interaction */
.card::before,.town::before,.pop-card::before,.blog-card::before,.region-chip::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:1px;z-index:3;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  opacity:0;transition:opacity var(--t-mid) var(--ease);pointer-events:none}

@media (hover:hover){
  .card:hover,.town:hover,.pop-card:hover,.blog-card:hover,.callout:hover,.region-chip:hover{
    transform:translateY(var(--lift));
    border-color:var(--line-gold);
    box-shadow:var(--e3),var(--ring-gold);
    background:var(--surface-2)}
  .card:hover::before,.town:hover::before,.pop-card:hover::before,
  .blog-card:hover::before,.region-chip:hover::before{opacity:1}
}

/* keyboard users get exactly what mouse users get */
.card:focus-within,.town:focus-within,.pop-card:focus-visible,
.blog-card:focus-within,.region-chip:focus-visible{
  border-color:var(--line-gold);
  box-shadow:var(--e3),var(--ring-gold)}
.pop-card:focus-visible::before,.region-chip:focus-visible::before{opacity:1}

/* pressed state: settle back down rather than staying lifted */
@media (hover:hover){
  .pop-card:active,.region-chip:active,.blog-card:active{
    transform:translateY(-1px);box-shadow:var(--e2);transition-duration:var(--t-fast)}
}

/* ---- hairline-grid cells keep the editorial look, gain the same language ---- */
.cell{transition:background-color var(--t-mid) var(--ease)}
.cell::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;z-index:3;
  background:var(--accent);transition:width 320ms var(--ease);pointer-events:none}
@media (hover:hover){
  .cell:hover::before{width:56px}
}
.cell:focus-within::before{width:56px}

@media (prefers-reduced-motion:reduce){
  .card,.town,.pop-card,.blog-card,.callout,.region-chip{transition:none}
  .card:hover,.town:hover,.pop-card:hover,.blog-card:hover,.callout:hover,.region-chip:hover{transform:none}
  .cell::before{transition:none}
}

.tlink{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(201,168,76,.4);transition:border-color var(--t-fast)}
.tlink:hover{border-bottom-color:var(--accent)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);padding:var(--s10) 0 var(--s5);background:var(--bg)}
.foot-grid{display:grid;grid-template-columns:1fr;gap:var(--s6)}
.foot-brand p{margin-top:var(--s3);color:var(--muted);font-size:var(--fs-small)}
.foot-pay{display:flex;align-items:flex-start;gap:10px;margin-top:var(--s3);font-size:.8125rem;color:var(--muted)}
.foot-pay .ico{color:var(--accent);width:18px;height:18px;margin-top:2px}
.foot h2{font:600 .75rem/1.4 var(--font-body);letter-spacing:var(--track);text-transform:uppercase;color:var(--accent);padding-bottom:var(--s2);margin-bottom:var(--s2);border-bottom:1px solid var(--line);letter-spacing:.18em}
.foot li a,.foot address a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);text-decoration:none;font-size:var(--fs-small);transition:color var(--t-fast)}
.foot li a:hover,.foot address a:hover{color:var(--accent)}
.foot address{font-style:normal;color:var(--muted);font-size:var(--fs-small);line-height:1.7}
.foot address .row{display:flex;gap:12px;align-items:flex-start;padding:6px 0}
.foot address .ico{width:18px;height:18px;color:var(--accent);margin-top:6px;flex:none}
.foot-bottom{margin-top:var(--s8);padding-top:var(--s3);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);font-size:.8125rem;color:var(--muted)}
.foot-bottom a{color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.foot-bottom a:hover{color:var(--accent)}
.foot-bottom .legal{display:flex;gap:var(--s3)}
@media (min-width:640px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.foot-grid{grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:var(--s8)}}

/* ---------- motion ---------- */
.js .rv{opacity:0;transform:translateY(20px);transition:opacity 500ms var(--ease),transform 500ms var(--ease);transition-delay:calc(var(--i,0) * 50ms)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
}

/* --- long-string guards (email, wide buttons) --- */
a[href^="mailto:"]{overflow-wrap:anywhere;word-break:break-word}
@media (max-width:400px){
  .btn{white-space:normal;text-align:center;padding-left:18px;padding-right:18px}
}

/* ---------- map band: full-width Google Maps in a card, facts row beneath ---------- */
.map-card{border:1px solid var(--line-gold);border-radius:var(--card-radius);overflow:hidden;
  background:var(--surface);box-shadow:var(--e2)}
.map-wrap{position:relative;width:100%;aspect-ratio:4/3;background:var(--surface-2)}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media (min-width:768px){.map-wrap{aspect-ratio:16/9}}
@media (min-width:1024px){.map-wrap{aspect-ratio:21/9;max-height:520px}}
.map-facts{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr;gap:1px;
  background:var(--line);border-top:1px solid var(--line-gold)}
.map-facts li{display:grid;grid-template-columns:auto 1fr;column-gap:14px;row-gap:4px;align-content:start;
  padding:var(--s3) var(--s4);background:var(--surface);min-width:0}
.map-facts .ico{grid-row:1/3;width:20px;height:20px;color:var(--accent);margin-top:2px}
.map-k{font:600 var(--fs-label)/1.2 var(--font-body);letter-spacing:var(--track);text-transform:uppercase;color:var(--muted)}
.map-v{font-size:var(--fs-small);line-height:1.6;color:var(--text)}
.map-v a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-gold)}
.map-facts .map-cta{display:flex;align-items:center;justify-content:center}
.map-cta .btn{width:100%}
@media (min-width:640px){.map-facts{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.map-facts{grid-template-columns:1.5fr 1fr 1.3fr auto}.map-cta .btn{width:auto}}

/* ---------- readable copy: paragraphs read in the page's white, not a dimmed grey ---------- */
.lead,.sec-head .lead,.corp-body .lead,.cell p,.step p,.faq-a p,.vcard-note,.fleet p,.air-body p,.rates-foot p,
.blog-body .ex,.map-v,.quote-call p,.quote-note,.testi blockquote,.testi blockquote p,.stamp{color:var(--text)}
.lead{font-weight:400}

/* ---------- related pages: one row of contextual links before the map band ---------- */
.related{border-top:1px solid var(--line);background:var(--bg)}
.related-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px var(--s4);padding:var(--s4) var(--gutter)}
.related .eyebrow{margin-right:var(--s2)}
.related a{display:inline-flex;align-items:center;min-height:44px;font:500 var(--fs-small)/1.4 var(--font-body);
  color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-gold);
  transition:color var(--t-fast),border-color var(--t-fast)}
.related a:hover,.related a:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}

/* ---------- services dropdown (desktop) ---------- */
.nav-item{position:relative;display:inline-flex;align-items:center}
.nav-caret{display:inline-flex;align-items:center;justify-content:center;width:26px;height:44px;margin-left:-2px;padding:0;
  background:none;border:0;color:var(--accent);cursor:pointer}
.nav-caret .ico{width:14px;height:14px;transition:transform var(--t-fast)}
.has-menu.is-open .nav-caret .ico{transform:rotate(180deg)}
.dropdown{position:absolute;top:calc(100% + 18px);left:-14px;z-index:70;min-width:290px;margin:0;padding:8px 0;list-style:none;
  background:var(--surface);border:1px solid var(--line-gold);border-radius:var(--card-radius);box-shadow:var(--e3);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity var(--t-fast),transform var(--t-fast),visibility 0s var(--t-fast)}
.dropdown::before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}
.has-menu:hover .dropdown,.has-menu:focus-within .dropdown,.has-menu.is-open .dropdown{opacity:1;visibility:visible;transform:none;
  transition:opacity var(--t-fast),transform var(--t-fast),visibility 0s 0s}
/* Escape closes it even while focus stays inside; the flag clears once focus or the pointer leaves */
.has-menu.is-closed .dropdown{opacity:0;visibility:hidden;transform:translateY(6px)}
.nav-links .dropdown a{display:flex;align-items:center;min-height:44px;padding:0 18px;font:500 .875rem/1.3 var(--font-body);
  letter-spacing:0;text-transform:none;color:var(--text);white-space:nowrap}
.nav-links .dropdown a::after{display:none}
.nav-links .dropdown a:hover,.nav-links .dropdown a:focus-visible,.nav-links .dropdown a[aria-current="page"]{color:var(--accent);background:var(--surface-2)}
.dropdown-all{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.nav-links .dropdown-all a{color:var(--accent)}

/* ---------- services list inside the phone menu ---------- */
.menu .submenu{list-style:none;margin:0 0 10px;padding:0 0 0 18px;border-left:1px solid var(--line-gold)}
.menu .submenu li{border-bottom:0}
.menu .submenu li a{min-height:44px;padding:4px 0;font:500 1.0625rem/1.3 var(--font-body);color:var(--text);justify-content:flex-start}
.menu .submenu li a[aria-current="page"]{color:var(--accent)}

/* town links inside rate tables need a full-height tap target */
.rates td a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-gold)}
.rates td a:hover,.rates td a:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}

/* town links used as cell headings need a full-height tap target */
.cell h3 a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-gold)}
.cell h3 a:hover,.cell h3 a:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}

/* hub cards: the town-page button is longer than the old booking button, so the pair may wrap */
.town-cta{flex-wrap:wrap}
.town-cta .btn{max-width:100%;white-space:normal;text-align:center}
