/*!
 * Quick Auto Center — site stylesheet.
 * Static port of the Claude Design prototype "Quick Auto Center Landing v2".
 * Section 1: design tokens, copied verbatim from the design system
 *   (_ds/quick-auto-center-design-system-ecd6ca21-.../tokens/: colors, typography, spacing, effects).
 *   Fonts (tokens/fonts.css) are loaded with a <link> in index.html instead of @import.
 * Section 2: base, design-system component classes, page sections.
 * Breakpoints mirror the prototype renderVals(): 560 / 640 / 720 / 768 / 900 / 960 / 1024 / 1200.
 */

/* =============================================================================
   Design tokens (verbatim)
   ============================================================================= */
/* Quick Auto Center — colour system. Source: Brandbook v1.0, p.4–5. */
:root{
/* Brand palette — exact brandbook values */
--qac-royal-blue:#004bd1;
--qac-quantum:#091119;
--qac-bdazzled-blue:#3f5a77;
--qac-white:#ffffff;
--qac-ecru:#c4b690;

/* Royal Blue ramp — derived for interaction states only. Royal 500 is the brandbook value. */
--qac-royal-700:#00329a;
--qac-royal-600:#003fb2;
--qac-royal-500:#004bd1;
--qac-royal-400:#2f6ee0;
--qac-royal-300:#7ea6ee;
--qac-royal-100:#d5e2f8;
--qac-royal-050:#eef3fd;

/* Quantum ramp — the dark neutral spine */
--qac-quantum-900:#050a0e;
--qac-quantum-800:#091119;
--qac-quantum-700:#131e29;
--qac-quantum-600:#1d2b39;

/* Bdazzled ramp — secondary cool neutral, for muted text and hairlines */
--qac-bdazzled-600:#2d4258;
--qac-bdazzled-500:#3f5a77;
--qac-bdazzled-400:#64809d;
--qac-bdazzled-300:#93a9be;
--qac-bdazzled-200:#c3d0dc;
--qac-bdazzled-100:#e2e8ee;

/* Ecru ramp — the single warm note; paper, plaques and light CTAs */
--qac-ecru-500:#c4b690;
--qac-ecru-300:#ded5bb;
--qac-ecru-200:#efe9d9;
--qac-ecru-100:#f7f3ea;

/* ---- Semantic aliases ---- */
--surface-page:var(--qac-white);
--surface-page-dark:var(--qac-quantum-800);
--surface-card:var(--qac-white);
--surface-card-dark:var(--qac-quantum-700);
--surface-muted:var(--qac-bdazzled-100);
--surface-paper:var(--qac-ecru-100);
--surface-brand:var(--qac-royal-500);
--surface-inverse:var(--qac-quantum-800);

--text-heading:var(--qac-quantum-800);
--text-body:var(--qac-bdazzled-600);
--text-muted:var(--qac-bdazzled-500);
--text-on-dark:var(--qac-white);
--text-on-dark-muted:var(--qac-bdazzled-300);
--text-on-brand:var(--qac-white);
--text-accent:var(--qac-royal-500);
--text-link:var(--qac-royal-500);
--text-link-hover:var(--qac-royal-700);

--border-hairline:var(--qac-bdazzled-100);
--border-default:var(--qac-bdazzled-200);
--border-strong:var(--qac-quantum-800);
--border-brand:var(--qac-royal-500);
--border-on-dark:rgba(255,255,255,.18);

--action-primary:var(--qac-royal-500);
--action-primary-hover:var(--qac-royal-600);
--action-primary-active:var(--qac-royal-700);
--action-cream:var(--qac-ecru-100);
--action-cream-hover:var(--qac-ecru-200);
--focus-ring:var(--qac-royal-400);

/* Status — not defined in the brandbook; derived to sit beside Royal Blue.
   Flagged in readme.md › Intentional additions. */
--status-success:#1f8a5b;
--status-warning:#c98a12;
--status-danger:#c0342b;
--status-info:var(--qac-royal-500);
--status-success-bg:#e6f4ee;
--status-warning-bg:#fbf1dd;
--status-danger-bg:#f9e7e6;
--status-info-bg:var(--qac-royal-050);
}

/* Quick Auto Center — typography. Source: Brandbook v1.0, p.6. */
:root{
/* Families. Display is ALWAYS italic — the brandbook never sets it upright. */
--font-display:"Kanit","Kallisto",system-ui,sans-serif;
--font-text:"Titillium Web",system-ui,sans-serif;
--font-mono:ui-monospace,"SFMono-Regular",Menlo,monospace;

/* Weights */
--weight-display:800;
--weight-bold:700;
--weight-semibold:600;
--weight-regular:400;
--weight-light:300;

/* Display scale — Kanit/Kallisto italic, tight leading, slight negative tracking */
--type-display-1:clamp(44px,6vw,76px);
--type-display-2:clamp(34px,4.4vw,56px);
--type-display-3:clamp(26px,3vw,40px);
--type-display-4:28px;
--leading-display:1.04;
--tracking-display:-0.01em;

/* Text scale — Titillium Web */
--type-title:22px;
--type-subtitle:18px;
--type-body-lg:18px;
--type-body:16px;
--type-body-sm:14px;
--type-caption:13px;
--type-micro:11px;
--leading-body:1.55;
--leading-tight:1.3;

/* Eyebrow / nav / button labels: Titillium Bold, wide tracking, uppercase */
--tracking-eyebrow:0.14em;
--tracking-wide:0.06em;
--type-eyebrow:12px;
--type-button:15px;
}

/* Quick Auto Center — spacing & layout. 4px base, doubling at the top end. */
:root{
--space-0:0;
--space-1:4px;
--space-2:8px;
--space-3:12px;
--space-4:16px;
--space-5:20px;
--space-6:24px;
--space-8:32px;
--space-10:40px;
--space-12:48px;
--space-16:64px;
--space-20:80px;
--space-24:96px;
--space-32:128px;

/* Layout */
--layout-max:1240px;
--layout-gutter:24px;
--layout-gutter-lg:48px;
--section-y:var(--space-24);
--section-y-sm:var(--space-16);

/* Logo clear space: brandbook p.9 — the width of the "c" in Quick, ~0.25 of the symbol width */
--logo-clearspace:0.25em;
}

