/* ---------- Tokens ---------- */
:root{
  --bg:          #FFFFFF;       /* primary page background                       */
  --bg-warm:     #FBF8EE;       /* very subtle warm white for soft transitions   */
  --bone:        #EFE9D8;       /* accent surface — banner color                 */
  --bone-2:      #E6DFC9;       /* deeper accent surface                          */
  --navy:        #0F1B3F;       /* deep brand navy                                */
  --navy-2:      #1A2851;
  --blue-soft:   #3F5C94;       /* lighter accent blue (AA-pass on white)        */
  --gold:        #7A5E18;       /* primary gold (AA-pass on white)               */
  --gold-2:      #B79451;       /* lighter gold                                  */
  --ink:         #15140F;
  --ink-soft:    #4B463A;
  --rule:        rgba(21,20,15,.10);
  --rule-strong: rgba(21,20,15,.18);

  --serif:  "Cormorant Garamond", ui-serif, Georgia, "Times New Roman", serif;
  --sans:   -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --mono:   ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --maxw: 1440px;
  --gut: clamp(20px, 4vw, 56px);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;scroll-behavior:smooth}
img,svg{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

.eyebrow{
  font-family:var(--mono);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
}
.eyebrow .dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);vertical-align:middle;margin:0 .6em;transform:translateY(-2px)}

h1,h2,h3,h4{font-family:var(--serif);font-weight:500;margin:0;letter-spacing:-.01em;line-height:1}
p{margin:0}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.rule{height:1px;background:var(--rule);width:100%}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  transition: background .25s ease, border-color .25s ease, color .25s ease;
  border-bottom:1px solid transparent;
  color:#fff;
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:88px}
.brand{display:inline-flex;align-items:center;line-height:0}
.brand img{display:block;height:56px;width:auto}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:inherit;opacity:.85;
}
.nav-links a:hover{opacity:1}
.nav-links a[aria-current="page"]{opacity:1;color:var(--gold-2)}
.nav.is-scrolled .nav-links a:not(.nav-cta):hover{color:var(--gold)}
.nav.is-scrolled .nav-links a[aria-current="page"]{color:var(--gold)}
.nav-cta{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid currentColor;padding:10px 16px;border-radius:999px;opacity:1;
  background:var(--gold);color:var(--ink);border-color:var(--gold);
}
.nav-cta:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.menu-toggle{display:none}

