/* ============================================================================
   CHASSIS — shared by Gulfshore Dockside and Paradise Fuel.
   Structurally the same file in both deployments; the two have diverged in
   two places, both recorded in LAUNCH-BLOCKERS.md. It carries structure, type,
   space and motion. It carries NO brand colour: --accent and --accent-rgb are
   supplied by the brand stylesheet loaded after it.
   Token values extracted verbatim from the Gulfshore Dockside canvas export.
   ========================================================================= */

:root{
  /* --- ground & ink (shared by both sites, per brief) ------------------- */
  --ground:        #0A0D12;
  --ground-alt:    #0C1B2E;
  --ground-rgb:    10,13,18;
  --text:          #F2F4F7;
  --text-rgb:      242,244,247;

  /* --- accent: overridden by the brand stylesheet ----------------------- */
  --accent:        #8FB4D9;
  --accent-rgb:    143,180,217;

  /* --- derived hairlines & borders -------------------------------------- */
  --hairline:      rgba(var(--accent-rgb),.14);   /* section separators      */
  --rule-soft:     rgba(var(--accent-rgb),.16);   /* review card top rule    */
  --border-block:  rgba(var(--accent-rgb),.2);    /* bordered block          */
  --rule:          rgba(var(--accent-rgb),.22);   /* column kicker underline */
  --field-line:    rgba(var(--accent-rgb),.3);    /* form underline          */
  --underline:     rgba(var(--accent-rgb),.4);    /* inline link underline   */
  --hdr-rule:      rgba(var(--accent-rgb),.4);
  --strip-rule:    rgba(var(--accent-rgb),.28);

  /* --- derived ink tints ------------------------------------------------ */
  --text-lede:     rgba(var(--text-rgb),.85);
  --text-dim:      rgba(var(--text-rgb),.72);
  --text-dimmer:   rgba(var(--text-rgb),.68);
  --text-footer:   rgba(var(--text-rgb),.66);
  --text-meta:     rgba(var(--text-rgb),.62);
  --text-label:    rgba(var(--text-rgb),.6);
  --text-aside:    rgba(var(--text-rgb),.55);
  --text-placeholder: rgba(var(--text-rgb),.4);
  --text-fine:     rgba(var(--text-rgb),.38);

  /* --- CONTRAST-REMEDIATION SLOTS -------------------------------------------
     Three inherited Gulfshore values fall below WCAG. They are held here at
     their ORIGINAL values so the port keeps every token identical, as briefed.
     To adopt the accessible values, change these three lines only:
       --field-line-a11y : rgba(var(--accent-rgb),.55)  -> 3.16:1 (from 1.81:1)
       --text-placeholder: rgba(var(--text-rgb),.52)    -> 5.26:1 (from 3.54:1)
       --text-fine       : rgba(var(--text-rgb),.52)    -> 5.26:1 (from 3.32:1)
     See LAUNCH-BLOCKERS.md. Nothing else in this file needs to change.       */
  --field-line-a11y: var(--field-line);

  /* --- type ------------------------------------------------------------- */
  --font-display: 'Newsreader', Georgia, serif;
  --font-body:    'Public Sans', system-ui, sans-serif;

  --fs-h1:         clamp(42px,8.4vw,106px);
  --fs-statement:  clamp(32px,6.5vw,80px);
  --fs-h2-contact: clamp(32px,5.5vw,66px);
  --fs-h2-faq:     clamp(30px,5.5vw,64px);
  --fs-h2-alt:     clamp(30px,5.4vw,64px);
  --fs-h2:         clamp(30px,5vw,60px);
  --fs-h2-map:     clamp(32px,3.4vw,50px);
  --fs-rating:     clamp(48px,8vw,76px);
  --fs-feature-h3: clamp(32px,4.4vw,50px);
  --fs-phone:      clamp(30px,4.6vw,52px);
  --fs-pullquote:  clamp(26px,4.4vw,52px);
  --fs-block-h:    clamp(24px,3.2vw,40px);
  --fs-success-h:  clamp(24px,3vw,34px);
  --fs-lede-serif: clamp(22px,2.8vw,32px);
  --fs-h3:         clamp(21px,2.5vw,28px);
  --fs-dt:         clamp(20px,2.6vw,28px);
  --fs-feature-p:  clamp(20px,2.7vw,31px);
  --fs-h4:         clamp(18px,2vw,23px);
  --fs-list:       clamp(18px,2.1vw,22px);
  --fs-body-lg:    clamp(16px,2.1vw,19px);
  --fs-mark:       clamp(16px,2.2vw,19px);
  --fs-quote:      clamp(16px,1.55vw,19px);
  --fs-body:       clamp(15px,1.8vw,18px);
  --fs-body-alt:   clamp(15px,1.7vw,17px);
  --fs-hdr-phone:  clamp(13px,1.7vw,15px);
  --fs-body-sm:    15px;
  --fs-body-xs:    14px;
  --fs-eyebrow:    12px;
  --fs-kicker:     11px;
  --fs-kicker-xs:  10.5px;
  --fs-fine:       12px;

  --ls-eyebrow:    .26em;
  --ls-kicker:     .24em;
  --ls-label:      .2em;
  --ls-btn:        .18em;
  --ls-attr:       .16em;
  --ls-tight:      -.015em;

  /* --- space ------------------------------------------------------------ */
  --wrap:          1240px;
  --wrap-narrow:   960px;
  --wrap-map:      1180px;
  --wrap-strip:    820px;
  --measure:       680px;
  --pad-section:   clamp(64px,10vw,140px);
  --pad-contact:   clamp(64px,10vw,150px);
  --gutter:        clamp(20px,5vw,64px);
  --gap-col:       clamp(28px,4vw,56px);
  --gap-wide:      clamp(44px,6vw,88px);
  --head-gap:      clamp(48px,7vw,80px);

  /* --- motion ----------------------------------------------------------- */
  --ease-settle:   cubic-bezier(0.16,0.84,0.28,1);
  --dur-reveal:    .7s;
  --dur-settle:    1.4s;
}

