/* ============================================================
   CROWN CONCIERGE · DALLAS EXECUTIVE CAR SERVICE · v2 REDESIGN
   Stylesheet — upload to your theme/CDN and enqueue or <link> it
   ONCE in the page head. Do not paste this into a Custom HTML
   block; every section assumes it's already loaded.

   CHANGELOG (matching crown-exec-planner.js v1.3 / planner section
   HTML v1.3):
   - Added .cc-phone-note for the SMS disclosure lines that replaced
     the removed opt-in checkbox under the Mobile field.
   - .cc-consent / .cc-consent input[type="checkbox"] rules below are
     now unused (the checkbox markup was removed) — left in place as
     harmless dead CSS rather than reissuing this file to trim it,
     same call made for crown-booking.v2.0.0.css on check-availability.

   Version this file: bump the ?v= query string on the <link> tag
   (or the enqueue filemtime, see README) every time you edit this
   file, or LiteSpeed / browser caches may keep serving a stale copy
   against newer HTML.

   Every color/type token below is scoped to #crownExecPage, which
   must be the Gutenberg Group (or single wrapper block) containing
   ALL 13 page sections — see README for the two valid ways to build
   that wrapper. Do not let structural elements cross Custom HTML
   block boundaries; only the Group/wrapper element itself may do so,
   never a tag opened in one block and closed in another.
============================================================ */

/* ============================================================
   CROWN EXEC v2 · DESIGN TOKENS
   Dark cabin drench · champagne gold accent · one paper inversion
============================================================ */
#crownExecPage{
  --cc-bg:        oklch(16.5% 0.012 85);   /* cabin black, warm tint  */
  --cc-bg-deep:   oklch(12.5% 0.010 85);   /* deeper band             */
  --cc-surface:   oklch(21% 0.015 85);     /* raised panel            */
  --cc-ink:       oklch(94% 0.012 85);     /* near-white warm         */
  --cc-ink-dim:   oklch(76% 0.018 85);     /* secondary text          */
  --cc-gold:      oklch(79% 0.115 88);     /* champagne gold          */
  --cc-gold-deep: oklch(68% 0.120 82);     /* pressed / hover gold    */
  --cc-line:      oklch(94% 0.012 85 / .14);
  --cc-line-soft: oklch(94% 0.012 85 / .08);
  --cc-paper:     oklch(96% 0.006 85);     /* itinerary paper section */
  --cc-paper-2:   oklch(92.5% 0.008 85);
  --cc-paper-ink: oklch(23% 0.018 85);
  --cc-paper-dim: oklch(42% 0.022 85);
  --cc-paper-line:oklch(23% 0.018 85 / .16);

  --cc-serif: "Bodoni Moda", "Bodoni MT", Didot, Georgia, serif;
  --cc-sans:  "Archivo", "Helvetica Neue", Arial, sans-serif;

  --cc-max: 1180px;
  --cc-pad: clamp(1.25rem, 4.5vw, 3rem);
  --cc-sec: clamp(4.5rem, 10vw, 8.5rem);

  --cc-ease: cubic-bezier(.19,1,.22,1);

  /* z scale: content(1) sticky(10) mobilebar(20) */
  background: var(--cc-bg);
  color: var(--cc-ink);
  font-family: var(--cc-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
/* Page-level smooth scroll for in-page planner anchors (safe in WP; respects reduced motion) */
@media (prefers-reduced-motion: no-preference){ html{ scroll-behavior: smooth; } }

/* ---------- Accessibility utilities ---------- */
.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;
}

.cc-page{ overflow-x: clip; display:block; }
#crown-travel-planner{ scroll-margin-top: 90px; }
.cc-page *, .cc-page *::before, .cc-page *::after{ box-sizing: border-box; }

.cc-wrap{ max-width: var(--cc-max); margin-inline: auto; padding-inline: var(--cc-pad); }

/* ---------- Type ---------- */
.cc-page h1, .cc-page h2, .cc-page h3{
  font-family: var(--cc-serif);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin: 0;
  text-wrap: balance;
}
.cc-page p{ margin: 0; text-wrap: pretty; }
.cc-page a{ color: inherit; }
.cc-page img{ max-width: 100%; display: block; }

.cc-h1{ font-size: clamp(2.5rem, 6.4vw, 4.6rem); font-optical-sizing:auto; }
.cc-h2{ font-size: clamp(1.9rem, 4.2vw, 3.1rem); }
.cc-h3{ font-size: clamp(1.25rem, 2.2vw, 1.55rem); line-height:1.2; }
.cc-lede{ font-size: clamp(1.05rem, 1.6vw, 1.2rem); color: var(--cc-ink-dim); max-width: 62ch; }
.cc-body{ color: var(--cc-ink-dim); max-width: 68ch; }
.cc-gold{ color: var(--cc-gold); }
.cc-it{ font-style: italic; }

/* single, deliberate kicker system: gold rule + small caps, HERO + FINAL CTA only */
.cc-kicker{
  display:flex; align-items:center; gap:.85rem;
  font: 600 .78rem/1 var(--cc-sans);
  letter-spacing:.18em; text-transform:uppercase;
  color: var(--cc-gold);
}
.cc-kicker::before{ content:""; width:2.4rem; height:1px; background: var(--cc-gold); }

/* ---------- Links & buttons ---------- */
.cc-page a:focus-visible,
.cc-page button:focus-visible,
.cc-page summary:focus-visible{
  outline: 2px solid var(--cc-gold);
  outline-offset: 3px;
  border-radius: 2px;
}
.cc-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  min-height:52px; padding:.9rem 1.9rem;
  font: 600 .95rem/1 var(--cc-sans); letter-spacing:.04em;
  text-decoration:none; border-radius:2px;
  transition: background .22s var(--cc-ease), color .22s var(--cc-ease),
              border-color .22s var(--cc-ease), transform .22s var(--cc-ease);
  touch-action: manipulation;
  cursor: pointer;
}
.cc-btn:active{ transform: translateY(1px); }
.cc-btn--gold{ background: var(--cc-gold); color: oklch(18% 0.02 85); }
.cc-btn--gold:hover{ background: var(--cc-gold-deep); transform: translateY(-1px); box-shadow: 0 10px 24px -12px oklch(79% 0.115 88 / .5); }
.cc-btn--ghost{ background: transparent; color: var(--cc-ink); border:1px solid var(--cc-line); }
.cc-btn--ghost:hover{ border-color: var(--cc-gold); color: var(--cc-gold); transform: translateY(-1px); }
.cc-btn--paper{ background: var(--cc-paper-ink); color: var(--cc-paper); }
.cc-btn--paper:hover{ background: oklch(30% 0.02 85); transform: translateY(-1px); box-shadow: 0 10px 24px -14px oklch(23% 0.02 85 / .55); }

