/* ==========================================================================
   AB Limousine Services Inc.
   Palette: onyx / graphite / champagne gold / platinum / pearl
   Type:    Marcellus (display, inscriptional) + Jost (body, geometric)
   ========================================================================== */

:root{
  /* Onyx + Champagne + Platinum (2026-10-08) */
  --onyx:#121212;          /* primary background */
  --graphite:#191919;      /* secondary dark surface */
  --slate:#212121;         /* elevated surface */
  --line:#2D2D2D;          /* hairlines on dark */
  --gold:#BCA26B;          /* champagne: primary accent */
  --gold-deep:#8A7241;     /* decorative rules only, never small text */
  --gold-soft:#D3C196;     /* light champagne: hover / highlight */
  --gold-ink:#6B5428;      /* champagne for small text on light sections */
  --platinum:#D6D3CD;      /* secondary accent, metadata, borders */
  --text:#F6F2EA;          /* warm white: main text */
  --ash:#B7B2A8;           /* muted warm grey: secondary text */
  --hair:rgba(214,211,205,.13); /* platinum hairline for cards */
  --pearl:#F6F2EA;
  --pearl-2:#ECE7DD;

  --display:'Marcellus',Georgia,'Times New Roman',serif;
  --body:'Jost','Helvetica Neue',Arial,sans-serif;

  --wrap:1220px;
  --gut:clamp(20px,5vw,48px);
  --sec:clamp(64px,9vw,124px);
  --r:2px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
body{
  margin:0;background:var(--onyx);color:var(--platinum);
  font-family:var(--body);font-weight:300;font-size:17px;line-height:1.68;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}

h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.14;letter-spacing:.01em;margin:0}
h1{font-size:clamp(2.1rem,4.8vw,3.6rem);max-width:26ch}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem);max-width:26ch}
h3{font-size:clamp(1.3rem,2.2vw,1.75rem)}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.sec{padding-block:var(--sec)}
.sec--pearl{background:var(--pearl);color:#2B2925}
.sec--pearl h1,.sec--pearl h2,.sec--pearl h3{color:#111}
.sec--graphite{background:var(--graphite)}

.eyebrow{
  font-size:.68rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);
  font-weight:500;margin:0 0 1.1rem;display:flex;align-items:center;gap:.85rem;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--gold-deep);flex:none}
.eyebrow--center{justify-content:center}
.sec--pearl .eyebrow{color:var(--gold-deep)}

.lede{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ash);max-width:72ch}
.sec--pearl .lede{color:#4A463F}
.head{max-width:70ch;margin-bottom:clamp(34px,5vw,60px)}
.head--center{margin-inline:auto;text-align:center}
.head--center .eyebrow{justify-content:center}

.skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:#000;padding:.7rem 1.2rem;z-index:200}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ------------------------------------------------------------------ buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1.02rem 1.9rem;border-radius:var(--r);border:1px solid transparent;
  font-size:.76rem;letter-spacing:.19em;text-transform:uppercase;font-weight:500;
  cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
  min-height:52px;text-align:center;
}
.btn--gold{background:var(--gold);color:#121212;border-color:var(--gold)}
.btn--gold:hover{background:var(--gold-soft);border-color:var(--gold-soft)}
.btn--ghost{border-color:rgba(216,220,224,.32);color:var(--platinum)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold)}
.sec--pearl .btn--ghost{border-color:rgba(0,0,0,.24);color:#111}
.sec--pearl .btn--ghost:hover{border-color:var(--gold-deep);color:var(--gold-deep)}
.btn--sm{padding:.72rem 1.25rem;min-height:44px;font-size:.7rem}

.textlink{
  display:inline-flex;align-items:center;gap:.6rem;color:var(--gold);white-space:nowrap;
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;
}
.textlink::after{content:"";width:22px;height:1px;background:currentColor;transition:width .35s var(--ease)}
.textlink:hover::after{width:38px}

/* ------------------------------------------------------------------- header */
.hdr{
  position:fixed;inset:0 0 auto;z-index:100;
  background:rgba(18,18,18,0);border-bottom:1px solid transparent;
  transition:background .4s var(--ease),border-color .4s var(--ease),backdrop-filter .4s;
}
.hdr.is-solid{background:rgba(18,18,18,.94);border-bottom-color:var(--line);backdrop-filter:blur(10px)}
.hdr__in{display:flex;align-items:center;gap:1.5rem;min-height:78px}
.hdr__logo{flex:none;display:block}
.hdr__logo img{height:44px;width:auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:1.9rem}
.nav a{
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--platinum);
  padding:.4rem 0;position:relative;transition:color .3s var(--ease);
}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .35s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--gold)}
.nav a:hover::after,.nav a[aria-current="page"]::after{width:100%}
.hdr__cta{display:flex;align-items:center;gap:.9rem;flex:none}
.hdr__tel{font-size:.8rem;letter-spacing:.1em;color:var(--platinum);white-space:nowrap}
.hdr__tel:hover{color:var(--gold)}

.burger{
  display:none;width:46px;height:46px;background:none;border:1px solid var(--line);
  border-radius:var(--r);cursor:pointer;padding:0;position:relative;flex:none;margin-left:auto;
}
.burger span{position:absolute;left:13px;width:20px;height:1px;background:var(--platinum);transition:transform .3s var(--ease),opacity .2s}
.burger span:nth-child(1){top:17px}
.burger span:nth-child(2){top:23px}
.burger span:nth-child(3){top:29px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.drawer{
  position:fixed;inset:78px 0 0;background:var(--onyx);z-index:99;
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px);
  transition:opacity .32s var(--ease),transform .32s var(--ease),visibility .32s;
  overflow-y:auto;padding:2rem var(--gut) 3rem;display:none;
}
.drawer.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.drawer a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1.05rem;letter-spacing:.04em}
.drawer a:hover{color:var(--gold)}
.drawer__grp{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:2rem 0 .3rem}
.drawer .btn{width:100%;margin-top:1.8rem}

@media (max-width:1080px){
  .nav,.hdr__cta{display:none}
  .burger{display:block}
  .drawer{display:block}
}

/* --------------------------------------------------------------------- hero */
.hero{
  position:relative;min-height:min(84svh,760px);display:flex;align-items:flex-end;
  padding-top:clamp(108px,14vh,150px);padding-bottom:clamp(32px,5vw,64px);
  overflow:hidden;background:var(--onyx);
}
.hero__sweep{
  position:absolute;inset:-30% -10%;pointer-events:none;
  background:linear-gradient(104deg,transparent 34%,rgba(201,169,97,.10) 46%,rgba(216,220,224,.07) 51%,transparent 63%);
  animation:sweep 13s var(--ease) infinite;
}
@keyframes sweep{0%{transform:translateX(-42%)}55%{transform:translateX(42%)}100%{transform:translateX(-42%)}}
.hero__grid{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(42,44,48,.55) 1px,transparent 1px);
  background-size:100% 96px;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 40%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 40%,transparent);
}
.hero__in{position:relative;z-index:2;width:100%}
.hero__since{
  font-size:.68rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);
  display:flex;align-items:center;gap:1rem;margin-bottom:1.6rem;
}
.hero__since::before{content:"";width:44px;height:1px;background:var(--gold-deep)}
.hero h1{max-width:22ch;margin-bottom:1.2rem}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero__lede{
  font-size:clamp(.98rem,1.3vw,1.1rem);color:var(--platinum);max-width:50ch;
  margin:0 0 1.5rem;line-height:1.65;opacity:.88;text-wrap:pretty;
}
.hero__sub{
  font-size:clamp(.76rem,1.5vw,1rem);letter-spacing:.12em;text-transform:uppercase;
  color:var(--ash);max-width:58ch;margin-bottom:2.4rem;line-height:1.9;
  display:flex;flex-wrap:wrap;align-items:center;row-gap:.15rem;
}
.hero__sub span{white-space:nowrap}
.hero__sub i{font-style:normal;color:var(--gold-deep);padding:0 .55rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:clamp(40px,6vw,72px)}
.hero__scroll{
  position:absolute;right:var(--gut);bottom:clamp(40px,7vw,80px);z-index:2;
  writing-mode:vertical-rl;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ash);
  display:flex;align-items:center;gap:.9rem;
}
.hero__scroll::after{content:"";width:1px;height:54px;background:linear-gradient(var(--gold-deep),transparent)}
@media (max-width:900px){.hero__scroll{display:none}}