/* ---------------------------------------------------------------------------
   Base. UA margin is cleared once, at zero specificity, scoped to the exact
   elements that need it — never blanket-reset, never `margin:0` on a class.
   ------------------------------------------------------------------------ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--ground);
  color:var(--text);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
:where(h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol){ margin-block:0; margin-inline:0; }
:where(ul,ol){ padding-inline-start:0; list-style:none; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ color:var(--text); }
img{ display:block; }
::selection{ background:var(--accent); color:var(--ground); }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
input,select,textarea,button{ font-family:inherit; }
input::placeholder,textarea::placeholder{ color:var(--text-placeholder); }
.vh{ position:absolute; width:1px; height:1px; padding:0; overflow:hidden;
     clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* --- motion primitives ---------------------------------------------------- */
[data-reveal]{ opacity:0; transform:translateY(14px);
  transition:opacity var(--dur-reveal) ease-out, transform var(--dur-reveal) ease-out; }
[data-reveal].is-in{ opacity:1; transform:none; }
[data-img]{ transform:scale(1.06); transition:transform var(--dur-settle) var(--ease-settle); }
[data-img].is-in{ transform:scale(1); }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  [data-reveal],[data-img]{ opacity:1; transform:none; transition:none; }
}

/* --- layout --------------------------------------------------------------- */
.sec{ background:var(--ground); border-top:1px solid var(--hairline); }
.sec--alt{ background:var(--ground-alt); }
.sec--seam{ border-top:0; }
.sec--rel{ position:relative; }
.wrap{ max-width:var(--wrap); margin-inline:auto;
       padding:var(--pad-section) var(--gutter); }
.wrap--narrow{ max-width:var(--wrap-narrow); }
.wrap--contact{ padding-block:var(--pad-contact); }
.measure{ max-width:var(--measure); }