.cc-tlink{
  color: var(--cc-gold); text-decoration: none;
  border-bottom: 1px solid oklch(79% 0.115 88 / .45);
  transition: border-color .2s var(--cc-ease);
}
.cc-tlink:hover{ border-bottom-color: var(--cc-gold); }
.cc-paper-zone .cc-tlink{ color: oklch(48% 0.13 70); border-bottom-color: oklch(48% 0.13 70 / .4); }
.cc-paper-zone .cc-tlink:hover{ border-bottom-color: oklch(48% 0.13 70); }

/* ---------- Reveal (enhances a visible default; JS gates hiding) ---------- */
html.cc-js .cc-page [data-reveal]{
  opacity:0; transform: translateY(26px);
  transition: opacity .8s var(--cc-ease), transform .8s var(--cc-ease);
  transition-delay: var(--d, 0s);
}
html.cc-js .cc-page [data-reveal].cc-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html.cc-js .cc-page [data-reveal]{ opacity:1; transform:none; transition:none; }
  .cc-btn, .cc-iconbtn{ transition:none; }
  .cc-btn:hover, .cc-btn:active, .cc-iconbtn:hover{ transform:none; box-shadow:none; }
}

/* ============================================================
   S1 · HERO
============================================================ */
.cc-hero{
  position:relative; isolation:isolate;
  min-height: min(92svh, 900px);
  display:flex; align-items:flex-end;
  padding-block: clamp(6rem, 12vh, 9rem) clamp(3rem, 7vh, 5rem);
}
.cc-hero__media, .cc-hero__media img{
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover; object-position: 68% 55%;
}
.cc-hero__scrim{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to top, oklch(12.5% 0.01 85 / .96) 0%, oklch(12.5% 0.01 85 / .55) 45%, oklch(12.5% 0.01 85 / .30) 100%),
    linear-gradient(105deg, oklch(12.5% 0.01 85 / .82) 0%, transparent 62%);
}
.cc-hero__grid{
  display:grid; gap: clamp(2rem, 4vw, 3.5rem);
  grid-template-columns: minmax(0, 1.55fr) minmax(0, .9fr);
  align-items:end; width:100%;
}
.cc-hero .cc-h1{ margin-top:1.1rem; max-width: 15ch; }
.cc-hero__sub{ margin-top:1.25rem; }
.cc-hero__ctas{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem; }
.cc-hero__alt{ margin-top:1.1rem; font-size:.92rem; color: var(--cc-ink-dim); }

.cc-hero__aside{
  border-top: 1px solid var(--cc-line);
  padding-top: 1.4rem;
  display:grid; gap: 1.05rem;
}
.cc-trust{
  display:grid; grid-template-columns: auto 1fr; gap:.8rem; align-items:baseline;
  font-size:.95rem; color: var(--cc-ink-dim);
}
.cc-trust b{ font-family: var(--cc-serif); font-size:1.05rem; font-weight:600; color: var(--cc-ink); letter-spacing:.01em; }
.cc-trust span{ font-size:.9rem; }
.cc-trust::before{ content:""; align-self:center; width:5px; height:5px; border-radius:50%; background: var(--cc-gold); grid-row: 1 / span 2; margin-top:.15rem; }
.cc-trust{ grid-template-columns: auto 1fr; grid-template-rows:auto auto; column-gap:.8rem; row-gap:.1rem; }
.cc-trust b{ grid-column:2; } .cc-trust span{ grid-column:2; }