/* Scrolled state — switches to white nav with dark text */
.nav.is-scrolled{
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom-color:var(--rule);
  color:var(--ink);
}
.nav.is-scrolled .nav-cta{background:var(--navy);color:#fff;border-color:var(--navy)}
.nav.is-scrolled .nav-cta:hover{background:var(--gold);border-color:var(--gold);color:#fff}

/* Pages without a dark hero opt into the white-nav state by default. */
.nav.is-static{
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom-color:var(--rule);
  color:var(--ink);
}
.nav.is-static .nav-links a:not(.nav-cta):hover{color:var(--gold)}
.nav.is-static .nav-links a[aria-current="page"]{color:var(--gold)}
.nav.is-static .nav-cta{background:var(--navy);color:#fff;border-color:var(--navy)}
.nav.is-static .nav-cta:hover{background:var(--gold);border-color:var(--gold);color:#fff}

@media (max-width: 820px){
  .nav-links{
    position:absolute;top:88px;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:0;
    background:var(--bg);border-bottom:1px solid var(--rule);
    padding:8px var(--gut) 20px;color:var(--ink);
    transform:translateY(-110%);transition:transform .25s ease, visibility 0s linear .25s;
    visibility:hidden;
  }
  .nav-links a, .nav-links .nav-cta{padding:14px 16px;width:100%;border:0;border-bottom:1px solid var(--rule);border-radius:0;text-align:left;background:transparent;color:var(--ink)}
  .nav-links .nav-cta{color:var(--gold)}
  .nav[data-open="true"] .nav-links{transform:translateY(0);visibility:visible;transition:transform .25s ease, visibility 0s linear 0s}
  .menu-toggle{display:inline-flex;flex-direction:column;gap:5px;padding:8px 0;width:28px;height:32px;justify-content:center;position:relative}
  .menu-toggle span{display:block;height:1.5px;background:currentColor;width:100%;transition:transform .25s ease, opacity .2s ease}
  .nav[data-open="true"] .menu-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav[data-open="true"] .menu-toggle span:nth-child(2){opacity:0}
  .nav[data-open="true"] .menu-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
}

/* ---------- HERO (full-bleed) ---------- */
.hero{
  position:relative;
  min-height:760px;
  min-height:max(760px, 100svh);
  display:flex;align-items:flex-end;
  color:#fff;
  padding-bottom: clamp(80px, 10vw, 140px);
  isolation:isolate;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;z-index:-2;
  background:#0a0a0a;
}
.hero-bg img{
  width:100%;height:100%;object-fit:cover;
  filter: saturate(.85) contrast(1.06) brightness(.85);
}
.hero-bg::after{
  /* dark vignette on the left, fade on right — leans navy for a hint of brand blue */
  content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg, rgba(10,18,46,.92) 0%, rgba(10,18,46,.70) 35%, rgba(8,10,18,.20) 70%, rgba(8,10,18,.10) 100%),
    linear-gradient(180deg, rgba(8,10,22,.55) 0%, rgba(8,10,22,0) 30%, rgba(10,18,46,.60) 100%);
}
.hero-content{
  position:relative;z-index:1;
  width:100%;
  padding-top: clamp(96px, 22vw, 200px);
  display:grid;gap:clamp(20px,2.6vw,32px);
}
.hero-tag{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-2);
}
.hero-sub{
  font-family:var(--mono);font-size:12px;letter-spacing:.32em;text-transform:uppercase;
  color:rgba(255,255,255,.65);
}
.hero h1{
  font-family:var(--serif);
  font-size: clamp(64px, 12vw, 188px);
  line-height:.92;
  letter-spacing:-.025em;
  font-weight:500;
  color:#fff;
  max-width: 14ch;
}
.hero h1 .gold{color:var(--gold-2);font-style:italic;font-weight:500}
.hero h1 .colon{color:var(--gold-2)}
.hero-lede{
  font-family:var(--serif);
  font-size:clamp(18px, 1.8vw, 22px);
  line-height:1.5;
  color:rgba(255,255,255,.82);
  max-width:46ch;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin-top:8px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  padding:16px 24px;border-radius:999px;
  transition:transform .15s ease, background .2s, color .2s, border-color .2s;
}
.btn-primary{background:var(--gold);color:#fff;border:1px solid var(--gold)}
.btn-primary:hover{background:var(--gold-2);border-color:var(--gold-2);color:var(--ink)}
.btn-dark{background:var(--navy);color:#fff;border:1px solid var(--navy)}
.btn-dark:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-ghost{border:1px solid var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-link{
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:#fff;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.45);
}
.btn-link:hover{color:var(--gold-2);border-bottom-color:var(--gold-2)}
.btn .arrow{display:inline-block;transition:transform .2s}
.btn:hover .arrow, .btn-link:hover .arrow{transform:translateX(3px)}

.hero-scroll{
  position:absolute;left:50%;bottom:10px;transform:translateX(-50%);
  z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.7);
}
.hero-scroll::after{content:"";width:1px;height:24px;background:rgba(255,255,255,.45);animation: scrollHint 2.4s ease-in-out infinite}
@keyframes scrollHint{
  0%   {transform:scaleY(.2);transform-origin:top;opacity:.2}
  50%  {transform:scaleY(1);transform-origin:top;opacity:1}
  51%  {transform:scaleY(1);transform-origin:bottom;opacity:1}
  100% {transform:scaleY(.2);transform-origin:bottom;opacity:.2}
}
@media (prefers-reduced-motion: reduce){.hero-scroll::after{animation:none;opacity:.5}}

.hero-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;border-top:1px solid rgba(91,123,184,.45);
  margin-top:clamp(40px, 6vw, 64px);
  padding-top:24px;
  max-width:680px;
}
.hero-stat .v{font-family:var(--serif);font-size:clamp(26px,3.4vw,40px);line-height:1;color:var(--gold-2)}
.hero-stat .l{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:10px}

@media (max-width: 720px){
  .hero{min-height: 100svh; padding-bottom: 96px}
  .hero h1{font-size: clamp(54px, 16vw, 84px); line-height:.94}
  .hero-stats{grid-template-columns:repeat(3,1fr)}
}

/* ---------- PAGE HEADER (non-home pages) ---------- */
.page-header{
  position:relative;
  background:var(--bone);
  padding: clamp(140px, 18vw, 220px) 0 clamp(60px, 8vw, 100px);
  border-bottom:1px solid var(--rule);
  overflow:hidden;
  isolation:isolate;
}
/* Background photo layer — sits behind the overlay, blurred slightly so it reads
   as ambient car imagery, not as a foreground image fighting the headline. */
.page-header .ph-bg{
  position:absolute;inset:0;z-index:-2;
}
.page-header .ph-bg picture,
.page-header .ph-bg img{
  width:100%;height:100%;display:block;object-fit:cover;
  filter: saturate(.7) contrast(1.02) brightness(1.02) blur(2px);
  /* Slight scale to avoid blur showing the canvas edges */
  transform:scale(1.03);
}
/* Cream wash + gold/navy radial accents. The cream layer is heavy enough that the
   photo only "peeks through" — keeps the headline crisp on the same dark ink. */
.page-header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg, rgba(239,233,216,.92) 0%, rgba(239,233,216,.95) 60%, rgba(239,233,216,.98) 100%),
    radial-gradient(ellipse at top right, rgba(183,148,81,.22), transparent 60%),
    radial-gradient(ellipse at bottom left, rgba(15,27,63,.12), transparent 55%);
  pointer-events:none;
}
/* When no .ph-bg is present (e.g. fallback), keep the original flat-cream look. */
.page-header:not(:has(.ph-bg))::before{
  background:
    radial-gradient(ellipse at top right, rgba(183,148,81,.18), transparent 60%),
    radial-gradient(ellipse at bottom left, rgba(15,27,63,.06), transparent 55%);
}
.page-header .wrap{position:relative;z-index:1}
.page-header .num{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
  display:flex;align-items:center;gap:14px;margin-bottom:24px;
}
.page-header .num::before{content:"";width:36px;height:1px;background:var(--gold)}
.page-header h1{
  font-family:var(--serif);font-weight:500;
  font-size: clamp(48px, 8vw, 112px);
  line-height:.96;letter-spacing:-.02em;
  max-width: 14ch;
}
.page-header h1 em{font-style:italic;color:var(--gold)}
.page-header .lede{
  margin-top: clamp(20px, 2.4vw, 32px);
  font-family:var(--serif);
  font-size: clamp(20px, 2vw, 26px);
  line-height:1.5;
  color:var(--ink-soft);
  max-width:54ch;
}
.page-header .crumb{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
  margin-bottom:18px;
}
.page-header .crumb a:hover{color:var(--gold)}
.page-header .crumb .sep{margin:0 10px;color:var(--rule-strong)}

/* ---------- Section base ---------- */
.section{padding:clamp(64px, 10vw, 140px) 0;position:relative;background:var(--bg)}
.section.warm{background:var(--bg-warm)}
.section.cream{background:var(--bone)}
.section.dark{background:var(--navy);color:#fff}
.section.dark h2{color:#fff}
.section.dark h2 em{color:var(--gold-2)}
.section.dark .section-head .num{color:rgba(255,255,255,.6)}
.section.dark .section-head .num::before{background:var(--gold-2)}
.section.dark .section-head .right{color:rgba(255,255,255,.7)}
.section-head{
  display:grid;grid-template-columns:1fr;gap:24px;
  margin-bottom:clamp(40px,6vw,72px);align-items:end;
}
@media (min-width: 900px){.section-head{grid-template-columns: 1fr 1fr;gap:80px}}
.section-head .num{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
  display:flex;align-items:center;gap:14px;
}
.section-head .num::before{content:"";width:36px;height:1px;background:var(--gold)}
.section-head h2{
  font-size:clamp(40px, 6vw, 84px);letter-spacing:-.02em;line-height:1;margin-top:18px;
}
.section-head h2 em{font-style:italic;color:var(--gold)}
.section-head .right{font-family:var(--serif);font-size:clamp(18px,1.8vw,22px);line-height:1.5;color:var(--ink-soft);max-width:42ch}

/* ---------- 404 ---------- */
.notfound{
  min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:clamp(80px,14vw,160px) var(--gut);
}
.notfound .code{font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:center;gap:14px}
.notfound .code::before{content:"";width:36px;height:1px;background:var(--gold)}
.notfound h1{font-size:clamp(56px,10vw,120px);letter-spacing:-.02em;line-height:1;margin-top:20px}
.notfound h1 em{font-style:italic;color:var(--gold)}
.notfound p{font-family:var(--serif);font-size:clamp(18px,2vw,24px);line-height:1.5;color:var(--ink-soft);max-width:46ch;margin-top:20px}
.notfound .actions{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center}

/* ---------- REVIEWS ---------- */
.reviews-head{text-align:center;margin-bottom:clamp(20px,3vw,40px)}
.reviews-head h2{
  font-size:clamp(40px, 6vw, 84px);letter-spacing:-.02em;line-height:1;
}
.reviews-head h2 em{font-style:italic;color:var(--gold)}
.reviews-embed{width:100%}
.reviews-embed iframe{display:block;width:100%;border:0}

/* ---------- ABOUT ---------- */
.about-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
@media (min-width: 980px){.about-grid{grid-template-columns: 1.1fr .9fr;gap:96px}}
.pull{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(28px, 3.4vw, 46px);line-height:1.18;letter-spacing:-.01em;color:var(--ink);
}
.pull .gold{color:var(--gold)}
.pull .blue{color:var(--blue-soft)}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;border-top:1px solid var(--rule);padding-top:32px}
.value .k{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-soft)}
.value .v{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);line-height:1.15;margin-top:10px}
.value .d{margin-top:10px;font-size:14px;color:var(--ink-soft);line-height:1.5}
@media (max-width:720px){.values{grid-template-columns:1fr;gap:32px}}