/* --- type ----------------------------------------------------------------- */
.eyebrow{
  font-size:var(--fs-eyebrow); letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase; color:var(--accent); font-weight:500;
  margin-bottom:20px;
}
.eyebrow--wide{ margin-bottom:24px; }
.kicker--gap{ margin-bottom:20px; }
.kicker--gap-lg{ margin-bottom:24px; }
.kicker{
  font-size:var(--fs-kicker); letter-spacing:var(--ls-kicker);
  text-transform:uppercase; color:var(--accent); font-weight:500;
}
/* the compact diesel kicker carries no weight override in the source — 400 */
.kicker--xs{ font-size:var(--fs-kicker-xs); letter-spacing:var(--ls-label); font-weight:400; }
.kicker--rule{
  display:block; padding-bottom:18px; border-bottom:1px solid var(--rule);
  margin-bottom:22px;
}
.kicker--rule-tight{ padding-bottom:16px; margin-bottom:20px; }
.h1{ font-family:var(--font-display); font-weight:400; font-size:var(--fs-h1);
     line-height:1; letter-spacing:var(--ls-tight); text-wrap:balance; }
.h2{ font-family:var(--font-display); font-weight:400; font-size:var(--fs-h2);
     line-height:1.08; letter-spacing:-.01em; text-wrap:balance; }
.h2--alt{ font-size:var(--fs-h2-alt); line-height:1.06; letter-spacing:var(--ls-tight); }
.h2--faq{ font-size:var(--fs-h2-faq); line-height:1.04; letter-spacing:var(--ls-tight); }
.h2--contact{ font-size:var(--fs-h2-contact); line-height:1.02; letter-spacing:var(--ls-tight); }
.statement{ font-family:var(--font-display); font-weight:400; font-size:var(--fs-statement);
     line-height:1.02; letter-spacing:var(--ls-tight); }
.h3{ font-family:var(--font-display); font-weight:400; font-size:var(--fs-h3); }
.h4{ font-family:var(--font-display); font-weight:400; font-size:var(--fs-h4); }
.lede{ font-size:var(--fs-body-lg); line-height:1.55; color:var(--text-lede); font-weight:300; }
.body{ font-size:var(--fs-body); line-height:1.62; color:var(--text-dim); font-weight:300; }
.body--sm{ font-size:var(--fs-body-sm); line-height:1.6; color:var(--text-dimmer); font-weight:300; }
.body--xs{ font-size:var(--fs-body-xs); line-height:1.58; color:var(--text-dimmer); font-weight:300; }
.body--aside{ font-size:var(--fs-body-xs); letter-spacing:.02em; color:var(--text-aside);
     font-weight:300; }
.attr{ font-size:var(--fs-fine); letter-spacing:var(--ls-attr);
     text-transform:uppercase; color:var(--accent); }
.attr--lg{ font-size:13px; letter-spacing:var(--ls-btn); }

/* --- header --------------------------------------------------------------- */
.hdr{
  position:fixed; inset:0 0 auto; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--gutter);
  background:linear-gradient(to bottom, rgba(var(--ground-rgb),.9), rgba(var(--ground-rgb),0));
  backdrop-filter:blur(3px);
}
.hdr__mark{ color:var(--text); font-family:var(--font-display); font-weight:400;
  font-size:var(--fs-mark); letter-spacing:.01em; white-space:nowrap; }
.hdr__mark:hover{ color:var(--text); }
.hdr__phone{ display:flex; align-items:center; gap:12px; color:var(--text);
  font-size:var(--fs-hdr-phone); font-weight:500; letter-spacing:.02em; white-space:nowrap; }
.hdr__phone:hover{ color:var(--text); }
.hdr__eyebrow{ font-size:var(--fs-kicker); letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase; color:var(--accent); font-weight:500; }
.hdr__rule{ width:1px; height:14px; background:var(--hdr-rule); }
@media (max-width:600px){ .hdr__eyebrow,.hdr__rule{ display:none; } }

/* --- hero ----------------------------------------------------------------- */
.hero{ position:relative; min-height:100svh; display:grid;
  grid-template-rows:1fr auto; overflow:hidden; background:var(--ground); }
.hero__media{ position:absolute; inset:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:center 52%; }
.hero__scrim{ position:absolute; inset:0; }
.hero__body{ position:relative; max-width:1040px;
  padding:0 var(--gutter) clamp(52px,9vh,104px); }
.hero__eyebrow{ margin-bottom:22px; text-shadow:0 1px 16px rgba(var(--ground-rgb),.9); }
.hero__h1{ text-shadow:0 2px 40px rgba(var(--ground-rgb),.6); }
.hero__lede{ margin-top:26px; max-width:540px; }