/* Quick Auto Center — radii, borders, elevation, motion.
   The identity is built from hard-cut blocks and chevrons: corners stay near-square. */
:root{
--radius-none:0;
--radius-sm:2px;
--radius-md:4px;
--radius-lg:6px;
--radius-pill:999px;

--border-width:1px;
--border-width-thick:2px;
--rule-accent:4px; /* the blue keyline under headings and beside list items */

/* Elevation — cool, low-spread. Never warm or coloured drop shadows. */
--shadow-xs:0 1px 2px rgba(9,17,25,.06);
--shadow-sm:0 2px 6px rgba(9,17,25,.08);
--shadow-md:0 8px 20px rgba(9,17,25,.10);
--shadow-lg:0 18px 44px rgba(9,17,25,.16);
--shadow-brand:0 10px 28px rgba(0,75,209,.24);
--shadow-inset-hairline:inset 0 -1px 0 rgba(9,17,25,.06);

/* Motion — mechanical and brisk. Nothing bounces. */
--ease-standard:cubic-bezier(.2,.6,.2,1); /* @kind other */
--ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
--ease-in:cubic-bezier(.4,0,1,1); /* @kind other */
--duration-fast:120ms; /* @kind other */
--duration-base:180ms; /* @kind other */
--duration-slow:320ms; /* @kind other */

/* Overlays */
--scrim-image:linear-gradient(180deg,rgba(9,17,25,0) 0%,rgba(9,17,25,.78) 100%); /* @kind color */
--scrim-image-left:linear-gradient(90deg,rgba(9,17,25,.86) 0%,rgba(9,17,25,0) 72%); /* @kind color */
--overlay-dim:rgba(9,17,25,.62);
}


/* =============================================================================
   Base
   ============================================================================= */
*,*::before,*::after{box-sizing:border-box;}
[hidden]{display:none !important;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-text);-webkit-font-smoothing:antialiased;}
a{color:var(--text-link);text-underline-offset:3px;}
a:hover{color:var(--text-link-hover);}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}
img{max-width:100%;}
button,input,select,textarea{font:inherit;}
p,h1,h2,h3,ul,ol,dl,dd,figure,blockquote{margin:0;}
.m0{margin:0;}
.bold{font-weight:var(--weight-bold);}
.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;}
.ic{display:block;flex:none;}
.muted-on-dark{color:var(--text-on-dark-muted);}

@keyframes qac-ribbon{0%,86%{transform:translateX(0);}90%{transform:translateX(-5px);}94%{transform:translateX(2px);}100%{transform:translateX(0);}}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* Page root (prototype root div) */
.page{background:var(--surface-page);color:var(--text-body);font-family:var(--font-text);font-size:var(--type-body);line-height:var(--leading-body);overflow-x:clip;}

/* Content column */
.wrap{max-width:var(--layout-max);margin:0 auto;padding-left:clamp(var(--layout-gutter),4vw,var(--layout-gutter-lg));padding-right:clamp(var(--layout-gutter),4vw,var(--layout-gutter-lg));}

/* Placeholder values from the prototype CONFIG: visible on purpose until replaced.
   grep for class="ph" to find every one. */
.ph{background:var(--qac-ecru-200);color:var(--qac-quantum-800);outline:1px dashed var(--qac-bdazzled-400);outline-offset:-1px;border-radius:var(--radius-sm);padding:0 .3em;box-decoration-break:clone;-webkit-box-decoration-break:clone;}

/* Hero entrance: hidden only until main.js animates it in (see inline script in <head>) */
.hero-pending [data-hero]{opacity:0;transform:translateY(14px);}
.hero-pending [data-hero][data-fx="right"]{transform:translateX(24px);}

/* =============================================================================
   Design-system components (ports of _ds_bundle.js)
   ============================================================================= */

/* ---- Button ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-text);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);line-height:1;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;white-space:nowrap;margin:0;
  transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard);
  padding:13px 26px;font-size:var(--type-button);}
.btn--lg{padding:17px 38px;font-size:17px;}
.btn--block{display:flex;width:100%;}
.btn--primary{background:var(--action-primary);color:var(--text-on-brand);border:2px solid var(--action-primary);}
.btn--primary:hover{background:var(--action-primary-hover);border-color:var(--action-primary-hover);color:var(--text-on-brand);}
.btn--cream{background:var(--action-cream);color:var(--action-primary);border:2px solid var(--action-cream);}
.btn--cream:hover{background:var(--action-cream-hover);border-color:var(--action-cream-hover);color:var(--action-primary);}
.btn--outline{background:transparent;color:var(--action-primary);border:2px solid var(--action-primary);}
.btn--outline:hover{background:var(--action-primary);color:var(--text-on-brand);}
.btn--outline-light{background:transparent;color:var(--text-on-dark);border:2px solid rgba(255,255,255,.55);}
.btn--outline-light:hover{background:var(--text-on-dark);color:var(--qac-quantum-800);border-color:var(--text-on-dark);}
.btn--dark{background:var(--qac-quantum-800);color:var(--text-on-dark);border:2px solid var(--qac-quantum-800);}
.btn--dark:hover{background:var(--qac-quantum-700);border-color:var(--qac-quantum-700);color:var(--text-on-dark);}
.btn--ghost{background:transparent;color:var(--action-primary);border:2px solid transparent;}
.btn--ghost:hover{background:var(--qac-royal-050);color:var(--action-primary);}
.btn:active{background:var(--action-primary-active);border-color:var(--action-primary-active);color:var(--text-on-brand);}
.btn:disabled{opacity:.4;cursor:not-allowed;}
.btn--primary:disabled{background:var(--action-primary);border-color:var(--action-primary);color:var(--text-on-brand);}
@media (max-width:767px){ .btn--block-mobile{display:flex;width:100%;} }
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3);}

/* ---- Card ---- */
.card{background:var(--surface-card);border:var(--border-width) solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);color:var(--text-body);padding:var(--space-6);
  transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard);}