.portrait{
  aspect-ratio: 4 / 5;background: var(--bone);
  position:relative;overflow:hidden;
  box-shadow: 6px 22px 50px rgba(15,27,63,.28), 3px 10px 24px rgba(15,27,63,.16), 0 0 18px rgba(15,27,63,.08);
}
.portrait picture,.portrait img{display:block;width:100%;height:100%;object-fit:cover;
}
.placeholder{
  width:100%;height:100%;
  background:
    repeating-linear-gradient(45deg, rgba(21,20,15,.06) 0 1px, transparent 1px 12px),
    var(--bone);
  display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;
}
.placeholder span{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);}

/* Generic image frame for use across pages (about, services, etc.) */
.frame{
  position:relative;overflow:hidden;background:var(--bone);
  box-shadow: 6px 22px 50px rgba(15,27,63,.28), 3px 10px 24px rgba(15,27,63,.16), 0 0 18px rgba(15,27,63,.08);
}
.frame picture,.frame img{display:block;width:100%;height:100%;object-fit:cover}
.frame.wide{aspect-ratio: 16 / 10}
.frame.tall{aspect-ratio: 4 / 5}
.frame.square{aspect-ratio: 1 / 1}

/* ---------- SERVICES ---------- */
.tiers{display:grid;grid-template-columns:1fr;gap:1px;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
@media (min-width: 900px){.tiers{grid-template-columns:repeat(3,1fr)}}
.tier{
  background:var(--bg);
  padding:clamp(28px, 3.4vw, 48px);
  display:flex;flex-direction:column;gap:24px;position:relative;
}
.tier .tier-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.tier .name{font-family:var(--serif);font-size:clamp(34px,3.6vw,52px);line-height:1}
.tier .badge{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  padding:5px 10px;border:1px solid var(--ink);border-radius:999px;
}
.tier .price{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1;color:var(--gold)}
.tier .price small{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:6px}
.tier ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.tier ul li{
  display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--rule);
  font-size:15px;line-height:1.4;
}
.tier ul li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-top:.5em;}
.tier .footnote{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}

