:root{
  --ink:#060606;
  --surface:#121212;
  --surface-raised:#1a1a1a;
  --line:#2b2b2b;
  --line-soft:#1f1f1f;
  --white:#ffffff;
  --off:#f4f3ef;
  --chrome:#a9adb3;
  --chrome-dim:#74787e;
  --red:#a11d2c;
  --red-bright:#c62a3b;
  --yellow:#f4b921;
  --font-display:'Archivo Black', sans-serif;
  --font-body:'Inter', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  background:var(--ink);
  color:var(--white);
  font-family:var(--font-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

a{color:inherit; text-decoration:none;}
ul{list-style:none;}
img{max-width:100%; display:block;}

.wrap{max-width:1240px; margin:0 auto; padding:0 32px;}

::selection{background:var(--red); color:var(--white);}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--yellow);
  outline-offset:3px;
}

/* ---------- Eyebrow / labels ---------- */
.eyebrow{
  font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.16em;
  color:var(--white); background:var(--surface); border:1px solid var(--line);
  display:inline-flex; padding:7px 14px; margin-bottom:16px;
}
.eyebrow.on-dark{background:var(--ink);}

h1,h2,h3{font-family:var(--font-display); text-wrap:balance;}

/* ---------- Nav ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:transparent; border-bottom:1px solid transparent;
  transition:background 0.25s ease, border-color 0.25s ease;
}
header.scrolled{background:var(--ink); border-bottom-color:var(--line-soft);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:12px 32px; max-width:1240px; margin:0 auto; gap:24px;}
.brand{display:flex; align-items:center; gap:10px; flex-shrink:0;}
.brand img{height:44px; width:44px; object-fit:cover; border-radius:50%; border:1px solid var(--line);}
.brand-text{display:flex; flex-direction:column; line-height:1.1;}
.brand-text .script{font-size:15px; font-weight:800; letter-spacing:0.01em;}
.brand-text .caps{font-size:10px; letter-spacing:0.28em; color:var(--chrome);}

.nav-links{display:flex; gap:30px; align-items:center;}
.nav-links > li{position:relative;}
.nav-links > li > a{
  font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--white); display:flex; align-items:center; gap:5px; padding:10px 0;
}
.nav-links > li > a .caret{width:9px; height:9px; stroke:currentColor; fill:none; stroke-width:2.2;}
.nav-links > li > a:hover, .nav-links > li > a.current{color:var(--red-bright);}
.nav-links .btn-primary{display:none;}
.nav-links .btn-call{display:none;}

.nav-dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  background:var(--surface); border:1px solid var(--line); min-width:220px; padding:8px;
  opacity:0; visibility:hidden; transform-origin:top center; transition:opacity 0.15s ease, visibility 0.15s ease;
}
.nav-links > li:hover .nav-dropdown,
.nav-links > li:focus-within .nav-dropdown{opacity:1; visibility:visible;}
.nav-dropdown a{display:block; padding:9px 12px; font-size:13px; color:var(--chrome); border-radius:2px;}
.nav-dropdown a:hover{background:var(--surface-raised); color:var(--white);}

.nav-actions{display:flex; align-items:center; gap:10px; flex-shrink:0;}
.btn{
  font-size:12.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.05em;
  padding:13px 22px; border-radius:3px; display:inline-flex; align-items:center; gap:8px;
  border:1px solid transparent; cursor:pointer; transition:all 0.2s ease; white-space:nowrap;
}
.btn-primary{background:var(--red-bright); color:var(--white);}
.btn-primary:hover{background:#d93548; transform:translateY(-1px);}
.btn-call{background:var(--white); color:var(--red-bright); border-color:var(--white);}
.btn-call:hover{background:var(--off);}
.btn-call svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.4;}
.btn-ghost{background:transparent; color:var(--white); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--chrome);}
.btn-block{width:100%; justify-content:center;}

.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.nav-toggle span{width:22px; height:2px; background:var(--white); display:block;}

/* ---------- Hero ---------- */
.hero{position:relative; padding:150px 0 0; overflow:hidden;}
.hero-slideshow{position:absolute; inset:0; z-index:0; overflow:hidden; background:var(--ink);}
.hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition:opacity 1s ease;
}
.hero-slide.active{opacity:1;}
.hero-bg{
  position:absolute; inset:0; z-index:0;
  background:
    linear-gradient(180deg, rgba(6,6,6,0.78), rgba(6,6,6,0.6) 42%, rgba(6,6,6,0.88)),
    radial-gradient(ellipse 70% 60% at 85% 20%, rgba(198,42,59,0.3), transparent 65%),
    radial-gradient(ellipse 60% 50% at 10% 90%, rgba(161,29,44,0.22), transparent 60%);
}
.hero-inner{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr 0.95fr; gap:40px; align-items:start; padding-bottom:70px;}
.hero-badges{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px;}
.hero-badge{
  display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
  border:1px solid var(--line); padding:8px 14px; border-radius:30px; color:var(--off);
}
.hero-badge svg{width:13px; height:13px; stroke:var(--red-bright); fill:none; stroke-width:2.4;}
.hero h1{
  font-size:clamp(36px, 5.1vw, 60px); line-height:1.02; letter-spacing:0.005em; text-transform:uppercase;
  max-width:13ch;
}
.hero p.lead{font-size:16.5px; color:var(--chrome); max-width:480px; margin-top:20px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px;}