.card--interactive{cursor:pointer;}
.card--interactive:hover{border-color:var(--border-brand);box-shadow:var(--shadow-sm);}
.card--dark{background:var(--surface-card-dark);border-color:var(--border-on-dark);color:var(--text-on-dark);}
.grid-cell{display:grid;}

/* ---- DisplayHeading ---- */
.dh{font-family:var(--font-display);font-style:italic;font-weight:var(--weight-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--text-heading);margin:0;text-wrap:balance;}
.dh--1{font-size:var(--type-display-1);}
.dh--2{font-size:var(--type-display-2);}
.dh--3{font-size:var(--type-display-3);}
.dh--4{font-size:var(--type-display-4);}
.dh__accent{color:var(--action-primary);}
.dh--light{color:var(--text-on-dark);}
.dh--light .dh__accent{color:var(--qac-royal-400);}

/* ---- Eyebrow ---- */
.eyebrow{margin:0;font-family:var(--font-text);font-weight:var(--weight-bold);font-size:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--action-primary);line-height:var(--leading-body);}
.eyebrow--light{color:var(--text-on-dark-muted);}

/* ---- Tag ---- */
.tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:5px 10px;border-radius:var(--radius-sm);font-family:var(--font-text);font-weight:var(--weight-bold);font-size:var(--type-micro);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;line-height:1.2;}
.tag--brand{background:var(--qac-royal-050);color:var(--qac-royal-700);}
.tag--neutral{background:var(--surface-muted);color:var(--text-body);}
.tag--dark{background:var(--qac-quantum-800);color:var(--text-on-dark);}
.tag--ecru{background:var(--qac-ecru-200);color:var(--qac-quantum-800);}

/* ---- StatBlock ---- */
.stat{text-align:left;}
.stat__value{font-family:var(--font-display);font-style:italic;font-weight:var(--weight-display);font-size:var(--type-display-3);line-height:1;color:var(--action-primary);font-variant-numeric:tabular-nums;}
.stat__label{margin-top:var(--space-2);font-family:var(--font-text);font-weight:var(--weight-bold);font-size:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted);}

/* ---- Field / Input / Select / Textarea ---- */
.field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;}
.field--full{grid-column:1 / -1;}
.field__label{font-family:var(--font-text);font-weight:var(--weight-bold);font-size:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted);line-height:var(--leading-body);}
.field__req{color:var(--status-danger);}
.field__msg{font-family:var(--font-text);font-size:var(--type-caption);color:var(--status-danger);line-height:var(--leading-body);}
.control{width:100%;box-sizing:border-box;font-family:var(--font-text);font-size:var(--type-body);line-height:1.4;color:var(--text-heading);background-color:var(--surface-page);
  border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:12px 14px;outline:none;outline-offset:2px;margin:0;
  transition:border-color var(--duration-fast) var(--ease-standard);}
.control:focus{border-color:var(--border-brand);outline:2px solid var(--focus-ring);}
.control[aria-invalid="true"],.control[aria-invalid="true"]:focus{border-color:var(--status-danger);}
.control::placeholder{color:var(--qac-bdazzled-400);opacity:1;}
.control--select{appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;}
.control--textarea{resize:vertical;}

/* ---- ContactLine ---- */
.contact-line{display:inline-flex;align-items:center;gap:var(--space-3);font-family:var(--font-text);font-weight:var(--weight-semibold);font-size:var(--type-body-lg);color:var(--text-heading);text-decoration:none;}
.contact-line:hover{color:var(--text-heading);}
.contact-line__ic{width:30px;height:30px;flex:none;border-radius:50%;background:var(--action-primary);color:var(--text-on-brand);display:flex;align-items:center;justify-content:center;}

/* ---- ServiceIcon ---- */
.svc-icon{width:40px;height:auto;display:block;}

/* ---- Star rating (prototype stars()) ---- */
.stars{display:inline-flex;align-items:center;gap:2px;flex:none;}
.star{position:relative;display:block;}
.star--16{width:16px;height:16px;}
.star--18{width:18px;height:18px;}
.star svg{display:block;}
.star__fill{position:absolute;left:0;top:0;bottom:0;width:100%;overflow:hidden;}
.stars--dark .star__on{fill:var(--qac-ecru);}
.stars--dark .star__off{fill:var(--border-on-dark);}
.stars--light .star__on{fill:var(--action-primary);}
.stars--light .star__off{fill:var(--qac-bdazzled-200);}

/* ---- Open/closed status dot ---- */
.status-dot{width:8px;height:8px;flex:none;display:inline-block;}
.status-dot--dark{background:var(--qac-bdazzled-300);}
.status-dot--light{background:var(--qac-bdazzled-400);}
[data-open="true"] .status-dot{background:var(--status-success);}


/* =============================================================================
   Layout helpers shared by sections
   ============================================================================= */
.section{padding:clamp(var(--section-y-sm),8vw,var(--section-y)) 0;scroll-margin-top:72px;}
.section--muted{background:var(--surface-muted);}
.stack-lg{display:flex;flex-direction:column;gap:clamp(var(--space-8),4vw,var(--space-12));}
.stack-md{display:flex;flex-direction:column;gap:var(--space-8);}
.stack-title{display:flex;flex-direction:column;gap:var(--space-3);}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-5) var(--space-10);}
.section-head--wide-gap{gap:var(--space-6) var(--space-10);}
.section-head__title{display:flex;flex-direction:column;gap:var(--space-3);}
.section-head__aside{margin:0;text-wrap:pretty;}
.fineprint{margin:0;font-size:var(--type-caption);color:var(--text-muted);}
.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);font-weight:var(--weight-bold);font-size:var(--type-body-sm);}
.check-list li{display:flex;align-items:center;gap:var(--space-2);}
.check-list--dark{color:var(--text-heading);}
.check-ic{display:flex;flex:none;color:var(--action-primary);}