.tier.is-feature{background:var(--navy);color:#fff}
.tier.is-feature .badge{border-color:var(--gold-2);color:var(--gold-2)}
.tier.is-feature .price{color:var(--gold-2)}
.tier.is-feature .price small{color:rgba(255,255,255,.6)}
.tier.is-feature ul{border-color:rgba(255,255,255,.18)}
.tier.is-feature ul li{border-color:rgba(255,255,255,.18)}
.tier.is-feature ul li::before{background:var(--gold-2)}
.tier.is-feature .footnote{color:rgba(255,255,255,.65)}

.tier.is-soon{background:var(--bone)}
.tier.is-soon .name{color:var(--ink-soft)}

.vehicle-pricing{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid var(--rule)}
.vp-cell{padding:24px 16px;border-right:1px solid var(--rule);text-align:left}
.vp-cell:last-child{border-right:0}
.vp-cell .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.vp-cell .v{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);margin-top:8px;color:var(--gold)}
.vp-cell .t{font-family:var(--mono);font-size:11px;color:var(--ink-soft);margin-top:6px;letter-spacing:.06em}
@media (max-width:780px){
  .vehicle-pricing{grid-template-columns:repeat(2,1fr)}
  .vp-cell{border-bottom:1px solid var(--rule)}
  .vp-cell:nth-child(2n){border-right:0}
}