/* --- credibility strip ---------------------------------------------------- */
.strip{ max-width:var(--wrap-strip); margin-inline:auto;
  padding:clamp(40px,6vw,72px) var(--gutter);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:clamp(24px,4vw,36px); }
.strip__rating{ display:flex; align-items:baseline; justify-content:center; gap:16px; }
.strip__num{ font-family:var(--font-display); font-size:var(--fs-rating);
  font-weight:400; line-height:1; }
.strip__meta{ display:flex; flex-direction:column; gap:6px; text-align:left; }
.strip__stars{ color:var(--accent); font-size:18px; letter-spacing:.12em; }
.strip__count{ font-size:13px; letter-spacing:var(--ls-attr);
  text-transform:uppercase; color:var(--text-meta); }
.strip__hr{ width:64px; height:1px; background:var(--strip-rule); }
.strip__facts{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px 40px;
  font-size:var(--fs-body-xs); letter-spacing:.04em; color:var(--text-lede); font-weight:400; }

/* --- full-bleed photo bands ----------------------------------------------- */
.band{ position:relative; height:clamp(320px,58vh,600px); overflow:hidden; }
.band--tall{ height:clamp(360px,66vh,680px); }
.band img{ width:100%; height:100%; object-fit:cover; }
.band__scrim{ position:absolute; inset:0; }

/* --- services ------------------------------------------------------------- */
.sechead{ margin:0 auto var(--head-gap); max-width:min(68%,780px); text-align:center; }
.sechead--right{ margin:0 0 var(--head-gap) auto; max-width:900px; text-align:right; }
.feature{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
  gap:clamp(28px,4vw,64px); align-items:center;
  padding-top:clamp(28px,3.5vw,44px); border-top:1px solid var(--hairline);
}
.feature__fig{ overflow:hidden; }
.feature__fig img{ width:100%; height:clamp(300px,44vh,480px);
  object-fit:cover; object-position:center 58%; }
.feature__side{ text-align:right; }
.feature__h3{ font-family:var(--font-display); font-weight:400;
  font-size:var(--fs-feature-h3); line-height:1; margin-bottom:6px; }
.feature__kicker{ margin-bottom:22px; }
.feature__p{ margin-left:auto; max-width:520px; font-family:var(--font-display);
  font-weight:300; font-size:var(--fs-feature-p); line-height:1.3; letter-spacing:-.005em; }
.pair{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
  gap:clamp(24px,4vw,56px); padding-block:clamp(30px,3.5vw,44px);
  margin-top:clamp(40px,5vw,56px); border-top:1px solid var(--hairline); }
.pair__h4{ margin-bottom:4px; }
.pair__kicker{ margin-bottom:12px; }
.note{ margin-top:16px; margin-bottom:clamp(28px,4vw,44px); }
.wide-fig{ margin-bottom:clamp(56px,8vw,96px); overflow:hidden; }
.wide-fig img{ width:100%; height:auto; }
.cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
  gap:clamp(32px,6vw,88px); margin-bottom:var(--head-gap); }
.list{ display:grid; gap:14px; font-family:var(--font-display);
  font-size:var(--fs-list); font-weight:400; }
.block{ padding:clamp(36px,4.5vw,60px) clamp(28px,4vw,48px);
  background:var(--ground-alt); border:1px solid var(--border-block); text-align:center; }
.block__h{ font-family:var(--font-display); font-weight:400; font-size:var(--fs-block-h);
  line-height:1.1; margin-bottom:20px; }
.block__p{ margin-inline:auto; max-width:620px; font-size:var(--fs-body-alt);
  line-height:1.62; color:var(--text-dim); font-weight:300; }

/* --- coverage map --------------------------------------------------------- */
.coverage{ background:var(--ground-alt); padding:104px 40px; }
.coverage__inner{ max-width:var(--wrap-map); margin-inline:auto; display:grid;
  grid-template-columns:minmax(0,460px) minmax(0,1fr); gap:72px; align-items:center; }
/* The coastline path data runs outside the 0 0 620 860 viewBox. Without an
   explicit clip those strokes paint past the element box and widen the whole
   document, which is why the original page had a horizontal scroll at every
   width. Clipping here is what keeps scrollWidth equal to the viewport. */