/* =============================================================================
   01 Skip link + utility bar
   ============================================================================= */
.skip{position:absolute;left:var(--space-3);top:-120px;z-index:100;background:var(--qac-white);color:var(--text-heading);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:var(--weight-bold);text-decoration:none;box-shadow:var(--shadow-md);}
.skip:focus{top:var(--space-3);}
.skip:hover{color:var(--text-heading);}

.util{display:none;background:var(--qac-quantum-900);color:var(--text-on-dark);font-size:var(--type-caption);--focus-ring:var(--qac-white);}
.util__in{max-width:var(--layout-max);margin:0 auto;min-height:38px;padding:var(--space-2) clamp(var(--layout-gutter),4vw,var(--layout-gutter-lg));display:flex;align-items:center;gap:var(--space-6);}
.util__status{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-bold);}
.util__link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-on-dark);text-decoration:none;}
.util__link:hover{color:var(--text-on-dark);text-decoration:underline;}
.util__link--phone{font-weight:var(--weight-bold);}
.util__es{margin-left:auto;color:var(--text-on-dark-muted);}
@media (min-width:1024px){ .util{display:block;} }

/* =============================================================================
   02 Header (sticky, transparent over the hero until scrolled)
   ============================================================================= */
.hdr{position:sticky;top:0;z-index:40;background:transparent;color:var(--text-on-brand);box-shadow:none;--focus-ring:var(--qac-white);
  transition:background var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard);}
.hdr.is-solid{background:var(--surface-brand);}
.hdr.is-scrolled{box-shadow:var(--shadow-md);}
.hdr__in{max-width:var(--layout-max);margin:0 auto;height:80px;padding:0 clamp(var(--layout-gutter),4vw,var(--layout-gutter-lg));display:flex;align-items:center;gap:var(--space-6);transition:height var(--duration-base) var(--ease-standard);}
.hdr.is-scrolled .hdr__in{height:64px;}
.hdr__brand{display:flex;align-items:center;flex:none;}
.hdr__logo{display:block;height:52px;width:auto;transition:height var(--duration-base) var(--ease-standard);}
.hdr.is-scrolled .hdr__logo{height:40px;}
.hdr__logo--white{display:none;}
.hdr.is-solid .hdr__logo--white{display:block;}
.hdr.is-solid .hdr__logo--duo{display:none;}
.hdr__nav,.hdr__desk-actions{display:none;}
.hdr__link{color:var(--text-on-brand);font-weight:var(--weight-bold);font-size:var(--type-body-sm);text-decoration:none;padding:var(--space-2) 0;border-bottom:2px solid transparent;transition:border-color var(--duration-fast) var(--ease-standard);}
.hdr__link:hover{color:var(--text-on-brand);border-bottom-color:var(--qac-white);}
.hdr__link[aria-current="true"]{border-bottom-color:var(--qac-white);}
.hdr__compact{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);}
.hdr__book{display:none;}
.hdr__menu-btn{width:48px;height:48px;flex:none;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;color:var(--text-on-brand);border:2px solid rgba(255,255,255,.55);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard);}
.hdr__menu-btn:hover{background:var(--qac-royal-600);}
.hdr__menu-btn .ic-close{display:none;}
.hdr__menu-btn[aria-expanded="true"] .ic-close{display:block;}
.hdr__menu-btn[aria-expanded="true"] .ic-menu{display:none;}
@media (min-width:640px){ .hdr__book{display:inline-flex;} }
/* Small phones (<360px): logo + Call + menu must fit without clipping the menu button */
@media (max-width:359px){
  .hdr__in{gap:var(--space-3);padding:0 var(--space-4);}
  .hdr__logo,.hdr.is-scrolled .hdr__logo{height:40px;}
}
@media (min-width:1024px){
  .hdr__in{height:104px;}
  .hdr.is-scrolled .hdr__in{height:76px;}
  .hdr__logo{height:72px;}
  .hdr.is-scrolled .hdr__logo{height:52px;}
  .hdr__nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-6);}
  .hdr__desk-actions{display:flex;align-items:center;gap:var(--space-3);}
  .hdr__compact{display:none;}
  .mmenu{display:none !important;}
}

/* Mobile menu */
.mmenu{background:var(--surface-page);color:var(--text-heading);border-top:var(--border-width) solid var(--border-hairline);box-shadow:var(--shadow-md);padding:var(--space-2) clamp(var(--layout-gutter),4vw,var(--layout-gutter-lg)) var(--space-6);--focus-ring:var(--qac-royal-400);}
.mmenu__link{min-height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:var(--border-width) solid var(--border-hairline);color:var(--text-heading);font-weight:var(--weight-bold);font-size:var(--type-subtitle);text-decoration:none;}
.mmenu__link:hover{color:var(--text-heading);}
.mmenu__chev{display:flex;color:var(--action-primary);}
.mmenu__actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3);margin-top:var(--space-5);}

/* =============================================================================
   03 Hero (pulled up under the transparent header)
   ============================================================================= */
.hero{background:var(--surface-inverse);color:var(--text-on-dark);scroll-margin-top:72px;margin-top:-80px;--focus-ring:var(--qac-white);}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr);}
.hero__text{min-width:0;}
.hero__inner{max-width:var(--layout-max);margin-left:auto;margin-right:auto;
  padding:calc(80px + clamp(var(--space-5),3.5vw,var(--space-12))) clamp(var(--layout-gutter),4vw,var(--layout-gutter-lg)) clamp(var(--space-10),5vw,var(--space-20));
  display:flex;flex-direction:column;gap:var(--space-5);}