/* Detailed inclusion grid for services page */
.includes{
  display:grid;grid-template-columns:1fr;gap:0;
  border-top:1px solid var(--rule);
}
@media (min-width:900px){.includes{grid-template-columns:repeat(2,1fr)}}
.inc{
  padding:28px 0;border-bottom:1px solid var(--rule);
  display:grid;grid-template-columns:48px 1fr;gap:20px;align-items:start;
}
@media (min-width:900px){
  .inc{padding:28px clamp(20px,2vw,32px)}
  .inc:nth-child(odd){border-right:1px solid var(--rule)}
}
.inc .n{font-family:var(--serif);font-size:32px;color:var(--gold);line-height:1}
.inc h3{font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.2;font-weight:500}
.inc p{margin-top:8px;color:var(--ink-soft);font-size:15px;line-height:1.55;max-width:50ch}

/* Add-ons table */
.addons{margin-top:48px;border-top:1px solid var(--rule)}
.addon{
  display:grid;grid-template-columns:1fr auto;gap:24px;align-items:baseline;
  padding:20px 0;border-bottom:1px solid var(--rule);
}
.addon .nm{font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.2}
.addon .desc{margin-top:6px;color:var(--ink-soft);font-size:14.5px;line-height:1.5;grid-column:1;max-width:54ch}
.addon .pr{font-family:var(--serif);font-size:clamp(20px,2vw,26px);color:var(--gold);grid-row:1;grid-column:2;white-space:nowrap}

/* What's NOT included — set apart, never confuse the customer */
.not-included{
  background:var(--bg-warm);border:1px solid var(--rule);
  padding:clamp(24px,3vw,40px);margin-top:48px;
}
.not-included h3{font-family:var(--serif);font-size:clamp(24px,2.6vw,32px);line-height:1.2}
.not-included p{margin-top:14px;color:var(--ink-soft);font-size:15.5px;line-height:1.65;max-width:60ch}
.not-included ul{margin:18px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr;gap:8px}
@media (min-width:680px){.not-included ul{grid-template-columns:1fr 1fr;gap:8px 32px}}
.not-included ul li{position:relative;padding-left:20px;font-size:15px;color:var(--ink);line-height:1.5}
.not-included ul li::before{content:"×";position:absolute;left:0;color:var(--ink-soft);font-family:var(--mono);top:1px}