/* ---------- Quote card ---------- */
.quote-card{
  background:linear-gradient(165deg, var(--red-bright), var(--red) 70%);
  padding:30px 30px 34px; border-radius:4px; box-shadow:0 30px 60px -24px rgba(0,0,0,0.6);
}
.quote-card-logo{display:flex; justify-content:center; margin-bottom:18px;}
.quote-card-logo img{width:92px; height:92px; border-radius:50%; border:2px solid rgba(255,255,255,0.5);}
.q-field{margin-bottom:16px;}
.q-field label{display:block; font-size:12px; font-weight:700; margin-bottom:7px; color:var(--white);}
.q-field .optional{font-weight:400; opacity:0.75; text-transform:none; letter-spacing:0;}
.q-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.quote-card input, .quote-card select, .quote-card textarea{
  width:100%; background:rgba(0,0,0,0.22); border:1px solid rgba(255,255,255,0.35); color:var(--white);
  padding:12px 13px; font-family:var(--font-body); font-size:13.5px; border-radius:3px;
}
.quote-card select{appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='2' d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:16px;}
.quote-card select option{color:#111;}
.quote-card input::placeholder, .quote-card textarea::placeholder{color:rgba(255,255,255,0.65);}
.quote-card input:focus, .quote-card select:focus, .quote-card textarea:focus{border-color:var(--white); outline:none;}
.quote-card .file-field{
  border:1px dashed rgba(255,255,255,0.45); border-radius:3px; padding:14px; font-size:12.5px; color:rgba(255,255,255,0.85);
}
.quote-card .file-field input{background:transparent; border:none; padding:0; font-size:12px;}
.q-status{font-size:12.5px; min-height:18px; margin-top:4px; color:var(--white); font-weight:600;}
.quote-card .autocomplete-list{background:var(--surface); border:1px solid var(--line);}
.quote-card .autocomplete-list button{color:var(--white);}
.quote-card .autocomplete-list button:hover, .quote-card .autocomplete-list button.active{background:var(--surface-raised); color:var(--red-bright);}

/* ---------- Trust bar ---------- */
.trust-bar{background:var(--ink); padding:26px 0 60px; position:relative; z-index:1;}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.trust-item{
  display:flex; align-items:center; gap:10px; border:1px solid var(--line); padding:14px 16px; border-radius:3px;
}
.trust-item svg{width:18px; height:18px; stroke:var(--red-bright); fill:none; stroke-width:2; flex-shrink:0;}
.trust-item span{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:0.04em;}

/* ---------- Section shells ---------- */
section{padding:100px 0;}
.section-black{background:var(--ink);}
.section-head{margin-bottom:46px;}
.underline-head{display:flex; align-items:center; gap:20px; margin-bottom:0;}
.underline-head h2{white-space:nowrap;}
.underline-head .rule{flex-grow:1; height:2px; background:var(--red-bright);}
h2{font-size:clamp(30px,4.2vw,46px); text-transform:uppercase; line-height:1.03;}
h2 .accent{color:var(--red-bright);}
.section-note{max-width:620px; color:var(--chrome); font-size:14.5px; margin-top:16px;}

/* ---------- About ---------- */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.about-grid p{color:var(--chrome); font-size:15px; max-width:46ch; margin-top:18px;}
.about-actions{display:flex; gap:12px; margin-top:26px; flex-wrap:wrap;}
.social-btn{
  display:inline-flex; align-items:center; gap:8px; padding:11px 18px; border-radius:3px;
  font-size:12.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.04em; color:var(--white);
}
.social-btn svg{width:15px; height:15px; stroke:var(--white); fill:none; stroke-width:2;}
.social-btn.ig{background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af);}
.social-btn.fb{background:#1877f2;}
.social-btn.review{background:var(--red);}
.social-btn.review svg{fill:var(--white); stroke:none;}

.collage{position:relative; height:480px;}
.collage img{position:absolute; border:5px solid var(--white); box-shadow:0 20px 40px -14px rgba(0,0,0,0.6); object-fit:cover;}
.collage .c1{width:54%; height:56%; top:0; left:0; z-index:2; transform:rotate(-3deg);}
.collage .c2{width:38%; height:38%; top:0; right:0; z-index:1; transform:rotate(4deg);}
.collage .c3{width:44%; height:40%; bottom:0; right:2%; z-index:3; transform:rotate(-4deg);}
.collage .c4{width:32%; height:32%; bottom:2%; left:4%; z-index:1; transform:rotate(6deg);}
.collage .c5{width:30%; height:30%; top:40%; left:36%; z-index:4; transform:rotate(-7deg);}

/* ---------- Services ---------- */
.service-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.service-card{
  position:relative; aspect-ratio:4/3; overflow:hidden; display:block; border-radius:10px;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.service-card:hover{transform:translateY(-4px); box-shadow:0 18px 36px -14px rgba(0,0,0,0.65); z-index:2;}
.service-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.35s ease;}
.service-card:hover img{transform:scale(1.06);}
.service-card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.1) 45%);}
.service-overlay{
  position:absolute; left:18px; right:18px; bottom:18px; z-index:1;
  display:flex; flex-direction:column;
}
.service-desc{
  background:var(--off); color:var(--ink); padding:0 16px; border-radius:8px 8px 0 0;
  font-size:14px; font-weight:500; line-height:1.45;
  max-height:0; opacity:0; overflow:hidden;
  transition:max-height 0.25s ease, opacity 0.2s ease, padding 0.25s ease;
}
.service-card:hover .service-desc{max-height:140px; opacity:1; padding:12px 16px;}
.service-label{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:rgba(6,6,6,0.88); padding:15px 18px; border-radius:8px; transition:border-radius 0.2s ease;
}
.service-card:hover .service-label{border-radius:0 0 8px 8px;}
.service-label span{font-size:14px; font-weight:800; text-transform:uppercase; letter-spacing:0.03em;}
.service-arrow{
  width:30px; height:30px; border-radius:50%; background:var(--red-bright); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.service-arrow svg{width:14px; height:14px; stroke:var(--white); fill:none; stroke-width:2.4;}
.service-price-chip{
  position:absolute; top:14px; right:14px; z-index:1; background:var(--red-bright); color:var(--white);
  font-size:11.5px; font-weight:800; padding:6px 11px; border-radius:30px;
}
.menu-loading{grid-column:1/-1; color:var(--chrome-dim); font-size:13px; padding:30px 0;}
.addons-strip{margin-top:3px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:3px;}
.addon-pill{background:var(--surface); border:1px solid var(--line-soft); padding:18px 22px; display:flex; justify-content:space-between; align-items:center; gap:10px;}
.addon-pill .name{font-size:13.5px;}
.addon-pill .price{font-size:13px; color:var(--red-bright); font-weight:700; white-space:nowrap;}

/* ---------- Process ---------- */
.process-wrap{position:relative; display:flex; flex-direction:column;}
.process-watermark{position:absolute; right:0; top:50%; transform:translateY(-50%); width:420px; max-width:40vw; opacity:0.05; pointer-events:none;}
.process-list{position:relative; z-index:1; display:flex; flex-direction:column; max-width:640px; margin-top:40px;}
.process-item{display:grid; grid-template-columns:40px 1fr; gap:20px; padding:0 0 30px; position:relative;}
.process-item::before{
  content:""; position:absolute; left:19px; top:40px; bottom:0; width:2px; background:var(--line);
}
.process-item:last-child::before{display:none;}
.process-item:last-child{padding-bottom:0;}
.process-num{
  width:40px; height:40px; border-radius:50%; background:var(--red-bright); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:16px; flex-shrink:0;
}
.process-item h3{font-size:17px; text-transform:uppercase; margin-bottom:6px; letter-spacing:0.01em;}
.process-item p{color:var(--chrome); font-size:14.5px; max-width:460px;}

/* ---------- Before / After & Gallery ---------- */
.baf-scroll-wrap{position:relative;}
.baf-scroller{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x proximity;
  padding:4px 4px 14px; margin:0 -4px;
  scrollbar-width:none; -ms-overflow-style:none;
}
.baf-scroller::-webkit-scrollbar{display:none;}
.baf-scroll-wrap::before, .baf-scroll-wrap::after{
  content:""; position:absolute; top:0; bottom:14px; width:56px; z-index:2; pointer-events:none;
}
.baf-scroll-wrap::before{left:0; background:linear-gradient(90deg, var(--ink), transparent);}
.baf-scroll-wrap::after{right:0; background:linear-gradient(270deg, var(--ink), transparent);}
.baf-card{
  flex:0 0 auto; width:280px; scroll-snap-align:start; cursor:zoom-in;
  background:var(--surface); border:1px solid var(--line-soft); border-radius:10px; overflow:hidden;
  box-shadow:0 18px 40px -20px rgba(0,0,0,0.7);
}
.baf-images{position:relative; display:flex; aspect-ratio:3/2;}
.baf-images img{width:50%; height:100%; object-fit:cover; display:block; background:var(--surface-raised);}
.baf-divider{position:absolute; top:0; bottom:0; left:50%; width:2px; background:var(--red-bright); transform:translateX(-1px);}
.baf-tag{
  position:absolute; top:10px; left:10px; background:rgba(6,6,6,0.65); color:var(--white);
  font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  padding:5px 9px; border-radius:3px;
}
.baf-chip{
  position:absolute; bottom:10px; font-weight:800; font-size:10.5px;
  letter-spacing:0.04em; text-transform:uppercase; padding:5px 10px; border-radius:20px;
}
.baf-chip.before{left:10px; background:rgba(0,0,0,0.6); color:var(--white);}
.baf-chip.after{right:10px; background:var(--red-bright); color:var(--white);}
.baf-caption{padding:12px 14px; font-size:12px; font-weight:700; letter-spacing:0.02em; text-transform:uppercase; color:var(--chrome);}
.baf-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:var(--surface);
  color:var(--white); display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:border-color 0.2s ease, color 0.2s ease;
}
.baf-arrow svg{width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.baf-arrow:hover{border-color:var(--red-bright); color:var(--red-bright);}
.baf-arrow.prev{left:-22px;}
.baf-arrow.next{right:-22px;}

.baf-lightbox{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:70px 24px 40px; background:rgba(6,6,6,0.94); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden; transition:opacity 0.25s ease;
}
.baf-lightbox.open{opacity:1; visibility:visible;}
.baf-lightbox-inner{width:100%; max-width:980px; display:flex; flex-direction:column; gap:18px;}
.baf-lightbox-images{
  position:relative; display:flex; gap:2px; background:var(--red-bright); border-radius:10px; overflow:hidden;
  max-height:76vh; box-shadow:0 30px 70px -20px rgba(0,0,0,0.8);
}
.baf-lightbox-images figure{flex:1 1 50%; margin:0; position:relative; background:var(--surface); display:flex;}
.baf-lightbox-images img{width:100%; height:100%; object-fit:contain; max-height:76vh; margin:auto; background:var(--ink);}
.baf-lightbox-images figcaption{
  position:absolute; bottom:12px; left:12px; font-weight:800; font-size:11px;
  letter-spacing:0.04em; text-transform:uppercase; padding:5px 11px; border-radius:20px;
  background:rgba(0,0,0,0.6); color:var(--white);
}
.baf-lightbox-images figure:last-child figcaption{background:var(--red-bright); left:auto; right:12px;}
.baf-lightbox-caption{text-align:center; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--chrome);}
.baf-lightbox-close{
  position:absolute; top:18px; right:24px; z-index:3;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:var(--surface);
  color:var(--white); display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:border-color 0.2s ease, color 0.2s ease;
}
.baf-lightbox-close:hover{border-color:var(--red-bright); color:var(--red-bright);}
.baf-lightbox-close svg{width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.baf-lightbox .baf-arrow{position:fixed; top:50%;}
.baf-lightbox .baf-arrow.prev{left:24px;}
.baf-lightbox .baf-arrow.next{right:24px;}

/* ---------- Reviews (carousel, shared by every page) ---------- */
.reviews-section{
  position:relative; padding:110px 0 100px;
  background:
    linear-gradient(180deg, rgba(6,6,6,0.92), rgba(70,10,18,0.82) 55%, rgba(6,6,6,0.94)),
    url('/assets/hero/corvette-rear-after.webp') center / cover no-repeat;
}
.reviews-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:44px;}
.reviews-head > div{flex-grow:1;}
.reviews-head .btn-call svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.4;}
.review-carousel{position:relative; max-width:960px; margin:0 auto;}
.rc-track{
  display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  scrollbar-width:none; -ms-overflow-style:none; padding:6px 2px 10px;
}
.rc-track::-webkit-scrollbar{display:none;}
.rc-card{
  flex:0 0 calc((100% - 22px) / 2); scroll-snap-align:start; margin:0;
  background:var(--white); color:var(--ink); border-radius:10px; padding:28px 28px 22px;
  display:flex; flex-direction:column; gap:14px; box-shadow:0 22px 40px -22px rgba(0,0,0,0.7);
}
.rc-stars{color:var(--red-bright); font-size:15px; letter-spacing:3px;}
.rc-card blockquote{font-size:15px; line-height:1.6; color:#2a2a2a; flex-grow:1;}
.rc-card figcaption{border-top:1px solid #e6e4df; padding-top:14px; font-size:13px; font-weight:700; color:var(--ink);}
.rc-card figcaption span{font-weight:400; color:#777;}
.rc-arrow{
  position:absolute; top:calc(50% - 18px); transform:translateY(-50%); z-index:2;
  width:42px; height:42px; border-radius:50%; border:none; background:var(--white); color:var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 8px 20px -8px rgba(0,0,0,0.6); transition:color 0.2s ease, transform 0.2s ease;
}
.rc-arrow:hover{color:var(--red-bright);}
.rc-arrow svg{width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;}
.rc-arrow.prev{left:-21px;}
.rc-arrow.next{right:-21px;}
.rc-dots{display:flex; justify-content:center; gap:8px; margin-top:18px; min-height:8px;}
.rc-dots button{width:8px; height:8px; border-radius:50%; border:none; padding:0; background:rgba(255,255,255,0.35); cursor:pointer; transition:width 0.2s ease, background 0.2s ease;}
.rc-dots button.active{width:22px; border-radius:4px; background:var(--white);}
.leave-review{
  max-width:420px; margin:44px auto 0; background:var(--ink); border-radius:12px; padding:34px 30px;
  text-align:center; box-shadow:0 30px 60px -24px rgba(0,0,0,0.8);
}
.leave-review h3{font-size:24px; text-transform:uppercase; letter-spacing:0.03em;}
.leave-review-stars{display:block; color:var(--red-bright); font-size:24px; letter-spacing:6px; margin:14px 0 22px;}

/* ---------- Service pages ---------- */
[id]{scroll-margin-top:80px;}
.svc-hero{
  position:relative; min-height:78vh; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:150px 0 140px; background-size:cover; background-position:center;
}
.svc-hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,6,6,0.72), rgba(6,6,6,0.5) 45%, rgba(6,6,6,0.78));
}
.svc-hero .wrap{position:relative; z-index:1;}
.svc-hero h1{font-size:clamp(40px, 7vw, 82px); line-height:1; text-transform:uppercase; margin-bottom:18px;}
.svc-hero .lead{font-size:17px; color:var(--off); max-width:560px; margin:0 auto;}
.svc-hero .hero-ctas{justify-content:center;}
.svc-wave{position:absolute; left:0; right:0; bottom:-1px; width:100%; height:70px; z-index:1; display:block;}
.svc-wave path{fill:var(--off);}
.svc-body{background:var(--off); color:var(--ink); padding:70px 0 100px;}
.svc-grid{display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:64px; align-items:start;}
.svc-copy p{font-size:16px; line-height:1.75; color:#333; margin-bottom:20px; max-width:62ch;}
.svc-highlights{margin:30px 0 32px; display:flex; flex-direction:column; gap:14px;}
.svc-highlights li{display:grid; grid-template-columns:18px 1fr; gap:12px; font-size:15px; color:#333;}
.svc-highlights li::before{content:""; width:12px; height:12px; margin-top:6px; border-radius:50%; background:var(--red-bright); box-shadow:0 0 0 3px rgba(198,42,59,0.18);}
.svc-highlights strong{color:var(--ink);}
.svc-copy .text-link{font-weight:800; color:var(--ink); border-bottom:2px solid var(--red-bright); padding-bottom:2px;}
.svc-copy .text-link:hover{color:var(--red-bright);}
.svc-card{
  position:sticky; top:96px; background:var(--ink); color:var(--white); border-radius:12px; padding:30px 28px;
  box-shadow:0 30px 60px -30px rgba(0,0,0,0.6);
}
.svc-card .eyebrow{margin-bottom:14px;}
.svc-price{font-family:var(--font-display); font-size:34px; line-height:1.1;}
.svc-price small{display:block; font-family:var(--font-body); font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--chrome); margin-bottom:6px;}
.svc-duration{font-size:13.5px; color:var(--chrome); margin-top:8px;}
.svc-included{margin:22px 0 26px; padding-top:20px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:10px;}
.svc-included li{display:grid; grid-template-columns:18px 1fr; gap:10px; font-size:14px; color:var(--off);}
.svc-included svg{width:16px; height:16px; margin-top:3px; stroke:var(--red-bright); fill:none; stroke-width:2.6;}
.svc-card .btn + .btn{margin-top:10px;}
.svc-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.svc-gallery img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:8px;}
.svc-others{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
.svc-others a{border:1px solid var(--line); padding:11px 16px; border-radius:30px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; transition:border-color 0.2s ease, color 0.2s ease;}
.svc-others a:hover{border-color:var(--red-bright); color:var(--red-bright);}

/* ---------- CTA banner ---------- */
.cta-banner{background:linear-gradient(120deg, #1a0507, #0a0202 60%); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); padding:70px 0; text-align:center;}
.cta-banner p.kicker{font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--chrome);}
.cta-banner h2{margin:10px 0 26px;}
.cta-banner h2 span{color:var(--red-bright);}

/* ---------- Service areas page ---------- */
.area-group{margin-top:34px;}
.area-group h2{font-size:clamp(22px,3vw,28px); color:var(--ink); margin-bottom:10px;}
.area-chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.area-chips li{font-size:13px; font-weight:600; color:var(--ink); background:var(--white); border:1px solid #e1ded7; padding:7px 13px; border-radius:30px;}
.faq-section h2{color:var(--ink);}
.faq{max-width:820px; border-top:1px solid #dcd9d2;}
.faq details{border-bottom:1px solid #dcd9d2;}
.faq summary{cursor:pointer; list-style:none; padding:20px 40px 20px 0; position:relative; font-size:16.5px; font-weight:700; color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-size:22px; font-weight:400; color:var(--red-bright);}
.faq details[open] summary::after{content:"\2212";}
.faq details p{padding:0 0 20px; font-size:15px; line-height:1.7; color:#333; max-width:70ch;}
.faq a{color:var(--red); font-weight:700; text-decoration:underline;}
.not-found{min-height:80vh; background:radial-gradient(ellipse 70% 60% at 50% 30%, rgba(198,42,59,0.25), transparent 70%), var(--ink);}
.not-found::before{display:none;}
.not-found-links{justify-content:center; margin-top:34px;}

/* ---------- Contact & service areas ---------- */
.contact-layout{display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:28px; align-items:stretch;}
.contact-panel, .area-panel{background:var(--surface); border:1px solid var(--line-soft); border-radius:12px;}
.contact-panel{padding:34px 32px; display:flex; flex-direction:column;}
.contact-lead{color:var(--chrome); font-size:15px; line-height:1.7; max-width:46ch;}
.contact-label{display:block; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.12em; color:var(--chrome-dim); margin-bottom:4px;}
.contact-list{margin:28px 0 30px; display:flex; flex-direction:column;}
.contact-list li{display:flex; align-items:center; gap:16px; padding:16px 0; border-top:1px solid var(--line-soft);}
.contact-list li:last-child{border-bottom:1px solid var(--line-soft);}
.contact-list a, .contact-list span:not(.contact-label):not(.contact-icon){font-size:16px; font-weight:600; color:var(--white); overflow-wrap:break-word;}
.contact-list a:hover{color:var(--red-bright);}
.contact-icon{width:42px; height:42px; flex-shrink:0; border-radius:50%; background:rgba(198,42,59,0.12); border:1px solid rgba(198,42,59,0.35); display:flex; align-items:center; justify-content:center;}
.contact-icon svg{width:18px; height:18px; stroke:var(--red-bright); fill:none; stroke-width:2;}
.contact-actions{display:flex; gap:12px; flex-wrap:wrap;}
.contact-actions .btn-ghost svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.4;}
.contact-social{margin-top:auto; padding-top:28px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
.contact-social .contact-label{margin:0;}
.social-row{display:flex; gap:12px;}
.social-row a{width:40px; height:40px; border:1px solid var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:border-color 0.2s ease, transform 0.2s ease;}
.social-row a:hover{border-color:var(--red-bright); transform:translateY(-2px);}
.social-row svg{width:16px; height:16px; stroke:var(--white); fill:none; stroke-width:1.6;}

.area-panel{overflow:hidden; display:flex; flex-direction:column;}
.area-map{position:relative; height:460px; background:var(--surface-raised); overflow:hidden;}
.area-map iframe{position:absolute; inset:0; width:100%; height:100%; border:0; pointer-events:none; filter:grayscale(0.25) contrast(1.05);}
.area-map.interactive iframe{pointer-events:auto; filter:none;}
/* Ring radius matches 30km at the map's zoom level (set in JS). */
.area-ring{
  --ring:111px;
  position:absolute; left:50%; top:50%; width:calc(var(--ring) * 2); height:calc(var(--ring) * 2);
  transform:translate(-50%,-50%); border-radius:50%; pointer-events:none;
  border:2px solid var(--red-bright); background:rgba(198,42,59,0.12); transition:opacity 0.25s ease;
}
.area-chip{
  position:absolute; left:14px; top:14px; background:var(--ink); color:var(--white); border:1px solid var(--line);
  font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.06em; padding:8px 12px; border-radius:30px; pointer-events:none;
}
.area-explore{
  position:absolute; right:14px; bottom:14px; background:var(--white); color:var(--ink); border:none; cursor:pointer;
  font-family:var(--font-body); font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.05em; padding:9px 14px; border-radius:30px;
  box-shadow:0 8px 20px -8px rgba(0,0,0,0.6);
}
.area-map.interactive .area-ring, .area-map.interactive .area-explore, .area-map.interactive .area-chip{opacity:0; visibility:hidden;}
.area-suburbs{padding:26px 28px 28px;}
.area-suburbs ul{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 16px;}
.area-suburbs li{font-size:12.5px; font-weight:600; color:var(--off); background:var(--surface-raised); border:1px solid var(--line); padding:7px 12px; border-radius:30px;}
.area-suburbs p{font-size:13.5px; color:var(--chrome);}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line-soft); padding:56px 0 34px; background:var(--ink);}
.footer-cols{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;}
.footer-about p{font-size:13.5px; color:var(--chrome); margin-top:16px; max-width:36ch;}
.footer-nap{line-height:1.9;}
.footer-nap a{color:var(--white); font-weight:600;}
.footer-nap a:hover, .footer-cols nav a:hover{color:var(--red-bright);}
.footer-heading{font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.12em; color:var(--chrome-dim); margin-bottom:14px;}
.footer-cols nav ul{display:flex; flex-direction:column; gap:9px;}
.footer-cols nav a{font-size:13.5px; color:var(--off);}
.footer-bottom{margin-top:30px; padding-top:22px; border-top:1px solid var(--line-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}
.footer-bottom p{font-size:11px; color:var(--chrome-dim);}
.footer-bottom a{color:var(--chrome); text-decoration:underline;}
.footer-bottom a:hover{color:var(--white);}
.q-privacy{font-size:11.5px; color:rgba(255,255,255,0.8); margin-top:6px;}
.q-privacy a{color:var(--white); text-decoration:underline;}

/* ---------- Legal pages ---------- */
.legal-hero{min-height:0; padding:150px 0 110px; background:radial-gradient(ellipse 70% 80% at 50% 20%, rgba(198,42,59,0.22), transparent 70%), var(--ink);}
.legal-hero::before{display:none;}
.legal{max-width:780px;}
.legal h2{font-size:clamp(20px,2.6vw,26px); color:var(--ink); margin:38px 0 12px;}
.legal p, .legal li{font-size:15.5px; line-height:1.75; color:#333;}
.legal p + p{margin-top:14px;}
.legal ul{list-style:disc; padding-left:22px; margin:12px 0 14px; display:flex; flex-direction:column; gap:8px;}
.legal a{color:var(--red); font-weight:600; text-decoration:underline;}

/* ---------- Shared form bits (autocomplete) ---------- */
.autocomplete{position:relative;}
.autocomplete-list{display:none; position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:20; border-radius:3px; max-height:200px; overflow-y:auto;}
.autocomplete-list.open{display:block;}
.autocomplete-list button{display:block; width:100%; text-align:left; background:transparent; border:none; padding:10px 14px; font-family:var(--font-body); font-size:13.5px; cursor:pointer;}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity 0.7s ease, transform 0.7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- Live chat bubble ---------- */
/* Reserved bottom-right corner for the Tawk.to widget injected lower in
   this file — nothing to style here, Tawk renders its own button. */

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .hero-inner{grid-template-columns:1fr; gap:36px;}
  .hero h1{max-width:none;}
  .trust-grid{grid-template-columns:repeat(2,1fr);}
  .about-grid{grid-template-columns:1fr;}
  .collage{height:400px; width:100%; max-width:420px; margin:0 auto;}
  .service-grid{grid-template-columns:1fr;}
  .process-watermark{display:none;}
  .svc-grid{grid-template-columns:1fr; gap:40px;}
  .svc-card{position:static;}
  .contact-layout{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .nav-links{
    position:fixed; top:69px; left:0; right:0; bottom:0; background:var(--ink);
    flex-direction:column; padding:36px 32px; gap:4px; align-items:stretch;
    transform:translateX(100%); transition:transform 0.3s ease; z-index:90; overflow-y:auto;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links > li > a{font-size:16px; padding:14px 0;}
  .nav-dropdown{position:static; transform:none; opacity:1; visibility:visible; display:none; border:none; background:transparent; padding:0 0 0 14px;}
  .nav-links > li.open .nav-dropdown{display:block;}
  .nav-toggle{display:flex;}
  .nav-actions{display:none;}
  .nav-links .btn-primary{display:flex; margin-top:14px;}
  .nav-links .btn-call{display:flex; margin-top:10px; color:var(--red-bright);}
  .q-row{grid-template-columns:1fr;}
  .footer-cols{grid-template-columns:1fr 1fr; gap:30px;}
  .footer-about{grid-column:1 / -1;}
  .baf-card{width:78vw;}
  .baf-scroll-wrap .baf-arrow{display:none;}
  .baf-lightbox{padding:64px 16px 24px;}
  .baf-lightbox-images{flex-direction:column; max-height:none;}
  .baf-lightbox-images img{max-height:34vh;}
  .baf-lightbox .baf-arrow.prev{left:8px;}
  .baf-lightbox .baf-arrow.next{right:8px;}
  .reviews-head{flex-direction:column; align-items:flex-start;}
  .rc-card{flex-basis:100%;}
  .rc-arrow{display:none;}
  .svc-hero{min-height:70vh; padding:120px 0 110px;}
  .svc-gallery{grid-template-columns:repeat(2,1fr); gap:10px;}
  .svc-wave{height:36px;}
  .underline-head h2{white-space:normal;}
  .underline-head .rule{min-width:40px;}
  .contact-panel{padding:28px 22px;}
  .contact-actions .btn{flex:1 1 auto; justify-content:center;}
  .area-map{height:340px;}
  .area-suburbs{padding:22px;}
}
