:root {
  --plum:    #0c0718;
  --deep:    #160d2a;
  --purple:  #231540;
  --violet:  #3d2470;
  --mid:     #5c3d9e;
  --lav:     #9b7ed4;
  --gold:    #c8a86e;
  --goldlt:  #e8d5a8;
  --cream:   #f4efe6;
  --warm:    #faf7f1;
  --stone:   #e5ddd0;
  --mist:    #c8bfb0;
  --ash:     #6b6154;
  --ink:     #12100a;
  --error:   #943020;
  /* Typography: Cormorant Garamond for editorial display, Outfit for everything else. */
  --serif:   'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:    'Outfit', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --fs-eyebrow: 11px;   /* uppercase, letter-spaced labels */
  --fs-small:   13px;
  --fs-body:    15px;
  --fs-lead:    17px;
  --ease:    cubic-bezier(0.16, 1, 0.3, 1);
  --section-y: 128px;   /* vertical rhythm for full-width sections */
  --section-x: 8vw;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--sans); font-size: var(--fs-body); font-weight: 300; line-height: 1.6; background: var(--warm); color: var(--ink); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 10000; padding: 12px 18px; background: var(--goldlt); color: var(--plum); font: 500 14px var(--sans); text-decoration: none; transform: translateY(-160%); transition: transform .2s; }
.skip-link:focus { transform: none; }
/* Shared eyebrow label used across sections (replaces per-section duplicates). */
.eyebrow { font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .24em; text-transform: uppercase; color: var(--mid); margin-bottom: 22px; }
.eyebrow.on-dark { color: var(--gold); }
@media (max-width: 1024px) { :root { --section-y: 96px; } }
@media (max-width: 640px) { :root { --fs-eyebrow: 11.5px; --section-y: 76px; --section-x: 6vw; } }
@media (min-width: 1025px) { :root { --section-y: 112px; } }

/* ── GRAIN ── */
body::after {
  content: '';
  position: fixed; top: -60px; left: -60px; right: -60px; bottom: -60px; z-index: 9000; pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 160px 160px;
  will-change: transform;
  transform: translateZ(0);
  animation: grain .65s steps(1) infinite;
}
/* Phones and tablets: keep the texture, drop the full-viewport repaint loop. */
@media (max-width: 820px), (hover: none) { body::after { animation: none; will-change: auto; } }
@keyframes grain {
  0%   { transform: translate(0, 0) }
  16%  { transform: translate(-48px, -72px) }
  33%  { transform: translate(96px, -24px) }
  49%  { transform: translate(-72px, 56px) }
  66%  { transform: translate(32px, -96px) }
  82%  { transform: translate(-24px, 80px) }
  100% { transform: translate(72px, -48px) }
}

/* ── NAV ── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  display: flex; align-items: center; justify-content: space-between;
  padding: 32px 60px;
  transition: padding .6s var(--ease), background .6s, border-color .6s;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  padding: 16px 60px;
  background: rgba(12, 7, 24, .97);
  backdrop-filter: blur(20px);
  border-color: rgba(200,168,110,.08);
}
.nav-logo { font-family: var(--serif); font-size: 20px; font-weight: 400; color: #fff; text-decoration: none; letter-spacing: .02em; }
.nav-logo em { font-style: italic; color: var(--goldlt); }
.nav-links { display: flex; gap: 40px; list-style: none; }
.nav-links a { font-size: 12px; font-weight: 300; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.8); text-decoration: none; transition: color .3s; }
.nav-links a:hover { color: var(--goldlt); }
.nav-btn { font-size: 11px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--goldlt); text-decoration: none; border: 1px solid rgba(200,168,110,.35); padding: 11px 26px; transition: all .35s var(--ease); }
.nav-btn:hover { background: var(--gold); color: var(--plum); border-color: var(--gold); }

/* ── NAV: mobile toggle ── */
.nav-toggle {
  display: none; position: relative; z-index: 1100;
  width: 44px; height: 44px; margin: -10px -10px -10px 4px;
  align-items: center; justify-content: center;
  background: none; border: none; padding: 0; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.nav-toggle-bars { position: relative; width: 22px; height: 16px; }
.nav-toggle-bars span {
  position: absolute; left: 0; width: 100%; height: 1px; background: #fff;
  transition: transform .4s var(--ease), opacity .3s var(--ease), top .4s var(--ease);
}
.nav-toggle-bars span:nth-child(1) { top: 0; }
.nav-toggle-bars span:nth-child(2) { top: 7px; }
.nav-toggle-bars span:nth-child(3) { top: 14px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(3) { top: 7px; transform: rotate(-45deg); }

.nav-drawer {
  position: fixed; inset: 0; z-index: 490;
  visibility: hidden; pointer-events: none;
}
.nav-drawer-scrim {
  position: absolute; inset: 0;
  background: rgba(6,3,15,.6);
  opacity: 0; transition: opacity .4s var(--ease);
}
.nav-drawer-panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(340px, 84vw);
  background: var(--plum);
  border-left: 1px solid rgba(200,168,110,.14);
  padding: 96px 40px 40px;
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform .5s var(--ease);
}
.nav-drawer.open { visibility: visible; pointer-events: auto; }
.nav-drawer.open .nav-drawer-scrim { opacity: 1; }
.nav-drawer.open .nav-drawer-panel { transform: translateX(0); }
.nav-drawer-links { list-style: none; display: flex; flex-direction: column; gap: 4px; margin-bottom: 40px; }
.nav-drawer-links a {
  display: block; padding: 16px 2px;
  font-family: var(--serif); font-size: 26px; font-weight: 300; font-style: italic;
  color: #fff; text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.08);
  opacity: 0; transform: translateX(16px);
  transition: opacity .5s var(--ease), transform .5s var(--ease), color .3s;
}
.nav-drawer-links a:hover, .nav-drawer-links a:active { color: var(--goldlt); }
.nav-drawer.open .nav-drawer-links a { opacity: 1; transform: translateX(0); }
.nav-drawer.open .nav-drawer-links a:nth-child(1) { transition-delay: .12s; }
.nav-drawer.open .nav-drawer-links a:nth-child(2) { transition-delay: .18s; }
.nav-drawer.open .nav-drawer-links a:nth-child(3) { transition-delay: .24s; }
.nav-drawer.open .nav-drawer-links a:nth-child(4) { transition-delay: .3s; }
.nav-drawer-cta { margin-top: auto; display: flex; flex-direction: column; gap: 14px; }
.nav-drawer-cta .nav-btn { display: block; text-align: center; padding: 15px 26px; font-size: 12px; background: var(--gold); color: var(--plum); border-color: var(--gold); }
.nav-drawer-call { display: block; padding: 10px 0; font-size: 12px; font-weight: 300; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.8); text-decoration: none; text-align: center; }
.nav-drawer-call:hover { color: var(--goldlt); }

@media(max-width:820px) {
  .nav { padding: 20px 20px; }
  .nav.scrolled { padding: 14px 20px; }
  .nav-links { display: none; }
  /* Only the header button is hidden; the drawer keeps its own quote button. */
  .nav > .nav-btn { display: none; }
  .nav-toggle { display: flex; }
}

/* ── MOBILE ACTION BAR (homepage, ≤820px) ── */
.m-bar { display: none; }
@media (max-width: 820px) {
  .m-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 800;
    display: grid; grid-template-columns: 1fr auto; gap: 8px;
    padding: 10px max(14px, env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-right));
    background: rgba(12,7,24,.96); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid rgba(200,168,110,.18);
    transform: translateY(110%); transition: transform .4s var(--ease);
  }
  .m-bar.show { transform: none; }
  .m-bar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; text-decoration: none; font-family: var(--sans); font-size: 12px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; }
  .m-bar-quote { background: var(--gold); color: var(--plum); }
  .m-bar-wa { padding: 0 18px; border: 1px solid rgba(255,255,255,.18); color: #fff; }
  .m-bar-wa svg { width: 18px; height: 18px; }
  body.has-m-bar footer { padding-bottom: calc(52px + 80px + env(safe-area-inset-bottom)); }
  /* The bar replaces the floating WhatsApp button on the homepage. */
  body.has-m-bar .wa-float { display: none; }
}

/* ── HERO ── */
.hero {
  position: relative; height: auto; min-height: max(660px, 100svh); padding-top: 120px;
  display: flex; align-items: flex-end; overflow: hidden;
  background: var(--plum);
}
.hero-atm {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 120% 80% at 62% 20%, rgba(61,36,112,.85) 0%, transparent 55%),
    radial-gradient(ellipse 70% 55% at 10% 80%, rgba(200,168,110,.07) 0%, transparent 55%),
    radial-gradient(ellipse 50% 60% at 95% 95%, rgba(22,13,42,.95) 0%, transparent 55%),
    linear-gradient(158deg, #06030f 0%, #0c0718 30%, #160d2a 60%, #0c0718 100%);
}
.hero-orb { position: absolute; border-radius: 50%; filter: blur(90px); will-change: transform; }
.hero-orb-1 { width: 600px; height: 600px; top: -120px; right: 5%; background: rgba(61,36,112,.45); animation: o1 20s ease-in-out infinite alternate; }
.hero-orb-2 { width: 400px; height: 400px; bottom: 10%; left: 8%; background: rgba(200,168,110,.055); animation: o2 26s ease-in-out infinite alternate; }
.hero-orb-3 { width: 340px; height: 340px; top: 25%; left: 2%; background: rgba(92,61,158,.2); animation: o3 23s ease-in-out infinite alternate; }
@keyframes o1 { to { transform: translate(45px,-55px) scale(1.1); } }
@keyframes o2 { to { transform: translate(-28px,40px) scale(.93); } }
@keyframes o3 { to { transform: translate(22px,-30px) scale(1.07); } }
.hero-lines {
  position: absolute; inset: 0; opacity: .025;
  background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255,255,255,.5) 3px, rgba(255,255,255,.5) 4px);
  background-size: 100% 72px;
}
.hero-vig { position: absolute; inset: 0; background: radial-gradient(ellipse 100% 100% at 50% 50%, transparent 25%, rgba(6,3,15,.85) 100%); }
.hero-rule { position: absolute; left: 60px; top: 0; bottom: 0; width: 1px; background: linear-gradient(to bottom, transparent 8%, rgba(200,168,110,.15) 30%, rgba(200,168,110,.15) 72%, transparent 92%); }