/* ---------- PROCESS (dark) ---------- */
.process{background:var(--navy);color:#fff}
.process .eyebrow{color:rgba(255,255,255,.6)}
.process .eyebrow .dot{background:var(--gold-2)}
.process .section-head h2{color:#fff}
.process .section-head h2 em{color:var(--gold-2)}
.process .section-head .num{color:rgba(255,255,255,.6)}
.process .section-head .num::before{background:var(--gold-2)}
.process .section-head .right{color:rgba(255,255,255,.7)}
.steps{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid rgba(255,255,255,.18)}
@media (min-width: 900px){.steps{grid-template-columns:repeat(2,1fr)}}
.step{padding:36px 0;border-bottom:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:80px 1fr;gap:24px;align-items:start}
.step:nth-child(odd){padding-right:clamp(0px,4vw,48px)}
.step:nth-child(even){padding-left:clamp(0px,4vw,48px);border-left:1px solid rgba(255,255,255,.18)}
@media (max-width:899px){.step:nth-child(even){padding-left:0;border-left:0}}
.step .n{font-family:var(--serif);font-size:48px;color:var(--gold-2);line-height:1}
.step h3{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);font-weight:500;line-height:1.15;color:#fff}
.step p{margin-top:10px;color:rgba(255,255,255,.78);font-size:15px;line-height:1.55;max-width:42ch}

/* ---------- GALLERY ---------- */
.gal-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:clamp(80px, 9vw, 130px);
  gap:12px;
}
.gal-grid .ph{
  margin:0;
  background:var(--bone);
  position:relative;overflow:hidden;
  box-shadow: 4px 16px 36px rgba(15,27,63,.22), 2px 6px 16px rgba(15,27,63,.12), 0 0 14px rgba(15,27,63,.06);
}
.gal-grid .ph img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition: transform .6s ease;
}
.gal-grid .ph:hover img{transform:scale(1.03)}
.gal-grid .ph .tag{
  position:absolute;left:14px;bottom:14px;z-index:2;
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#fff;
  padding:5px 10px;background:rgba(15,27,63,.65);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.18);
  opacity:0;transform:translateY(4px);transition:opacity .25s ease, transform .25s ease;
}
.gal-grid .ph:hover .tag{opacity:1;transform:translateY(0)}
.g1{grid-column:1 / span 8; grid-row:1 / span 3}  /* landscape big — Explorer */
.g2{grid-column:9 / span 4; grid-row:1 / span 6}  /* portrait tall — GTO front */
.g3{grid-column:1 / span 4; grid-row:4 / span 3}  /* landscape — Lexus interior */
.g4{grid-column:5 / span 4; grid-row:4 / span 3}  /* landscape — GTO interior */
.g5{grid-column:1 / span 6; grid-row:7 / span 2}  /* landscape — Corvette rear */
.g6{grid-column:7 / span 6; grid-row:7 / span 2}  /* landscape — BMW X3 side */

@media (max-width:900px){
  .gal-grid{grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(80px, 14vw, 130px)}
  .g1{grid-column:1 / span 6; grid-row:1 / span 3}
  .g2{grid-column:1 / span 3; grid-row:4 / span 4}
  .g3{grid-column:4 / span 3; grid-row:4 / span 2}
  .g4{grid-column:4 / span 3; grid-row:6 / span 2}
  .g5{grid-column:1 / span 3; grid-row:8 / span 2}
  .g6{grid-column:4 / span 3; grid-row:8 / span 2}
}
@media (max-width:540px){
  .gal-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px;gap:8px}
  .g1{grid-column:1 / span 2; grid-row:auto / span 2}
  .g2{grid-column:1 / span 2; grid-row:auto / span 3}
  .g3,.g4,.g5,.g6{grid-column:auto / span 1; grid-row:auto / span 2}
}
.gal-grid .ph{cursor:zoom-in}

.lightbox{
  position:fixed;inset:0;z-index:200;
  background:rgba(10,14,28,.92);
  display:none;align-items:center;justify-content:center;
  padding:24px;
  opacity:0;transition:opacity .2s ease;
}
.lightbox[data-open="true"]{display:flex;opacity:1}
.lightbox img{
  max-width:min(96vw,1600px);max-height:92vh;
  width:auto;height:auto;display:block;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.lightbox .lb-close{
  position:absolute;top:18px;right:22px;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);
  color:#fff;font-size:22px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);
}
.lightbox .lb-close:hover{background:rgba(255,255,255,.18)}
body.lb-open{overflow:hidden}