/* trust strip */
.trust{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}
.trust__i{padding:1.5rem 1.4rem 0 0;border-right:1px solid var(--line)}
.trust__i:last-child{border-right:0}
.trust__t{font-family:var(--display);font-size:1.02rem;color:var(--platinum);margin-bottom:.3rem}
.trust__d{font-size:.82rem;color:var(--ash);line-height:1.55}
@media (max-width:820px){
  .trust{grid-template-columns:1fr 1fr}
  .trust__i{padding-right:1rem;padding-bottom:1.1rem}
  .trust__i:nth-child(2){border-right:0}
  .trust__i:nth-child(1),.trust__i:nth-child(2){border-bottom:1px solid var(--line)}
}

/* -------------------------------------------------------------- fleet cards */
.grid{display:grid;gap:clamp(18px,2.4vw,30px)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--tight{max-width:830px}
@media (max-width:980px){.grid--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:660px){.grid--3,.grid--2{grid-template-columns:1fr}}

.vcard{
  background:var(--graphite);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:border-color .4s var(--ease),transform .4s var(--ease);
}
.vcard:hover{border-color:var(--gold-deep);transform:translateY(-4px)}
.vcard__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--onyx)}
.vcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.vcard:hover .vcard__media img{transform:scale(1.045)}
.vcard__meta{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.55rem;
}
.vcard__cap{color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap}
.vcard__body{padding:1.25rem 1.3rem 1.4rem;display:flex;flex-direction:column;flex:1}
.vcard__coll{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.6rem}
.vcard h3{margin-bottom:.6rem}
.vcard__txt{font-size:.86rem;color:var(--ash);line-height:1.55;margin-bottom:1.1rem;flex:1}
.vcard__foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;padding-top:.95rem;border-top:1px solid var(--line)}

/* collection band */
.coll{display:flex;align-items:baseline;flex-wrap:wrap;gap:.7rem 1.4rem;margin:clamp(48px,6vw,72px) 0 clamp(24px,3vw,34px);padding-bottom:1rem;border-bottom:1px solid var(--line)}
.coll:first-of-type{margin-top:0}
.coll__n{font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);flex:none;border:1px solid var(--gold-deep);padding:.34rem .6rem}
.coll h2{font-size:clamp(1.5rem,2.6vw,2rem);flex:none}
.coll__d{font-size:.95rem;color:var(--ash);max-width:62ch;margin:0 0 clamp(20px,2.6vw,30px)}
@media (max-width:800px){.coll__d{flex-basis:100%}}