.hero-inner {
  position: relative; z-index: 10; width: 100%; max-width: 1380px; margin: 0 auto;
  padding: 0 8vw 9vh;
}
.hero-h {
  font-family: var(--serif);
  font-size: clamp(58px, 10vw, 148px);
  font-weight: 300; line-height: .94; color: #fff; letter-spacing: -.025em;
  margin-bottom: 48px;
}
.hero-h .line { display: block; overflow: hidden; padding-top: 0.18em; margin-top: -0.18em; padding-bottom: 0.18em; margin-bottom: -0.18em; }
.hero-h .li {
  display: block; opacity: 0; transform: translateY(108%);
  animation: lineUp 1.55s var(--ease) forwards;
}
.hero-h .line:nth-child(1) .li { animation-delay: .46s; }
.hero-h .line:nth-child(3) { margin-top: 0.08em; }
.hero-h .line:nth-child(2) .li { animation-delay: .64s; }
.hero-h .line:nth-child(3) .li { animation-delay: .82s; }
.hero-h em { font-style: italic; color: var(--goldlt); }
.hero-foot {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap;
  opacity: 0; transform: translateY(16px);
  animation: fadeUp 1.1s var(--ease) 1.25s forwards;
}
.hero-sub { font-size: 16px; font-weight: 300; color: rgba(255,255,255,.78); max-width: 420px; line-height: 1.8; }
.hero-cta-wrap { display: flex; flex-direction: column; align-items: flex-end; gap: 16px; }
.hero-cta { display: flex; align-items: center; gap: 20px; text-decoration: none; font-size: 12px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; color: #fff; transition: gap .4s var(--ease); }
.hero-cta:hover { gap: 30px; }
.hero-cta-line { width: 56px; height: 1px; background: var(--gold); transition: width .4s var(--ease); }
.hero-cta:hover .hero-cta-line { width: 80px; }
.hero-trust { font-size: 12px; font-weight: 300; letter-spacing: .08em; color: rgba(255,255,255,.66); }
.hero-trust strong { color: var(--goldlt); font-weight: 400; }
.hero-trust .sep { color: var(--gold); opacity: .7; margin: 0 .5em; }
/* Quick-start links into specific quote journeys. */
.hero-quick { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px 0; font-size: 12.5px; font-weight: 300; color: rgba(255,255,255,.55); }
.hero-quick a { color: rgba(255,255,255,.82); text-decoration: none; padding: 6px 0; border-bottom: 1px solid transparent; transition: color .3s, border-color .3s; }
.hero-quick a:hover { color: var(--goldlt); border-color: rgba(200,168,110,.5); }
.hero-quick .dot { padding: 0 .7em; color: var(--gold); opacity: .6; }
.hero-scroll {
  position: absolute; bottom: 44px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 11px;
  opacity: 0; animation: fadeUp 1s var(--ease) 2.2s forwards;
}
.hero-scroll-mouse { width: 23px; height: 37px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; display: flex; justify-content: center; padding-top: 7px; }
.hero-scroll-dot { width: 2px; height: 5px; background: var(--gold); border-radius: 2px; animation: sdot 2.4s ease infinite; }
@keyframes sdot { 0%,100% { transform:translateY(0);opacity:1; } 80% { transform:translateY(10px);opacity:0; } }
.hero-scroll-lbl { font-size: 10px; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.55); }
/* Portrait tablets: avoid a near-empty first screen above the headline. */
@media (min-width: 641px) and (max-width: 1100px) and (orientation: portrait) {
  .hero { min-height: clamp(620px, 66svh, 820px); }
}
@media (max-width: 820px) {
  .hero-rule { display: none; }   /* decorative rule otherwise crosses the text column */
}
@media (max-width: 640px) {
  .hero-scroll { display: none; } /* overlapped the CTA and trust line on phones */
  .hero-foot { gap: 28px; }
  .hero-cta-wrap { align-items: flex-start; gap: 14px; width: 100%; }
  .hero-cta { gap: 16px; padding: 15px 22px; border: 1px solid rgba(200,168,110,.55); background: rgba(200,168,110,.08); }
  .hero-cta:hover { gap: 22px; }
  .hero-cta-line { width: 36px; }
  .hero-quick { justify-content: flex-start; }
}
@keyframes lineUp { to { opacity:1; transform:translateY(0); } }
@keyframes fadeUp { to { opacity:1; transform:translateY(0); } }

/* ── TICKER ── */
.ticker {
  background: var(--violet); padding: 0; overflow: hidden; position: relative;
  border-top: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06);
}
.ticker-track {
  display: flex; gap: 0; width: max-content;
  animation: ticker 110s linear infinite;
}
.ticker-track:hover { animation-play-state: paused; }
@keyframes ticker { 0% { transform:translateX(0); } 100% { transform:translateX(-50%); } }
.ticker-item {
  display: flex; align-items: center; gap: 16px;
  padding: 14px 44px; border-right: 1px solid rgba(255,255,255,.08);
  font-size: 12px; font-weight: 300; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,255,255,.8); white-space: nowrap;
}
.ticker-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); flex-shrink: 0; }

/* ── REVIEWS MARQUEE ── */
.reviews { background: var(--plum); padding: 0 0 var(--section-y); overflow: hidden; position: relative; }
.reviews::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(200,168,110,.12),transparent); }
.reviews::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(200,168,110,.1),transparent); }
.reviews-head { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 72px var(--section-x) 52px; flex-wrap: wrap; }
.reviews-label {
  font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .3em; text-transform: uppercase; color: var(--gold);
  display: flex; align-items: center; justify-content: center; gap: 24px; margin: 0;
}
.reviews-label::before, .reviews-label::after { content:''; width:60px; height:1px; background:rgba(200,168,110,.22); }
.marq-toggle {
  display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px;
  background: none; border: 1px solid rgba(200,168,110,.28); color: rgba(255,255,255,.78);
  font: 400 11px var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: border-color .3s, color .3s;
}
.marq-toggle:hover { border-color: var(--gold); color: var(--goldlt); }
.marq-toggle svg { width: 10px; height: 10px; }
.marq-wrap { position: relative; overflow: hidden; }
@media (max-width: 560px) {
  .reviews-label { letter-spacing: .22em; }
  .reviews-label::before, .reviews-label::after { display: none; }
  .marq-wrap::before, .marq-wrap::after { width: 36px; }
}
.marq-wrap::before, .marq-wrap::after { content: ''; position:absolute; top:0; bottom:0; width:160px; z-index:2; pointer-events:none; }
.marq-wrap::before { left:0; background:linear-gradient(to right, var(--plum), transparent); }
.marq-wrap::after { right:0; background:linear-gradient(to left, var(--plum), transparent); }
.marq-row { display:flex; gap:20px; width:max-content; padding:10px 0; }
.marq-row.row1 { animation: marq1 150s linear infinite; }
.marq-row.row2 { animation: marq2 170s linear infinite; margin-top:16px; }
.marq-wrap:hover .marq-row, .marq-wrap:focus-within .marq-row, .reviews.paused .marq-row { animation-play-state: paused; }
@keyframes marq1 { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes marq2 { 0%{transform:translateX(-50%)} 100%{transform:translateX(0)} }
.rv-card {
  flex-shrink:0; width:360px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
  padding: 30px 34px 26px; position: relative; overflow:hidden;
  transition: background .4s, border-color .4s;
}
.rv-card::before { content:''; position:absolute; top:0; left:0; width:40px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); }
.rv-card:hover { background:rgba(255,255,255,.065); border-color:rgba(200,168,110,.2); }
.rv-stars { display:flex; gap:4px; margin-bottom:16px; }
.rv-star { width:11px; height:11px; background:var(--gold); clip-path:polygon(50% 0%,61.8% 35.4%,98.1% 35.4%,68.2% 57.3%,79.4% 91.5%,50% 70%,20.6% 91.5%,31.8% 57.3%,1.9% 35.4%,38.2% 35.4%); }
.rv-text { font-family:var(--serif); font-size:18px; font-style:italic; font-weight:400; color:rgba(255,255,255,.9); line-height:1.6; margin-bottom:18px; }
.rv-author { font-size:11px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
/* With motion reduced, the rows become manually scrollable lists without duplicates. */
@media (prefers-reduced-motion: reduce) {
  .marq-wrap { overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--section-x); }
  .marq-wrap::before, .marq-wrap::after, .marq-toggle { display: none; }
  .marq-row { animation: none !important; }
  .marq-row [aria-hidden="true"] { display: none; }
  .rv-card { scroll-snap-align: start; }
}

/* ── SERVICES ── */
.services { background:var(--deep); padding:var(--section-y) var(--section-x); position:relative; overflow:hidden; }
.services::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 55% 55% at 88% 12%, rgba(61,36,112,.2) 0%,transparent 60%), radial-gradient(ellipse 40% 45% at 5% 88%, rgba(200,168,110,.04) 0%,transparent 55%); }
.svc-inner { max-width:1200px; margin:0 auto; position:relative; z-index:1; }
.svc-head { margin-bottom:64px; display:flex; align-items:flex-end; justify-content:space-between; gap:48px; flex-wrap:wrap; }
.svc-h { font-family:var(--serif); font-size:clamp(42px,6.5vw,88px); font-weight:300; line-height:.96; color:#fff; letter-spacing:-.025em; }
.svc-h em { font-style:italic; color:var(--goldlt); }
.svc-sub { font-size:15px; font-weight:300; color:rgba(255,255,255,.7); line-height:1.8; max-width:320px; padding-bottom:8px; }
.svc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.06); }
.svc-item { display:flex; flex-direction:column; background:var(--deep); padding:36px 30px 30px; text-decoration:none; transition:background .4s; position:relative; overflow:hidden; color:inherit; }
.svc-item::before { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,var(--gold),transparent); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
/* Cards are information only. */
.svc-num { font-family:var(--serif); font-size:14px; font-style:italic; color:var(--gold); opacity:.7; margin-bottom:20px; }
.svc-title { font-family:var(--serif); font-size:23px; font-weight:400; color:#fff; margin-bottom:12px; letter-spacing:-.01em; }
.svc-desc { font-size:14px; font-weight:300; color:rgba(255,255,255,.7); line-height:1.75; flex:1; }
/* Soft shimmer: a faint gold-white light sweeps across the card on hover (decorative only). */
.svc-item::after { content:''; position:absolute; inset:-1px; pointer-events:none; opacity:0;
  background:linear-gradient(115deg, transparent 30%, rgba(232,213,168,.07) 44%, rgba(255,255,255,.11) 50%, rgba(232,213,168,.07) 56%, transparent 70%);
  transform:translateX(-110%); transition:transform 1.2s var(--ease), opacity .4s; }
@media (hover:hover) {
  .svc-item:hover { background:rgba(255,255,255,.025); }
  .svc-item:hover::after { transform:translateX(110%); opacity:1; }
}
@media (prefers-reduced-motion: reduce) { .svc-item::after { display:none; } }
@media(max-width:900px) { .svc-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px) {
  /* Compact list on phones: number beside the title, whole card is the link. */
  .svc-grid{grid-template-columns:1fr;}
  .svc-item{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:baseline;padding:20px 18px 20px 16px;}
  .svc-num{margin:0;grid-row:1;}
  .svc-title{grid-column:2;margin-bottom:6px;font-size:22px;}
  .svc-desc{grid-column:2;font-size:14px;line-height:1.65;}
}

/* What sets us apart — compact strip at the foot of Services */
.apart { margin-top: 56px; display: grid; grid-template-columns: auto 1fr 1fr 1fr; gap: 0; border-top: 1px solid rgba(200,168,110,.18); }
.apart-label { padding: 28px 40px 0 0; font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .24em; text-transform: uppercase; color: var(--gold); white-space: nowrap; }
.apart-item { padding: 28px 28px 0; border-left: 1px solid rgba(255,255,255,.07); }
.apart-icon { width: 26px; height: 26px; color: var(--gold); margin-bottom: 14px; }
.apart-title { font-family: var(--serif); font-size: 21px; font-weight: 400; color: #fff; margin-bottom: 8px; }
.apart-body { font-size: 14px; font-weight: 300; line-height: 1.7; color: rgba(255,255,255,.68); }
@media (min-width: 641px) and (max-width: 900px) {
  .apart { grid-template-columns: repeat(3, 1fr); }
  .apart-label { grid-column: 1 / -1; padding: 24px 0 0; }
  .apart-item:first-of-type { border-left: none; padding-left: 0; }
}
@media (max-width: 640px) {
  .apart { grid-template-columns: 1fr; }
  .apart-label { padding: 24px 0 4px; }
  .apart-item { display: grid; grid-template-columns: 26px 1fr; column-gap: 16px; padding: 18px 0; border-left: none; border-bottom: 1px solid rgba(255,255,255,.07); }
  .apart-icon { grid-row: span 2; margin: 2px 0 0; width: 24px; height: 24px; }
  .apart-title { font-size: 20px; margin-bottom: 4px; }
}

/* ── OUR STORY (merged Statement + Philosophy) ── */
.story { background: var(--cream); padding: var(--section-y) var(--section-x); position: relative; overflow: hidden; }
.story-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px 72px; align-items: end; }
.story-side .story-pillars { margin-top: 0; }
.story-h { font-family: var(--serif); font-size: clamp(36px, 4.8vw, 62px); font-weight: 300; line-height: 1.08; color: var(--plum); letter-spacing: -.02em; margin-bottom: 28px; }
.story-h em { font-style: italic; color: var(--mid); }
.story-body { font-size: var(--fs-lead); font-weight: 300; line-height: 1.85; color: var(--ash); max-width: 520px; }
.story-pillars { list-style: none; margin: 36px 0 0; display: grid; gap: 0; border-top: 1px solid var(--stone); max-width: 520px; }
.story-pillars li { display: grid; grid-template-columns: 34px 150px 1fr; gap: 8px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--stone); }
.story-pillars .n { font-family: var(--serif); font-style: italic; font-size: 14px; color: var(--gold); }
.story-pillars .t { font-family: var(--serif); font-size: 21px; font-weight: 400; color: var(--plum); }
.story-pillars .b { font-size: 14px; font-weight: 300; line-height: 1.65; color: var(--ash); }
.story-sig { margin-top: 36px; display: flex; align-items: center; gap: 18px; }
.story-sig-rule { width: 30px; height: 1px; background: var(--gold); }
.story-sig-text { font-family: var(--serif); font-size: 19px; font-style: italic; color: var(--violet); }