.hero__status{margin:0;display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--type-body-sm);font-weight:var(--weight-bold);color:var(--text-on-dark);}
.hero__title{min-width:0;}
.hero__lede{display:flex;flex-direction:column;gap:var(--space-2);}
.hero__claim{margin:0;max-width:30ch;font-size:clamp(var(--type-body-lg),1.8vw,var(--type-title));line-height:var(--leading-tight);font-weight:var(--weight-bold);color:var(--text-on-dark);text-wrap:pretty;}
.hero__sub{margin:0;max-width:44ch;color:var(--text-on-dark-muted);text-wrap:pretty;}
.hero__trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-6);font-size:var(--type-body-sm);color:var(--text-on-dark);}
.hero__trust li{display:flex;align-items:center;gap:var(--space-2);}
.hero__lang-ic{display:flex;color:var(--qac-royal-300);}
.hero__chips{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-5);border-top:var(--border-width) solid var(--border-on-dark);}
.hero__chips-label{margin:0;font-weight:var(--weight-bold);font-size:var(--type-subtitle);color:var(--text-on-dark);}
.hero__chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2);}
.hero__media{position:relative;min-width:0;min-height:0;aspect-ratio:4 / 3;background:var(--qac-quantum-700);color:var(--text-on-dark);}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;max-width:none;}
.hero__scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg, #091119 0%, rgba(9,17,25,.35) 22%, rgba(9,17,25,0) 45%);}
/* Option B (compact layout only, <1024px): the photo fills the whole hero behind the text
   instead of stacking below it. Scrim = uniform base dim (rgba(9,17,25,.55)) + a vertical
   gradient: darker at the very top (logo), lightest just below the header,
   ~72% total dim behind the headline, ~83% from the claim/subtitle down. Stops are in px because the text column
   starts at a fixed offset (header 80px + padding); two sets for the 3-4 line headline
   (<640px) and the 1-2 line headline (640-1023px). Desktop rules below are untouched. */
@media (max-width:1023px){
  .hero{position:relative;}
  .hero__text{position:relative;z-index:1;}
  .hero__media{position:absolute;inset:0;z-index:0;aspect-ratio:auto;min-height:0;}
  .hero__img{object-position:center 40%;}
  .hero-pending .hero__media[data-fx="right"]{transform:none;}
  /* Over a photo, royal-400 fails 3:1 against the bright canopy; royal-300 (DS ramp) passes with the headline band at ~72% dim. */
  .hero .dh--light .dh__accent{color:var(--qac-royal-300);}
  .hero__scrim{background:
    linear-gradient(180deg, rgba(9,17,25,.6) 0, rgba(9,17,25,.12) 90px, rgba(9,17,25,.4) 140px, rgba(9,17,25,.4) 225px, rgba(9,17,25,.62) 262px, rgba(9,17,25,.7) 100%),
    linear-gradient(rgba(9,17,25,.55), rgba(9,17,25,.55));}
}
@media (max-width:639px){
  /* Phone crop: zoom into the service bays (lifts, techs, cars; source focal ~x420 y700 of 1086x1448),
     cropping the canopy and the sidewalk. Origin solved so the focal point lands mid-hero at 390px. */
  .hero__media{overflow:hidden;}
  .hero__img{transform:scale(1.5);transform-origin:-6.8% 45%;}
  .hero__scrim{background:
    linear-gradient(180deg, rgba(9,17,25,.6) 0, rgba(9,17,25,.12) 90px, rgba(9,17,25,.4) 136px, rgba(9,17,25,.4) 290px, rgba(9,17,25,.62) 345px, rgba(9,17,25,.7) 100%),
    linear-gradient(rgba(9,17,25,.55), rgba(9,17,25,.55));}
}
@media (min-width:1024px){
  .hero{margin-top:-104px;}
  .hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .hero__inner{max-width:calc(var(--layout-max) / 2);margin-right:0;padding-top:calc(104px + clamp(var(--space-5),3.5vw,var(--space-12)));}
  .hero__status{display:none;}
  .hero__media{min-height:560px;aspect-ratio:auto;}
  .hero__scrim{background:linear-gradient(180deg, rgba(9,17,25,.62) 0%, rgba(9,17,25,0) 20%), linear-gradient(90deg, #091119 0%, rgba(9,17,25,.72) 14%, rgba(9,17,25,.28) 34%, rgba(9,17,25,0) 58%);}
}

/* =============================================================================
   04 Recent jobs ticker
   ============================================================================= */
.ticker{background:var(--qac-quantum-700);color:var(--text-on-dark);border-top:var(--border-width) solid var(--border-on-dark);--focus-ring:var(--qac-white);}
.ticker__row{display:flex;align-items:stretch;}
.ticker__side{flex:none;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-2) clamp(var(--layout-gutter),4vw,var(--layout-gutter-lg));background:var(--qac-quantum-800);border-right:var(--border-width) solid var(--border-on-dark);}
.ticker__pause{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;color:var(--text-on-dark);border:var(--border-width) solid var(--border-on-dark);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard);}
.ticker__pause:hover{background:var(--qac-quantum-600);}
.ticker__pause .ic-play{display:none;}
.ticker__pause[aria-pressed="true"] .ic-play{display:block;}
.ticker__pause[aria-pressed="true"] .ic-pause{display:none;}
.ticker__vp{flex:1;min-width:0;overflow-x:hidden;overflow-y:hidden;display:flex;align-items:center;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent);}
.ticker__track{list-style:none;margin:0;padding:0;display:flex;width:max-content;will-change:transform;}
.ticker__item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);white-space:nowrap;border-right:var(--border-width) solid var(--border-on-dark);font-size:var(--type-body-sm);color:var(--text-on-dark);}
@media (max-width:639px) and (prefers-reduced-motion: no-preference){ .ticker__label{display:none;} }
@media (prefers-reduced-motion: reduce){ .ticker__pause{display:none;} .ticker__vp{overflow-x:auto;} }

/* =============================================================================
   05 Stats
   ============================================================================= */