@media (max-width: 860px){
  .cc-hero{ align-items:flex-end; min-height: 100svh; }
  .cc-hero__grid{ grid-template-columns: 1fr; }
  .cc-hero__aside{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px){
  .cc-hero__aside{ grid-template-columns: 1fr; gap:.8rem; }
  .cc-hero__ctas .cc-btn{ flex:1 1 100%; }
}

/* ============================================================
   S2 · WITHOUT THE USUAL VARIABLES (statement section)
============================================================ */
.cc-vars{ padding-block: var(--cc-sec); background: var(--cc-bg); }
.cc-vars__grid{
  display:grid; gap: clamp(2.5rem, 5vw, 5rem);
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  align-items:start;
}
.cc-vars__copy > * + *{ margin-top:1.1rem; }
.cc-vars__stakes{
  font-family: var(--cc-serif); font-size: clamp(1.15rem, 1.8vw, 1.35rem);
  line-height:1.5; color: var(--cc-ink);
}
.cc-statement{
  margin-block: clamp(3.5rem, 8vw, 6rem);
  border-block: 1px solid var(--cc-line);
  padding-block: clamp(2.5rem, 6vw, 4.5rem);
  text-align:center;
}
.cc-statement p{
  font-family: var(--cc-serif);
  font-size: clamp(1.9rem, 5vw, 3.4rem);
  line-height:1.15; text-wrap: balance;
}
.cc-statement p + p{ margin-top:.5em; }
.cc-statement .cc-it{ color: var(--cc-gold); }
@media (max-width: 860px){ .cc-vars__grid{ grid-template-columns: 1fr; } }

/* ============================================================
   S3 · WHY DALLAS BUSINESSES CHOOSE CROWN (ledger, not cards)
============================================================ */
.cc-why{ padding-block: var(--cc-sec); background: var(--cc-bg-deep); }
.cc-why__grid{
  display:grid; gap: clamp(2.5rem, 5vw, 5rem);
  grid-template-columns: minmax(0,.85fr) minmax(0,1.35fr);
  align-items:start;
}
.cc-why__head{ position:sticky; top: 5.5rem; }
.cc-why__head .cc-body{ margin-top:1.2rem; }
.cc-ledger{ list-style:none; margin:0; padding:0; border-top:1px solid var(--cc-line); }
.cc-ledger li{
  display:grid; gap:.4rem 2rem;
  grid-template-columns: minmax(11rem, .55fr) minmax(0,1fr);
  padding-block: 1.6rem;
  border-bottom:1px solid var(--cc-line-soft);
}
.cc-ledger h3{ font-size:1.2rem; font-weight:600; }
.cc-ledger p{ color: var(--cc-ink-dim); font-size:.98rem; }
@media (max-width: 1020px){
  .cc-why__grid{ grid-template-columns:1fr; }
  .cc-why__head{ position:static; }
  .cc-ledger li{ grid-template-columns:1fr; }
}

/* ============================================================
   S4 · CROWN EXECUTIVE TRAVEL PLANNER (paper inversion)
============================================================ */
.cc-paper-zone{
  background: var(--cc-paper); color: var(--cc-paper-ink);
  padding-block: var(--cc-sec);
}
.cc-paper-zone .cc-body, .cc-paper-zone .cc-lede{ color: var(--cc-paper-dim); }

.cc-plan__head{ max-width:56rem; }
.cc-plan__head .cc-lede{ margin-top:1.2rem; }
.cc-plan__badges{ margin-top:1.2rem; font-size:.85rem; color: var(--cc-paper-dim); letter-spacing:.02em; }

.cc-desk{
  margin-top: clamp(2rem, 4vw, 3rem);
  background:#fff; border:1px solid var(--cc-paper-line); border-radius:6px;
  box-shadow: 0 40px 80px -44px oklch(23% 0.02 85 / .4);
  overflow:hidden;
}
.cc-desk__bar{
  display:flex; flex-wrap:wrap; gap:.8rem 1.6rem; align-items:center; justify-content:space-between;
  padding: 1rem clamp(1.1rem, 2.5vw, 1.8rem);
  background: var(--cc-bg-deep); color: var(--cc-ink);
}
.cc-desk__name{ flex:1 1 240px; }
.cc-desk__name input{
  width:100%; background:transparent; border:0; border-bottom:1px dashed var(--cc-line);
  color: var(--cc-ink); font: 500 1.15rem/1.3 var(--cc-serif); padding:.2rem 0;
}
.cc-desk__name input:focus{ outline:none; border-bottom-color: var(--cc-gold); }
.cc-desk__meta{ display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; font-size:.84rem; color: var(--cc-ink-dim); }
.cc-desk__meta b{ color: var(--cc-gold); font-weight:600; }

.cc-desk__body{ padding: clamp(1.4rem, 3vw, 2.4rem); display:grid; gap: clamp(2rem, 3.5vw, 2.8rem); }
.cc-step__h{
  display:flex; align-items:baseline; gap:.9rem;
  font: 600 1.05rem/1.3 var(--cc-sans); margin:0 0 1.1rem;
}
.cc-step__h span{ font: 500 1.35rem/1 var(--cc-serif); color: oklch(48% 0.13 70); }
.cc-step__h small{ font-weight:400; font-size:.86rem; color: var(--cc-paper-dim); }

.cc-fields{ display:grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap:1rem; }
.cc-field label{
  display:block; font: 700 .7rem/1 var(--cc-sans);
  letter-spacing:.1em; text-transform:uppercase;
  color: var(--cc-paper-dim); margin-bottom:.4rem;
}
.cc-field input, .cc-field select, .cc-field textarea{
  width:100%; min-height:46px; padding:.55rem .8rem;
  border:1px solid var(--cc-paper-line); border-radius:3px;
  background: oklch(98.5% 0.003 85); color: var(--cc-paper-ink);
  font: 400 .95rem/1.4 var(--cc-sans);
}
.cc-field textarea{ min-height:64px; resize:vertical; }
.cc-field input:focus, .cc-field select:focus, .cc-field textarea:focus{
  outline:2px solid oklch(68% 0.12 82); outline-offset:1px; border-color: transparent;
}
.cc-field [aria-invalid="true"]{ border-color: oklch(55% 0.19 25); }

/* v1.4: required-field consistency, matching check-availability's
   pattern — one gold asterisk, hidden from screen readers (the real
   required attribute already communicates this), plus one legend
   line instead of repeating "required" text on every field. */
.cc-required-mark{ color: oklch(48% 0.13 70); font-weight:700; margin-left:.15em; }
.cc-required-legend{ font-size:.8rem; color: var(--cc-paper-dim); margin:-.4rem 0 .2rem; }

/* v1.3: plain SMS disclosure under the phone field, replacing the
   removed opt-in checkbox. Same visual weight as other field helper
   text — not styled as a warning or a call to action, since there's
   no decision being made here anymore, just disclosure. */
.cc-phone-note{ margin-top:.4rem; font-size:.78rem; line-height:1.45; color: var(--cc-paper-dim); }
.cc-phone-note a{ color: oklch(48% 0.13 70); }

.cc-travs{ display:flex; flex-wrap:wrap; gap:.8rem; }
.cc-trav{
  border:1px solid var(--cc-paper-line); border-radius:4px;
  padding:.7rem 1rem; background: oklch(98.5% 0.003 85);
  display:grid; gap:.15rem; min-width: 180px;
}
.cc-trav b{ font-size:.95rem; }
.cc-trav small{ color: var(--cc-paper-dim); font-size:.8rem; }
.cc-trav__act{ display:flex; gap:.8rem; margin-top:.35rem; }
.cc-trav__act button{
  background:none; border:0; padding:.2rem 0; cursor:pointer;
  font: 600 .76rem/1 var(--cc-sans); letter-spacing:.04em;
  color: oklch(48% 0.13 70);
}
.cc-trav__act button:hover{ text-decoration:underline; }
.cc-add-chip{
  border:1px dashed oklch(48% 0.13 70 / .6); border-radius:4px; background:transparent;
  min-height:46px; padding:.7rem 1.2rem; cursor:pointer;
  font: 600 .9rem/1 var(--cc-sans); color: oklch(48% 0.13 70);
}
.cc-add-chip:hover{ background: oklch(48% 0.13 70 / .06); }

.cc-consent{
  display:flex; gap:.7rem; align-items:flex-start;
  margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid var(--cc-paper-line);
}
.cc-consent input[type="checkbox"]{
  margin-top:.2rem; width:18px; height:18px; flex:none; accent-color: oklch(48% 0.13 70);
}
.cc-consent label{ font-size:.86rem; line-height:1.5; color: var(--cc-paper-dim); }
.cc-consent a{ color: oklch(48% 0.13 70); }

.cc-status-flag{
  display:none; gap:.7rem; align-items:flex-start;
  font-size:.83rem; line-height:1.55; color: oklch(35% 0.11 70);
  background: oklch(90% 0.045 85); border:1px solid oklch(70% 0.09 70 / .45);
  border-radius:8px; padding:.85rem 1rem; margin-bottom:1.2rem;
  box-shadow: 0 8px 20px -14px oklch(48% 0.13 70 / .5);
}
.cc-status-flag.is-on{ display:flex; }
.cc-status-flag::before{ content:"i"; flex:none; width:1.15rem; height:1.15rem; margin-top:.05rem; border-radius:50%;
  background: oklch(48% 0.13 70); color:#fff; font:700 .72rem/1.15rem var(--cc-sans); text-align:center; }

.cc-service-flag{ font-size:.82rem; margin-top:-.3rem; min-height:1.5em; }
.cc-service-flag[data-state="ok"]{ color: oklch(45% 0.13 145); }
.cc-service-flag[data-state="check"]{ color: oklch(48% 0.13 70); }
.cc-service-flag[data-state="none"]{ color: var(--cc-paper-dim); }

.cc-privacy-note{
  flex-basis:100%; margin-top:.9rem; font-size:.8rem; color: var(--cc-paper-dim);
}
.cc-privacy-note a, .cc-privacy-note button{
  background:none; border:0; padding:0; cursor:pointer;
  color: oklch(48% 0.13 70); font: inherit; text-decoration: underline;
}

.cc-viewrow{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.cc-viewtog{ display:inline-flex; border:1px solid var(--cc-paper-line); border-radius:99px; overflow:hidden; }
.cc-viewtog button{
  border:0; background:transparent; padding:.5rem 1.1rem; min-height:42px; cursor:pointer;
  font: 600 .82rem/1 var(--cc-sans); letter-spacing:.05em; color: var(--cc-paper-dim);
}
.cc-viewtog button[aria-pressed="true"]{ background: var(--cc-paper-ink); color: var(--cc-paper); }

/* schedule (table on desktop, cards on mobile) */
.cc-trips{ border:1px solid var(--cc-paper-line); border-radius:4px; overflow:hidden; }
.cc-trips__head, .cc-trip{
  display:grid; gap:.8rem; align-items:center;
  grid-template-columns: 6rem 4.6rem 1fr 1.4fr 7.2rem 6.4rem 11.5rem;
  padding:.75rem 1rem;
}
.cc-trips__head{
  font: 700 .68rem/1 var(--cc-sans); letter-spacing:.1em; text-transform:uppercase;
  color: var(--cc-paper-dim); border-bottom:1px solid var(--cc-paper-line);
  background: oklch(98% 0.004 85);
}
.cc-trip{ border-bottom:1px solid var(--cc-paper-line); font-size:.9rem; }
.cc-trip:last-child{ border-bottom:0; }
.cc-trip:nth-child(even){ background: oklch(98.5% 0.003 85); }
.cc-trip__route small, .cc-trip__svc small{ display:block; color: var(--cc-paper-dim); font-size:.78rem; }
.cc-trip__est b{ font-family: var(--cc-serif); font-size:1.02rem; font-weight:600; }
.cc-trip__est small{ display:block; color: var(--cc-paper-dim); font-size:.72rem; }
/* v1.5: unified status badge system — replaces scattered plain-
   colored text (.cc-est--rev/info/danger, .cc-service-flag[data-
   state]) with one consistent pill component used everywhere a
   pricing/serviceability state is shown: schedule table, trip
   dialog's route check, calendar chips. Old rules below kept as
   harmless dead CSS rather than removed, matching the convention
   used elsewhere in this project (crown-booking.v2.0.0.css). */
.cc-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.28rem .65rem; border-radius:999px;
  font: 700 .72rem/1 var(--cc-sans); letter-spacing:.02em;
  white-space:nowrap;
}
.cc-badge::before{ content:""; width:6px; height:6px; border-radius:50%; flex:none; }
.cc-badge--ready{ background: oklch(45% 0.13 145 / .12); color: oklch(35% 0.13 145); }
.cc-badge--ready::before{ background: oklch(45% 0.13 145); }
.cc-badge--review{ background: oklch(48% 0.13 70 / .14); color: oklch(38% 0.13 70); }
.cc-badge--review::before{ background: oklch(48% 0.13 70); }
.cc-badge--danger{ background: oklch(55% 0.19 25 / .13); color: oklch(42% 0.19 25); }
.cc-badge--danger::before{ background: oklch(55% 0.19 25); }
.cc-badge--info{ background: var(--cc-paper-line); color: var(--cc-paper-dim); }
.cc-badge--info::before{ background: var(--cc-paper-dim); }

.cc-est--rev{ font-size:.8rem; color: oklch(48% 0.13 70); font-weight:600; }
.cc-trip__act{ display:flex; flex-wrap:wrap; gap:.35rem; justify-content:flex-end; }
.cc-iconbtn{
  border:1px solid var(--cc-paper-line); border-radius:3px; background:#fff;
  min-height:38px; padding:.35rem .65rem; cursor:pointer;
  font: 600 .74rem/1 var(--cc-sans); letter-spacing:.03em; color: var(--cc-paper-ink);
  transition: border-color .2s var(--cc-ease), background .2s var(--cc-ease);
}
.cc-iconbtn:hover{ border-color: oklch(48% 0.13 70); transform: translateY(-1px); box-shadow: 0 6px 16px -10px oklch(23% 0.02 85 / .4); }
.cc-iconbtn--danger:hover{ border-color: oklch(55% 0.19 25); color: oklch(48% 0.19 25); }
/* v1.5: "Keep as Info-Only" is a real decision on a flagged trip, not
   a routine action like Edit/Duplicate — gets its own gold-tinted
   fill so it reads as a considered choice, paired against the red
   "Remove"/"Delete" danger button rather than blending into the
   same plain-white button row every other action uses. */
.cc-iconbtn--keep{ background: oklch(48% 0.13 70 / .1); border-color: oklch(48% 0.13 70 / .5); color: oklch(38% 0.13 70); }
.cc-iconbtn--keep:hover{ background: oklch(48% 0.13 70 / .18); border-color: oklch(48% 0.13 70); color: oklch(32% 0.13 70); }
.cc-trips__empty{ padding: 2.6rem 1.5rem; text-align:center; color: var(--cc-paper-dim); }
.cc-cell-label{ display:none; }
@media (max-width: 980px){
  .cc-trips__head{ display:none; }
  .cc-trip{ grid-template-columns: 1fr 1fr; padding:1rem; }
  .cc-trip > div{ min-width:0; }
  .cc-cell-label{
    display:block; font: 700 .64rem/1 var(--cc-sans); letter-spacing:.1em;
    text-transform:uppercase; color: var(--cc-paper-dim); margin-bottom:.25rem;
  }
  .cc-trip__act{ grid-column: 1 / -1; justify-content:flex-start; }
}

/* calendar view */
.cc-cal{ border:1px solid var(--cc-paper-line); border-radius:4px; overflow:hidden; }
.cc-cal__nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:.7rem 1rem; border-bottom:1px solid var(--cc-paper-line);
  background: oklch(98% 0.004 85);
}
.cc-cal__nav b{ font-family: var(--cc-serif); font-size:1.05rem; font-weight:600; }
.cc-cal__dow, .cc-cal__grid{ display:grid; grid-template-columns: repeat(7, 1fr); }
.cc-cal__dow{
  font: 700 .62rem/1 var(--cc-sans); letter-spacing:.08em; text-transform:uppercase;
  color: var(--cc-paper-dim); text-align:center;
  padding:.5rem 0; border-bottom:1px solid var(--cc-paper-line);
}
.cc-cal__grid{ gap:1px; background: var(--cc-paper-line); }
.cc-cal__cell{ background:#fff; min-height:88px; padding:.35rem .4rem; font-size:.72rem; }
.cc-cal__cell.is-out{ background: oklch(97% 0.004 85); color: var(--cc-paper-dim); }
.cc-cal__d{ font-weight:700; }
.cc-chip{
  display:block; width:100%; text-align:left; margin-top:.3rem;
  border:0; border-radius:3px; cursor:pointer;
  background: var(--cc-bg-deep); color: var(--cc-ink);
  font: 500 .66rem/1.35 var(--cc-sans); padding:.28rem .4rem;
}
.cc-chip--rev{ background:transparent; border:1px solid var(--cc-paper-line); border-left:3px solid oklch(48% 0.13 70); color: var(--cc-paper-dim); }
.cc-chip--flag{ border-color: var(--cc-paper-line); border-left:3px solid oklch(55% 0.19 25); color: oklch(42% 0.19 25); }
.cc-est--info{ font-size:.8rem; color: var(--cc-paper-dim); font-weight:600; }
.cc-est--danger{ font-size:.8rem; color: oklch(48% 0.19 25); font-weight:600; }
.cc-trip--flag{ background: oklch(96% 0.03 25) !important; }
@media (max-width: 700px){
  .cc-cal__cell{ min-height:64px; }
  /* v1.6: Calendar isn't offered below this width — see renderAll()'s
     mobile guard in the JS. Hiding the toggle here is the visible half
     of that fix; the JS half forces state.view back to "table" so a
     draft saved with Calendar active on desktop doesn't get stuck
     showing a hidden view when reopened on a phone. */
  .cc-viewtog{ display:none; }
}

/* footer + totals */
.cc-desk__foot{
  border-top:1px solid var(--cc-paper-line); padding-top:1.6rem;
  display:flex; flex-wrap:wrap; gap:1rem 1.5rem; align-items:center; justify-content:space-between;
}
.cc-desk__foot-actions{ display:flex; flex-wrap:wrap; gap:.8rem; }
.cc-plan__sum{ font-size:.92rem; color: var(--cc-paper-dim); }
.cc-plan__sum b{ color: var(--cc-paper-ink); font-family: var(--cc-serif); font-size:1.1rem; }
.cc-plan__note{ margin-top:1.4rem; font-size:.85rem; color: var(--cc-paper-dim); max-width:70ch; }

.cc-plan__trust{
  margin-top: clamp(2rem, 4vw, 3rem);
  border-left: 3px solid oklch(48% 0.13 70);
  padding: 1.1rem 1.5rem;
  background: oklch(98% 0.004 85);
  max-width: 62rem;
}
.cc-plan__trust h3{ font-size: 1.15rem; }
.cc-plan__trust p{ margin-top: .6rem; color: var(--cc-paper-dim); font-size: .95rem; }

/* dialogs */
.cc-dialog{
  border:1px solid var(--cc-paper-line); border-radius:6px; padding:0;
  width: min(660px, calc(100vw - 2rem));
  background:#fff; color: var(--cc-paper-ink);
  font-family: var(--cc-sans);
}
.cc-dialog::backdrop{ background: oklch(12% 0.01 85 / .55); }
.cc-dialog__head{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding: .9rem 1.4rem; background: var(--cc-bg-deep); color: var(--cc-ink);
}
.cc-dialog__head h2{ font-family: var(--cc-serif); font-weight:600; letter-spacing:.02em; font-size:1.05rem; margin:0; }
.cc-dialog__x{
  background:none; border:0; color: var(--cc-ink); cursor:pointer;
  font-size:1.4rem; line-height:1; padding:.3rem .5rem; min-height:40px;
}
.cc-dialog__body{ padding:1.4rem; display:grid; gap:1rem; max-height:70vh; overflow:auto; }
.cc-dialog__foot{
  padding: 1rem 1.4rem; border-top:1px solid var(--cc-paper-line);
  display:flex; gap:.8rem; justify-content:flex-end; flex-wrap:wrap;
}
.cc-dialog .cc-fields{ grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.cc-field--full{ grid-column: 1 / -1; }
.cc-est-preview{ font-size:.88rem; color: var(--cc-paper-dim); }
.cc-est-preview b{ font-family: var(--cc-serif); color: var(--cc-paper-ink); }

/* v1.4: shared confirm dialog (e.g. "clear draft"), replacing native
   window.confirm() — same .cc-dialog shell as Trip/Traveler, just a
   narrower width and no form fields. */
.cc-dialog--confirm{ width: min(420px, calc(100vw - 2rem)); }
.cc-dialog--confirm .cc-dialog__body{ max-height:none; }
.cc-dialog--confirm p{ color: var(--cc-paper-dim); font-size:.95rem; line-height:1.55; }

/* toast + success */
.cc-toast{
  position:fixed; left:50%; bottom: calc(74px + env(safe-area-inset-bottom));
  translate:-50% 0; z-index:30;
  display:flex; align-items:center; gap:.6rem;
  background: var(--cc-bg-deep); color: var(--cc-ink);
  border:1px solid var(--cc-line); border-radius:6px;
  box-shadow: 0 18px 40px -18px oklch(12% 0.01 85 / .7);
  padding:.75rem 1.3rem; font: 500 .88rem/1.3 var(--cc-sans);
  opacity:0; pointer-events:none; transition: opacity .3s var(--cc-ease), transform .3s var(--cc-ease);
  transform: translateY(4px);
  max-width: min(92vw, 30rem); text-align:center;
}
.cc-toast.is-on{ opacity:1; transform:none; }
.cc-toast::before{
  content:""; flex:none; width:6px; height:6px; border-radius:50%;
  background: var(--cc-gold);
}

/* v1.4: styled confirmation receipt, replacing the raw <pre> text
   dump as the primary view. The plain-text version (still needed for
   Copy Itinerary / paste-into-email) moves into a collapsed <details>
   rather than being the first thing shown. */
.cc-done{ display:grid; gap:1.4rem; max-width:44rem; }
.cc-done__seal{
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: oklch(48% 0.13 70 / .12); border:1px solid oklch(48% 0.13 70 / .4);
  color: oklch(48% 0.13 70); font-size:1.3rem; line-height:1;
}
.cc-done h3{ font-size:1.5rem; }
.cc-done__id{
  font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
  color: var(--cc-paper-dim); margin-top:-.6rem;
}
.cc-done__stats{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap:1px; background: var(--cc-paper-line);
  border:1px solid var(--cc-paper-line); border-radius:5px; overflow:hidden;
}
.cc-done__stat{ background:#fff; padding:.9rem 1rem; }
.cc-done__stat span{
  display:block; font: 700 .64rem/1 var(--cc-sans); letter-spacing:.08em;
  text-transform:uppercase; color: var(--cc-paper-dim); margin-bottom:.4rem;
}
.cc-done__stat b{ font-family: var(--cc-serif); font-size:1.25rem; }
.cc-done__trips{ display:grid; gap:.6rem; }
.cc-done__trip{
  display:flex; flex-wrap:wrap; gap:.3rem 1rem; align-items:baseline;
  border:1px solid var(--cc-paper-line); border-radius:4px;
  padding:.8rem 1rem; font-size:.88rem;
}
.cc-done__trip b{ font-family: var(--cc-serif); font-size:1rem; }
.cc-done__trip small{ color: var(--cc-paper-dim); }
.cc-done__trip .cc-done__price{ margin-left:auto; font-family: var(--cc-serif); font-weight:600; }
.cc-done__raw{ border-top:1px solid var(--cc-paper-line); padding-top:1rem; }
.cc-done__raw summary{
  cursor:pointer; font: 600 .82rem/1 var(--cc-sans); color: oklch(48% 0.13 70);
  letter-spacing:.03em;
}
.cc-done pre{
  margin:.9rem 0 0; white-space:pre-wrap; word-break:break-word;
  background: oklch(97% 0.004 85); border:1px solid var(--cc-paper-line);
  border-radius:4px; padding:1.2rem; font-size:.78rem; line-height:1.55;
  max-height:340px; overflow:auto;
}
.cc-done__acts{ display:flex; flex-wrap:wrap; gap:.8rem; }

/* ============================================================
   S4b · ASSISTANT EXPLANATION (dark, condensed)
============================================================ */
.cc-asst{ padding-block: var(--cc-sec); background: var(--cc-bg); }
.cc-asst__grid{
  display:grid; gap: clamp(2rem, 4.5vw, 4.5rem);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items:start;
}
.cc-asst__copy > * + *{ margin-top:1.1rem; }
.cc-asst__list{ margin:0; padding:0; list-style:none; border-top:1px solid var(--cc-line); }
.cc-asst__list li{
  padding:.75rem 0 .75rem 1.3rem; position:relative;
  border-bottom:1px solid var(--cc-line-soft);
  font-size:.95rem; color: var(--cc-ink-dim);
}
.cc-asst__list li::before{ content:""; position:absolute; left:0; top:1.3rem; width:.55rem; height:1px; background: var(--cc-gold); }
.cc-asst__cta{ margin-top:1.8rem; }
@media (max-width: 860px){ .cc-asst__grid{ grid-template-columns:1fr; } }

/* ============================================================
   S5 · CORPORATE SERVICES (editorial stack, alternating)
============================================================ */
.cc-svcs{ padding-block: var(--cc-sec); background: var(--cc-bg); }
.cc-svcs__head{ max-width:52rem; }
.cc-svcs__head .cc-lede{ margin-top:1.2rem; }
.cc-svc{
  display:grid; gap: clamp(1.8rem, 4vw, 4rem);
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr);
  align-items:start;
  padding-block: clamp(2.6rem, 5vw, 3.8rem);
  border-top:1px solid var(--cc-line-soft);
  margin-top: clamp(2.6rem, 5vw, 3.8rem);
}
.cc-svcs__head + .cc-svc{ border-top:0; }
.cc-svc__label{
  font-family: var(--cc-serif); font-style:italic;
  font-size:1rem; color: var(--cc-gold); letter-spacing:.02em;
}
.cc-svc h3{ margin-top:.5rem; }
.cc-svc__body > * + *{ margin-top:1rem; }
.cc-svc__tags{ margin:1.2rem 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; }
.cc-svc__tags li{
  font-size:.82rem; color: var(--cc-ink-dim);
  border:1px solid var(--cc-line); border-radius:99px;
  padding:.32rem .85rem;
}
.cc-svc__img{ border-radius:4px; overflow:hidden; margin-top:1.4rem; }
.cc-svc__img img{ width:100%; height:100%; object-fit:cover; aspect-ratio: 16/9; }
@media (max-width: 860px){ .cc-svc{ grid-template-columns:1fr; gap:1.2rem; } }

/* ============================================================
   S6 · HOW IT WORKS (real sequence → numbered timeline)
============================================================ */
.cc-how{ padding-block: var(--cc-sec); background: var(--cc-bg-deep); }
.cc-how__head{ display:flex; flex-wrap:wrap; gap:1.5rem 3rem; align-items:flex-end; justify-content:space-between; margin-bottom: clamp(2.5rem,5vw,4rem); }
.cc-steps{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 0 1.6rem;
  counter-reset: ccstep;
}
.cc-steps li{
  counter-increment: ccstep;
  border-top:1px solid var(--cc-line);
  padding-top:1.3rem; position:relative;
}
.cc-steps li::before{
  content: counter(ccstep, decimal-leading-zero);
  font-family: var(--cc-serif); font-size:1.6rem; font-weight:500;
  color: var(--cc-gold); display:block; margin-bottom:.7rem;
}
.cc-steps li::after{
  content:""; position:absolute; top:-3px; left:0;
  width:2.2rem; height:5px; background: var(--cc-gold);
}
.cc-steps h3{ font-family: var(--cc-sans); font-size:1.02rem; font-weight:600; line-height:1.3; }
.cc-steps p{ margin-top:.6rem; font-size:.92rem; color: var(--cc-ink-dim); }
@media (max-width: 1020px){ .cc-steps{ grid-template-columns: repeat(2, 1fr); gap:2.2rem 1.6rem; } }
@media (max-width: 560px){ .cc-steps{ grid-template-columns: 1fr; gap:1.9rem; } }

/* ============================================================
   S7 · FLEET
============================================================ */
.cc-fleet{ padding-block: var(--cc-sec); background: var(--cc-bg); }
.cc-fleet__head{ max-width:52rem; margin-bottom: clamp(2.5rem,5vw,4rem); }
.cc-fleet__head .cc-body{ margin-top:1.1rem; }
.cc-fleet__grid{
  display:grid; gap: clamp(1.4rem, 2.5vw, 2rem);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.cc-car{ display:flex; flex-direction:column; }
.cc-car__img{
  border-radius:4px; overflow:hidden; background: var(--cc-surface);
  aspect-ratio: 4/3;
}
.cc-car__img img{ width:100%; height:100%; object-fit:cover; transition: transform .8s var(--cc-ease); }
.cc-car:hover .cc-car__img img{ transform: scale(1.04); }
@media (prefers-reduced-motion: reduce){ .cc-car:hover .cc-car__img img{ transform:none; } }
.cc-car h3{ margin-top:1.2rem; font-size:1.3rem; }
.cc-car__spec{ margin-top:.35rem; font-size:.85rem; color: var(--cc-gold); letter-spacing:.02em; }
.cc-car p{ margin-top:.7rem; font-size:.93rem; color: var(--cc-ink-dim); flex:1; }
.cc-car a{ margin-top:1rem; align-self:flex-start; font-size:.9rem; }
.cc-fleet__note{ margin-top:2.6rem; font-size:.92rem; color: var(--cc-ink-dim); }

/* ============================================================
   S8 · THE CROWN STANDARD (editorial, oversized keywords)
============================================================ */
.cc-std{ padding-block: var(--cc-sec); background: var(--cc-bg-deep); }
.cc-std__intro{ max-width: 46rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.cc-std__intro .cc-lede{ margin-top:1.2rem; }

.cc-std__cabin{
  max-width: 52rem;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
  border-bottom: 1px solid var(--cc-line);
}
.cc-std__cabin p{ margin-top: 1rem; }
.cc-std__amenities{
  margin: 1.4rem 0 0; padding: 0; list-style: none;
  display: flex; flex-wrap: wrap; gap: .6rem;
}
.cc-std__amenities li{
  font-size: .85rem; color: var(--cc-ink-dim);
  border: 1px solid var(--cc-line); border-radius: 99px;
  padding: .32rem .9rem;
}
.cc-std__item{
  display:grid; gap:.8rem 3rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items:baseline;
  padding-block: clamp(1.8rem, 3.5vw, 2.6rem);
  border-top:1px solid var(--cc-line-soft);
}
.cc-std__item h3{
  font-size: clamp(1.7rem, 3.4vw, 2.5rem);
  font-weight:500;
}
.cc-std__item h3 em{ font-style:italic; color: var(--cc-gold); }
.cc-std__item p{ color: var(--cc-ink-dim); }
@media (max-width: 860px){ .cc-std__item{ grid-template-columns:1fr; } }

/* ============================================================
   S9 · ACCOUNTS & RETAINERS (split panels)
============================================================ */
.cc-acct{ padding-block: var(--cc-sec); background: var(--cc-bg); }
.cc-acct__head{ max-width:50rem; margin-bottom: clamp(2.5rem,5vw,4rem); }
.cc-acct__head .cc-body{ margin-top:1.1rem; }
.cc-acct__split{
  display:grid; gap:1px; background: var(--cc-line);
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  border:1px solid var(--cc-line); border-radius:4px; overflow:hidden;
}
.cc-acct__panel{ background: var(--cc-surface); padding: clamp(1.8rem, 3.5vw, 2.8rem); display:flex; flex-direction:column; }
.cc-acct__panel h3{ font-size:1.5rem; }
.cc-acct__panel > p{ margin-top:1rem; color: var(--cc-ink-dim); }
.cc-acct__panel ul{ margin:1.4rem 0 0; padding:0; list-style:none; flex:1; }
.cc-acct__panel li{
  padding:.5rem 0 .5rem 1.3rem; position:relative;
  font-size:.94rem; color: var(--cc-ink-dim);
  border-bottom:1px solid var(--cc-line-soft);
}
.cc-acct__panel li:last-child{ border-bottom:0; }
.cc-acct__panel li::before{ content:""; position:absolute; left:0; top:1.05rem; width:.55rem; height:1px; background: var(--cc-gold); }
.cc-acct__panel .cc-btn{ margin-top:1.8rem; align-self:flex-start; }
.cc-acct__aud{ margin-top:2.4rem; }

/* ============================================================
   S10 · DISTRICTS / AREAS
============================================================ */
.cc-areas{ padding-block: var(--cc-sec); background: var(--cc-bg-deep); }
.cc-areas__grid{
  display:grid; gap: clamp(2rem,4vw,4rem);
  grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr);
  align-items:start;
}
.cc-areas__head{ position:sticky; top:5.5rem; }
.cc-areas__head .cc-body{ margin-top:1.1rem; }
.cc-districts{ border-top:1px solid var(--cc-line); }
.cc-district{
  padding-block:1.5rem; border-bottom:1px solid var(--cc-line-soft);
}
.cc-district h3{ font-size:1.15rem; font-weight:600; display:flex; align-items:baseline; gap:.8rem; flex-wrap:wrap; }
.cc-district h3 a{ text-decoration:none; }
.cc-district p{ margin-top:.45rem; font-size:.93rem; color: var(--cc-ink-dim); }
.cc-areas__more{ margin-top:2rem; font-size:.93rem; color: var(--cc-ink-dim); }
@media (max-width: 900px){
  .cc-areas__grid{ grid-template-columns:1fr; }
  .cc-areas__head{ position:static; }
}

/* ============================================================
   S11 · REVIEWS
============================================================ */
.cc-rev{ padding-block: var(--cc-sec); background: var(--cc-bg); }
.cc-rev__head{ display:flex; flex-wrap:wrap; gap:1.2rem 3rem; align-items:flex-end; justify-content:space-between; margin-bottom: clamp(2.5rem,5vw,3.5rem); }
.cc-rev__score{ font-family: var(--cc-serif); font-size:1.1rem; color: var(--cc-gold); }
.cc-rev__grid{
  display:grid; gap: clamp(1.4rem,2.5vw,2rem);
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
}
.cc-quote{
  border-top:1px solid var(--cc-line);
  padding-top:1.4rem;
  display:flex; flex-direction:column;
}
.cc-quote__ctx{ font-size:.75rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color: var(--cc-ink-dim); }
.cc-quote__stars{ color: var(--cc-gold); font-size:.85rem; letter-spacing:.2em; margin-top:.6rem; }
.cc-quote blockquote{
  margin:1rem 0 0; flex:1;
  font-family: var(--cc-serif); font-size:1.08rem; line-height:1.5;
}
.cc-quote figcaption{ margin-top:1.1rem; font-size:.9rem; color: var(--cc-ink-dim); }
.cc-rev__cta{ margin-top:2.6rem; }

/* ============================================================
   S12 · FAQ
============================================================ */
.cc-faq{ padding-block: var(--cc-sec); background: var(--cc-bg-deep); }
.cc-faq__grid{
  display:grid; gap:clamp(2rem,4vw,4rem);
  grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr);
  align-items:start;
}
.cc-faq__head{ position:sticky; top:5.5rem; }
.cc-faq__head .cc-body{ margin-top:1.1rem; }
.cc-faq__list{ border-top:1px solid var(--cc-line); }
.cc-faq details{ border-bottom:1px solid var(--cc-line-soft); }
.cc-faq summary{
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:1.5rem;
  padding-block:1.25rem;
}
.cc-faq summary::-webkit-details-marker{ display:none; }
.cc-faq summary h3{
  font-family: var(--cc-sans); font-size:1.02rem; font-weight:600; line-height:1.4;
}
.cc-faq summary::after{
  content:"+"; flex:none;
  font-family: var(--cc-serif); font-size:1.5rem; line-height:1;
  color: var(--cc-gold);
  transition: rotate .3s var(--cc-ease);
}
.cc-faq details[open] summary::after{ rotate:45deg; }
@media (prefers-reduced-motion: reduce){ .cc-faq summary::after{ transition:none; } }
.cc-faq__a{ padding: 0 0 1.4rem; max-width:60ch; }
.cc-faq__a p{ color: var(--cc-ink-dim); font-size:.97rem; }
.cc-faq__a p + p{ margin-top:.8rem; }
@media (max-width: 900px){
  .cc-faq__grid{ grid-template-columns:1fr; }
  .cc-faq__head{ position:static; }
}

/* ============================================================
   S13 · FINAL CTA
============================================================ */
.cc-final{
  position:relative; isolation:isolate;
  padding-block: clamp(6rem, 14vw, 11rem);
  text-align:center;
  background:
    radial-gradient(60% 80% at 50% 110%, oklch(79% 0.115 88 / .14), transparent 70%),
    var(--cc-bg);
  border-top:1px solid var(--cc-line-soft);
}
.cc-final .cc-kicker{ justify-content:center; }
.cc-final .cc-kicker::after{ content:""; width:2.4rem; height:1px; background: var(--cc-gold); }
.cc-final .cc-h2{ font-size: clamp(2.4rem, 6vw, 4.2rem); margin-top:1.4rem; }
.cc-final .cc-lede{ margin:1.4rem auto 0; }
.cc-final__ctas{ display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center; margin-top:2.4rem; }
.cc-final__phone{ margin-top:1.6rem; font-size:1rem; }
.cc-final__phone a{ color: var(--cc-gold); text-decoration:none; font-weight:600; letter-spacing:.03em; }
.cc-final__support{ margin-top:2.8rem; font-size:.92rem; color: var(--cc-ink-dim); }

/* ---------- Mobile sticky reserve bar ---------- */
.cc-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:20;
  display:none; gap:1px;
  background: var(--cc-line);
  padding-bottom: env(safe-area-inset-bottom);
  border-top:1px solid var(--cc-line);
}
.cc-bar a{
  flex:1; display:flex; align-items:center; justify-content:center;
  min-height:56px; font:600 .92rem/1 var(--cc-sans); letter-spacing:.04em;
  text-decoration:none;
}
.cc-bar a:first-child{ background: var(--cc-gold); color: oklch(18% 0.02 85); }
.cc-bar a:last-child{ background: var(--cc-bg-deep); color: var(--cc-ink); }
@media (max-width: 700px){
  .cc-bar{ display:flex; }
  .cc-page{ padding-bottom: calc(57px + env(safe-area-inset-bottom)); }
}