@media (max-width: 1024px) { .story-inner { gap: 44px; } }
@media (max-width: 900px) {
  .story-inner { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 560px) {
  .story-pillars li { grid-template-columns: 28px 1fr; }
  .story-pillars .b { grid-column: 2; }
}

/* ── PROCESS ── */
.process { background:var(--warm); padding:var(--section-y) var(--section-x); }
.proc-inner { max-width:1200px; margin:0 auto; }
.proc-h { font-family:var(--serif); font-size:clamp(36px,4.5vw,60px); font-weight:300; line-height:1.12; color:var(--plum); letter-spacing:-.02em; margin-bottom:80px; }
.proc-h em { font-style:italic; color:var(--lav); }
.proc-steps { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.proc-steps::before { content:''; position:absolute; top:21px; left:calc(12.5% + 11px); right:calc(12.5% + 11px); height:1px; background:linear-gradient(90deg,var(--stone),var(--mist),var(--stone)); }
.proc-step { padding:0 24px; display:flex; flex-direction:column; gap:28px; }
.proc-dot { width:26px; height:26px; border-radius:50%; border:1px solid var(--mist); background:var(--warm); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:13px; font-style:italic; color:var(--violet); flex-shrink:0; position:relative; z-index:1; }
.proc-step-t { font-family:var(--serif); font-size:22px; font-weight:400; color:var(--plum); letter-spacing:-.01em; margin-bottom:8px; }
.proc-step-b { font-size:14px; font-weight:300; color:var(--ash); line-height:1.75; }
@media(max-width:820px) { .proc-steps{grid-template-columns:1fr 1fr;gap:44px;} .proc-steps::before{display:none;} .proc-h{margin-bottom:52px;} }
@media(max-width:480px) { .proc-steps{grid-template-columns:1fr;gap:30px;} .proc-step{padding:0;flex-direction:row;gap:18px;} }

/* ── COVERAGE ── */
.coverage { background:var(--violet); padding:var(--section-y) var(--section-x); position:relative; overflow:hidden; }
/* One wide photograph opens the section and fades into the violet. The section's
   glow sits above the photo so the hand-over to the plain background has no seam. */
.coverage:has(.cov-photo) { padding-top: 0; }
.coverage:has(.cov-photo)::before { z-index: 1; pointer-events: none; }
.coverage:has(.cov-photo) .cov-inner { z-index: 2; }
.cov-photo { position: relative; margin: 0 calc(-1 * var(--section-x)) clamp(8px, 2vw, 28px); z-index: 0; }
.cov-photo img { width: 100%; height: clamp(260px, 36vw, 540px); object-fit: cover; object-position: 60% 55%; }
.cov-photo::after { content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(12,7,24,.35) 0%, rgba(61,36,112,0) 22%, rgba(61,36,112,0) 58%, rgba(61,36,112,.7) 84%, var(--violet) 100%); }
@media (max-width: 640px) { .cov-photo img { height: 280px; object-position: 70% 55%; } }
.coverage::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 65% 65% at 100% 50%, rgba(155,126,212,.2) 0%,transparent 58%), radial-gradient(ellipse 50% 50% at 0% 50%, rgba(200,168,110,.06) 0%,transparent 58%); }
.cov-inner { max-width:1200px; margin:0 auto; position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; }
.cov-h { font-family:var(--serif); font-size:clamp(38px,5.5vw,72px); font-weight:300; line-height:1.1; color:#fff; letter-spacing:-.02em; margin-bottom:28px; }
.cov-h em { font-style:italic; color:var(--goldlt); }
.cov-body { font-size:16px; font-weight:300; color:rgba(255,255,255,.8); line-height:1.9; margin-bottom:18px; }
.cov-body-sub { font-size:15px; color:rgba(255,255,255,.7); line-height:1.8; margin-bottom:0; }
.cov-regions { list-style:none; display:flex; flex-direction:column; gap:0; border:1px solid rgba(255,255,255,.1); }
.cov-region { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid rgba(255,255,255,.07); font-size:14px; font-weight:300; color:rgba(255,255,255,.86); transition:background .3s; }
.cov-region:last-child { border-bottom:none; }
.cov-region:hover { background:rgba(255,255,255,.04); }
.cov-region-badge { font-size:11px; font-weight:400; letter-spacing:.14em; text-transform:uppercase; color:var(--goldlt); padding:3px 10px; border:1px solid rgba(200,168,110,.35); }
@media(max-width:900px) { .cov-inner{grid-template-columns:1fr;gap:40px;} }

/* ── QUOTE ── */
.quote-sect { background:var(--warm); padding:var(--section-y) var(--section-x); }
.q-inner { max-width:1200px; margin:0 auto; }
.q-head { text-align:center; margin-bottom:56px; }
.q-label { font-size:var(--fs-eyebrow); font-weight:400; letter-spacing:.26em; text-transform:uppercase; color:var(--mid); margin-bottom:22px; }
.q-h { font-family:var(--serif); font-size:clamp(38px,5vw,64px); font-weight:300; line-height:1.14; color:var(--plum); letter-spacing:-.02em; }
.q-h em { font-style:italic; color:var(--lav); }
.q-frame { background:#fff; border:1px solid var(--stone); max-width:800px; margin:0 auto; box-shadow:0 40px 120px rgba(12,7,24,.09), 0 10px 30px rgba(12,7,24,.04); }

/* ── QUOTE TOOL ── */
.qt { font-family:var(--sans); padding:46px 46px 60px; color:var(--ink); }
.qt .qct { font-family:var(--serif); font-size:27px; font-weight:300; color:var(--plum); margin-bottom:6px; letter-spacing:-.01em; }
.qt .qt-time-est { font-size:13px; font-weight:400; color:var(--violet); margin-bottom:14px; letter-spacing:.01em; }
.qt .qcs { font-size:14px; font-weight:300; color:var(--ash); margin-bottom:28px; }
.qt textarea { resize:vertical; min-height:88px; }
.qt .qbp { flex:1; padding:16px; background:var(--plum); color:#fff; border:none; font-size:12px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; cursor:pointer; font-family:inherit; transition:background .3s; }
.qt .qbp:hover { background:var(--violet); }
.qt .qbb { padding:16px 22px; background:transparent; color:var(--ash); border:1px solid var(--stone); font-size:12px; font-weight:300; cursor:pointer; font-family:inherit; transition:all .25s; }
.qt .qbb:hover { border-color:var(--mist); color:var(--ink); }

/* ── Custom date picker (replaces native browser calendar) ── */
.qt .dpick { position:relative; }
.qt .dpick-trigger {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:11px 14px; border:1px solid var(--stone); background:var(--warm);
  font-size:14px; font-family:inherit; color:var(--ink); cursor:pointer; text-align:left;
  transition:border-color .2s;
}
.qt .dpick-trigger:hover, .qt .dpick-trigger.open { border-color:var(--violet); }
.qt .dpick-trigger .dpick-val.placeholder { color:var(--ash); }
.qt .dpick-cal-icon { flex-shrink:0; opacity:.5; color:var(--violet); transition:opacity .2s; }
.qt .dpick-trigger.open .dpick-cal-icon, .qt .dpick-trigger:hover .dpick-cal-icon { opacity:1; }

.qt .dpick-panel {
  position:absolute; top:calc(100% + 6px); left:0; z-index:60;
  width:308px; max-width:calc(100vw - 32px);
  background:var(--warm); border:1px solid var(--stone); box-shadow:0 18px 40px rgba(12,7,24,.18);
  padding:16px; display:none;
}
.qt .dpick-panel.open { display:block; }
.qt .dpick-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.qt .dpick-month { font-family:var(--serif); font-size:18px; font-style:italic; color:var(--plum); }
.qt .dpick-navbtn {
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--stone); background:var(--warm); cursor:pointer; color:var(--ink); padding:0;
  transition:all .2s;
}
.qt .dpick-navbtn:hover:not(:disabled) { border-color:var(--violet); color:var(--violet); }
.qt .dpick-navbtn:disabled { opacity:.3; cursor:not-allowed; }
.qt .dpick-navbtn svg { pointer-events:none; }

.qt .dpick-dow { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:2px; }
.qt .dpick-dow span { font-size:11px; font-weight:500; letter-spacing:.05em; text-transform:uppercase; color:var(--ash); text-align:center; display:block; padding-bottom:6px; }
.qt .dpick-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.qt .dpick-day {
  width:100%; aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  border:1px solid transparent; background:none; cursor:pointer; font-size:14px; font-family:inherit; min-height:38px;
  color:var(--ink); transition:all .15s; padding:0;
}
.qt .dpick-day.muted { visibility:hidden; cursor:default; }
.qt .dpick-day:hover:not(:disabled) { border-color:var(--violet); }
.qt .dpick-day.today:not(.selected) { font-weight:500; color:var(--violet); }
.qt .dpick-day.selected { background:var(--violet); color:#fff; }
.qt .dpick-day:disabled { color:#bdb3a4; cursor:not-allowed; }
.qt .dpick-day:focus-visible { outline:2px solid var(--violet); outline-offset:-2px; }

.qt .dpick-foot { display:flex; align-items:center; justify-content:space-between; margin-top:12px; padding-top:12px; border-top:1px solid var(--stone); }
.qt .dpick-link { background:none; border:none; font-size:12px; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--violet); cursor:pointer; padding:10px 6px; font-family:inherit; }
.qt .dpick-link:hover:not(:disabled) { color:var(--plum); text-decoration:underline; }
.qt .dpick-link:disabled { color:var(--ash); opacity:.5; cursor:not-allowed; }

/* Phones: date ranges stack and each calendar spans the field, so the "To" picker can't overflow. */
@media (max-width:560px) {
  .qt { padding:28px 20px 40px; }
  .qt .date-range-wrap.show { grid-template-columns:1fr; gap:14px; }
  .qt .dpick-panel { width:100%; max-width:none; padding:12px; }
  .qt .dpick-day { min-height:40px; }
}
@media(max-width:480px) { .inv-alt-options{grid-template-columns:1fr;} }

/* ── FOOTER ── */
footer { background:var(--deep); padding:80px var(--section-x) 48px; }
.ft-inner { max-width:1200px; margin:0 auto; }
.ft-top { display:grid; grid-template-columns:1.7fr 1fr 1fr; gap:72px; margin-bottom:64px; }
.ft-brand { font-family:var(--serif); font-size:28px; font-weight:300; color:rgba(255,255,255,.85); margin-bottom:16px; }
.ft-brand em { font-style:italic; color:var(--goldlt); }
.ft-tagline { font-size:14px; font-weight:300; color:rgba(255,255,255,.8); line-height:1.8; max-width:300px; margin-bottom:22px; }
.ft-col-h { font-size:var(--fs-eyebrow); font-weight:400; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:22px; }
.ft-links { list-style:none; display:flex; flex-direction:column; gap:4px; }
.ft-links a { display:inline-block; padding:5px 0; font-size:14px; font-weight:300; color:rgba(255,255,255,.85); text-decoration:none; transition:color .3s; }
.ft-links a:hover { color:var(--goldlt); }
.ft-contact p { font-size:14px; font-weight:300; color:rgba(255,255,255,.85); line-height:1.75; margin-bottom:10px; }
.ft-contact a { color:rgba(255,255,255,.9); text-decoration:none; transition:color .3s; }
.ft-contact a:hover { color:var(--goldlt); }
.ft-wa { display:inline-flex; align-items:center; gap:8px; margin-top:6px; }
.ft-wa svg { width:16px; height:16px; }
.ft-legal-links { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ft-legal-links a { font-size:13px; font-weight:300; color:rgba(255,255,255,.82); text-decoration:none; transition:color .3s; letter-spacing:.03em; padding:6px 0; }
.ft-legal-links a:hover { color:var(--goldlt); }
.ft-legal-sep { color:rgba(255,255,255,.5); font-size:12px; }
.ft-bot { border-top:1px solid rgba(255,255,255,.06); padding-top:30px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.ft-copy { font-size:13px; font-weight:300; color:rgba(255,255,255,.75); letter-spacing:.03em; }
@media(max-width:820px) { .ft-top{grid-template-columns:1fr 1fr;gap:44px 32px;} .ft-top > :first-child{grid-column:1 / -1;} }
@media(max-width:480px) { .ft-top{grid-template-columns:1fr;} }

/* ── SCROLL REVEAL (one-shot) ── */
.sr { opacity:0; transition:opacity .95s var(--ease), transform .95s var(--ease); }
.sr.up  { transform:translateY(30px); }
.sr.left { transform:translateX(-26px); }
.sr.scale { transform:scale(.97); }
.sr.vis, .sr.vis.up, .sr.vis.left, .sr.vis.scale { opacity:1; transform:none; }
.sr.d1{transition-delay:.08s} .sr.d2{transition-delay:.18s} .sr.d3{transition-delay:.30s}

/* ── FOOTER CREDENTIALS ── */
.ft-badges { display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin-top:16px; }
.csd-badge { display:inline-flex; align-items:center; gap:10px; padding:10px 18px; border:1px solid rgba(200,168,110,.25); background:rgba(200,168,110,.06); }
.csd-badge-seal { width:28px; height:28px; flex-shrink:0; background:var(--gold); display:flex; align-items:center; justify-content:center; font:600 14px var(--sans); color:var(--plum); }
.csd-badge-text { display:flex; flex-direction:column; gap:3px; }
.csd-badge-title { font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--goldlt); line-height:1; }
.csd-badge-sub { font-size:11px; font-weight:300; color:rgba(255,255,255,.8); letter-spacing:.03em; }
.ft-git-badge { display:inline-flex; align-items:center; gap:10px; padding:9px 16px; border:1px solid rgba(200,168,110,.2); font-size:12px; font-weight:300; color:rgba(255,255,255,.82); }
.ft-git-dot { width:6px; height:6px; border-radius:50%; background:var(--gold); flex-shrink:0; }

/* ── NAV PROGRESS LINE ── */
#nav-progress {
  position: fixed; top: 0; left: 0; height: 2px; z-index: 600;
  background: linear-gradient(90deg, var(--violet), var(--gold));
  width: 0%; transition: width .1s linear;
  pointer-events: none;
}

/* ══ FINAL TOOL CSS ══ */

.progress-bar{background:#fff;border:1px solid var(--stone);border-radius:50px;height:6px;margin-bottom:28px;overflow:hidden}
.progress-fill{height:100%;background:var(--violet);border-radius:50px;transition:width .4s ease}
.step-label{font-size:12px;color:var(--ash);margin-bottom:8px;letter-spacing:.5px;text-transform:uppercase;font-weight:500}
.card{background:#fff;border:1px solid var(--stone);border-radius:0;padding:28px;margin-bottom:16px}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.cat-btn{background:#fff;border:1.5px solid var(--stone);border-radius:0;padding:18px 14px;cursor:pointer;text-align:left;transition:all .2s;display:flex;flex-direction:column;gap:6px}
.cat-btn:hover{border-color:var(--violet);background:var(--cream);transform:translateY(-2px);box-shadow:0 6px 18px rgba(12,7,24,.08)}
.cat-btn .icon{font-size:22px}
.cat-btn .name{font-weight:500;font-size:14px;color:var(--ink)}
.cat-btn .desc{font-size:12px;color:var(--ash);line-height:1.4}

/* FIELDS */
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;font-weight:500;color:var(--ash);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.field label .req{color:var(--violet)}
.field-hint{font-size:12px;color:var(--ash);margin-top:4px}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=url],select,textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--stone);border-radius:0;
  font-size:15px;font-family:inherit;background:#fff;color:var(--ink);transition:border .2s;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--violet)}
textarea{resize:vertical;min-height:90px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}

/* YES/NO/IDK RADIO ROW */
.ynd-row{display:flex;align-items:center;gap:0;margin-bottom:10px;padding:12px 14px;border:1.5px solid var(--stone);border-radius:0;background:#fff}
.ynd-question{flex:1;font-size:13px;color:var(--ink);font-weight:500}
.ynd-options{display:flex;gap:18px;flex-shrink:0}
.ynd-option{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:13px;color:var(--ash);user-select:none}
.ynd-option input[type=radio]{width:15px;height:15px;accent-color:var(--violet);cursor:pointer;flex-shrink:0}
.ynd-option span{white-space:nowrap}

/* CHECKBOXES */
.check-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--stone);cursor:pointer}
.check-item:last-child{border-bottom:none}
.check-item input[type=checkbox]{width:17px;height:17px;margin-top:2px;accent-color:var(--violet);flex-shrink:0;cursor:pointer}
.check-item .check-label{font-size:14px;color:var(--ink);font-weight:500}
.check-item .check-sub{font-size:12px;color:var(--ash);margin-top:2px}

/* STANDALONE CHECKBOX */
.checkbox-line{display:flex;align-items:center;gap:8px;cursor:pointer;margin-bottom:14px}
.checkbox-line input[type=checkbox]{width:16px;height:16px;accent-color:var(--violet);cursor:pointer;flex-shrink:0}
.checkbox-line span{font-size:14px;color:var(--ash)}

/* DATE BUTTONS */
.date-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.date-btn{padding:12px;border:1.5px solid var(--stone);border-radius:0;cursor:pointer;font-size:13px;font-weight:500;background:#fff;transition:all .2s;text-align:center;color:var(--ink);font-family:inherit}
.date-btn:hover,.date-btn.active{border-color:var(--violet);background:var(--cream);color:var(--violet)}
.date-input-wrap{display:none;margin-top:10px}
.date-input-wrap.show{display:block}
.date-range-wrap{display:none;gap:10px;margin-top:10px}
.date-range-wrap.show{display:grid;grid-template-columns:1fr 1fr}
input[type=date]{width:100%;padding:11px 14px;border:1.5px solid var(--stone);border-radius:0;font-size:14px;font-family:inherit;background:#fff;color:var(--ink);outline:none}
input[type=date]:focus{border-color:var(--violet)}
.flex-discount{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--cream);border:1px solid var(--stone);border-radius:50px;font-size:12px;font-weight:500;color:var(--violet);margin-top:8px}

/* NAV BUTTONS */
.nav-btns{display:flex;gap:12px;margin-top:24px}
.btn-primary{flex:1;padding:15px;background:var(--plum);color:#fff;border:none;border-radius:0;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-primary:hover{background:var(--violet);transform:translateY(-1px);box-shadow:0 6px 18px rgba(12,7,24,.08)}
.btn-back{padding:15px 22px;background:transparent;color:var(--ash);border:1.5px solid var(--stone);border-radius:0;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-back:hover{border-color:var(--mist);color:var(--ink)}

/* INVENTORY */
input[type=range]{width:100%;accent-color:var(--violet);height:4px}
.inv-estimator{background:var(--plum);color:#fff;border-radius:0;padding:14px 18px;margin-bottom:16px;font-size:14px;display:flex;align-items:center;justify-content:space-between}
.inv-estimator .est-label{opacity:.7;font-size:12px}
.inv-estimator .est-value{font-size:18px;font-weight:500;color:var(--goldlt)}
.inv-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.inv-tab{padding:7px 14px;border:1.5px solid var(--stone);border-radius:50px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;background:#fff;color:var(--ash);font-family:inherit}
.inv-tab.active{border-color:var(--violet);background:var(--violet);color:#fff}
.inv-items{display:flex;flex-direction:column;gap:2px}
.inv-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid var(--stone);border-radius:8px;background:#fff}
.inv-item .item-name{font-size:14px;color:var(--ink);flex:1}
.inv-item .item-controls{display:flex;align-items:center;gap:8px}
.inv-item .ctrl-btn{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--stone);background:#fff;cursor:pointer;font-size:15px;font-weight:500;display:flex;align-items:center;justify-content:center;transition:all .2s;color:var(--ink);font-family:inherit}
.inv-item .ctrl-btn:hover{border-color:var(--violet);color:var(--violet)}
.inv-item .item-count{min-width:22px;text-align:center;font-weight:500;font-size:14px}
.inv-add-btn{width:100%;padding:11px;border:1.5px dashed var(--mist);border-radius:0;background:transparent;color:var(--ash);font-size:13px;font-weight:500;cursor:pointer;margin-top:8px;transition:all .2s;font-family:inherit}
.inv-add-btn:hover{border-color:var(--violet);color:var(--violet)}

/* PHOTOS */
.photo-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.photo-btn{padding:20px;border:1.5px dashed var(--mist);border-radius:0;background:#fff;cursor:pointer;text-align:center;transition:all .2s;font-family:inherit}
.photo-btn:hover{border-color:var(--violet);background:var(--cream)}
.photo-btn .photo-icon{font-size:24px;margin-bottom:6px}
.photo-btn .photo-label{font-size:13px;font-weight:500;color:var(--ash)}
.photo-btn .photo-sub{font-size:12px;color:var(--ash);margin-top:3px}
.photo-count-badge{display:none;align-items:center;gap:8px;margin-top:14px;padding:10px 14px;background:var(--cream);border:1px solid var(--stone);border-radius:0;font-size:13px;font-weight:500;color:var(--violet)}
.photo-count-badge.show{display:flex}

/* HELP OPTIONS */
.help-opt{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--stone);border-radius:0;cursor:pointer;transition:all .2s;background:#fff;margin-bottom:8px}
.help-opt:hover{border-color:var(--violet);background:var(--cream)}
.help-opt.selected{border-color:var(--violet);background:var(--cream)}
.help-opt input{accent-color:var(--violet);width:16px;height:16px;flex-shrink:0}
.help-emoji{font-size:20px;min-width:36px;text-align:center}
.help-title{font-size:13px;font-weight:500}
.help-desc{font-size:12px;color:var(--ash);margin-top:2px}

/* RESTRICTIONS */
.restrictions-box{background:var(--cream);border:1px solid var(--stone);border-radius:0;padding:14px}
.restr-other-box{background:var(--warm);border:1px solid var(--stone);border-radius:0;padding:12px 14px;margin-top:10px;display:none}
.restr-other-box.show{display:block}
.restriction-warning{background:var(--warm);border:1px solid var(--stone);border-radius:0;padding:12px 14px;margin-top:10px;display:none}
.restriction-warning.show{display:block}

/* SUMMARY */
.summary-panel{background:var(--warm);border:1px solid var(--stone);border-radius:0;padding:20px;margin-bottom:22px}
.summary-title{font-size:12px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;color:var(--ash);margin-bottom:14px}
.summary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid var(--stone)}
.summary-row:last-child{border-bottom:none}
.summary-key{font-size:13px;color:var(--ash);font-weight:500;min-width:120px;flex-shrink:0}
.summary-val{font-size:13px;color:var(--ink);font-weight:500;text-align:right}
.summary-section{margin-bottom:18px}
.summary-section:last-of-type{margin-bottom:0}
.summary-section-title{font-size:11px;font-weight:500;letter-spacing:.7px;text-transform:uppercase;color:var(--violet);margin-bottom:6px;padding-bottom:4px;border-bottom:1.5px solid var(--stone)}
.summary-row-block{display:block;padding:9px 0;border-bottom:1px solid var(--stone)}
.summary-row-block .summary-key{display:block;margin-bottom:4px}
.summary-val-block{font-size:13px;color:var(--ink);font-weight:500;line-height:1.6;text-align:left;white-space:pre-wrap}
.summary-warning-box{background:var(--warm);border:1px solid var(--stone);border-radius:0;padding:14px 16px;margin-top:6px}
.summary-warning-title{font-size:12px;font-weight:500;letter-spacing:.6px;text-transform:uppercase;color:var(--plum);margin-bottom:8px}
.summary-warning-list{margin:0;padding-left:18px;font-size:13px;color:var(--ash);line-height:1.7}
.date-required-err{margin-top:8px}

.ynd-group{display:flex;gap:8px;margin-top:8px}
.ynd-btn{flex:1;padding:10px 8px;border:1.5px solid var(--stone);border-radius:0;cursor:pointer;font-size:13px;font-weight:500;background:#fff;color:var(--ink);font-family:inherit;transition:all .2s}
.ynd-btn:hover,.ynd-btn.active{border-color:var(--violet);background:var(--cream);color:var(--violet)}

/* MISC */
.section-label{font-size:12px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;color:var(--ash);margin:18px 0 10px}
.step-title{font-family:var(--serif);font-weight:300;font-size:22px;color:var(--ink);margin-bottom:4px}
.step-sub{font-size:14px;color:var(--ash);margin-bottom:20px}
.err-msg{font-size:12px;color:var(--error);margin-top:4px;display:none}
.err-msg.show{display:block}
.partner-banner{background:var(--cream);border:1px solid var(--stone);border-left:2px solid var(--gold);padding:14px 18px;margin-bottom:22px;font-size:14px;font-weight:300;color:var(--ink);line-height:1.6}
.shared-load-info{background:var(--cream);border:1px solid var(--stone);border-left:2px solid var(--gold);padding:16px 18px;margin-bottom:22px}
.shared-load-info .sl-title{font-family:var(--serif);font-weight:400;color:var(--plum);font-size:19px;margin-bottom:4px}
.shared-load-info .sl-desc{font-size:14px;font-weight:300;color:var(--ash);line-height:1.65}

/* SIZE FIELDS */
.size-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:10px}
.size-grid-2{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.size-label{font-size:11px;color:var(--ash);margin-bottom:4px;font-weight:500;text-transform:uppercase;letter-spacing:.3px}

/* JUNK SLIDER */
.slider-val{font-size:15px;font-weight:500;color:var(--violet);margin-bottom:6px}
.slider-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--ash);margin-top:4px}

/* SUCCESS */
.success-card{text-align:center;padding:48px 28px}
.success-icon{font-size:56px;margin-bottom:16px}
.success-title{font-family:var(--serif);font-weight:300;font-size:28px;color:var(--plum);margin-bottom:10px}
.success-sub{font-size:15px;color:var(--ash);line-height:1.7}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:999;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-box{background:#fff;border-radius:0;padding:28px;max-width:520px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:0 24px 60px rgba(12,7,24,.18)}
.modal-title{font-family:var(--serif);font-weight:300;font-size:20px;margin-bottom:14px}
.modal-close{float:right;background:none;border:none;font-size:20px;cursor:pointer;color:var(--ash);margin-top:-4px}
.modal-overlay.hidden{display:none}

/* ADDRESS — MANUAL ENTRY / MAP PIN / CONFIRMATION */
.addr-alt-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px}
.addr-link-btn{background:none;border:none;padding:0;font-size:12.5px;font-weight:500;color:var(--plum);text-decoration:underline;text-underline-offset:2px;cursor:pointer;font-family:inherit}
.addr-link-btn:hover{color:var(--violet)}
.addr-manual-panel,.addr-map-panel,.addr-unknown-panel{margin-top:14px;padding:16px;background:var(--warm);border:1px solid var(--stone);border-radius:0}
.addr-manual-panel .field,.addr-unknown-panel .field{margin-bottom:12px}
.addr-map-canvas{width:100%;height:220px;border-radius:0;border:1px solid var(--stone);background:#e8e8e8}
.addr-confirm-box{margin-top:14px;padding:14px 16px;background:var(--cream);border:1px solid var(--stone);border-radius:0}
.addr-confirm-preview{font-size:13.5px;color:var(--ink);font-weight:500;margin-bottom:10px;line-height:1.5}
.addr-confirm-box .checkbox-line{margin-bottom:0}

/* INVENTORY — PASTE / UPLOAD ALTERNATIVES */
.inv-alt-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
.inv-alt-btn{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1.5px dashed var(--mist);border-radius:0;background:#fff;cursor:pointer;text-align:left;transition:all .2s;font-family:inherit}
.inv-alt-btn:hover{border-color:var(--violet);background:var(--cream)}
.inv-alt-icon{font-size:19px;line-height:1}
.inv-alt-text{display:flex;flex-direction:column;gap:2px}
.inv-alt-label{font-size:13px;font-weight:500;color:var(--ink)}
.inv-alt-sub{font-size:11.5px;color:var(--ash);line-height:1.4}
.inv-file-chip{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-top:10px;background:var(--cream);border:1px solid var(--stone);border-radius:0}
.inv-file-chip-icon{font-size:17px}
.inv-file-chip-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.inv-file-chip-name{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-file-chip-sub{font-size:11.5px;color:var(--ash)}
.inv-file-chip-remove{background:none;border:none;font-size:15px;color:var(--ash);cursor:pointer;padding:4px}
.inv-file-chip-remove:hover{color:var(--error)}
.inv-file-err{font-size:12.5px;color:var(--error);font-weight:500;margin-top:10px}
.inv-required-err{display:none;font-size:12.5px;color:var(--error);font-weight:500;margin-top:14px}
.inv-required-err.show{display:block}

/* PHOTOS — CARDS WITH FILENAME / REMOVE / REPLACE */
.photo-err{display:none;margin-top:10px}
.photo-err.show{display:block}
.photo-err-line{font-size:12.5px;color:var(--error);font-weight:500;margin-bottom:4px}
.photo-card{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--stone);border-radius:0;background:#fff}
.photo-card .photo-preview{width:52px;height:52px;border-radius:8px;object-fit:cover;border:1px solid var(--stone);flex-shrink:0}
.photo-preview-file{display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--warm)}
.photo-card-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.photo-card-name{font-size:12.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-card-size{font-size:11px;color:var(--ash)}
.photo-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.photo-card-btn{background:none;border:1px solid var(--stone);border-radius:6px;padding:5px 9px;font-size:11px;font-weight:500;color:var(--ash);cursor:pointer;font-family:inherit}
.photo-card-btn:hover{border-color:var(--violet);color:var(--violet)}
.photo-card-remove{color:var(--ash);border:none;font-size:14px;padding:5px 7px}
.photo-card-remove:hover{color:var(--error)}
.photo-previews{display:flex;flex-direction:column;gap:8px;margin-top:12px}


/* ── Digs overrides for .qt scope ── */
.qt .progress-bar{background:var(--stone);border:none;border-radius:0;height:2px;margin-bottom:38px}
.qt .progress-fill{background:var(--violet);border-radius:0}
.qt .card{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:0;box-shadow:none}
.qt .step-title{font-family:var(--serif);font-size:23px;font-weight:300;color:var(--plum);margin-bottom:5px;letter-spacing:-.01em}
.qt .step-sub{font-size:14px;font-weight:300;color:var(--ash);margin-bottom:24px}
.qt .cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:8px}
.qt .cat-btn{background:var(--warm);border:1px solid var(--stone);padding:22px 18px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:5px;transition:all .25s;font-family:inherit;border-radius:0}
.qt .cat-btn:hover{border-color:var(--violet);background:var(--cream)}
.qt .cat-btn .icon{font-size:19px}
.qt .cat-btn .name{font-weight:400;font-size:13px;color:var(--plum)}
.qt .cat-btn .desc{font-size:11px;font-weight:300;color:var(--ash);line-height:1.4}
.qt .cat-btn-shared{background:var(--cream);border-color:var(--lav)}
.qt .btn-primary{background:var(--plum);color:#fff;border:none;border-radius:0;font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;padding:16px;cursor:pointer;transition:background .3s;flex:1}
.qt .btn-primary:hover{background:var(--violet)}
.qt .btn-back{background:transparent;color:var(--ash);border:1px solid var(--stone);border-radius:0;font-family:var(--sans);font-size:12px;font-weight:300;padding:16px 22px;cursor:pointer}
.qt .nav-btns{display:flex;gap:12px;margin-top:30px}
.qt input[type=text],.qt input[type=email],.qt input[type=tel],.qt input[type=number],.qt input[type=url],.qt select,.qt textarea{width:100%;padding:15px 18px;border:1px solid var(--stone);border-radius:0;background:var(--warm);font-size:15px;font-family:inherit;color:var(--ink);outline:none;transition:border-color .2s}
.qt input:focus,.qt select:focus,.qt textarea:focus{border-color:var(--violet)}
.qt select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%238a8070' stroke-width='1.3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.qt .field label{font-size:11px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--ash);margin-bottom:7px;display:block}
.qt .field .req{color:var(--violet)}
.qt .field-hint{font-size:11px;color:var(--ash);margin-top:4px;font-weight:300}
.qt .consent-field { margin-bottom: 22px; }
.qt .consent-label { display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:13px; font-weight:300; line-height:1.55; color:var(--ash); text-transform:none; letter-spacing:normal; }
.qt .consent-label input[type="checkbox"] { flex-shrink:0; width:18px; height:18px; margin-top:2px; accent-color: var(--violet); cursor:pointer; }
.qt .consent-label a { color:var(--violet); text-decoration:underline; text-underline-offset:2px; }
.qt .consent-label a:hover { color:var(--plum); }
.qt .err-msg{font-size:12px;color:var(--error);margin-top:4px;display:none}
.qt .err-msg.show{display:block}
.qt .addr-err-msg{color:var(--error);font-size:12px;margin-top:5px}
.qt .section-label{font-size:11px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--ash);margin:20px 0 12px}
.qt .date-btn{border-radius:0;font-family:var(--sans)}
.qt .date-btn.active,.qt .date-btn:hover{border-color:var(--violet);background:var(--cream);color:var(--violet)}
.qt .flex-discount{background:var(--cream);border:1px solid var(--stone);border-radius:0;color:var(--violet);font-size:12px}
.qt .restrictions-box{background:var(--cream);border:1px solid var(--stone);border-radius:0;padding:14px}
.qt .restr-other-box{background:var(--warm);border:1px solid var(--stone);border-radius:0}
.qt .check-item input[type=checkbox]{accent-color:var(--violet)}
.qt .check-label{font-size:14px;font-weight:300;color:var(--ink)}
.qt .check-sub{font-size:12px;color:var(--ash);font-weight:300}
.qt .help-opt{border-radius:0;border-color:var(--stone);background:var(--warm)}
.qt .help-opt:hover,.qt .help-opt.selected{border-color:var(--violet);background:var(--cream)}
.qt .help-opt input{accent-color:var(--violet)}
.qt .inv-estimator{background:var(--plum);border-radius:0}
.qt .inv-estimator .est-value{color:var(--goldlt)}
.qt .inv-tab{border-radius:50px;font-family:var(--sans);border-color:var(--stone);background:var(--warm);color:var(--ash)}
.qt .inv-tab.active{border-color:var(--violet);background:var(--violet);color:#fff}
.qt .inv-item{border-radius:0;border-color:var(--stone);background:var(--warm)}
.qt .ctrl-btn{border-radius:0;border-color:var(--stone);background:var(--warm);color:var(--ink)}
.qt .ctrl-btn:hover{border-color:var(--violet);color:var(--violet)}
.qt .inv-add-btn{border-radius:0}
.qt .summary-panel{background:var(--cream);border:1px solid var(--stone);border-radius:0}
.qt .summary-key{color:var(--ash)}
.qt .summary-val{color:var(--plum)}
.qt .summary-section-title{color:var(--violet);border-bottom-color:var(--stone);font-family:var(--sans)}
.qt .summary-val-block{color:var(--ink)}
.qt .summary-warning-box{background:var(--warm);border:1px solid var(--stone);border-radius:0}
.qt .summary-warning-title{color:var(--plum)}
.qt .summary-warning-list{color:var(--ash)}
.qt .ynd-btn{border-radius:0;font-family:var(--sans);border-color:var(--stone);background:var(--warm);color:var(--ink)}
.qt .ynd-btn:hover,.qt .ynd-btn.active{border-color:var(--violet);background:var(--cream);color:var(--violet)}
.qt .option-btn{display:flex;align-items:center;gap:14px;padding:17px 20px;border:1px solid var(--stone);cursor:pointer;transition:all .2s;background:var(--warm);margin-bottom:8px;border-radius:0}
.qt .option-btn:hover,.qt .option-btn.selected{border-color:var(--violet);background:var(--cream)}
.qt .option-btn input[type=radio]{accent-color:var(--violet);width:15px;height:15px;flex-shrink:0}
.qt .shared-load-info{background:var(--cream);border:1px solid var(--stone);border-radius:0}
.qt .success-card{text-align:center;padding:48px 28px}
.qt .success-icon{font-size:48px;margin-bottom:20px}
.qt .success-title{font-family:var(--serif);font-size:30px;font-weight:300;color:var(--plum);margin-bottom:12px}
.qt .success-sub{font-size:15px;font-weight:300;color:var(--ash);line-height:1.85}
.qt .modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.qt .modal-overlay.hidden{display:none}
.qt .modal-box{background:#fff;padding:34px;max-width:520px;width:100%;max-height:80vh;overflow-y:auto;border-radius:0}
.qt .modal-title{font-family:var(--serif);font-size:23px;font-weight:300;margin-bottom:14px;color:var(--plum)}
.qt .modal-close{float:right;background:none;border:none;font-size:22px;cursor:pointer;color:var(--ash)}
.qt .slider-val{font-size:15px;font-weight:400;color:var(--violet);margin-bottom:6px;font-family:var(--serif);font-style:italic}
.qt input[type=range]{accent-color:var(--violet)}
.qt .size-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:10px}
.qt .photo-btn{border-radius:0;border-color:var(--mist);background:var(--warm)}
.qt .photo-btn:hover{border-color:var(--violet);background:var(--cream)}

/* ── qt overrides: address manual/map/confirm ── */
.qt .addr-link-btn{color:var(--violet);font-weight:400;font-family:var(--sans);text-decoration:underline}
.qt .addr-link-btn:hover{color:var(--plum)}
.qt .addr-manual-panel,.qt .addr-map-panel,.qt .addr-unknown-panel{background:var(--warm);border:1px solid var(--stone);border-radius:0}
.qt .addr-map-canvas{border-radius:0;border-color:var(--stone)}
.qt .addr-confirm-box{background:var(--cream);border:1px solid var(--stone);border-radius:0}
.qt .addr-confirm-preview{color:var(--plum);font-family:var(--serif);font-style:italic;font-weight:400;font-size:15px}
.qt .addr-unknown-line span{font-size:13px;font-weight:300;color:var(--ash)}

/* ── qt overrides: inventory paste/upload alternatives ── */
.qt .inv-alt-btn{border-radius:0;border-color:var(--stone);background:var(--warm)}
.qt .inv-alt-btn:hover{border-color:var(--violet);background:var(--cream)}
.qt .inv-alt-label{color:var(--plum);font-weight:400;font-family:var(--sans)}
.qt .inv-alt-sub{color:var(--ash);font-weight:300}
.qt .inv-file-chip{background:var(--cream);border:1px solid var(--stone);border-radius:0}
.qt .inv-file-chip-name{color:var(--plum)}
.qt .inv-file-chip-sub{color:var(--ash)}
.qt .inv-file-err,.qt .inv-required-err{color:var(--error)}

/* ── qt overrides: photo cards ── */
.qt .photo-card{border:1px solid var(--stone);background:var(--warm);border-radius:0}
.qt .photo-card .photo-preview{border-radius:0;border-color:var(--stone)}
.qt .photo-card-name{color:var(--plum)}
.qt .photo-card-size{color:var(--ash)}
.qt .photo-card-btn{border-radius:0;border-color:var(--stone);color:var(--ash);font-family:var(--sans)}
.qt .photo-card-btn:hover{border-color:var(--violet);color:var(--violet)}
.qt .photo-err-line{color:var(--error)}

/* ═══════════════════════════════════════
   CONTACT PAGE STYLES
═══════════════════════════════════════ */
#contact-page {
  min-height: 100vh;
  background: var(--warm);
  font-family: var(--sans);
}

/* Nav */
.cp-nav {
  position: sticky; top: 0; z-index: 10;
  background: var(--deep);
  border-bottom: 1px solid rgba(200,168,110,.1);
  padding: 0 8vw;
}
.cp-nav-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  height: 68px;
}
.cp-logo {
  font-family: var(--serif); font-size: 22px; font-weight: 300;
  color: #fff; text-decoration: none; letter-spacing: .01em;
}
.cp-logo em { font-style: italic; color: var(--goldlt); }

/* Hero */
.cp-hero {
  background: var(--deep);
  padding: 80px 8vw 90px;
}
.cp-hero::after {
  content: ''; display: block; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(200,168,110,.15), transparent);
  margin-top: 90px;
}
.cp-hero-inner { max-width: 1200px; margin: 0 auto; }
.cp-label {
  font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 20px;
  display: flex; align-items: center; gap: 16px;
}
.cp-label::before { content:''; width: 32px; height: 1px; background: rgba(200,168,110,.3); }
.cp-h {
  font-family: var(--serif); font-size: clamp(40px, 6vw, 72px); font-weight: 300;
  color: #fff; line-height: 1.05; letter-spacing: -.02em; margin-bottom: 24px;
}
.cp-sub {
  font-size: 16px; font-weight: 300; color: rgba(255,255,255,.77); line-height: 1.85; max-width: 560px;
}

/* Body */
.cp-body { max-width: 1200px; margin: 0 auto; padding: 72px 8vw 100px; }
.cp-grid { display: grid; grid-template-columns: 1fr 420px; gap: 64px; align-items: start; }
@media (max-width: 1024px) { .cp-grid { grid-template-columns: 1fr; gap: 48px; } }

/* Form card */
.cp-form-card {
  background: #fff; border: 1px solid var(--stone);
  padding: 48px; position: sticky; top: 88px;
}
@media (max-width: 1024px) { .cp-form-card { position: static; } }
.cp-form-intro {
  font-size: 14px; font-weight: 300; color: var(--ash); line-height: 1.8; margin-bottom: 36px;
  padding-bottom: 28px; border-bottom: 1px solid var(--stone);
}
.cp-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .cp-row-2 { grid-template-columns: 1fr; } }
.cp-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.cp-field label {
  font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ash);
}
.cp-req { color: var(--violet); }
.cp-hint { color: var(--ash); font-size: 11px; font-weight: 300; letter-spacing: .1em; }
.cp-field input, .cp-field textarea, .cp-field select {
  width: 100%; padding: 13px 16px;
  border: 1px solid var(--stone); background: var(--warm);
  font-size: 14px; font-family: var(--sans); font-weight: 300; color: var(--ink);
  outline: none; transition: border-color .25s, background .25s;
  border-radius: 0; resize: vertical;
  -webkit-appearance: none;
}
.cp-field input:focus, .cp-field textarea:focus {
  border-color: var(--violet); background: #fff;
}
.cp-field input.invalid, .cp-field textarea.invalid { border-color: var(--error); }
.cp-err {
  font-size: 11px; color: var(--error); font-weight: 300; display: none;
}
.cp-err.show { display: block; }

/* Upload zone */
.cp-upload-zone {
  border: 1.5px dashed var(--stone); padding: 36px 24px;
  text-align: center; cursor: pointer;
  transition: border-color .3s, background .3s;
  background: var(--warm);
}
.cp-upload-zone:hover, .cp-upload-zone.drag-over {
  border-color: var(--violet); background: var(--cream);
}
.cp-upload-icon { color: var(--ash); margin-bottom: 12px; display: flex; justify-content: center; }
.cp-upload-zone:hover .cp-upload-icon { color: var(--violet); }
.cp-upload-main { font-size: 14px; font-weight: 300; color: var(--ink); margin-bottom: 6px; }
.cp-upload-sub { font-size: 12px; font-weight: 300; color: var(--ash); line-height: 1.6; margin-bottom: 8px; }
.cp-upload-types { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ash); }
.cp-file-list { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.cp-file-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px; background: var(--cream); border: 1px solid var(--stone);
  font-size: 12px; font-weight: 300; color: var(--ash);
}
.cp-file-remove {
  background: none; border: none; cursor: pointer; color: var(--mist);
  font-size: 16px; line-height: 1; padding: 0; transition: color .2s;
}
.cp-file-remove:hover { color: var(--error); }

/* Submit button */
.cp-submit {
  width: 100%; padding: 18px; margin-top: 8px;
  background: var(--plum); color: #fff; border: none; cursor: pointer;
  font-family: var(--sans); font-size: 11px; font-weight: 400;
  letter-spacing: .22em; text-transform: uppercase;
  display: flex; align-items: center; justify-content: center; gap: 12px;
  transition: background .3s, gap .3s;
}
.cp-submit:hover { background: var(--violet); gap: 18px; }
.cp-submit:disabled { background: var(--mist); cursor: not-allowed; gap: 12px; }
.cp-submit-arrow { flex-shrink: 0; transition: transform .3s; }
.cp-submit:hover .cp-submit-arrow { transform: translateX(4px); }

.cp-success-msg {
  margin-top: 18px; padding: 16px 20px;
  background: var(--cream); border: 1px solid var(--stone);
  font-size: 13px; font-weight: 300; color: var(--violet);
  text-align: center;
}

/* Info panel */
.cp-info { display: flex; flex-direction: column; gap: 0; }
.cp-info-block {
  padding: 28px 0; border-bottom: 1px solid var(--stone);
}
.cp-info-block:first-child { padding-top: 0; }
.cp-info-label {
  font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ash); margin-bottom: 10px;
}
.cp-info-val {
  font-size: 16px; font-weight: 300; color: var(--plum); margin-bottom: 2px; display: block;
}
a.cp-info-link { text-decoration: none; transition: color .3s; }
a.cp-info-link:hover { color: var(--violet); }
.cp-info-note { font-size: 12px; font-weight: 300; color: var(--ash); margin-top: 6px; line-height: 1.7; }

.cp-contact-actions { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.cp-action-btn {
  display: inline-flex; align-items: center; gap: 7px;
  min-height: 44px; padding: 0 18px;
  font-family: var(--sans); font-size: 13px; font-weight: 500;
  text-decoration: none; border-radius: 3px;
  transition: transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
.cp-action-call { background: var(--plum); color: #fff; }
.cp-action-call:hover { background: var(--violet); transform: translateY(-1px); }
.cp-action-wa { background: #25D366; color: #fff; }
.cp-action-wa:hover { background: #1fb959; transform: translateY(-1px); }
.cp-action-btn svg { flex-shrink: 0; }

/* Hours */
.cp-hours { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
.cp-hours-row {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px; font-weight: 300; color: var(--ash); padding: 5px 0;
  border-bottom: 1px solid var(--stone);
}
.cp-hours-row:last-child { border-bottom: none; }
.cp-hours-row span:last-child { color: var(--plum); font-weight: 400; }

/* Supplies tags */
.cp-supplies {
  display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px;
}
.cp-supplies span {
  font-size: 11px; font-weight: 300; padding: 5px 11px;
  border: 1px solid var(--stone); color: var(--ash);
  letter-spacing: .04em;
}


/* Contact footer */
.cp-foot {
  background: var(--deep); padding: 28px 8vw;
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px; font-weight: 300; color: rgba(255,255,255,.6);
}
.cp-foot a {
  color: rgba(255,255,255,.66); text-decoration: none;
  letter-spacing: .08em; transition: color .3s;
}
.cp-foot a:hover { color: var(--goldlt); }

/* Mobile adjustments */
@media (max-width: 640px) {
  .cp-form-card { padding: 28px 20px; }
  .cp-hero { padding: 60px 6vw 70px; }
  .cp-body { padding: 48px 6vw 80px; }
  .cp-foot { flex-direction: column; gap: 12px; text-align: center; }
}

/* ═══════════════════════════════════════
   LEGAL PAGES (Terms + Privacy)
═══════════════════════════════════════ */
#terms-page, #privacy-page {
  min-height: 100vh;
  background: var(--warm);
  font-family: var(--sans);
}
.lp-nav {
  position: sticky; top: 0; z-index: 10;
  background: var(--deep);
  border-bottom: 1px solid rgba(200,168,110,.1);
  padding: 0 8vw;
}
.lp-nav-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  height: 68px;
}
.lp-logo {
  font-family: var(--serif); font-size: 22px; font-weight: 300;
  color: #fff; text-decoration: none; letter-spacing: .01em;
}
.lp-logo em { font-style: italic; color: var(--goldlt); }
.lp-back {
  font-size: 12px; font-weight: 300; letter-spacing: .12em;
  color: rgba(255,255,255,.72); text-decoration: none;
  text-transform: uppercase; transition: color .3s;
}
.lp-back:hover { color: var(--goldlt); }
.lp-hero {
  background: var(--deep); padding: 72px 8vw 80px;
}
.lp-hero::after {
  content: ''; display: block; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(200,168,110,.15), transparent);
  margin-top: 80px;
}
.lp-hero-inner { max-width: 860px; margin: 0 auto; }
.lp-label {
  font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 18px;
  display: flex; align-items: center; gap: 16px;
}
.lp-label::before { content:''; width:32px; height:1px; background:rgba(200,168,110,.3); }
.lp-title {
  font-family: var(--serif); font-size: clamp(36px, 5.5vw, 64px); font-weight: 300;
  color: #fff; line-height: 1.05; letter-spacing: -.02em; margin-bottom: 18px;
}
.lp-effective {
  font-size: 13px; font-weight: 300; color: rgba(255,255,255,.66); letter-spacing: .06em;
}
.lp-body {
  max-width: 860px; margin: 0 auto; padding: 64px 8vw 100px;
}
.lp-intro {
  font-size: 16px; font-weight: 300; color: var(--ash); line-height: 1.85;
  margin-bottom: 52px; padding-bottom: 40px; border-bottom: 1px solid var(--stone);
}
.lp-section { margin-bottom: 44px; }
.lp-section-num {
  font-size: var(--fs-eyebrow); font-weight: 400; letter-spacing: .22em; text-transform: uppercase;
  color: var(--ash); margin-bottom: 10px;
}
.lp-section-title {
  font-family: var(--serif); font-size: 22px; font-weight: 300;
  color: var(--plum); margin-bottom: 14px; letter-spacing: -.01em;
}
.lp-section p {
  font-size: 14px; font-weight: 300; color: var(--ash); line-height: 1.85; margin-bottom: 12px;
}
.lp-section ul {
  margin: 8px 0 12px 0; padding: 0; list-style: none;
}
.lp-section ul li {
  font-size: 14px; font-weight: 300; color: var(--ash); line-height: 1.75;
  padding: 5px 0 5px 20px; position: relative;
  border-bottom: 1px solid var(--stone);
}
.lp-section ul li:last-child { border-bottom: none; }
.lp-section ul li::before {
  content: '—'; position: absolute; left: 0; color: var(--mist); font-size: 12px;
}
.lp-notice {
  margin: 0 0 52px; padding: 30px 34px;
  background: var(--cream); border-left: 3px solid var(--gold);
}
.lp-notice-title {
  font-family: var(--serif); font-size: 18px; font-weight: 400;
  color: var(--plum); margin-bottom: 10px; letter-spacing: -.01em;
}
.lp-notice p {
  font-size: 14px; font-weight: 300; color: var(--ash); line-height: 1.85; margin-bottom: 10px;
}
.lp-notice ul { margin: 6px 0 0; padding: 0; list-style: none; }
.lp-notice ul li {
  font-size: 14px; font-weight: 300; color: var(--ink); line-height: 1.7;
  padding: 6px 0 6px 20px; position: relative;
}
.lp-notice ul li::before {
  content: '—'; position: absolute; left: 0; color: var(--gold); font-size: 12px;
}
.lp-contact-block {
  margin-top: 48px; padding: 32px 36px;
  background: var(--cream); border: 1px solid var(--stone);
}
.lp-contact-block p {
  font-size: 14px; font-weight: 300; color: var(--ash); line-height: 1.85; margin-bottom: 4px;
}
.lp-contact-block a { color: var(--violet); text-decoration: none; transition: color .3s; }
.lp-contact-block a:hover { color: var(--plum); }
.lp-contact-block strong { font-weight: 400; color: var(--plum); }
.lp-foot {
  background: var(--deep); padding: 28px 8vw;
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px; font-weight: 300; color: rgba(255,255,255,.6);
}
.lp-foot a {
  color: rgba(255,255,255,.66); text-decoration: none;
  letter-spacing: .08em; transition: color .3s;
}
.lp-foot a:hover { color: var(--goldlt); }
@media (max-width: 640px) {
  .lp-hero { padding: 52px 6vw 60px; }
  .lp-body { padding: 48px 6vw 80px; }
  .lp-foot { flex-direction: column; gap: 12px; text-align: center; }
}

/* ── WHATSAPP FLOAT ── */
.wa-float {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 850;
  display: flex; flex-direction: column; align-items: flex-end; gap: 12px;
  pointer-events: none;
}
.wa-float > * { pointer-events: auto; }
.wa-bubble {
  max-width: 264px;
  background: var(--warm);
  border: 1px solid var(--stone);
  box-shadow: 0 18px 40px rgba(12,7,24,.22);
  padding: 16px 40px 16px 18px;
  position: relative;
  font-family: var(--sans);
  opacity: 0; transform: translateY(10px) scale(.97);
  pointer-events: none;
  transition: opacity .35s var(--ease), transform .35s var(--ease);
}
.wa-bubble.show { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.wa-bubble-name { font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--mid); margin-bottom: 5px; }
.wa-bubble-text { font-size: 13.5px; font-weight: 300; line-height: 1.55; color: var(--ink); }
.wa-bubble-close {
  position: absolute; top: 8px; right: 8px;
  width: 26px; height: 26px; border: none; background: none; cursor: pointer;
  color: var(--ash); font-size: 15px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  -webkit-tap-highlight-color: transparent;
}
.wa-bubble-close:hover { color: var(--ink); }
.wa-bubble::after {
  content: ''; position: absolute; bottom: -7px; right: 26px;
  width: 14px; height: 14px; background: var(--warm);
  border-right: 1px solid var(--stone); border-bottom: 1px solid var(--stone);
  transform: rotate(45deg);
}

.wa-btn {
  position: relative;
  width: 58px; height: 58px; border-radius: 50%;
  background: #25D366;
  display: flex; align-items: center; justify-content: center;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(37,211,102,.4), 0 2px 8px rgba(12,7,24,.25);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.wa-btn:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 12px 30px rgba(37,211,102,.5), 0 4px 10px rgba(12,7,24,.3); }
.wa-btn:active { transform: scale(.96); }
.wa-btn svg { width: 30px; height: 30px; position: relative; z-index: 2; }
.wa-btn-ring {
  position: absolute; inset: 0; border-radius: 50%;
  border: 1px solid rgba(37,211,102,.55);
  animation: waPulse 2.6s var(--ease) infinite;
}
@keyframes waPulse {
  0% { transform: scale(1); opacity: .7; }
  100% { transform: scale(1.7); opacity: 0; }
}
/* ── ACCESSIBILITY: visible keyboard focus ── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--goldlt, #e8d5a8);
  outline-offset: 3px;
  border-radius: 2px;
}
.qt a:focus-visible, .qt button:focus-visible, .qt input:focus-visible, .qt select:focus-visible, .qt textarea:focus-visible,
.cp-form a:focus-visible, .cp-form button:focus-visible, .cp-form input:focus-visible, .cp-form textarea:focus-visible {
  outline: 2px solid var(--violet, #5c3d9e);
  outline-offset: 2px;
}

/* ── ACCESSIBILITY: reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .wa-btn-ring { animation: none; display: none; }
  body::after { animation: none; opacity: 0.015; }
  .hero-orb-1, .hero-orb-2, .hero-orb-3 { animation: none; }
  .ticker-track { animation: none; }
  .marq-row.row1, .marq-row.row2 { animation: none; }
  .sr { opacity: 1 !important; transform: none !important; transition: none !important; }
}
.wa-float { transition: opacity .3s var(--ease), transform .3s var(--ease); }
.wa-float.wa-hidden { opacity: 0; transform: translateY(12px); pointer-events: none; }
.wa-float.wa-hidden > * { pointer-events: none; }

@media (max-width: 480px) {
  .wa-float { right: max(14px, env(safe-area-inset-right)); bottom: max(14px, env(safe-area-inset-bottom)); }
  .wa-btn { width: 52px; height: 52px; }
  .wa-btn svg { width: 27px; height: 27px; }
  .wa-bubble { max-width: calc(100vw - 56px); }
}

/* ── MOBILE-FIRST SPACING PASS ── */
@media (max-width: 640px) {
  .hero-h { font-size: clamp(46px, 13vw, 148px); margin-bottom: 34px; }
  .hero-inner { padding: 0 6vw 7vh; }
  .hero { min-height: 560px; }
  .svc-h { font-size: clamp(40px, 11vw, 88px); }
  .reviews-head { padding-top: 56px; padding-bottom: 36px; }
  .rv-card { width: 82vw; padding: 24px 22px 20px; }
  .rv-text { font-size: 17px; }
}

/* Places API (New) suggestions for the existing address inputs. */
.addr-wrap { position:relative; }
.addr-suggestions { position:absolute; top:46px; left:0; right:0; z-index:1000; background:#fff; color:var(--ink); border:1px solid var(--stone); border-radius:0; box-shadow:0 4px 12px #0002; overflow:hidden; }
.addr-suggestions[hidden] { display:none; }
.addr-suggestions [role=listbox] { max-height:240px; overflow-y:auto; }
.addr-suggestion { padding:12px 14px; font-size:14px; line-height:1.4; cursor:pointer; overflow-wrap:anywhere; border-bottom:1px solid var(--stone); }
.addr-suggestion:hover, .addr-suggestion[aria-selected=true] { background:var(--cream); }
.addr-google-attribution { padding:8px 14px; text-align:right; font:500 14px Arial,sans-serif; color:#5f6368; background:#fff; }

.addr-google-attribution img { display:inline-block; height:16px; width:auto; }

/* Quote repair: long answers and radio questions must fit phone widths. */
.qt .summary-val,.qt .summary-val-block,.qt .item-name{min-width:0;overflow-wrap:anywhere}
.qt .size-grid>*{min-width:0}
.qt #custom-item-inp{min-width:0}
.qt #quote-recovery .nav-btns button{min-height:44px}
.qt .git-options{margin:20px 0}
@media(max-width:480px){
  .qt .ynd-row{flex-direction:column;align-items:flex-start;gap:12px}
  .qt .ynd-options{flex-wrap:wrap;gap:14px;max-width:100%}
  .qt .summary-row{flex-direction:column;gap:4px}
  .qt .summary-key{min-width:0;max-width:100%}
  .qt .summary-val{text-align:left;max-width:100%}
  .qt .nav-btns{flex-wrap:wrap}
  .qt .nav-btns button{min-width:0;white-space:normal;overflow-wrap:anywhere}
  .qt .size-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qt .inv-item{flex-wrap:wrap;gap:6px}
  .qt .item-controls{flex-shrink:0}
}

/* Secondary recovery utility, contained within the quote tool. */
.quote-recovery-strip{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 14px;margin:0 0 16px;border:1px solid var(--stone);border-radius:8px;font-size:13px;line-height:1.5;}
.quote-recovery-copy{flex:1 1 180px;}
.quote-recovery-actions{display:flex;gap:8px;flex-wrap:wrap;}
.quote-recovery-actions button{font:inherit;font-weight:500;min-height:44px;padding:8px 12px;border:1px solid var(--stone);border-radius:6px;background:transparent;color:inherit;cursor:pointer;}
.quote-recovery-actions .quote-recovery-reset{border-color:transparent;text-decoration:underline;text-underline-offset:3px;}
.quote-recovery-actions button:focus-visible{outline:2px solid currentColor;outline-offset:2px;}

/* Keep address confirmation prompts secondary in every service flow. */
.qt .addr-confirm-box .checkbox-line{align-items:flex-start;font-size:14px;line-height:1.5;}
.qt .addr-confirm-box .checkbox-line span{font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.5;letter-spacing:normal;text-transform:none;}
.qt .addr-confirm-box .checkbox-line input{margin-top:2px;}

/* Quote navigation actions use the brand purple without recolouring other CTAs. */
.qt .quote-continue{background:var(--mid);color:#fff;}
.qt .quote-continue:hover{background:var(--violet);}
.qt .quote-continue:focus-visible{outline:3px solid var(--lav);outline-offset:3px;}
.qt .quote-continue:disabled{background:var(--mid);opacity:.55;cursor:not-allowed;transform:none;box-shadow:none;}
/* Prevent browser anchor compensation from undoing explicit step positioning. */
.qt{overflow-anchor:none;}
/* Keep the fixed navigation above all hero animation/transform layers. */
.nav{background:var(--plum);isolation:isolate;}
.hero{isolation:isolate;z-index:0;padding-top:calc(var(--site-header-height,112px) + 64px);}
.hero-atm,.hero-orb,.hero-lines,.hero-vig,.hero-rule{pointer-events:none;}

/* ═══ QUOTE BUILDER REFINEMENTS (audit implementation, Nov 2026) ═══ */
.qt .step-label{font-size:12px;font-weight:400;letter-spacing:.14em;color:var(--ash)}
.qt .step-title{font-size:26px;line-height:1.2;outline:none}
.qt .step-sub{font-size:15px;font-weight:300;line-height:1.6}
.qt .field label{font-size:12px;letter-spacing:.12em}
.qt .field-hint{font-size:12.5px;font-weight:300;line-height:1.55}
.qt .err-msg{font-size:13px;font-weight:400}
.qt .opt{font-weight:300;text-transform:none;letter-spacing:0;color:var(--ash)}
.qt .check-label{font-weight:400}
.qt .help-title{font-weight:500;font-size:14px}
.qt .help-desc{font-size:13px;font-weight:300}
.qt .ynd-question{font-size:14px;font-weight:400}
.qt .ynd-option{font-size:14px;min-height:36px}
.qt .ynd-option input[type=radio]{width:18px;height:18px}
.qt .check-item input[type=checkbox],.qt .checkbox-line input[type=checkbox]{width:18px;height:18px}
.qt .date-btn{font-size:14px;font-weight:400;min-height:48px}
.qt .summary-val{font-weight:400}
.qt .summary-key{font-weight:300}
.qt .summary-section-title{font-weight:500;letter-spacing:.14em;display:flex;align-items:center;justify-content:space-between;gap:12px}
.qt .summary-edit{background:none;border:none;padding:6px 0 6px 12px;font:400 12px var(--sans);letter-spacing:.06em;text-transform:none;color:var(--violet);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.qt .summary-edit:hover{color:var(--plum)}
.qt .summary-title{font-weight:500;letter-spacing:.14em}
.qt .summary-warning-title{font-weight:500}
.qt .block-head{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--plum);margin:30px 0 14px;padding-top:22px;border-top:1px solid var(--stone)}
.qt .block-head:first-of-type{margin-top:8px}
.qt .block-head.first{margin-top:6px;padding-top:0;border-top:none}
.qt .notice{margin:14px 0 4px;padding:12px 14px;background:var(--cream);border:1px solid var(--stone);border-left:2px solid var(--gold);font-size:13.5px;font-weight:300;line-height:1.6;color:var(--ink)}
.qt .notice.warn{border-left-color:var(--violet)}
.qt .notice[hidden]{display:none}
.qt .return-summary{flex-basis:100%;background:none;border:1px dashed var(--mist);padding:13px;font:400 13px var(--sans);color:var(--violet);cursor:pointer}
.qt .return-summary:hover{border-color:var(--violet)}
.qt [aria-invalid="true"]{border-color:var(--error)!important}

/* Category screen */
.qt .cat-hint{margin:-12px 0 18px;padding:12px 14px;background:var(--cream);border-left:2px solid var(--gold);font-size:14px;font-weight:300;line-height:1.6;color:var(--ink)}
.qt .cat-hint[hidden]{display:none}
.qt .cat-btn .name{font-size:14px;font-weight:500}
.qt .cat-btn .desc{font-size:12.5px;font-weight:300;line-height:1.45}
.qt .cat-btn.suggest{border-color:var(--gold);background:var(--cream);box-shadow:inset 0 0 0 1px var(--gold)}
.qt .cat-btn:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
@media (max-width:560px){
  .qt .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .qt .cat-btn{padding:14px 12px;gap:3px;min-height:112px}
  .qt .cat-btn .icon{font-size:18px}
  .qt .cat-btn .name{font-size:14px}
  .qt .cat-btn .desc{font-size:12px}
}

/* Choice tiles (single-choice radio groups rendered as buttons) */
.qt .choice-group{display:grid;gap:8px}
.qt .choice-group.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.qt .choice-group.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.qt .choice{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 14px;border:1px solid var(--stone);background:var(--warm);cursor:pointer;font-size:14px;font-weight:300;line-height:1.35;color:var(--ink);transition:border-color .2s,background .2s}
.qt .choice:hover{border-color:var(--violet)}
.qt .choice input{accent-color:var(--violet);width:18px;height:18px;flex-shrink:0;margin:0}
.qt .choice:has(input:checked){border-color:var(--violet);background:var(--cream)}
.qt .choice:focus-within{outline:2px solid var(--violet);outline-offset:1px}
.qt .choice small{display:block;font-size:12.5px;color:var(--ash);margin-top:2px}
@media (max-width:480px){ .qt .choice-group.cols-3{grid-template-columns:1fr} }

/* Address field */
.qt .addr-input{width:100%}
.qt .addr-confirm-box.confirmed{border-left:2px solid var(--violet)}
.qt .addr-confirm-box .addr-ok{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:400;color:var(--violet);margin-top:2px}
.qt .addr-confirm-box .addr-confirm-err{display:none;margin-top:8px;font-size:13px;color:var(--error)}
.qt .addr-confirm-box.needs-tick{border-color:var(--error)}
.qt .addr-confirm-box.needs-tick .addr-confirm-err{display:block}
.qt .dest-details[hidden]{display:none}
.addr-suggestions{border-radius:0;box-shadow:0 12px 30px rgba(12,7,24,.14)}

/* Gumtree */
.qt .market-cat{display:block;width:100%;text-align:left;padding:14px 16px;border:1px solid var(--stone);background:var(--warm);cursor:pointer;font-family:var(--sans);transition:border-color .2s,background .2s}
.qt .market-cat:hover,.qt .market-cat:focus-visible{border-color:var(--violet);background:var(--cream)}
.qt .market-cat-name{display:block;font-size:14px;font-weight:500;color:var(--plum)}
.qt .market-cat-desc{display:block;font-size:12.5px;font-weight:300;color:var(--ash);margin-top:2px}
.qt .market-preview{display:flex;gap:14px;align-items:center;background:var(--cream);padding:14px;border:1px solid var(--stone);margin-bottom:16px}
.qt .market-preview img{width:60px;height:60px;object-fit:cover;flex-shrink:0}
.qt .market-title{font-family:var(--serif);font-size:18px;color:var(--plum)}
.qt .market-chosen{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px;font-size:14px;color:var(--ink)}
.qt .market-chosen strong{font-weight:500;color:var(--plum)}
.qt .market-form{padding:18px;border:1px solid var(--stone);background:var(--warm)}
.qt .market-fallback-hint{margin-top:10px}
.qt .market-fallback-hint p{font-size:13.5px;line-height:1.55;margin-bottom:8px;color:var(--ink)}
.qt .market-fallback-hint p.is-error{color:var(--error)}
.qt .url-row{display:flex;gap:8px;margin-bottom:14px}
.qt .url-row input{flex:1;min-width:0}

/* Photos */
.qt .photo-options.single{grid-template-columns:1fr}
.qt .photo-btn .photo-label{font-weight:500;color:var(--plum);font-size:14px}
.qt .photo-count-badge{background:var(--cream);border:1px solid var(--stone);color:var(--violet);font-weight:400}

/* Inventory */
.qt .inv-boxes{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--stone);background:var(--cream)}
.qt .inv-boxes .item-name{font-weight:400}
.qt .inv-boxes small{display:block;font-size:12px;color:var(--ash);font-weight:300}
.qt .inv-estimator .est-note{font-size:12px;opacity:.8;margin-top:2px;max-width:420px;line-height:1.45}
.qt .ctrl-btn{width:36px;height:36px}

/* Junk */
.qt .slider-state{font-size:12.5px;color:var(--ash);margin-left:8px;font-family:var(--sans);font-style:normal}
.qt .slider-clear{background:none;border:none;color:var(--violet);text-decoration:underline;font:400 12.5px var(--sans);cursor:pointer;padding:4px 0;margin-top:4px}

/* Modal */
.qt .modal-sub{font-size:14px;color:var(--ash);margin-bottom:12px;font-weight:300;line-height:1.55}
.qt .modal-actions{display:flex;gap:10px;margin-top:14px}
.qt .modal-close{min-width:40px;min-height:40px}

@media (max-width:560px){
  .qt .step-title{font-size:24px}
  .qt .nav-btns .btn-back{flex:0 0 auto}
  .qt .size-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .qt .size-grid>div:last-child{grid-column:1 / -1}
}

/* ═══ CONTACT + LEGAL: navigation and mobile contact order ═══ */
.cp-nav-links { list-style:none; display:flex; align-items:center; gap:28px; }
.cp-nav-links a { font-size:12px; font-weight:300; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.8); text-decoration:none; transition:color .3s; padding:8px 0; }
.cp-nav-links a:hover { color:var(--goldlt); }
.cp-nav-links .cp-nav-quote { padding:10px 18px; border:1px solid rgba(200,168,110,.4); color:var(--goldlt); }
.cp-nav-links .cp-nav-quote:hover { background:var(--gold); color:var(--plum); }
@media (max-width:640px) { .cp-nav-links { gap:16px; } .cp-nav-links li:not(:last-child) { display:none; } }
.cp-guided { margin-top:22px; }
.cp-guided a { font-size:14px; font-weight:300; color:var(--goldlt); text-decoration:none; border-bottom:1px solid rgba(200,168,110,.45); padding-bottom:3px; }
.cp-guided a:hover { color:#fff; border-color:#fff; }
/* Call/WhatsApp lead the page on phones and tablets, ahead of the long form. */
.cp-hero-actions { display:none; gap:10px; margin-top:26px; flex-wrap:wrap; }
@media (max-width:1024px) { .cp-hero-actions { display:flex; } .cp-hero-actions .cp-action-call { background:var(--gold); color:var(--plum); } }
.cp-hero-actions .cp-action-btn { min-height:48px; font-size:14px; }
.cp-foot-links { display:flex; flex-wrap:wrap; gap:6px 20px; justify-content:center; }
.cp-foot-links a { color:rgba(255,255,255,.75); text-decoration:none; letter-spacing:.04em; padding:6px 0; transition:color .3s; }
.cp-foot-links a:hover { color:var(--goldlt); }
.cp-sub, .lp-intro { font-weight:300; }
.cp-foot, .lp-foot { font-size:13px; font-weight:300; }

/* ═══ 404 ═══ */
.nf-page { background: var(--plum); }
.nf { min-height: calc(100svh - 68px - 80px); display: flex; align-items: center; padding: 72px var(--section-x); background: radial-gradient(ellipse 80% 70% at 70% 20%, rgba(61,36,112,.7), transparent 60%), var(--plum); }
.nf-inner { max-width: 760px; margin: 0 auto; width: 100%; }
.nf-h { font-family: var(--serif); font-size: clamp(42px, 7vw, 84px); font-weight: 300; line-height: 1.02; color: #fff; letter-spacing: -.02em; margin-bottom: 26px; }
.nf-h em { font-style: italic; color: var(--goldlt); }
.nf-body { font-size: 17px; color: rgba(255,255,255,.78); margin-bottom: 26px; max-width: 520px; }
.nf-links { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.nf-links a { display: inline-block; padding: 13px 20px; border: 1px solid rgba(200,168,110,.35); color: var(--goldlt); text-decoration: none; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; transition: background .3s, color .3s; }
.nf-links a:hover { background: var(--gold); color: var(--plum); }
.nf-call { font-size: 15px; color: rgba(255,255,255,.7); }
.nf-call a { color: #fff; }

/* Option labels inside a .field must not inherit the small uppercase field-label style. */
.qt .field label.choice,.qt .field label.option-btn,.qt .field label.checkbox-line,.qt .field label.ynd-option{display:flex;text-transform:none;letter-spacing:normal;font-size:14px;color:var(--ink);margin-bottom:0}
.qt .field label.option-btn{margin-bottom:0;font-weight:300}
.qt .option-btn:has(input:checked){border-color:var(--violet);background:var(--cream)}

/* Typography consolidation: only loaded Outfit weights (300/400/500) are used, and buttons inherit the brand font. */
button, input, select, textarea { font-family: inherit; }
.csd-badge-seal, .qt .flex-discount, .qt .size-label, .qt .inv-tab, .qt .item-count, .qt .inv-add-btn, .qt .inv-required-err, .qt .inv-file-err, .qt .photo-err-line { font-weight: 500; }
.qt .inv-estimator .est-value, .qt .ctrl-btn { font-weight: 500; }
.qt .size-label { font-size: 11.5px; letter-spacing: .08em; }