.stats{background:var(--surface-page);border-bottom:var(--border-width) solid var(--border-hairline);}
.stats__wrap{padding-top:clamp(var(--space-10),5vw,var(--space-16));padding-bottom:clamp(var(--space-10),5vw,var(--space-16));}
.stats__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8) var(--space-6);}
.stats__item{padding-left:var(--space-5);border-left:var(--rule-accent) solid var(--action-primary);}
@media (max-width:639px){ .stats__grid{grid-template-columns:minmax(0,1fr);} }

/* =============================================================================
   06 Services
   ============================================================================= */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);}
@media (max-width:639px){ .svc-grid{grid-template-columns:minmax(0,1fr);} }
@media (min-width:1200px){ .svc-grid{grid-template-columns:repeat(4,minmax(0,1fr));} }
.svc{padding:var(--space-6);}
.svc__body{position:relative;display:flex;flex-direction:column;gap:var(--space-3);height:100%;}
.svc__body--dark{--focus-ring:var(--qac-white);}
.svc__ribbon{position:absolute;top:2px;right:calc(-1 * var(--space-6));display:inline-flex;align-items:center;gap:var(--space-2);background:var(--action-primary);color:var(--qac-white);font-weight:var(--weight-bold);font-size:var(--type-body-sm);line-height:1;
  padding:var(--space-2) var(--space-4) var(--space-2) var(--space-5);clip-path:polygon(12px 0, 100% 0, 100% 100%, 0 100%);animation:qac-ribbon 3.4s var(--ease-standard) infinite;}
.svc__icon{width:44px;height:44px;display:flex;align-items:center;justify-content:flex-start;color:var(--action-primary);}
.svc__name{margin:var(--space-1) 0 0;font-size:var(--type-title);line-height:var(--leading-tight);color:var(--text-heading);}
.svc__hook{margin:0;flex:1;text-wrap:pretty;}
.svc__cta{display:flex;padding-top:var(--space-2);}
.svc__stack{display:flex;flex-direction:column;gap:var(--space-2);}

/* =============================================================================
   07 How it works
   ============================================================================= */
.how{position:relative;overflow:hidden;background:var(--surface-brand);color:var(--text-on-brand);--focus-ring:var(--qac-white);}
.how__graphism{display:none;position:absolute;right:-110px;top:-150px;width:460px;height:auto;opacity:.14;pointer-events:none;max-width:none;}
@media (min-width:1024px){ .how__graphism{display:block;} }
.how__wrap{position:relative;display:flex;flex-direction:column;gap:clamp(var(--space-10),5vw,var(--space-16));}
.how__head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);max-width:620px;}
.how__lede{margin:0;max-width:50ch;font-size:var(--type-body-lg);color:var(--text-on-brand);text-wrap:pretty;}
.how__steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);}
@media (min-width:1024px){ .how__steps{grid-template-columns:repeat(3,minmax(0,1fr));} }
.how__step{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8) var(--space-6);border-top:var(--rule-accent) solid var(--qac-white);}
.how__num{font-family:var(--font-display);font-style:italic;font-weight:var(--weight-display);font-size:var(--type-display-1);line-height:.9;color:var(--qac-white);}
.how__num--blue{color:var(--action-primary);}
.how__title{margin:0;font-size:var(--type-title);line-height:var(--leading-tight);color:var(--text-on-brand);}
.how__title--dark{color:var(--text-heading);}
.how__text{margin:0;color:var(--text-on-brand);text-wrap:pretty;}
.how__text--dark{color:var(--text-body);}
.how__card{padding:var(--space-8) var(--space-6);}
.how__card-body{display:flex;flex-direction:column;gap:var(--space-4);height:100%;}

/* =============================================================================
   08 Compare
   ============================================================================= */
.cmp-table{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;}
.cmp-table table{width:100%;border-collapse:collapse;font-size:var(--type-body-sm);line-height:var(--leading-tight);}
.cmp-table thead th{text-align:left;padding:var(--space-4) var(--space-5);background:var(--surface-page);color:var(--text-heading);font-size:var(--type-body);border-bottom:var(--border-width) solid var(--border-default);}
.cmp-table thead .cmp-table__h-label{width:22%;color:var(--text-muted);font-size:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;}
.cmp-table thead .cmp-table__h-us{width:32%;background:var(--surface-brand);color:var(--text-on-brand);border-bottom:0;}
.cmp-table tbody th{text-align:left;vertical-align:top;padding:var(--space-4) var(--space-5);color:var(--text-heading);border-bottom:var(--border-width) solid var(--border-hairline);}
.cmp-table tbody td{vertical-align:top;padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-hairline);}
.cmp-table tbody .cmp-table__us{background:var(--qac-royal-050);color:var(--text-heading);font-weight:var(--weight-semibold);border-bottom:var(--border-width) solid var(--qac-royal-100);}
.cmp-table__us-in{display:flex;gap:var(--space-2);align-items:flex-start;}
.cmp-intro{margin:0;max-width:60ch;text-wrap:pretty;}
.cmp-proof{margin:0;padding-left:var(--space-5);border-left:var(--rule-accent) solid var(--action-primary);display:flex;flex-direction:column;gap:var(--space-1);max-width:72ch;}
.cmp-proof blockquote{margin:0;font-size:var(--type-body-lg);line-height:var(--leading-body);color:var(--text-heading);text-wrap:pretty;}
.cmp-proof figcaption{font-size:var(--type-body-sm);font-weight:var(--weight-bold);color:var(--text-muted);}
/* Under 720px the same table is restyled as stacked cards (prototype "compareCards"). */
@media (max-width:719px){
  .cmp-table{border:0;border-radius:0;overflow:visible;}
  .cmp-table table,.cmp-table tbody{display:block;}
  .cmp-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  .cmp-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3);background:var(--surface-card);border:var(--border-width) solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-5);color:var(--text-body);}
  .cmp-table tbody tr + tr{margin-top:var(--space-3);}
  .cmp-table tbody th{grid-column:1 / -1;padding:0;border:0;font-size:var(--type-subtitle);line-height:var(--leading-tight);color:var(--text-heading);}
  .cmp-table tbody td{display:block;padding:0 var(--space-3);border:0;}
  .cmp-table tbody .cmp-table__us{grid-column:1 / -1;padding:var(--space-3);border:0;border-radius:var(--radius-sm);}
  .cmp-table tbody td::before{content:attr(data-label);display:block;margin-bottom:var(--space-1);font-weight:var(--weight-bold);color:var(--text-heading);}
  .cmp-table tbody .cmp-table__us::before{color:var(--text-accent);}
  .cmp-table__us-in .check-ic{display:none;}
}
/* Honeypot: off-screen, never shown to people */
.hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);opacity:0;pointer-events:none;}