/* ---------- AREA ---------- */
.area-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
@media (min-width: 900px){.area-grid{grid-template-columns: .9fr 1.1fr;gap:80px}}
.cities{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
.city{display:flex;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--rule)}
.city .nm{font-family:var(--serif);font-size:clamp(22px,2.2vw,28px);line-height:1}
.area-card{background:var(--bone);border:1px solid var(--rule);padding:clamp(28px,3vw,40px)}
.area-card .eyebrow{margin-bottom:14px}
.area-card h3{font-family:var(--serif);font-size:clamp(30px,3.4vw,42px);line-height:1.05;letter-spacing:-.01em}
.area-card p{margin-top:18px;font-size:15.5px;line-height:1.6;color:var(--ink-soft);max-width:42ch}

/* ---------- FAQ ---------- */
details{border-top:1px solid var(--rule);padding:24px 0}
details:last-child{border-bottom:1px solid var(--rule)}
details summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);line-height:1.2;
}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";font-family:var(--serif);font-size:32px;color:var(--gold);transition:transform .25s ease;line-height:1}
details[open] summary::after{content:"–"}
details .ans{margin-top:14px;color:var(--ink-soft);font-size:15.5px;line-height:1.65;max-width:64ch}

/* FAQ category grouping for the dedicated FAQ page */
.faq-group{margin-bottom: clamp(48px, 7vw, 88px)}
.faq-group:last-child{margin-bottom:0}
.faq-group .group-head{
  display:grid;grid-template-columns:1fr;gap:8px;
  margin-bottom:24px;
}
@media (min-width:900px){
  .faq-group .group-head{grid-template-columns:1fr 2fr;gap:48px;align-items:end}
}
.faq-group .group-head .k{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-soft);
  display:flex;align-items:center;gap:14px;
}
.faq-group .group-head .k::before{content:"";width:36px;height:1px;background:var(--gold)}
.faq-group .group-head h2{
  font-family:var(--serif);font-size:clamp(30px,4vw,48px);line-height:1.05;letter-spacing:-.015em;font-weight:500;
}
.faq-group .group-head h2 em{font-style:italic;color:var(--gold)}
.faq-group .group-head p{
  font-family:var(--serif);font-size:clamp(17px,1.6vw,20px);line-height:1.5;color:var(--ink-soft);max-width:46ch;
}

/* ---------- CONTACT ---------- */
.contact{background:var(--bone);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.contact-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
@media (min-width: 980px){.contact-grid{grid-template-columns: .85fr 1.15fr;gap:80px}}
.contact h2{font-size:clamp(40px,6vw,72px);line-height:1;letter-spacing:-.02em}
.contact h2 em{font-style:italic;color:var(--gold)}
.contact-info{margin-top:32px;display:flex;flex-direction:column;gap:0}
.contact-info .row{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-top:1px solid var(--rule-strong)}
.contact-info .row .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}
.contact-info .row .v{font-family:var(--serif);font-size:clamp(20px,1.8vw,24px);color:var(--ink)}

form.qf{
  display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;
  background:var(--bg);padding:clamp(24px,3vw,40px);border:1px solid var(--rule);
}
form.qf .field{display:flex;flex-direction:column;gap:8px;grid-column:span 2}
form.qf .field.half{grid-column:span 1}
@media (max-width:680px){form.qf .field.half{grid-column:span 2}}
form.qf label{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
form.qf input, form.qf select, form.qf textarea{
  font-family:var(--serif);font-size:18px;background:transparent;
  border:0;border-bottom:1px solid var(--rule);padding:10px 0;color:var(--ink);
  border-radius:0;-webkit-appearance:none;appearance:none;
}
form.qf input:focus, form.qf select:focus, form.qf textarea:focus{outline:none;border-bottom-color:var(--gold)}
form.qf textarea{min-height:96px;resize:vertical;font-family:var(--serif)}
form.qf select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 14px) 50%, calc(100% - 8px) 50%;background-size:6px 6px;background-repeat:no-repeat}
form.qf .submit{grid-column:span 2;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px;flex-wrap:wrap}
form.qf .submit small{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft)}