/* ------------------------------------------------- process rail (signature) */
.rail{position:relative;padding-left:0}
.rail__list{list-style:none;margin:0;padding:0;position:relative}
.rail__list::before{
  content:"";position:absolute;left:15px;top:10px;bottom:10px;width:1px;
  background:linear-gradient(var(--gold-deep),var(--gold),var(--gold-deep));opacity:.55;
}
.rail__i{position:relative;padding:0 0 2.6rem 56px}
.rail__i:last-child{padding-bottom:0}
.rail__i::before{
  content:"";position:absolute;left:9px;top:8px;width:13px;height:13px;
  background:var(--onyx);border:1px solid var(--gold);transform:rotate(45deg);
}
.rail__i::after{
  content:"";position:absolute;left:13px;top:12px;width:5px;height:5px;background:var(--gold);
  transform:rotate(45deg);opacity:0;transition:opacity .5s var(--ease);
}
.rail__i.is-in::after{opacity:1}
.rail__step{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.45rem}
.rail__i h3{font-size:1.22rem;margin-bottom:.5rem}
.rail__i p{font-size:.94rem;color:var(--ash)}
.sec--pearl .rail__i::before{background:var(--pearl)}
.sec--pearl .rail__i p{color:#4A463F}

/* --------------------------------------------------------------- svc tiles */
.svc{
  display:block;padding:1.6rem 1.5rem;background:var(--graphite);border:1px solid var(--line);
  border-radius:var(--r);transition:border-color .35s var(--ease),background .35s var(--ease);
  position:relative;
}
.svc:hover{border-color:var(--gold-deep);background:#191A1D}
.svc h3{font-size:1.16rem;margin-bottom:.45rem}
.svc p{font-size:.88rem;color:var(--ash);line-height:1.55;margin:0}
.svc__arrow{position:absolute;top:1.6rem;right:1.5rem;color:var(--gold-deep);font-size:.9rem;transition:transform .35s var(--ease)}
.svc:hover .svc__arrow{transform:translateX(4px)}
.sec--pearl .svc{background:#fff;border-color:var(--pearl-2)}
.sec--pearl .svc:hover{border-color:var(--gold-deep);background:#fff}
.sec--pearl .svc p{color:#4A463F}

/* ----------------------------------------------------------------- quote */
.quote{background:var(--graphite);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,4vw,48px)}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem}
.f--full{grid-column:1/-1}
@media (max-width:700px){.form__grid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.42rem}
.field label{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ash);font-weight:500;min-height:1.9em;display:flex;align-items:flex-end;gap:.3em}
.field label .req{color:var(--gold)}
.field input,.field select,.field textarea{
  background:var(--onyx);border:1px solid var(--line);border-radius:var(--r);color:var(--platinum);
  padding:.92rem 1rem;font:inherit;font-size:.98rem;width:100%;min-height:50px;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.field textarea{min-height:112px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);background:#0E0F10}
.field input::placeholder,.field textarea::placeholder{color:#5A6066}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px;background-repeat:no-repeat}
.field .err{font-size:.76rem;color:#E0A0A0;min-height:1em;letter-spacing:.02em}
.field.is-bad input,.field.is-bad select,.field.is-bad textarea{border-color:#8E4B4B}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__note{font-size:.78rem;color:var(--ash);margin-top:1.2rem;line-height:1.6}
.form__msg{margin-top:1.2rem;padding:1rem 1.2rem;border:1px solid var(--gold-deep);background:rgba(201,169,97,.07);font-size:.9rem;display:none}
.form__msg.is-on{display:block}
.form__msg.is-bad{border-color:#8E4B4B;background:rgba(142,75,75,.09)}

/* --------------------------------------------------------------- gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px)}
@media (max-width:900px){.gal{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.gal{grid-template-columns:1fr}}
.gal figure{margin:0;position:relative;overflow:hidden;border:1px solid var(--line);background:var(--graphite)}
.gal img{aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .7s var(--ease)}
.gal figure:hover img{transform:scale(1.05)}
.gal figcaption{
  position:absolute;inset:auto 0 0;padding:.9rem 1rem;background:linear-gradient(transparent,rgba(18,18,18,.9));
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--platinum);
}
.filters{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:clamp(24px,3vw,36px)}
.filters button{
  background:none;border:1px solid var(--line);color:var(--ash);border-radius:var(--r);
  padding:.6rem 1.1rem;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;
  transition:all .3s var(--ease);min-height:42px;
}
.filters button:hover{color:var(--platinum);border-color:var(--ash)}
.filters button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#121212}

/* --------------------------------------------------------------- reviews */
.rev{border:1px solid var(--line);background:var(--graphite);padding:1.7rem 1.6rem;border-radius:var(--r);display:flex;flex-direction:column;gap:.9rem}
.stars{color:var(--gold);letter-spacing:.22em;font-size:.86rem}
.rev p{font-size:.96rem;color:var(--platinum);line-height:1.66;margin:0;flex:1}
.rev__who{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);padding-top:.9rem;border-top:1px solid var(--line)}
.sec--pearl .rev{background:#fff;border-color:var(--pearl-2)}
.sec--pearl .rev p{color:#2B2925}

/* ------------------------------------------------------------------- faq */
.faq__grp{font-family:var(--display);font-size:1.35rem;color:var(--gold);margin:2.6rem 0 .9rem}
.faq__grp:first-of-type{margin-top:0}
.acc{border-top:1px solid var(--line)}
.acc__q{
  width:100%;background:none;border:0;color:inherit;text-align:left;cursor:pointer;
  padding:1.25rem 3rem 1.25rem 0;position:relative;font-size:1.02rem;font-family:var(--body);font-weight:400;
  border-bottom:1px solid var(--line);
}
.acc__q::after{
  content:"";position:absolute;right:6px;top:50%;width:11px;height:11px;
  border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);
  transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease);
}
.acc__q[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
.acc__q:hover{color:var(--gold)}
.acc__a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease);border-bottom:1px solid var(--line)}
.acc__a > div{padding:1.1rem 2rem 1.6rem 0;color:var(--ash);font-size:.95rem}
.sec--pearl .acc,.sec--pearl .acc__q,.sec--pearl .acc__a{border-color:var(--pearl-2)}
.sec--pearl .acc__a > div{color:#4A463F}

/* ------------------------------------------------------------------ misc */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.figframe{position:relative;border:1px solid var(--line)}
.figframe img{width:100%;display:block}
.figframe--veh{aspect-ratio:2.2/1;max-height:min(52vh,520px);overflow:hidden}
.figframe--veh img{width:100%;height:100%;object-fit:cover}
/* the placeholder plates carry their own engraved frame; no second border needed */

.speclist{list-style:none;margin:0;padding:0;display:grid;gap:.72rem}
.speclist li{position:relative;padding-left:1.5rem;font-size:.94rem;color:var(--ash)}
.speclist li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}
.sec--pearl .speclist li{color:#4A463F}

.specs{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.specs div{background:var(--graphite);padding:1.1rem 1.2rem}
.specs dt{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ash);margin-bottom:.3rem}
.specs dd{margin:0;font-family:var(--display);font-size:1.2rem;color:var(--platinum)}
@media (max-width:440px){.specs--contact{grid-template-columns:1fr}}

.crumbs{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);padding-top:118px}
.crumbs a:hover{color:var(--gold)}
.crumbs span{padding:0 .5rem;color:var(--gold-deep)}

.pagehero{padding-block:clamp(28px,4vw,44px) 0}
.pagehero h1{margin:1rem 0 1.1rem}

.cta{background:var(--graphite);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}
.cta h2{margin-bottom:1.1rem}
.cta .lede{margin:0 auto 2rem}
.cta__btns{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}

.note{
  border-left:2px solid var(--gold-deep);background:rgba(201,169,97,.05);
  padding:1rem 1.3rem;font-size:.84rem;color:var(--ash);line-height:1.6;
}
.sec--pearl .note{background:rgba(140,109,47,.07);color:#4A463F}

.map{border:1px solid var(--line);filter:grayscale(1) contrast(1.05);width:100%;height:100%;min-height:340px;display:block}

/* ---------------------------------------------------------------- footer */
.ftr{background:#0E0E0E;border-top:1px solid var(--line);padding-block:clamp(48px,6vw,76px) 0}
.ftr__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(24px,3vw,44px)}
@media (max-width:900px){.ftr__top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ftr__top{grid-template-columns:1fr}}
.ftr img{height:52px;width:auto;margin-bottom:1.2rem}
.ftr h4,.ftr h2{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-family:var(--body);font-weight:500;margin-bottom:1.1rem}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.ftr a,.ftr address{font-size:.88rem;color:#A6ACB2;font-style:normal;line-height:1.7}
.ftr a:hover{color:var(--gold)}
.ftr__bot{
  margin-top:clamp(36px,5vw,60px);border-top:1px solid var(--line);padding-block:1.6rem;
  display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;align-items:center;font-size:.76rem;color:#5E6469;
}
.ftr__bot nav{display:flex;flex-wrap:wrap;gap:1.2rem;margin-left:auto}

/* -------------------------------------------------------- reveal on scroll */
.rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

/* ------------------------------------------------------- placeholder badge */
.phnote{
  display:inline-flex;align-items:center;gap:.6rem;
  color:var(--ash);font-size:.7rem;letter-spacing:.14em;
  padding:0;margin:0 0 1.6rem;
}
.phnote::before{content:"";width:5px;height:5px;background:var(--gold-deep);transform:rotate(45deg);flex:none}

/* ------------------------------------------------ mobile sticky action bar */
.actionbar{
  position:fixed;left:0;right:0;bottom:0;z-index:98;display:none;
  background:rgba(18,18,18,.96);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:.6rem var(--gut) calc(.6rem + env(safe-area-inset-bottom));
  gap:.6rem;
}
.actionbar .btn{flex:1;padding-inline:.8rem;font-size:.68rem;min-height:50px}
@media (max-width:1080px){
  .actionbar{display:flex}
  body{padding-bottom:74px}
  .drawer{inset:78px 0 0}
}
@media print{.actionbar,.hdr,.drawer{display:none!important}}

/* ---------------------------------------------------------- commitments */
.pledge{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pledge__i{background:var(--onyx);padding:1.8rem 1.5rem}
.pledge__n{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:.9rem;display:block}
.pledge__i h3{font-size:1.12rem;margin-bottom:.55rem}
.pledge__i p{font-size:.88rem;color:var(--ash);line-height:1.6;margin:0}
@media (max-width:900px){.pledge{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pledge{grid-template-columns:1fr}}

/* --------------------------------------------------------- refinements */
.ftr__bot{color:#7E858B}
.specs dd{font-variant-numeric:tabular-nums}
.hdr__tel{font-variant-numeric:tabular-nums}
.hero h1{text-wrap:balance}
.head h2,.head h1{text-wrap:balance}
.lede{text-wrap:pretty}
/* quote section: keep the contact panel visible beside the long form */
@media (min-width:901px){#quote .split>div:first-child{position:sticky;top:104px}}
/* testimonials rating badge */
.rating{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:1.7rem 0 2.1rem}
.rating__stars{color:var(--gold);font-size:1.2rem;letter-spacing:.16em;line-height:1}
.rating__score{font-family:var(--display);font-size:2.1rem;color:var(--platinum);line-height:1}
.rating__src{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ash)}
.vcard__cap{font-variant-numeric:tabular-nums}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{
  font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
  padding:0 0 .9rem;margin:0;
}
.form__sec + .form__sec{margin-top:1.8rem;padding-top:1.8rem;border-top:1px solid var(--line)}
.trust__t{font-variant-numeric:tabular-nums}

/* ------------------------------------------------------- photographic hero */
.hero--photo{background:var(--onyx)}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hero__scrim{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(18,18,18,.88) 0%,rgba(18,18,18,.28) 34%,rgba(18,18,18,.72) 72%,var(--onyx) 100%),
    linear-gradient(90deg,rgba(18,18,18,.9) 0%,rgba(18,18,18,.45) 46%,rgba(18,18,18,.12) 100%);
}
.hero--photo .hero__sweep{z-index:1;opacity:.55}
.hero--photo .hero__in{z-index:2}
.hero--photo .trust__i{border-color:rgba(216,220,224,.18)}
.hero--photo .trust{border-top-color:rgba(216,220,224,.22)}

/* ------------------------------------------------------------- photographs */
.shot{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--graphite)}
.shot img{width:100%;height:auto;display:block}
.shot--hero{aspect-ratio:2.2/1;max-height:min(52vh,520px)}
.shot--hero img{height:100%;object-fit:cover}
.shot--band{border-left:0;border-right:0;aspect-ratio:32/9}
.shot--band img{height:100%;object-fit:cover;object-position:center 46%}
.shot--band img[src*="f550-party-bus-niagara"]{object-position:center 72%}
.sec--flush{padding-block:0;margin-block:clamp(48px,7vw,96px)}
@media (max-width:700px){
  .shot--band{aspect-ratio:16/9}
}

/* ============================ homepage ==================================== */
.sec--tight{padding-block:clamp(48px,6vw,84px)}

.hero__sub{
  font-size:clamp(.72rem,1.3vw,.88rem);letter-spacing:.2em;text-transform:uppercase;
  color:var(--platinum);opacity:.72;margin:0 0 2.2rem;display:block;line-height:2.1;max-width:64ch;
}

/* 38 years band */
.yrs{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.yrs__fig{
  display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;
  border:1px solid var(--gold-deep);padding:1.6rem 2rem;min-width:210px;
}
.yrs__fig span{font-family:var(--display);font-size:clamp(3.4rem,6vw,5rem);line-height:1;color:var(--gold)}
.yrs__fig em{
  font-style:normal;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--platinum);margin-top:.7rem;text-align:center;
}
.yrs__txt p{color:var(--ash);max-width:66ch}
.yrs__txt .textlink{margin-top:.6rem}
@media (max-width:760px){.yrs{grid-template-columns:1fr}.yrs__fig{min-width:0}}

/* service cards */
.scards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,22px)}
@media (max-width:1080px){.scards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.scards{grid-template-columns:1fr}}
.scard{
  display:flex;flex-direction:column;background:var(--graphite);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;transition:border-color .35s var(--ease),transform .35s var(--ease);
}
.scard:hover{border-color:var(--gold-deep);transform:translateY(-3px)}
.scard__media{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--onyx)}
.scard__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.scard:hover .scard__media img{transform:scale(1.05)}
.scard__body{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem 1.3rem 1.4rem;flex:1}
.scard__h{font-family:var(--display);font-size:1.16rem;color:var(--platinum)}
.scard__p{font-size:.86rem;color:var(--ash);line-height:1.55;flex:1}
.scard__more{
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
  display:inline-flex;align-items:center;gap:.5rem;margin-top:.4rem;
}
.scard__more::after{content:"";width:18px;height:1px;background:currentColor;transition:width .35s var(--ease)}
.scard:hover .scard__more::after{width:30px}

/* wedding feature */
.feature{display:grid;grid-template-columns:1.08fr .92fr;background:var(--onyx);border-block:1px solid var(--line)}
.feature__media{position:relative;min-height:460px;overflow:hidden}
.feature__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature__media img[src*="party-bus-bride-groom"]{object-position:82% 50%}
.feature__panel{display:flex;align-items:center;background:var(--graphite);padding:clamp(34px,5vw,80px)}
.feature__in{max-width:56ch}
.feature__in h2{margin-bottom:1.1rem}
.feature__in p{color:var(--ash)}
.feature__cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
@media (max-width:900px){
  .feature{grid-template-columns:1fr}
  .feature__media{min-height:300px;aspect-ratio:16/10;max-width:100%}
}

/* airport / corporate duo */
.duo{background:var(--graphite);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
     display:flex;flex-direction:column;transition:border-color .35s var(--ease)}
.duo:hover{border-color:var(--gold-deep)}
.duo__media{aspect-ratio:16/9;overflow:hidden;background:var(--onyx)}
.duo__media img{width:100%;height:100%;object-fit:cover}
.duo__body{padding:1.6rem 1.6rem 1.8rem;display:flex;flex-direction:column;gap:.7rem}
.duo__body p:not(.eyebrow){font-size:.92rem;color:var(--ash);margin:0}

.pledge--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.pledge--3{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pledge--3{grid-template-columns:1fr}}

.gal--strip{grid-template-columns:repeat(6,1fr)}
.gal--strip img{aspect-ratio:4/3}
.gal--strip figure:nth-child(1) img{object-position:28% 50%}
.gal--strip figure:nth-child(3) img{object-position:30% 50%}
.gal--strip figure:nth-child(5) img{object-position:40% 50%}
.gal--strip figcaption{font-size:.62rem;letter-spacing:.1em;padding:.6rem .7rem}
@media (max-width:1080px){.gal--strip{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.gal--strip{grid-template-columns:repeat(2,1fr)}}

.cta .lede{max-width:62ch}

/* headings must not run to the container edge on wide screens */
.head h2, .head h1 { max-width:28ch }
.head--center h2, .head--center h1 { margin-inline:auto }
.cta h2 { max-width:26ch; margin-inline:auto }
.feature__in h2 { max-width:20ch }
@media (min-width:1600px){ :root{ --wrap:1280px } }

/* ---- section intro: heading, then a short lead, then the cards -------- */
.intro{max-width:74ch;margin:0 0 clamp(30px,4vw,48px)}
.intro p{color:var(--ash);font-size:1.02rem;line-height:1.72;margin:0 0 .9rem}
.intro p:last-child{margin-bottom:0}
.head--wide{max-width:none}

.hero__tag{
  font-family:var(--display);font-size:clamp(1.05rem,1.9vw,1.42rem);color:var(--gold);
  margin:0 0 1.1rem;letter-spacing:.01em;max-width:38ch;
}

/* ==========================================================================
   Centred hero — adopted from the comparison build.
   The editorial left-aligned hero left a large empty field on the right at
   desktop widths. Centring the block on both axes balances it, and the
   strapline breaks evenly instead of hugging one side.
   ========================================================================== */
.hero--center{
  align-items:center;
  text-align:center;
  min-height:min(88svh,820px);
  padding-top:clamp(120px,16vh,180px);
  padding-bottom:clamp(28px,4vw,56px);
}
/* A plain centred block. No flex on the inner wrapper: flex column with
   align-items:center shrinks children to content width, which Safari then
   offsets. margin-inline:auto on constrained children is predictable. */
.hero--center .hero__in{display:block;width:100%}
.hero--center .hero__since{justify-content:center;margin:0 auto 1.4rem}
.hero--center .hero__since::after{content:"";width:44px;height:1px;background:var(--gold-deep)}
.hero--center h1{max-width:22ch;margin:0 auto 1.1rem}
.hero--center .hero__tag{max-width:44ch;margin:0 auto 1.3rem}
.hero--center .hero__lede{max-width:62ch;margin:0 auto 1.6rem}
.hero--center .hero__sub{
  max-width:56ch;margin:0 auto 2.6rem;text-align:center;display:block;
}
.hero--center .hero__cta{justify-content:center;margin:0 auto clamp(44px,6vw,76px);max-width:640px}
.hero--center .trust{width:100%;text-align:left;clear:both}
.hero--center.hero--photo .hero__media img{object-position:center 52%}
.hero--center.hero--photo .hero__scrim{
  background:
    linear-gradient(180deg,rgba(18,18,18,.92) 0%,rgba(18,18,18,.80) 34%,rgba(18,18,18,.46) 58%,
                    rgba(18,18,18,.28) 74%,rgba(18,18,18,.58) 92%,var(--onyx) 100%);
}
/* Vehicles sit low in the frame so the headline reads over open sky. */
.hero--center.hero--photo .hero__media img{object-position:center 88%}
@media (max-width:900px){
  /* On a phone the full lineup becomes too small to read; crop tighter. */
  .hero--center.hero--photo .hero__media img{object-position:72% 82%}
}
@media (max-width:900px){
  .hero--center{min-height:auto;padding-top:clamp(104px,13vh,140px)}
  .hero--center h1{max-width:20ch}
  .hero--center .hero__sub{max-width:40ch;margin-bottom:2.1rem}
  .hero--center .trust{text-align:center}
}
/* Full-width stacked calls to action on small phones — larger tap targets
   than a wrapped two-up row. */
@media (max-width:560px){
  .hero--center .hero__cta{width:100%;flex-direction:column;align-items:stretch}
  .hero--center .hero__cta .btn{width:100%}
  .hero--center .hero__since{font-size:.6rem;letter-spacing:.26em;gap:.7rem}
  .hero--center .hero__since::before,
  .hero--center .hero__since::after{width:22px}
}

/* ==========================================================================
   Image viewer
   Tap any fleet, gallery or service photograph to open it full screen at full
   resolution. Pinch to zoom, drag to pan, double-tap to toggle. Closes on
   Escape, on the close button, or by tapping the backdrop.
   ========================================================================== */
.zoomable{cursor:zoom-in}
.zoomable img{cursor:zoom-in}

.viewer{
  position:fixed;inset:0;z-index:200;display:none;
  background:#0C0C0C;
  align-items:center;justify-content:center;
  opacity:0;transition:opacity .28s var(--ease);
  overscroll-behavior:contain;
}
.viewer.is-open{display:flex;opacity:1}
.viewer__stage{
  position:absolute;inset:0;overflow:auto;background:#0C0C0C;
  display:flex;align-items:center;justify-content:center;
  -webkit-overflow-scrolling:touch;touch-action:pinch-zoom pan-x pan-y;
  padding:clamp(48px,8vh,88px) clamp(12px,3vw,40px);
}
.viewer__img{
  max-width:100%;max-height:100%;object-fit:contain;
  transition:transform .28s var(--ease);transform-origin:center center;
  user-select:none;-webkit-user-drag:none;
}
.viewer__img.is-zoomed{max-width:none;max-height:none;transform:scale(2.4);cursor:grab}
.viewer__bar{
  position:absolute;top:0;left:0;right:0;z-index:2;
  display:flex;align-items:center;gap:1rem;
  padding:clamp(10px,2vw,18px) clamp(12px,3vw,26px);
  background:linear-gradient(rgba(6,6,7,.92),transparent);
}
.viewer__cap{
  font-size:.78rem;letter-spacing:.1em;color:var(--platinum);
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.viewer__count{font-size:.68rem;letter-spacing:.2em;color:var(--ash);flex:none;font-variant-numeric:tabular-nums}
.viewer__btn{
  background:rgba(20,21,23,.9);border:1px solid var(--line);color:var(--platinum);
  width:48px;height:48px;border-radius:2px;cursor:pointer;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;
  transition:border-color .25s var(--ease),color .25s var(--ease);
}
.viewer__btn:hover{border-color:var(--gold);color:var(--gold)}
.viewer__nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:52px;height:52px;
}
.viewer__nav--prev{left:clamp(8px,2vw,24px)}
.viewer__nav--next{right:clamp(8px,2vw,24px)}
.viewer__hint{
  position:absolute;bottom:clamp(14px,3vh,26px);left:0;right:0;z-index:2;text-align:center;
  font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:#6E7378;pointer-events:none;
}
@media (max-width:560px){
  .viewer__nav{width:46px;height:46px}
  .viewer__cap{font-size:.7rem}
}
@media (prefers-reduced-motion:reduce){
  .viewer,.viewer__img{transition:none}
}
body.viewer-open{overflow:hidden}

/* Screen-reader status line for the gallery filter */
.sr-live{font-size:.76rem;letter-spacing:.06em;color:var(--ash);margin:0 0 clamp(16px,2vw,22px);min-height:1.2em}

/* Legibility floor (final polish): no text below 12px, buttons and text links at 13px */
.eyebrow,.hero__since,.vcard__meta,.vcard__coll,.rail__step,.specs dt,.pledge__n,.field label,.ftr h4,.ftr h2,.drawer__grp,.coll__n,.gal--strip figcaption,.viewer__count,.viewer__cap{font-size:.75rem}
.btn,.btn--sm,.textlink,.actionbar .btn,.rating__src,.rev__who,.crumbs{font-size:.8125rem}
@media (max-width:640px){
  .hero--center .hero__since{font-size:.75rem;letter-spacing:.14em;gap:.6rem;flex-wrap:wrap;justify-content:center;text-align:center;line-height:1.5}
  .hero--center .hero__since::before{display:none}
  .btn,.textlink{letter-spacing:.14em}
}
@media (max-width:640px){
  .hero .trust__d{color:#D3D5D8;text-shadow:0 1px 6px rgba(0,0,0,.65)}
  .hero .trust__t{text-shadow:0 1px 6px rgba(0,0,0,.65)}
}
@media (max-width:640px){.hero__sep{display:none}.hero--center .hero__since::before,.hero--center .hero__since::after{display:none}.hero--center .hero__since{flex-direction:column;gap:.25rem}}
.nav a,.gal figcaption,.scard__more,legend,.yrs__fig em{font-size:.75rem}

.intpair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,2vw,24px)}
.intpair .shot img{aspect-ratio:1/.96;object-fit:cover}
@media (max-width:640px){.intpair{grid-template-columns:1fr}}

/* ---------------------------------------------------------- guides (blog) */
.prose h2{font-size:clamp(1.3rem,2.4vw,1.7rem);margin:2.4rem 0 .8rem}
.prose p{margin:0 0 1.1rem;line-height:1.75}
.prose ul{margin:0 0 1.4rem;padding-left:1.25rem;list-style:disc}
.prose li{margin:.45rem 0;line-height:1.65}
.prose a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}

/* ==========================================================================
   Homepage hero, desktop (2026-10-05): keep the headline, buttons and trust row
   clear of the vehicles. The photo shows its full 16:9 frame, ends just above
   the trust row, and fades into the dark background at the top and bottom.
   A spacer under the buttons leaves the lineup visible.
   ========================================================================== */
@media (min-width:901px){
  .hero--center.hero--photo{--tb:150px;display:block;min-height:0;padding-top:clamp(112px,9vw,150px);padding-bottom:28px}
  .hero--center.hero--photo .hero__cta{margin-bottom:0}
  .hero--center.hero--photo .trust{margin-top:calc(22.5vw + 24px)}
  .hero--center.hero--photo .hero__media{top:auto;bottom:calc(var(--tb) - 6.75vw);height:56.25vw;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 30%,#000 86%,transparent 100%);
    mask-image:linear-gradient(to bottom,transparent 0,#000 30%,#000 86%,transparent 100%)}
  .hero--center.hero--photo .hero__media img{object-position:center bottom}
  .hero--center.hero--photo .hero__scrim{
    background:linear-gradient(180deg,rgba(18,18,18,.6) 0%,rgba(18,18,18,.35) 40%,rgba(18,18,18,.08) 62%,rgba(18,18,18,0) 100%);
  }
}
@media (min-width:901px) and (max-width:1180px){
  .hero--center.hero--photo{--tb:180px}
}

/* Readability (2026-10-05): slightly heavier body text and a brighter grey for
   secondary text on dark backgrounds. Dark-styled map on the contact page. */
:root{--ash:#B7B2A8}
body{font-weight:400}
.map{filter:grayscale(1) invert(.9) hue-rotate(180deg) contrast(.92) brightness(.95)}

/* Homepage hero, desktop — layout-shift fix (2026-10-05). The hero height is
   set from the viewport width instead of from its text, and the trust row sits
   at the bottom of the hero, so the photo and trust row stay put while the web
   fonts load. Visual result is unchanged once fonts have loaded. */
@media (min-width:901px){
  .hero--center.hero--photo{height:calc(clamp(112px,9vw,150px) + 22.5vw + 482px)}
  .hero--center.hero--photo .hero__in{height:100%}
  .hero--center.hero--photo .trust{position:absolute;left:var(--gut);right:var(--gut);bottom:0;margin-top:0;width:auto}
}
@media (min-width:901px) and (max-width:1180px){
  .hero--center.hero--photo{height:calc(clamp(112px,9vw,150px) + 22.5vw + 502px)}
}

/* ==========================================================================
   Visual system: ONYX + CHAMPAGNE + PLATINUM (2026-10-08)
   Colour, type weight and spacing refinements only. No layout, content or
   hero geometry changes (the hero height maths above stays as it is).
   ========================================================================== */

/* base text: warm white for reading, platinum / warm grey for secondary */
body{color:var(--text)}
::selection{background:rgba(188,162,107,.32);color:var(--text)}
h1,h2{color:var(--text)}
h1{line-height:1.1;letter-spacing:.012em}
h2{line-height:1.16;letter-spacing:.008em}
/* H3: Jost medium, the modern counterweight to Marcellus */
h3{font-family:var(--body);font-weight:500;letter-spacing:.005em;line-height:1.3;color:var(--text);
   font-size:clamp(1.12rem,1.6vw,1.3rem)}
/* vehicle names stay in Marcellus */
.vcard h3{font-family:var(--display);font-weight:400;font-size:clamp(1.28rem,2vw,1.5rem);letter-spacing:.01em;line-height:1.18}
.sec--pearl h3{color:#111}

/* tonal rhythm between sections, slightly more breathing room */
:root{--sec:clamp(72px,9.5vw,132px)}
.sec--graphite{background:var(--graphite)}
.cta{background:var(--slate);border-color:var(--hair)}

/* small labels: restrained uppercase, champagne only where it carries meaning */
.eyebrow{letter-spacing:.28em}
.eyebrow::before{background:var(--gold)}
.sec--pearl .eyebrow{color:var(--gold-ink)}
.sec--pearl .eyebrow::before{background:var(--gold-ink)}
.lede,.intro p,.feature__in p,.yrs__txt p{color:var(--ash)}

/* navigation */
.hdr.is-solid{background:rgba(18,18,18,.95);border-bottom-color:var(--hair)}
.nav a{color:var(--text);font-weight:500;letter-spacing:.14em}
.nav a:hover,.nav a[aria-current="page"]{color:var(--gold-soft)}
.nav a::after{background:var(--gold)}
.hdr__tel{color:var(--platinum);font-weight:500}
.hdr__tel:hover{color:var(--gold-soft)}
.burger{border-color:var(--hair)}
.burger span{background:var(--text)}
.drawer{background:var(--onyx)}
.drawer a{color:var(--text);border-bottom-color:var(--hair)}
.drawer a:hover{color:var(--gold-soft)}

/* buttons: automotive controls, not SaaS pills */
.btn{font-weight:500;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.btn--gold{background:var(--gold);border-color:var(--gold);color:var(--onyx)}
.btn--gold:hover{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--onyx)}
.btn--ghost{background:transparent;border-color:rgba(188,162,107,.55);color:var(--text)}
.btn--ghost:hover{border-color:var(--gold-soft);color:var(--gold-soft);background:rgba(188,162,107,.06)}
.sec--pearl .btn--ghost{border-color:rgba(107,84,40,.55);color:#111}
.sec--pearl .btn--ghost:hover{border-color:var(--gold-ink);color:var(--gold-ink);background:transparent}
.textlink,.scard__more{color:var(--gold)}
.textlink:hover,.scard:hover .scard__more{color:var(--gold-soft)}
:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}

/* hero: keep the photo dominant; remove the animated champagne sweep */
.hero__sweep{display:none;animation:none}
.hero h1{color:var(--text)}
.hero__since::before,.hero--center .hero__since::after{background:var(--gold)}
.hero__lede{color:var(--text);opacity:.9}
.hero__sub{color:var(--platinum);opacity:.85}
.trust__t{color:var(--text)}
.trust__d{color:var(--platinum)}

/* cards: elevated onyx, platinum hairline, minimal shadow */
.vcard,.scard,.svc,.duo,.rev,.quote{background:var(--graphite);border-color:var(--hair);box-shadow:0 1px 0 rgba(0,0,0,.35)}
.sec--graphite .vcard,.sec--graphite .scard,.sec--graphite .svc,.sec--graphite .duo,
.sec--graphite .rev,.sec--graphite .quote,.feature__panel{background:var(--slate)}
.vcard:hover,.scard:hover,.svc:hover,.duo:hover{border-color:rgba(188,162,107,.5);box-shadow:0 10px 28px -18px rgba(0,0,0,.9)}
.vcard:hover{transform:translateY(-3px)}
.svc:hover{background:var(--slate)}
.scard__body{padding:1.35rem 1.4rem 1.5rem}
.vcard__meta,.vcard__coll{color:var(--platinum)}
.vcard__cap{color:var(--gold)}
.vcard__txt,.scard__p,.svc p,.duo__body p:not(.eyebrow),.pledge__i p,.rail__i p{color:var(--ash)}
.vcard__foot{border-top-color:var(--hair)}
.scard__h{color:var(--text)}
.svc__arrow{color:var(--gold)}
.sec--pearl .svc,.sec--pearl .rev{background:#fff;border-color:var(--pearl-2);box-shadow:none}
.sec--pearl .svc:hover{border-color:var(--gold-ink)}
.sec--pearl .svc__arrow{color:var(--gold-ink)}

/* collection bands, rails, pledges, specs */
.coll{border-bottom-color:var(--hair)}
.coll__n{color:var(--gold);border-color:rgba(188,162,107,.45)}
.rail__step,.pledge__n{color:var(--gold)}
.sec--pearl .rail__step,.sec--pearl .pledge__n{color:var(--gold-ink)}
.pledge{background:var(--hair);border-color:var(--hair)}
.specs{background:var(--hair);border-color:var(--hair)}
.specs div{background:var(--graphite)}
.specs dt{color:var(--platinum)}
.specs dd{color:var(--text)}
.speclist li{color:var(--ash)}
.yrs__fig{border-color:rgba(188,162,107,.45)}
.crumbs{color:var(--platinum)}
.crumbs span{color:var(--gold)}
.note{border-left-color:var(--gold);background:rgba(188,162,107,.05)}

/* photographs: thin platinum frame */
.shot,.figframe,.gal figure{border-color:var(--hair)}

/* forms */
.field input,.field select,.field textarea{background:var(--onyx);border-color:#2D2D2D;color:var(--text)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);background:#0F0F0F}
.field label{color:var(--platinum)}
.field input::placeholder,.field textarea::placeholder{color:#77756F}
.form__sec + .form__sec{border-top-color:var(--hair)}
legend{color:var(--gold)}

/* gallery filters and reviews */
.filters button{border-color:#2D2D2D;color:var(--platinum)}
.filters button:hover{color:var(--text);border-color:var(--platinum)}
.filters button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--onyx)}
.rev p{color:var(--text)}
.rev__who{color:var(--platinum);border-top-color:var(--hair)}
.rating__score{color:var(--text)}
.faq__grp{color:var(--gold)}
.acc,.acc__q,.acc__a{border-color:var(--hair)}
.acc__q:hover{color:var(--gold-soft)}

/* footer: onyx, lighter base strip, platinum detail, champagne phone */
.ftr{background:var(--onyx);border-top-color:var(--hair)}
.ftr a,.ftr address{color:var(--platinum)}
.ftr a:hover{color:var(--gold-soft)}
.ftr address a[href^="tel:"]{color:var(--gold)}
.ftr__bot{border-top-color:var(--hair);color:#8F8C86}

/* mobile action bar */
.actionbar{background:rgba(18,18,18,.96);border-top-color:var(--hair)}

/* ==========================================================================
   Light canvas (2026-10-08, second pass): warm-white page, onyx kept for the
   header, hero, closing call to action, feature band and footer.
   Light values are set on :root; the dark blocks re-declare the dark values.
   --onyx is never redefined, so gold buttons keep dark text everywhere.
   ========================================================================== */
:root{
  --text:#25221E;          /* main text on light */
  --ash:#4F4A42;           /* secondary text on light (6.4:1) */
  --platinum:#575249;      /* metadata text on light (5.5:1) */
  --graphite:#FFFFFF;      /* surfaces / alternating sections */
  --slate:#FFFFFF;
  --line:#E3DFD6;
  --hair:rgba(28,27,25,.12);
  --gold:#6B5428;          /* champagne ink: small text and rules on light */
  --gold-soft:#53401D;     /* hover on light */
  --btn-line:rgba(107,84,40,.6);
  --page:#F6F2EA;          /* warm white */
  --paper:#FFFFFF;         /* white */
}
.hdr,.drawer,.hero,.cta,.feature,.ftr,.actionbar,.viewer,.sec--onyx{
  --text:#F6F2EA;--ash:#B7B2A8;--platinum:#D6D3CD;
  --graphite:#191919;--slate:#212121;--line:#2D2D2D;--hair:rgba(214,211,205,.13);
  --gold:#BCA26B;--gold-soft:#D3C196;--btn-line:rgba(188,162,107,.55);
  color:var(--text);
}
body{background:var(--page);color:var(--text)}
::selection{background:rgba(188,162,107,.35);color:#25221E}

/* sections: warm white page, white alternates, onyx only where intended */
.sec--graphite,.sec--pearl{background:var(--paper)}
.sec--pearl{color:var(--text)}
.sec--onyx,.cta,.feature{background:var(--onyx)}
.feature__panel{background:#191919}
.cta{border-color:transparent}

/* header is always a solid onyx bar so it reads on light pages */
.hdr,.hdr.is-solid{background:rgba(18,18,18,.97);border-bottom-color:rgba(214,211,205,.13);backdrop-filter:blur(10px)}

/* champagne buttons keep true champagne on every background */
.btn--gold{background:#BCA26B;border-color:#BCA26B;color:#121212}
.btn--gold:hover{background:#D3C196;border-color:#D3C196;color:#121212}
.btn--ghost{border-color:var(--btn-line);color:var(--text)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold-soft);background:transparent}
.filters button[aria-pressed="true"]{background:#BCA26B;border-color:#BCA26B;color:#121212}
.skip{background:#BCA26B}
:focus-visible{outline-color:#8A7241}

/* cards and panels on light: white, fine warm-grey hairline */
.vcard,.scard,.svc,.duo,.rev,.quote{background:var(--paper);border-color:var(--line);box-shadow:0 1px 2px rgba(28,27,25,.04)}
.sec--graphite .vcard,.sec--graphite .scard,.sec--graphite .svc,.sec--graphite .duo,
.sec--graphite .rev,.sec--graphite .quote,.sec--pearl .svc,.sec--pearl .rev{background:var(--page);border-color:var(--line)}
.vcard:hover,.scard:hover,.svc:hover,.duo:hover{border-color:rgba(107,84,40,.45);box-shadow:0 14px 30px -22px rgba(28,27,25,.45)}
.svc:hover{background:var(--paper)}
.vcard__media,.scard__media,.duo__media{background:#E9E6DF}
.pledge,.specs{background:var(--line);border-color:var(--line)}
.pledge__i,.specs div{background:var(--paper)}
.sec--graphite .pledge__i,.sec--graphite .specs div{background:var(--page)}

/* forms on light */
.field input,.field select,.field textarea{background:#FFFFFF;border-color:#D9D4CA;color:var(--text)}
.field input:focus,.field select:focus,.field textarea:focus{background:#FFFFFF;border-color:#8A7241}
.field input::placeholder,.field textarea::placeholder{color:#8A857C}
.field select{background-image:linear-gradient(45deg,transparent 50%,#6B5428 50%),linear-gradient(135deg,#6B5428 50%,transparent 50%)}
.field .err{color:#9B3B3B}
.form__msg{background:rgba(188,162,107,.10)}

/* photographs: thin frame, captions stay light on their dark scrim */
.shot,.figframe,.gal figure{border-color:var(--line);background:#E9E6DF}
.gal figcaption{color:#F6F2EA}
.map{filter:grayscale(1) contrast(1.02)}
.note{background:rgba(188,162,107,.10)}
.sec--pearl .lede,.sec--pearl .rail__i p,.sec--pearl .speclist li,.sec--pearl .acc__a > div,.sec--pearl .svc p{color:var(--ash)}
.sec--pearl h1,.sec--pearl h2,.sec--pearl h3{color:var(--text)}
.rail__i::before{background:var(--page)}
.sec--graphite .rail__i::before,.sec--pearl .rail__i::before{background:var(--paper)}

/* ==========================================================================
   LUXURY EDITORIAL + PREMIUM AUTOMOTIVE (2026-10-08, third pass)
   Rhythm: onyx and warm ivory alternate; stone and white support.
   Colour only flows through variables; dark blocks re-declare them.
   ========================================================================== */
:root{
  --ivory:#F6F2EA; --stone:#ECE6DA; --paper:#FFFFFF; --page:#F6F2EA;
  --text:#25221E; --ash:#4F4A42; --platinum:#4F4A42;
  --graphite:#FFFFFF; --slate:#FFFFFF;
  --line:#DDD6CA; --hair:rgba(28,27,25,.14);
  --gold:#6B5428; --gold-soft:#53401D; --btn-line:rgba(28,27,25,.38);
  /* primary button: onyx on light */
  --btn-bg:#121212; --btn-fg:#F6F2EA; --btn-bg-h:#1F1E1B; --btn-bd-h:#BCA26B;
  --sec:clamp(84px,10.5vw,152px);
}
.hdr,.drawer,.hero,.cta,.feature,.ftr,.actionbar,.viewer,.sec--onyx,.pagehero,.crumbs{
  --text:#F6F2EA;--ash:#B3AFA6;--platinum:#D6D3CD;
  --graphite:#191919;--slate:#212121;--line:#2B2A28;--hair:rgba(214,211,205,.14);
  --gold:#BCA26B;--gold-soft:#D3C196;--btn-line:rgba(188,162,107,.6);
  /* primary button: champagne on dark */
  --btn-bg:#BCA26B;--btn-fg:#121212;--btn-bg-h:#D3C196;--btn-bd-h:#D3C196;
  color:var(--text);
}

/* ---- rhythm ---------------------------------------------------------- */
body{background:var(--ivory);line-height:1.72}
.sec{background:var(--ivory)}
.sec--graphite,.sec--stone{background:var(--stone)}
.sec--pearl{background:var(--paper)}
.sec--onyx,.feature,.feature__panel,.pagehero{background:#121212}
.cta{background:#191919;border:0}
.crumbs{background:#121212;box-shadow:0 0 0 100vmax #121212;clip-path:inset(0 -100vmax)}
.ftr{background:#121212;border-top:1px solid rgba(188,162,107,.28)}

/* ---- typography: more air, clearer hierarchy ------------------------- */
p{margin:0 0 1.15em}
h2{font-size:clamp(1.85rem,3.4vw,2.75rem);line-height:1.12;letter-spacing:.012em}
.head{margin-bottom:clamp(40px,5.5vw,72px)}
.head h2,.head h1{margin-top:.15rem}
.head h2 + .lede,.head h1 + .lede{margin-top:1.1rem}
.eyebrow{letter-spacing:.3em;margin-bottom:1.3rem}
.eyebrow::before{width:32px;background:var(--gold)}
.lede{line-height:1.7}

/* ---- navigation ------------------------------------------------------ */
.hdr,.hdr.is-solid{background:#121212;border-bottom:1px solid rgba(188,162,107,.22);backdrop-filter:none}
.nav a{color:#F6F2EA}
.nav a:hover,.nav a[aria-current="page"]{color:#D3C196}
.hdr__tel{color:#F6F2EA;font-weight:500;letter-spacing:.08em;padding-left:1.1rem;border-left:1px solid rgba(214,211,205,.22)}
.hdr__tel:hover{color:#D3C196}

/* ---- buttons: refined controls ---------------------------------------- */
.btn{border-radius:2px;letter-spacing:.18em;font-weight:500}
.btn--gold{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-fg)}
.btn--gold:hover{background:var(--btn-bg-h);border-color:var(--btn-bd-h);color:var(--btn-fg)}
.btn--ghost{background:transparent;border-color:var(--btn-line);color:var(--text)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold-soft);background:transparent}
.textlink::after{content:"\2192";width:auto;height:auto;background:none;font-size:1.05em;letter-spacing:0;transition:transform .35s var(--ease)}
.textlink:hover::after{width:auto;transform:translateX(5px)}
:focus-visible{outline:2px solid #BCA26B;outline-offset:3px}

/* ---- hero: campaign feel, geometry unchanged --------------------------- */
.hero h1{letter-spacing:.018em;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero__lede{text-shadow:0 1px 12px rgba(0,0,0,.45)}

/* ---- fleet: editorial collection, the photograph leads ---------------- */
.vcard{background:transparent;border:0;box-shadow:none;border-radius:0}
.vcard:hover{transform:none;box-shadow:none;border:0}
.vcard__media{border-radius:0}
.vcard__body{padding:1.35rem 0 0}
.vcard__meta{color:var(--platinum);letter-spacing:.24em}
.vcard__cap{color:var(--gold)}
.vcard h3{font-size:clamp(1.4rem,2.1vw,1.7rem);margin-bottom:.7rem}
.vcard__txt{color:var(--ash)}
.vcard__foot{border-top:1px solid var(--hair);padding-top:1.05rem}
.vcard .btn{min-height:44px;padding:.7rem 1.15rem}
.vcard__ideal span{color:var(--gold)}
.vcard__ideal{color:var(--ash)}
.fleet__label{color:var(--gold)}
.fleet__label::after{background:var(--hair)}
.coll{border-bottom-color:var(--hair)}
.coll__n{border-color:rgba(188,162,107,.45)}

/* ---- services: editorial categories ----------------------------------- */
.scard{background:transparent;border:0;box-shadow:none;border-radius:0}
.scard:hover{transform:none;box-shadow:none}
.scard__body{padding:1.15rem 0 0}
.scard__h{font-size:1.22rem}
.scard__p{color:var(--ash)}
@media (min-width:1081px){
  .scards{column-gap:clamp(18px,2vw,28px);row-gap:clamp(34px,3.6vw,52px)}
  .scards > .scard:nth-child(-n+4){grid-column:span 2}
  .scards > .scard:nth-child(-n+4) .scard__h{font-size:clamp(1.5rem,2vw,1.85rem)}
  .scards > .scard:nth-child(-n+4) .scard__p{font-size:.95rem}
}
.svc{background:var(--paper);border:1px solid var(--line);box-shadow:none}
.sec--onyx .svc,.pagehero .svc{background:#191919}
.svc:hover{border-color:var(--gold)}
.svc h3{font-family:var(--display);font-weight:400;font-size:1.2rem}

/* ---- wedding feature: editorial spread --------------------------------- */
.feature{border-block:0}
.feature__in h2{font-size:clamp(2rem,3.8vw,3.1rem);line-height:1.1;margin-bottom:1.3rem}
.feature__in p{color:var(--ash)}
.feature__cta{margin-top:2.2rem}

/* ---- airport / corporate: quiet panels on stone ----------------------- */
.duo{background:transparent;border:0;box-shadow:none}
.duo__body{padding:1.4rem 0 0}
.duo__body h3,.duo h2{font-family:var(--display);font-weight:400}

/* ---- why AB: manifesto with editorial numbering ------------------------ */
.pledge{background:transparent;border:0;gap:0}
.pledge__i{background:transparent;border-top:1px solid rgba(188,162,107,.35);padding:2rem 1.6rem 2.2rem 0}
.pledge__n{font-family:var(--display);font-size:clamp(2.2rem,3.4vw,3rem);letter-spacing:.02em;line-height:1;color:var(--gold);margin-bottom:1.2rem}
.pledge__i h3{font-family:var(--display);font-weight:400;font-size:1.32rem;margin-bottom:.7rem}
.pledge__i p{color:var(--ash);font-size:.92rem;line-height:1.7}
.pledge--exp .pledge__i{padding:2rem 1.8rem 2.2rem 0}

/* ---- reviews: quiet, trustworthy -------------------------------------- */
.revqs .revq{background:var(--paper);border:0;border-top:1px solid var(--gold);box-shadow:none}
.revqs .revq blockquote{padding-top:2.4rem}
.revqs .revq blockquote::before{font-size:4.2rem;color:var(--gold);top:-.9rem}
.revqs .revq blockquote p{color:var(--text);font-size:1rem;line-height:1.75}
.revqs .revq figcaption{border-top-color:var(--hair)}
.revqs .revq__name{color:var(--text)}
.revqs .revq__meta{color:var(--gold)}
.rating__stars{color:#8A7241;letter-spacing:.2em}
.rev{background:var(--paper);border-color:var(--line)}

/* ---- booking: calm numbered timeline ---------------------------------- */
.rail__list::before{background:var(--line);opacity:1}
.rail__i::before{border-color:var(--gold);background:var(--paper)}
.rail__step{font-family:var(--display);font-size:1.1rem;letter-spacing:.06em;text-transform:none;color:var(--gold)}
.rail__i h3{font-family:var(--display);font-weight:400;font-size:1.3rem}
.note{border-left-color:var(--gold);background:var(--ivory)}

/* ---- photographs, gallery, forms -------------------------------------- */
.shot,.figframe,.gal figure{border:0;background:#E2DBCF}
.pagehero .shot,.sec--onyx .shot{background:#191919}
.quote{background:var(--paper);border:1px solid var(--line);box-shadow:none}
.field input,.field select,.field textarea{background:#FFFFFF;border-color:#D3CCBF}
.field label{color:var(--ash)}
.specs{background:var(--hair);border-color:var(--hair)}
.specs div{background:var(--paper)}
.pagehero .specs div,.sec--onyx .specs div{background:#191919}

/* ---- closing CTA and footer ------------------------------------------- */
.cta h2{font-size:clamp(2rem,3.8vw,3rem)}
.ftr address a[href^="tel:"]{color:#BCA26B}
.ftr h4,.ftr h2{color:#BCA26B}
/* editorial cards stay transparent inside any section tone */
.sec .vcard,.sec .scard,.sec .duo,.pagehero .vcard{background:transparent;border:0;box-shadow:none}
.sec .pledge__i{background:transparent}
.sec--onyx .vcard__media,.pagehero .vcard__media{background:#191919}

.h-sub{font-size:clamp(1.3rem,2.2vw,1.75rem)}

@media(max-width:700px){.ftr a{display:inline-block;padding:.5rem 0;min-height:32px}.textlink{display:inline-block;padding:.5rem 0}}


/* ==========================================================================
   v34 luxury refinement layer (palette, type, nav, buttons, cards, footer)
   ========================================================================== */
body{font-weight:400;letter-spacing:.003em;text-rendering:optimizeLegibility}
.lede,.hero__sub{font-weight:400}
h1,h2,h3,h4{letter-spacing:.012em;text-wrap:balance}
h1{line-height:1.1}
h2{line-height:1.16}
p{text-wrap:pretty}

/* small caps text: never below 12px */
.eyebrow,.hero__since,.vcard__meta,.vcard__coll,.rail__step,.specs dt,.pledge__n,.field label,.ftr h4,.ftr h2,.drawer__grp,.coll__n{font-size:.78rem;letter-spacing:.26em}
.eyebrow::before{background:var(--gold)}
.sec--pearl .eyebrow,.sec--stone .eyebrow,.sec--ivory .eyebrow{color:var(--gold-ink)}
.sec--pearl .eyebrow::before,.sec--stone .eyebrow::before{background:var(--gold-ink)}

/* navigation: one line per item, even rhythm */
.nav{gap:clamp(1rem,1.7vw,1.7rem)}
.nav a{white-space:nowrap;font-size:.76rem;letter-spacing:.14em;font-weight:500}
.hdr__tel{letter-spacing:.08em;font-weight:500}
.hdr.is-solid{background:rgba(18,18,18,.985);border-bottom-color:rgba(188,162,107,.28)}
.hdr__cta .btn{padding-inline:1.25rem}

/* buttons: one primary, one secondary */
.btn{letter-spacing:.16em;font-weight:500;min-height:52px}
.sec--pearl .btn--ghost,.sec--stone .btn--ghost{border-color:rgba(107,84,40,.55);color:#1B1915}
.sec--pearl .btn--ghost:hover,.sec--stone .btn--ghost:hover{border-color:var(--gold-ink);color:var(--gold-ink);background:rgba(107,84,40,.05)}
.textlink{letter-spacing:.16em}
.sec--pearl .textlink,.sec--stone .textlink,.sec--ivory .textlink{color:var(--gold-ink)}

/* mobile sticky bar: single-line labels */
.actionbar .btn{letter-spacing:.1em;white-space:nowrap;font-size:.74rem}

/* section transitions: fine champagne hairline where dark meets ivory */
.sec--pearl,.sec--stone{box-shadow:inset 0 1px 0 rgba(188,162,107,.38),inset 0 -1px 0 rgba(188,162,107,.2)}
.sec--pearl,.sec--stone{background-image:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0) 90px)}

/* fleet and service cards: one consistent treatment */
.vcard,.scard,.svc,.duo,.rev,.quote{border:1px solid var(--hair);border-radius:2px;box-shadow:none}
.vcard,.scard{transition:border-color .4s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease)}
.vcard:hover,.scard:hover,.svc:hover,.duo:hover{border-color:rgba(188,162,107,.55);box-shadow:0 18px 36px -26px rgba(0,0,0,.85)}
.vcard__txt,.scard__p{font-size:.92rem;line-height:1.6}
.vcard__foot{border-top-color:rgba(188,162,107,.2)}
.vcard__coll{color:var(--gold)}

/* footer: calm, aligned, champagne rule */
.ftr{border-top:1px solid rgba(188,162,107,.35);background:linear-gradient(180deg,#0E0E0E,#121212)}
.ftr a,.ftr address{font-size:.92rem;line-height:1.75}
.ftr h4,.ftr h2{color:var(--gold)}
.ftr__bot{font-size:.82rem;color:#A39E94}

/* focus visibility */
:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}
.sec--pearl :focus-visible,.sec--stone :focus-visible{outline-color:var(--gold-ink)}

/* v34 pass 2 ------------------------------------------------------------- */
/* hero: soft dark veil behind the trust row (photo itself is untouched) */
.hero--center .trust{position:relative}
.hero--center .trust::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  left:calc(-1*var(--gut));right:calc(-1*var(--gut));top:-64px;bottom:-28px;
  background:linear-gradient(180deg,rgba(18,18,18,0) 0%,rgba(18,18,18,.55) 34%,rgba(18,18,18,.82) 100%);
}
.hero__lede{font-weight:400;text-shadow:0 1px 14px rgba(18,18,18,.55)}
.trust__t{color:#F6F2EA}
.trust__d{color:#E4E0D8}
@media (max-width:900px){
  .hero--center .trust::before{top:-70px;background:linear-gradient(180deg,rgba(18,18,18,0) 0%,rgba(18,18,18,.5) 32%,rgba(18,18,18,.76) 100%)}
  .hero--center.hero--photo .hero__scrim{background:linear-gradient(180deg,rgba(18,18,18,.92) 0%,rgba(18,18,18,.82) 36%,rgba(18,18,18,.5) 60%,rgba(18,18,18,.22) 76%,rgba(18,18,18,.4) 92%,var(--onyx) 100%)}
}
/* typography: elegant, not thin or over-spaced */
.eyebrow,.hero__since,.vcard__meta,.vcard__coll,.rail__step,.specs dt,.pledge__n,.field label,.ftr h4,.ftr h2,.drawer__grp,.coll__n{letter-spacing:.2em}
.btn{letter-spacing:.13em}
.textlink{letter-spacing:.14em}
.nav a{letter-spacing:.12em}
.actionbar .btn{letter-spacing:.08em}
@media (max-width:700px){
  .hero__since{letter-spacing:.16em}
  body{font-size:17.5px}
  .vcard__txt,.scard__p{font-size:.95rem}
}
.specs--contact dd span{font-family:var(--body);font-size:.84rem;line-height:1.5;color:var(--ash)}
.ftr p{color:#B7B2A8}
.vcard__ideal{font-size:.84rem;line-height:1.5}
.vcard__ideal span{font-size:.72rem;letter-spacing:.16em}