/* =============================================================================
   09 Offer
   ============================================================================= */
.offer{background:var(--surface-paper);border-top:var(--border-width) solid var(--qac-ecru-300);border-bottom:var(--border-width) solid var(--qac-ecru-300);scroll-margin-top:72px;}
.offer__wrap{padding-top:clamp(var(--space-12),6vw,var(--space-16));padding-bottom:clamp(var(--space-12),6vw,var(--space-16));display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-8);}
.offer__copy{flex:1 1 420px;max-width:680px;display:flex;flex-direction:column;gap:var(--space-3);}

/* =============================================================================
   10 Reviews
   ============================================================================= */
.rating-card{padding:var(--space-4) var(--space-5);}
.rating-card__in{display:flex;align-items:center;gap:var(--space-4);}
.rating-card__num{font-family:var(--font-display);font-style:italic;font-weight:var(--weight-display);font-size:var(--type-display-3);line-height:1;color:var(--text-heading);}
.rating-card__meta{display:flex;flex-direction:column;gap:var(--space-1);}
.rating-card__label{font-size:var(--type-body-sm);font-weight:var(--weight-bold);color:var(--text-heading);}
.rev-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);}
@media (min-width:900px){ .rev-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
.review__fig{margin:0;display:flex;flex-direction:column;gap:var(--space-4);height:100%;}
.review__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);}
.review__quote{margin:0;flex:1;font-size:var(--type-body-lg);line-height:var(--leading-body);color:var(--text-heading);text-wrap:pretty;}
.review__by{padding-top:var(--space-3);border-top:var(--border-width) solid var(--border-hairline);font-size:var(--type-body-sm);color:var(--text-muted);}
.review__by b{color:var(--text-heading);}
.reviews__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-8);}
.reviews__link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;font-weight:var(--weight-bold);}

/* =============================================================================
   11 FAQ
   ============================================================================= */
.faq{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(var(--space-8),5vw,var(--space-16));align-items:start;}
.faq__aside{position:static;top:104px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);}
@media (min-width:1024px){
  .faq{grid-template-columns:minmax(0,5fr) minmax(0,7fr);}
  .faq__aside{position:sticky;}
}
.faq__list{border-top:var(--border-width) solid var(--border-strong);}
.faq__item{border-bottom:var(--border-width) solid var(--border-default);}
.faq__h{margin:0;}
.faq__btn{width:100%;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--font-text);font-weight:var(--weight-bold);font-size:var(--type-subtitle);line-height:var(--leading-tight);color:var(--text-heading);transition:color var(--duration-fast) var(--ease-standard);}
.faq__btn:hover{color:var(--action-primary);}
.faq__ic{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);color:var(--action-primary);transition:transform var(--duration-base) var(--ease-standard);}
.faq__btn[aria-expanded="true"] .faq__ic{transform:rotate(180deg);}
.faq__panel{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--duration-slow) var(--ease-standard);}
.faq__panel-in{overflow:hidden;min-height:0;visibility:visible;transition:visibility var(--duration-slow);}
.faq__panel-in p{margin:0;padding:0 var(--space-12) var(--space-6) 0;max-width:64ch;text-wrap:pretty;}
/* Collapsing only happens once JS is running, so no-JS visitors can read every answer. */
.js .faq__panel:not(.is-open){grid-template-rows:0fr;}
.js .faq__panel:not(.is-open) .faq__panel-in{visibility:hidden;}

/* =============================================================================
   12 Location
   ============================================================================= */
.loc{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(var(--space-8),5vw,var(--space-12));align-items:start;}
@media (min-width:960px){ .loc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);} }
.loc__col{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;}
.loc__col--main{gap:var(--space-6);}
.loc__contacts{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);}
.hours{padding:0;}
.hours table{width:100%;border-collapse:collapse;}
.hours caption{text-align:left;padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-hairline);}
.hours__cap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);}
.hours__cap b{color:var(--text-heading);}
.hours__status{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--type-body-sm);font-weight:var(--weight-bold);color:var(--text-heading);}
.hours th{text-align:left;padding:var(--space-3) var(--space-5);font-weight:var(--weight-regular);color:var(--text-heading);border-bottom:var(--border-width) solid var(--border-hairline);}
.hours td{padding:var(--space-3) var(--space-5);font-weight:var(--weight-regular);color:var(--text-heading);border-bottom:var(--border-width) solid var(--border-hairline);}
.hours td.hours__tag{text-align:right;}
.hours tr.is-today{background:var(--qac-royal-050);}
.hours tr.is-today th,.hours tr.is-today td{font-weight:var(--weight-bold);}
.loc__facts{margin:0;display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--type-body-sm);}
.loc__facts dt{font-weight:var(--weight-bold);color:var(--text-heading);}
.loc__facts dd{margin:var(--space-1) 0 0;}
.loc__map{position:relative;height:clamp(300px,38vw,420px);background:var(--surface-card);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;}
.loc__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.loc__map-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:var(--type-body-sm);}
.loc__photo{margin:0;display:flex;flex-direction:column;gap:var(--space-2);}
.loc__photo-box{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-card);color:var(--text-heading);}
.loc__photo-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}