/* GoHighLevel embedded form wrapper. The iframe itself is transparent, so the
   wrapper provides the white card chrome (matches original form.qf styling). */
.qf-embed{
  background:var(--bg);padding:clamp(20px,2.4vw,32px);border:1px solid var(--rule);
}
.qf-embed iframe{display:block;width:100%;min-height:320px;border:0;background:transparent}

/* Contact-method cards (for the dedicated contact page) */
.contact-methods{
  display:grid;grid-template-columns:1fr;gap:18px;
  margin-top:32px;
}
@media (min-width:680px){.contact-methods{grid-template-columns:1fr 1fr}}
.cm{
  background:var(--bg);border:1px solid var(--rule);
  padding:clamp(22px,2.4vw,30px);
  display:flex;flex-direction:column;gap:8px;
  transition:border-color .2s ease, transform .2s ease;
}
.cm:hover{border-color:var(--gold)}
.cm .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}
.cm .v{font-family:var(--serif);font-size:clamp(22px,2.4vw,28px);line-height:1.15;color:var(--ink)}
.cm .v a:hover{color:var(--gold)}
.cm .d{font-size:14px;color:var(--ink-soft);line-height:1.5;margin-top:4px}

/* ---------- CTA banner (reusable) ---------- */
.cta-banner{
  background:var(--navy);color:#fff;
  padding:clamp(56px,8vw,96px) 0;
  position:relative;overflow:hidden;
}
.cta-banner::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at right, rgba(183,148,81,.18), transparent 60%);
  pointer-events:none;
}
.cta-banner .wrap{position:relative;display:grid;grid-template-columns:1fr;gap:32px;align-items:end}
@media (min-width:900px){.cta-banner .wrap{grid-template-columns:1.5fr 1fr;gap:64px}}
.cta-banner h2{font-family:var(--serif);font-size:clamp(34px,5vw,64px);line-height:1.02;letter-spacing:-.015em;font-weight:500;color:#fff}
.cta-banner h2 em{font-style:italic;color:var(--gold-2)}
.cta-banner .cta-actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-start}
@media (min-width:900px){.cta-banner .cta-actions{justify-content:flex-end}}
.cta-banner .btn-light{background:var(--gold);color:var(--ink);border:1px solid var(--gold)}
.cta-banner .btn-light:hover{background:var(--gold-2);border-color:var(--gold-2)}
.cta-banner .btn-outline{border:1px solid rgba(255,255,255,.5);color:#fff}
.cta-banner .btn-outline:hover{background:#fff;color:var(--ink);border-color:#fff}

/* ---------- FOOTER ---------- */
footer{background:var(--navy);color:#fff;padding:80px 0 28px}
.foot-grid{display:grid;grid-template-columns:1fr;gap:48px}
@media (min-width: 900px){.foot-grid{grid-template-columns:1.4fr .8fr .8fr .8fr}}
footer .brand-lg{font-family:var(--serif);font-size:clamp(44px,6vw,88px);line-height:1;letter-spacing:-.02em;color:var(--gold-2)}
@media (min-width: 900px){footer .brand-lg{white-space:nowrap;font-size:clamp(40px,4.4vw,72px)}}
footer .brand-lg .colon{color:#fff}
footer .tag{margin-top:14px;font-family:var(--serif);font-style:italic;color:rgba(255,255,255,.75);font-size:20px}
footer h3,footer h4{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:16px;font-weight:400}
footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
footer ul a{font-family:var(--serif);font-size:18px;color:#fff}
footer ul a:hover{color:var(--gold-2)}
.foot-bottom{
  margin-top:64px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55);
}
.foot-credit{display:inline-flex;align-items:center;gap:10px}
.foot-credit a{display:inline-flex;align-items:center;opacity:.7;transition:opacity .2s ease}
.foot-credit a:hover{opacity:1}
.foot-credit img{height:22px;width:auto}

::selection{background:var(--gold);color:#fff}