.coverage__map{ width:100%; height:auto; max-height:660px; overflow:hidden; }
.coverage__h2{ font-family:var(--font-display); font-weight:400; color:var(--text);
  font-size:var(--fs-h2-map); line-height:1.12; margin-bottom:28px; }
.coverage__p{ color:#C4D0DE; font-size:17px; line-height:1.65;
  margin-bottom:18px; max-width:46ch; }
@media (max-width:900px){
  .coverage{ padding:72px 22px; }
  .coverage__inner{ grid-template-columns:1fr; gap:44px; }
  .coverage__map{ max-height:none; }
}

/* --- steps ---------------------------------------------------------------- */
.statement--center{ margin-inline:auto; margin-bottom:var(--head-gap);
  max-width:var(--wrap-narrow); text-align:center; }
.steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:var(--gap-col); }
.steps__h3{ margin-bottom:10px; }

/* --- about ---------------------------------------------------------------- */
.split{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
  gap:clamp(32px,5vw,72px); align-items:center; }
.split__img{ overflow:hidden; }
.split__img img{ width:100%; height:clamp(400px,62vh,640px);
  object-fit:cover; object-position:center 42%; }
.serif-lede{ font-family:var(--font-display); font-weight:300; font-size:var(--fs-lede-serif);
  line-height:1.34; letter-spacing:-.005em; margin-bottom:24px; }
.after-fig{ margin-top:clamp(10px,1.4vw,18px); }
.after-fig img{ width:100%; height:auto; }

/* --- testimonials --------------------------------------------------------- */
.pull{ margin-inline:auto; margin-bottom:clamp(56px,8vw,90px);
  max-width:var(--wrap-narrow); text-align:center; }
.pull blockquote{ font-family:var(--font-display); font-weight:300;
  font-size:var(--fs-pullquote); line-height:1.22; letter-spacing:-.012em; text-wrap:balance; }
.pull figcaption{ margin-top:28px; }
.mid-fig{ overflow:hidden; margin-bottom:var(--head-gap); }
.mid-fig img{ width:100%; height:clamp(280px,44vh,460px);
  object-fit:cover; object-position:center 18%; }
.reviews{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
  gap:clamp(28px,3.5vw,40px) clamp(32px,4vw,56px); }
.review{ display:flex; flex-direction:column;
  padding-top:clamp(22px,2.6vw,30px); border-top:1px solid var(--rule-soft); }
.review blockquote{ font-family:var(--font-display); font-weight:300;
  font-size:var(--fs-quote); line-height:1.46; }
.review figcaption{ margin-top:auto; padding-top:20px; }

/* --- FAQ (typographic dl — matches the Gulfshore pattern) ----------------- */
.faq__h2{ margin-bottom:clamp(40px,6vw,64px); text-align:center; }
.qa{ padding-block:clamp(26px,3.5vw,38px); border-top:1px solid var(--hairline); }
.qa:last-child{ border-bottom:1px solid var(--hairline); }
.qa dt{ font-family:var(--font-display); font-weight:400; font-size:var(--fs-dt);
  line-height:1.18; margin-bottom:14px; }
.qa dd{ font-size:var(--fs-body); line-height:1.62; color:var(--text-dim);
  font-weight:300; max-width:var(--measure); }

/* --- contact -------------------------------------------------------------- */
.contact{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:var(--gap-wide); }
.contact__h2{ margin-bottom:32px; }
.phone-lg{ display:inline-flex; align-items:baseline; color:var(--text);
  font-family:var(--font-display); font-weight:400; font-size:var(--fs-phone);
  letter-spacing:-.01em; border-bottom:1px solid var(--underline);
  padding-bottom:6px; transition:border-color .3s ease; }
.phone-lg:hover{ border-bottom-color:var(--accent); color:var(--text); }
.contact__meta{ margin-top:36px; display:grid; gap:6px; font-size:var(--fs-body-sm);
  line-height:1.6; color:var(--text-dim); font-weight:300; }
.contact__meta span:last-child{ color:var(--text-meta); }
.contact__fig{ overflow:hidden; margin-top:40px; }
.contact__fig img{ width:100%; height:clamp(260px,40vh,420px);
  object-fit:cover; object-position:center 52%; }