/* =============================================================================
   13 Final CTA + booking card (inline, dialog on desktop, sheet on mobile)
   ============================================================================= */
.final{background:var(--surface-inverse);color:var(--text-on-dark);--focus-ring:var(--qac-white);}
.final__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(var(--space-10),5vw,var(--space-16));align-items:start;}
@media (min-width:1024px){ .final__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);} }
.final__copy{display:flex;flex-direction:column;gap:var(--space-6);min-width:0;}
.final__lede{margin:0;max-width:46ch;font-size:var(--type-body-lg);color:var(--text-on-dark-muted);text-wrap:pretty;}
.final__promises{list-style:none;margin:0;padding:var(--space-6) 0 0;border-top:var(--border-width) solid var(--border-on-dark);display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--type-body-sm);color:var(--text-on-dark);}
.final__promises li{display:flex;align-items:center;gap:var(--space-3);}
.final__check{display:flex;color:var(--qac-ecru);}
.book-hold{min-width:0;}
.booking{position:relative;box-sizing:border-box;background:var(--surface-card);color:var(--text-body);box-shadow:var(--shadow-lg);padding:clamp(var(--space-6),4vw,var(--space-10));overscroll-behavior:contain;border-radius:var(--radius-md);--focus-ring:var(--qac-royal-400);}
.booking:focus{outline:none;}
.booking:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}
.booking__success{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);}
.booking__success-top{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);}
.booking__badge{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--action-primary);color:var(--text-on-brand);border-radius:var(--radius-md);}
.booking__form{display:flex;flex-direction:column;gap:var(--space-5);}
.booking__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);}
.booking__head-copy{display:flex;flex-direction:column;gap:var(--space-2);}
.booking__sub{margin:0;font-size:var(--type-body-sm);color:var(--text-muted);}
.booking__dashes{display:flex;gap:var(--space-2);}
.booking__dashes span{width:26px;height:5px;background:var(--action-primary);}
.booking__dashes span#form-dash-2{background:var(--qac-bdazzled-200);}
.booking__dashes.is-step-2 span#form-dash-2{background:var(--action-primary);}
.dlg-close{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;color:var(--text-heading);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;}
.dlg-close:hover{border-color:var(--border-brand);}
.booking__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);background:var(--surface-muted);border-radius:var(--radius-md);font-size:var(--type-body-sm);color:var(--text-heading);}
.booking__edit{min-height:44px;padding:0 var(--space-3);background:none;border:0;cursor:pointer;font-family:var(--font-text);font-size:var(--type-body-sm);font-weight:var(--weight-bold);color:var(--text-link);text-decoration:underline;text-underline-offset:3px;}
.booking__fs{margin:0;padding:0;border:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5) var(--space-4);}
@media (min-width:560px){ .booking__fs{grid-template-columns:repeat(2,minmax(0,1fr));} }
.form-alert{margin:0;padding:var(--space-3) var(--space-4);background:var(--status-danger-bg);color:var(--status-danger);border-radius:var(--radius-md);font-size:var(--type-body-sm);font-weight:var(--weight-semibold);}
.form-alert a,.form-alert a:hover{color:var(--status-danger);}
.booking__note{margin:0;font-size:var(--type-caption);color:var(--text-muted);text-align:center;}

.backdrop{position:fixed;inset:0;z-index:75;background:var(--overlay-dim);opacity:0;transition:opacity var(--duration-slow) var(--ease-standard);}
.backdrop.is-shown{opacity:1;}

/* =============================================================================
   14 Footer
   ============================================================================= */
.ftr{background:var(--qac-quantum-900);color:var(--text-on-dark);--focus-ring:var(--qac-white);}
.ftr a{color:var(--text-on-dark);}
.ftr a:hover{color:var(--text-on-dark);}
.ftr__grid{padding-top:var(--space-16);padding-bottom:var(--space-10);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-10);}
@media (max-width:639px){ .ftr__grid{grid-template-columns:minmax(0,1fr);} }
@media (min-width:1024px){ .ftr__grid{grid-template-columns:repeat(4,minmax(0,1fr));} }
.ftr__brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5);}
.ftr__logo{height:40px;width:auto;display:block;}
.ftr__addr{font-style:normal;line-height:var(--leading-body);font-size:var(--type-body-sm);color:var(--text-on-dark);}
.ftr__addr a{font-weight:var(--weight-bold);}
.ftr__small{margin:0;font-size:var(--type-caption);color:var(--text-on-dark-muted);}
.ftr__col{display:flex;flex-direction:column;gap:var(--space-3);}
.ftr__h{margin:0;font-size:var(--type-eyebrow);font-weight:var(--weight-bold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-on-dark-muted);}
.ftr__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--type-body-sm);}
.ftr__hours{display:flex;justify-content:space-between;gap:var(--space-4);max-width:260px;}
.ftr .ftr__svc{text-decoration:none;}
.ftr .ftr__svc:hover{text-decoration:underline;}
.ftr__bottom{padding-top:var(--space-6);padding-bottom:var(--space-10);border-top:var(--border-width) solid var(--border-on-dark);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-3) var(--space-6);font-size:var(--type-caption);color:var(--text-on-dark-muted);}
.ftr .ftr__muted-link,.ftr .ftr__muted-link:hover{color:var(--text-on-dark-muted);}
.ftr__privacy{margin:0;flex-basis:100%;max-width:72ch;}
.ftr__bar-spacer{display:none;height:80px;}
@media (max-width:767px){ .ftr__bar-spacer{display:block;} }

/* =============================================================================
   15 Mobile quick-action bar
   ============================================================================= */
.mbar{display:none;}
@media (max-width:767px){
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--surface-page);border-top:var(--border-width) solid var(--border-hairline);box-shadow:var(--shadow-lg);
    padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2);
    transform:translateY(110%);visibility:hidden;transition:transform var(--duration-slow) var(--ease-out),visibility var(--duration-slow);}
  .mbar.is-shown{transform:translateY(0);visibility:visible;}
}