/* --- form ----------------------------------------------------------------- */
.form{ display:grid; gap:20px; }
.form[hidden]{ display:none; }
.field{ display:grid; gap:9px; min-width:0; }
.field > span{ font-size:var(--fs-kicker); letter-spacing:var(--ls-label);
  text-transform:uppercase; color:var(--text-label); }
/* min-width:0 is load-bearing: without it a <select> sizes to its widest
   <option>, which forces the grid track open and overflows the viewport. */
.field input,.field select,.field textarea{
  background:transparent; border:0; border-bottom:1px solid var(--field-line-a11y);
  color:var(--text); font-size:17px; padding:8px 0; transition:border-color .3s;
  border-radius:0; -webkit-appearance:none; appearance:none;
  width:100%; max-width:100%; min-width:0;
}
.field select{ text-overflow:ellipsis; }
.field select{ background:var(--ground-alt); }
.field textarea{ resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{
  border-bottom-color:var(--accent); }
.btn{ justify-self:start; background:transparent; border:1px solid var(--accent);
  color:var(--text); font-size:13px; letter-spacing:var(--ls-btn);
  text-transform:uppercase; font-weight:500; padding:16px 34px; cursor:pointer;
  border-radius:0; transition:background .3s, color .3s; }
.btn:hover{ background:var(--accent); color:var(--ground); }
.btn[disabled]{ cursor:progress; opacity:.65; }
.btn--submit{ margin-top:8px; }
.form__msg{ font-size:var(--fs-body-xs); color:var(--accent); line-height:1.5; }
.form__msg[hidden]{ display:none; }
.success{ border:1px solid var(--field-line-a11y); padding:clamp(32px,4vw,48px);
  display:grid; gap:16px; }
.success[hidden]{ display:none; }
.success__glyph{ color:var(--accent); font-size:20px; letter-spacing:.12em; }
.success__h3{ font-family:var(--font-display); font-weight:400;
  font-size:var(--fs-success-h); line-height:1.1; }
.success__p{ font-size:16px; line-height:1.6; color:var(--text-dim); font-weight:300; }
.success__p a{ border-bottom:1px solid var(--underline); }

/* --- footer --------------------------------------------------------------- */
.foot{ background:var(--ground); border-top:1px solid var(--hairline); }
.foot__inner{ max-width:var(--wrap); margin-inline:auto;
  padding:clamp(48px,6vw,72px) var(--gutter) clamp(28px,3vw,36px);
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:22px; }
.foot__mark{ font-family:var(--font-display); font-size:22px; font-weight:400; }
.foot__row{ display:flex; flex-wrap:wrap; justify-content:center; gap:18px 32px;
  font-size:var(--fs-body-xs); color:var(--text-footer); font-weight:300; }
.foot__row a{ color:var(--text-lede); }
.foot__row a:hover{ color:var(--text); }
.foot__legal{ max-width:var(--wrap); margin-inline:auto;
  padding:0 var(--gutter) clamp(40px,5vw,56px); text-align:center;
  font-size:var(--fs-fine); letter-spacing:.06em; color:var(--text-fine); }

/* --- sticky mobile action bar --------------------------------------------- */
.actionbar{
  position:fixed; inset:auto 0 0; z-index:60; display:none;
  border-top:1px solid var(--hairline);
  background:rgba(var(--ground-rgb),.94);
  backdrop-filter:blur(8px);
  padding-bottom:env(safe-area-inset-bottom);
  transform:translateY(101%); transition:transform .28s ease-out;
}
.actionbar.is-in{ transform:none; }
.actionbar__grid{ display:grid; grid-template-columns:1fr 1fr; }
.actionbar a{ display:flex; align-items:center; justify-content:center; gap:8px;
  padding:16px 12px; font-size:13px; letter-spacing:var(--ls-btn);
  text-transform:uppercase; font-weight:500; min-height:56px; }
.actionbar__call{ color:var(--text); border-right:1px solid var(--hairline); }
.actionbar__call:hover{ color:var(--text); }
.actionbar__cta{ background:var(--accent); color:var(--ground); }
.actionbar__cta:hover{ background:var(--accent); color:var(--ground); }
@media (max-width:767px){ .actionbar{ display:block; } }
@media (prefers-reduced-motion:reduce){ .actionbar{ transition:none; } }
