/* ─── RESET & VARIABLES ─── */
:root {
  /* Pacific North Wraps palette — sampled from the logo.
     Accent #FF4939 (logo red-orange) on the logo's warm near-black.
     --orange* tokens carry the accent site-wide; --paper is the white block bg. */
  --orange: #FF4939;                          /* logo accent */
  --orange-hot: #FF6A54;                      /* lighter accent for hover */
  --orange-glow: rgba(255,73,57,0.30);
  --orange-dim: rgba(255,73,57,0.08);
  --orange-border: rgba(255,73,57,0.28);
  --chrome: #c9c2bd;                          /* warm mid-grey */
  --paper: #ffffff;                           /* pure white block bg */
  --paper2: #f4f4f4;                          /* off-white */
  --bg: #151412;                              /* logo background */
  --bg2: #1c1a18;
  --bg3: #232120;
  --card: rgba(255,255,255,0.025);
  --text: #f2efed;
  --muted: #8d8681;
  --dim: #4b4643;
  --border: rgba(255,255,255,0.07);
  --nav-h: 138px;
  --ease: cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Barlow',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;line-height:1.6;padding-top:var(--nav-h)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ─── TOP NAV ─── */
.top-nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);background:var(--bg);border-bottom:1px solid var(--border);z-index:100;display:flex;align-items:center;padding:0 clamp(1.4rem,3vw,2.6rem);transition:background .3s,backdrop-filter .3s,border-color .3s}
.top-nav.scrolled{background:rgba(21,20,18,.92);backdrop-filter:blur(18px);border-bottom-color:var(--border)}
.top-logo{flex-shrink:0;display:inline-flex;align-items:center;transition:opacity .25s}
.top-logo:hover{opacity:.78}
.top-logo img{height:110px;width:auto;flex-shrink:0}

/* generous breathing room between the logo lockup and the menu */
.top-links{list-style:none;display:flex;align-items:center;gap:.15rem;height:100%;margin-left:clamp(2.5rem,8vw,7rem)}
.top-item{position:relative;height:100%}
.top-link{position:relative;display:inline-flex;align-items:center;height:100%;padding:0 1rem;font-family:'Barlow Condensed',sans-serif;font-size:.76rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);transition:color .25s;gap:.45rem;cursor:pointer;background:transparent;border:none}
.top-link::after{content:'';position:absolute;left:1rem;right:1rem;top:calc(50% + .85rem);height:2px;background:var(--orange);transform:scaleX(0);transition:transform .25s var(--ease)}
.top-link:hover,.top-link.active{color:var(--text)}
.top-link:hover::after,.top-link.active::after{transform:scaleX(1)}
.top-link .chev{display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);opacity:.55;transition:transform .3s,opacity .3s}
.top-item:hover .top-link .chev{opacity:1;transform:rotate(-135deg) translate(-2px,-2px)}

.top-sub{position:absolute;top:100%;left:0;min-width:210px;background:var(--bg);border:1px solid var(--border);list-style:none;padding:.45rem 0;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s,transform .25s,visibility .25s}
.top-item:hover .top-sub{opacity:1;visibility:visible;transform:translateY(0)}
.top-sub a{display:block;padding:.65rem 1.4rem;font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .25s,background .25s,padding-left .25s;position:relative}
.top-sub a::before{content:'';position:absolute;left:1.4rem;top:50%;width:6px;height:1px;background:var(--dim);transform:translateY(-50%);opacity:0;transition:opacity .25s,width .25s,background .25s}
.top-sub a:hover,.top-sub a.active{color:var(--orange);background:rgba(255,255,255,.03);padding-left:2rem}
.top-sub a:hover::before,.top-sub a.active::before{opacity:1;width:12px;background:var(--orange)}

.top-burger{display:none;background:transparent;border:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;padding:8px;margin-left:.5rem}
.top-burger span{display:block;width:22px;height:2px;background:var(--text);transition:.3s}
.top-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.top-burger.open span:nth-child(2){opacity:0}
.top-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width: 900px){
  :root{--nav-h:96px}
  .top-nav{padding:0 clamp(1rem,3vw,1.4rem)}
  .top-logo img{height:76px}
  .top-links{margin-left:0;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:0;height:auto;padding:.6rem 0;max-height:0;overflow:hidden;transition:max-height .35s var(--ease),padding .35s var(--ease)}
  .top-links.open{max-height:calc(100vh - var(--nav-h));overflow-y:auto}
  .top-item{height:auto;width:100%}
  .top-link{padding:1.05rem clamp(1.4rem,4vw,2rem);border-bottom:1px solid var(--border);width:100%;justify-content:space-between}
  .top-link::after{display:none}
  .top-item:hover .top-link .chev,.top-item.open .top-link .chev{transform:rotate(45deg) translate(-2px,-2px);opacity:1}
  .top-sub{position:static;background:var(--bg2);border:none;padding:0;max-height:0;overflow:hidden;opacity:1;visibility:visible;transform:none;transition:max-height .3s var(--ease)}
  .top-item.open .top-sub{max-height:500px}
  .top-item:hover .top-sub{opacity:1;visibility:visible;transform:none}
  .top-sub a{padding:.85rem 2.4rem;font-size:.7rem}
  .top-sub a:hover,.top-sub a.active{padding-left:2.8rem}
  .top-burger{display:flex}
}

/* ─── HERO (home) ─── */
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 90% 60% at 72% 50%,rgba(255,73,57,.07) 0%,transparent 68%),radial-gradient(ellipse 40% 40% at 85% 25%,rgba(255,73,57,.05) 0%,transparent 55%)}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse 65% 70% at 65% 50%,black,transparent)}
.hero-bg-word{position:absolute;right:-1rem;top:50%;transform:translateY(-50%);font-family:'Bebas Neue',sans-serif;font-size:clamp(16rem,26vw,30rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,73,57,.10);user-select:none;white-space:nowrap;letter-spacing:-.01em;pointer-events:none}
.hero-photo{position:absolute;top:0;right:0;width:62%;height:100%;background:url('../images/photo1.jpg') center/cover no-repeat;-webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 18%,black 42%);mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 18%,black 42%);opacity:.42}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(21,20,18,.3) 0%,transparent 40%,rgba(21,20,18,.5) 100%)}
@media(max-width:880px){.hero-photo{width:100%;opacity:.16;-webkit-mask-image:none;mask-image:none}}
.sline{position:absolute;height:1px;background:linear-gradient(to right,transparent,rgba(255,255,255,.18),transparent);animation:sline linear infinite;opacity:0}
@keyframes sline{0%{transform:translateX(-200px);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateX(110vw);opacity:0}}

.hero-content{position:relative;z-index:10;padding:5rem clamp(1.5rem,6vw,5rem) 8rem;max-width:920px}
.hero-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:.76rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:.8rem;margin-bottom:1.2rem;animation:fadeUp .8s ease both}
.hero-eyebrow::before{content:'';width:38px;height:2px;background:var(--orange);flex-shrink:0}
.hero-h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(6rem,17vw,16rem);line-height:.9;letter-spacing:.04em;margin-bottom:.6rem;animation:fadeUp .8s .08s ease both}
.hero-h1 em{color:var(--orange);font-style:normal}
.hero-tag{font-family:'Barlow Condensed',sans-serif;font-size:clamp(1.05rem,2.6vw,1.6rem);font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--chrome);margin-bottom:1.8rem;animation:fadeUp .8s .16s ease both}
.hero-rating{display:flex;align-items:center;gap:.8rem;margin-bottom:1.8rem;animation:fadeUp .8s .22s ease both}
.stars{color:var(--orange);letter-spacing:2px;font-size:.95rem}
.hero-rating p{font-family:'Barlow Condensed',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hero-rating p strong{color:var(--text)}
.hero-sub{font-size:.97rem;color:var(--muted);max-width:460px;line-height:1.75;margin-bottom:2.8rem;animation:fadeUp .8s .28s ease both}
.hero-cta{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;animation:fadeUp .8s .34s ease both}

.btn-primary{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:var(--orange);color:#141210;padding:1rem 2.4rem;position:relative;overflow:hidden;transition:box-shadow .3s,transform .2s;clip-path:polygon(11px 0%,100% 0%,calc(100% - 11px) 100%,0% 100%);display:inline-block;border:none;cursor:pointer}
.btn-primary::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.22);transform:translateX(-110%) skewX(-18deg);transition:transform .4s}
.btn-primary:hover::before{transform:translateX(120%) skewX(-18deg)}
.btn-primary:hover{box-shadow:0 10px 36px var(--orange-glow);transform:translateY(-2px)}
.btn-ghost{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:transparent;color:var(--text);padding:.92rem 2.3rem;border:1px solid var(--border);transition:border-color .25s,color .25s,background .25s;display:inline-block;clip-path:polygon(11px 0%,100% 0%,calc(100% - 11px) 100%,0% 100%)}
.btn-ghost:hover{border-color:var(--orange);color:var(--orange);background:var(--orange-dim)}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}

/* ─── SCROLL REVEAL ─── */
.rev,.rev-l,.rev-r{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rev{transform:translateY(36px)}
.rev-l{transform:translateX(-36px)}
.rev-r{transform:translateX(36px)}
.rev.in,.rev-l.in,.rev-r.in{opacity:1;transform:none}
.d1{transition-delay:.1s!important}.d2{transition-delay:.18s!important}.d3{transition-delay:.26s!important}
.d4{transition-delay:.34s!important}.d5{transition-delay:.42s!important}.d6{transition-delay:.5s!important}

/* ─── SHARED SECTION STYLES ─── */
.container{max-width:1180px;margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem)}
.sec-label{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:.8rem;margin-bottom:.7rem}
.sec-label::before{content:'';width:28px;height:2px;background:var(--orange);flex-shrink:0}
.sec-h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,6.5vw,5.5rem);letter-spacing:.04em;line-height:1;color:var(--text);margin-bottom:1rem}
.sec-h2 em{color:var(--orange);font-style:normal}
.sec-sub{font-size:.96rem;color:var(--muted);max-width:540px;line-height:1.75;margin-bottom:3.5rem}

/* ─── WHY US ─── */
.why-inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border)}
.trust-card{background:var(--bg);padding:2.4rem 1.8rem;position:relative;overflow:hidden}
.trust-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--orange);transition:height .4s}
.trust-card:hover::before{height:100%}
.trust-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,4.5vw,4.2rem);letter-spacing:.02em;color:var(--orange);line-height:1;margin-bottom:.3rem}
.trust-lbl{font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.why-copy p{font-size:.94rem;color:var(--muted);line-height:1.8;margin-bottom:1.4rem}
.badge-row{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem}
.badge{font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.38rem .9rem;border:1px solid var(--orange-border);color:var(--orange);background:var(--orange-dim)}
@media(max-width:880px){.why-inner{grid-template-columns:1fr;gap:3rem}}

/* ─── REVIEWS ─── */
.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}
.rev-card{background:var(--card);border:1px solid var(--border);padding:2.4rem;position:relative;transition:border-color .3s,transform .3s}
.rev-card::before{content:'\201C';position:absolute;top:1.2rem;right:1.8rem;font-family:'Bebas Neue',sans-serif;font-size:5.5rem;color:rgba(255,255,255,.06);line-height:1;pointer-events:none}
.rev-card:hover{border-color:var(--orange-border);transform:translateY(-4px)}
.rev-stars{color:var(--orange);letter-spacing:3px;font-size:.95rem;margin-bottom:.9rem}
.rev-text{font-size:.93rem;color:var(--text);line-height:1.75;margin-bottom:1.4rem;font-style:italic}
.rev-author{font-family:'Barlow Condensed',sans-serif;font-size:.77rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.rev-author strong{color:var(--orange)}

/* ─── PAGE HERO (subpages) ─── */
.page-hero{position:relative;padding:8rem clamp(1.5rem,6vw,5rem) 6rem;background:var(--bg);overflow:hidden;border-bottom:1px solid var(--border)}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 95% 50%,rgba(255,73,57,.07) 0%,transparent 70%)}
.page-hero-inner{position:relative;max-width:1180px;margin:0 auto;z-index:2}
.page-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:.8rem;margin-bottom:1.2rem}
.page-eyebrow::before{content:'';width:38px;height:2px;background:var(--orange)}
.page-h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3.6rem,9vw,8rem);line-height:.92;letter-spacing:.03em;margin-bottom:1.2rem;color:var(--text)}
.page-h1 em{color:var(--orange);font-style:normal}
.page-sub{font-size:1.02rem;color:var(--muted);max-width:620px;line-height:1.8}
.page-bg-word{position:absolute;right:-1rem;top:50%;transform:translateY(-50%);font-family:'Bebas Neue',sans-serif;font-size:clamp(12rem,22vw,22rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,73,57,.10);user-select:none;white-space:nowrap;letter-spacing:-.01em;pointer-events:none}

/* ─── SERVICES GRID ─── */
#services-grid{background:var(--bg);padding:6rem 0 8rem}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5px;background:var(--border)}
.svc-card{background:var(--bg);padding:2.6rem 2.2rem;position:relative;overflow:hidden;transition:background .25s;display:block}
.svc-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.svc-card:hover{background:var(--bg2)}
.svc-card:hover::after{transform:scaleX(1)}
.svc-icon{width:54px;height:54px;background:var(--orange-dim);border:1px solid var(--orange-border);display:flex;align-items:center;justify-content:center;margin-bottom:1.3rem;clip-path:polygon(7px 0%,100% 0%,calc(100% - 7px) 100%,0% 100%);transition:background .25s}
.svc-card:hover .svc-icon{background:rgba(255,73,57,.16)}
.svc-icon svg{width:26px;height:26px;fill:var(--orange)}
.svc-name{font-family:'Barlow Condensed',sans-serif;font-size:1.2rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin-bottom:.55rem}
.svc-desc{font-size:.88rem;color:var(--muted);line-height:1.65;margin-bottom:1.4rem}
.svc-arrow{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);display:inline-flex;align-items:center;gap:.5rem;transition:gap .25s}
.svc-card:hover .svc-arrow{gap:.9rem}

/* ─── SERVICE DETAIL ─── */
#service-detail{padding:6rem 0 8rem;background:var(--bg)}
.detail-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:5rem;align-items:start}
.detail-copy h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.9rem,3.4vw,2.6rem);letter-spacing:.03em;margin:2.6rem 0 1rem;color:var(--text)}
.detail-copy h3:first-child{margin-top:0}
.detail-copy h3 em{color:var(--orange);font-style:normal}
.detail-copy p{font-size:.95rem;color:var(--muted);line-height:1.85;margin-bottom:1.2rem}
.detail-list{list-style:none;margin:1rem 0 2rem}
.detail-list li{position:relative;padding:.7rem 0 .7rem 1.8rem;font-size:.92rem;color:var(--text);border-bottom:1px solid var(--border)}
.detail-list li::before{content:'';position:absolute;left:0;top:1.15rem;width:10px;height:2px;background:var(--orange)}
.price-card{background:var(--bg2);border:1px solid var(--border);padding:2.4rem;position:sticky;top:2rem}
.price-card h4{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--orange);margin-bottom:1.4rem;display:flex;align-items:center;gap:.6rem}
.price-card h4::before{content:'';width:24px;height:2px;background:var(--orange)}
.price-row{display:flex;justify-content:space-between;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--border)}
.price-row:last-of-type{border-bottom:none}
.price-row .pl{font-family:'Barlow Condensed',sans-serif;font-size:.88rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.price-row .pv{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;color:var(--orange);letter-spacing:.04em}
.price-note{font-size:.78rem;color:var(--dim);line-height:1.6;margin-top:1.4rem;margin-bottom:1.6rem}
/* Chris dropped the sticky quote card from every service page — the copy now
   runs full width with a single Request a Quote button closing the page. */
/* 640px keeps the measure near the ~66 characters the two-column layout
   used to give it — full container width would run past 100. */
.detail-inner.solo{grid-template-columns:1fr;gap:0;max-width:640px}
.detail-cta{margin-top:3rem;padding-top:2.4rem;border-top:1px solid var(--border)}
@media(max-width:880px){.detail-inner{grid-template-columns:1fr;gap:3rem}.price-card{position:static}}

/* ─── GALLERY ─── */
/* Three builds, one card each. The card opens a lightbox of that car's shots. */
#gallery-grid{background:var(--bg);padding:6rem 0 8rem}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.gal-item{position:relative;overflow:hidden;border:none;padding:0;background:var(--bg2);cursor:pointer;display:block;width:100%;aspect-ratio:3/4;font-family:inherit;text-align:left}
.gal-bg{position:absolute;inset:0;background-size:cover;background-position:center 45%;transition:transform .6s var(--ease)}
.gal-item:hover .gal-bg{transform:scale(1.05)}
.gal-item::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,9,8,.92) 0%,rgba(10,9,8,.45) 38%,transparent 65%);pointer-events:none;z-index:1;transition:background .35s}
.gal-item:hover::after{background:linear-gradient(to top,rgba(10,9,8,.95) 0%,rgba(10,9,8,.6) 45%,rgba(255,73,57,.12) 100%)}
.gal-meta{position:absolute;left:1.5rem;right:1.5rem;bottom:1.4rem;z-index:2}
.gal-name{font-family:'Bebas Neue',sans-serif;font-size:1.9rem;letter-spacing:.04em;line-height:1;color:#fff}
.gal-sub{font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-top:.35rem}
.gal-count{display:inline-flex;align-items:center;gap:.5rem;margin-top:.9rem;font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7);transition:gap .25s,color .25s}
.gal-count::after{content:'→'}
.gal-item:hover .gal-count{gap:.9rem;color:#fff}
@media(max-width:900px){.gal-grid{grid-template-columns:1fr 1fr;gap:1rem}.gal-name{font-size:1.6rem}}
@media(max-width:560px){.gal-grid{grid-template-columns:1fr}}

/* ─── LIGHTBOX ─── */
.lb-card{width:min(1080px,100%);display:flex;flex-direction:column;gap:.9rem;transform:translateY(12px);transition:transform .35s var(--ease)}
.ov.in .lb-card{transform:none}
.lb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.lb-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:.04em;line-height:1;color:#fff}
.lb-title span{display:block;font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.18em;color:var(--orange);margin-top:.3rem}
.lb-stage{position:relative;background:#0c0b0a;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;min-height:0}
.lb-stage img{max-width:100%;max-height:min(68vh,760px);width:auto;height:auto;display:block}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;background:rgba(10,9,8,.72);border:1px solid var(--border);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;transition:background .25s,border-color .25s}
.lb-nav:hover{background:var(--orange);border-color:var(--orange);color:#141210}
.lb-prev{left:.8rem}.lb-next{right:.8rem}
.lb-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.lb-cap{font-size:.88rem;color:var(--muted);line-height:1.5}
.lb-count{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.2em;color:var(--orange);white-space:nowrap}
.lb-x{background:transparent;border:1px solid var(--border);color:var(--muted);width:36px;height:36px;flex-shrink:0;cursor:pointer;font-size:1.2rem;line-height:1;transition:color .25s,border-color .25s}
.lb-x:hover{color:var(--orange);border-color:var(--orange-border)}
.lb-thumbs{display:flex;gap:.5rem;flex-wrap:wrap}
.lb-thumb{width:62px;height:46px;background-size:cover;background-position:center;border:1px solid transparent;opacity:.45;cursor:pointer;padding:0;transition:opacity .25s,border-color .25s}
.lb-thumb:hover{opacity:.85}
.lb-thumb.on{opacity:1;border-color:var(--orange)}
@media(max-width:600px){.lb-nav{width:38px;height:38px}.lb-stage img{max-height:52vh}.lb-thumbs{display:none}}

/* ─── CONTACT PAGE ─── */
#contact-page{padding:6rem 0 8rem;background:var(--bg)}
.contact-inner{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;align-items:start}
.cinfo-list{list-style:none;display:flex;flex-direction:column;gap:1.4rem}
.cinfo-item{display:flex;align-items:flex-start;gap:1rem}
.cinfo-icon{width:34px;height:34px;background:var(--orange-dim);border:1px solid var(--orange-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;clip-path:polygon(5px 0%,100% 0%,calc(100% - 5px) 100%,0% 100%)}
.cinfo-icon svg{width:15px;height:15px;fill:var(--orange)}
.cinfo-lbl{font-family:'Barlow Condensed',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:.12rem}
.cinfo-val{font-size:.92rem;color:var(--text);line-height:1.55}
.cinfo-val a{transition:color .25s}.cinfo-val a:hover{color:var(--orange)}
.hours-tbl{border-collapse:collapse}
.hours-tbl td{padding:.22rem 0;font-size:.86rem}
.hours-tbl td:first-child{font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);width:110px}
.hours-tbl td:last-child{color:var(--text)}
.cta-panel{background:var(--paper);padding:3.8rem 2.8rem;position:relative;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%)}
.cta-panel::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(0,0,0,.04) 0px,rgba(0,0,0,.04) 2px,transparent 2px,transparent 10px)}
.cta-h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.2rem,4.5vw,3.6rem);letter-spacing:.04em;line-height:1;color:#000;margin-bottom:.9rem;position:relative}
.cta-body{font-size:.93rem;color:rgba(0,0,0,.68);line-height:1.65;margin-bottom:2.4rem;position:relative;max-width:380px}
.btn-dark{font-family:'Barlow Condensed',sans-serif;font-size:.95rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:#000;color:var(--orange);padding:.95rem 2.3rem;display:inline-block;transition:background .25s,box-shadow .25s,transform .2s;clip-path:polygon(11px 0%,100% 0%,calc(100% - 11px) 100%,0% 100%);position:relative}
.btn-dark:hover{background:#1a1a1a;box-shadow:0 10px 30px rgba(0,0,0,.35);transform:translateY(-2px)}
.cta-actions{position:relative;display:flex;flex-direction:column;align-items:center;gap:.9rem;margin-top:.4rem}
.cta-or{font-family:'Barlow Condensed',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:rgba(0,0,0,.45)}
.cta-phone-big{font-family:'Bebas Neue',sans-serif;font-size:1.9rem;letter-spacing:.07em;color:#000;display:flex;align-items:center;gap:.4rem;transition:opacity .25s;position:relative}
.cta-phone-big:hover{opacity:.7}
.cta-phone-big svg{width:24px;height:24px;fill:#000;flex-shrink:0}
@media(max-width:880px){.contact-inner{grid-template-columns:1fr;gap:3rem}}

/* ─── FOOTER ─── */
footer{background:var(--bg);border-top:1px solid var(--border);padding:2.8rem clamp(1.5rem,5vw,4rem);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem}
.foot-logo{display:inline-flex;align-items:center;transition:opacity .25s}
.foot-logo:hover{opacity:.78}
.foot-logo img{height:64px;width:auto;flex-shrink:0}
.foot-copy{font-size:.78rem;color:var(--dim)}
.foot-links{display:flex;gap:1.5rem;list-style:none}
.foot-links a{font-family:'Barlow Condensed',sans-serif;font-size:.73rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);transition:color .25s}
.foot-links a:hover{color:var(--orange)}

/* ═══════════════════════════════════════════════════════
   KTM-STYLE HOME PANELS (index.html only)
   Full-bleed stacked sections with orange/dark blocking,
   massive numerals, slanted action statements.
═══════════════════════════════════════════════════════ */

.kpanel{position:relative;overflow:hidden}
.k-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:.7rem}
.k-eyebrow::before{content:'';width:28px;height:1px;background:var(--orange)}
.k-eyebrow.dark{color:#000}
.k-eyebrow.dark::before{background:#000}
.k-h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.1rem,7vw,6.5rem);letter-spacing:.03em;line-height:.9;color:var(--text)}
.k-h2 em{font-style:normal;display:inline-block;transform:skewX(-7deg);color:var(--orange);margin-left:.15em}
/* Chris's "Built on passion, driven by excellence" line: all orange, and it
   has to stay on ONE line. .kwhy-body is the query container, so the type
   scales off the column width rather than the viewport — the column is ~half
   the screen on desktop but full width on a phone, and a plain vw clamp can't
   serve both. */
.k-h2-accent{color:var(--orange)}
.k-h2-accent em{color:var(--orange);transform:none;margin-left:0}
.k-h2-oneline{white-space:nowrap;font-size:min(4.4rem,6.5cqi);max-width:100%;overflow:hidden}
@supports not (font-size:1cqi){.k-h2-oneline{font-size:clamp(1rem,3.1vw,3.2rem)}}
.k-h2.dark{color:#000}
.k-h2.dark em{color:var(--orange)}
.k-slant{display:inline-block;transform:skewX(-7deg)}

/* ── PANEL 01 / HERO ─────────────────────────
   Full-bleed photo across the whole viewport with the copy laid over it.
   Swap the photo by changing the url() in .khero-photo. */
.khero{display:grid;grid-template-rows:auto auto;position:relative;background:var(--bg)}

/* photo layer */
.khero-media{grid-area:1/1;position:relative;overflow:hidden;z-index:0}
.khero-photo{position:absolute;inset:0;background:url('../images/photo1.jpg') center/cover no-repeat}
/* the copy sits dead-centre now, so the scrim is centre-weighted: a soft vignette
   for edge falloff plus a vertical fade that tucks under the nav and into the rail */
.khero-scrim{position:absolute;inset:0;background:
  radial-gradient(ellipse 78% 68% at 50% 46%,rgba(21,20,18,.72) 0%,rgba(21,20,18,.52) 45%,rgba(21,20,18,.30) 100%),
  linear-gradient(to bottom,rgba(21,20,18,.66) 0%,rgba(21,20,18,.18) 26%,rgba(21,20,18,.22) 62%,rgba(21,20,18,.82) 100%)}

/* copy layer */
.khero-content{grid-area:1/1;position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(5rem,11vw,9rem) clamp(1.6rem,5vw,4.5rem) clamp(2.2rem,4vw,3.4rem)}
.khero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.6rem,7.4vw,6.4rem);line-height:.92;letter-spacing:.03em;color:#fff;max-width:100%;animation:fadeUp .8s ease both;text-shadow:0 2px 40px rgba(21,20,18,.8)}
.khero-title em{font-style:normal;color:var(--orange)}
.khero-services{font-family:'Barlow Condensed',sans-serif;font-size:clamp(.86rem,2vw,1.25rem);font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:#e8e2df;margin-top:1.35rem;animation:fadeUp .8s .12s ease both;text-shadow:0 2px 24px rgba(21,20,18,.8)}
.khero-services .sep{color:var(--orange);margin:0 .5em}
.khero-actions{display:flex;gap:1.4rem;align-items:stretch;justify-content:center;margin-top:2.3rem;flex-wrap:wrap;animation:fadeUp .8s .26s ease both}

/* accent button reads on the photo; .kbtn-dark stays for the white panels */
.kbtn-accent{background:var(--orange);color:#141210;padding:1.05rem 2.2rem;font-family:'Barlow Condensed',sans-serif;font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.88rem;display:inline-flex;align-items:center;gap:.7rem;transition:background .25s,transform .2s,gap .25s,box-shadow .25s;border:none;cursor:pointer}
.kbtn-accent:hover{background:var(--orange-hot);transform:translateY(-2px);gap:1.1rem;box-shadow:0 10px 34px var(--orange-glow)}
.kbtn-dark{background:#000;color:var(--orange);padding:1.05rem 2.2rem;font-family:'Barlow Condensed',sans-serif;font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.88rem;display:inline-flex;align-items:center;gap:.7rem;transition:background .25s,transform .2s,gap .25s;border:none;cursor:pointer}
.kbtn-dark:hover{background:#1a1a1a;transform:translateY(-2px);gap:1.1rem}
.kbtn-link{font-family:'Barlow Condensed',sans-serif;font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.88rem;color:var(--text);padding:1.05rem 0;display:inline-flex;align-items:center;gap:.5rem;border-bottom:1px solid currentColor;transition:gap .25s,color .25s}
.kbtn-link:hover{gap:.9rem;color:var(--orange)}
.kbtn-link.on-paper{color:#000}

.khero-rail{grid-row:2;background:rgba(21,20,18,.9);backdrop-filter:blur(6px);border-top:2px solid var(--orange);padding:1.1rem clamp(1.6rem,5vw,4.5rem);display:flex;align-items:center;justify-content:center;gap:1.4rem;flex-wrap:wrap;position:relative;z-index:5}
.khero-rail span{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--text)}
.khero-rail .rail-dot{width:4px;height:4px;background:var(--orange);border-radius:50%}
.khero-rail strong{color:var(--orange);font-weight:800}

@media (max-width:880px){
  .khero-content{padding-top:clamp(5rem,18vw,8rem);padding-bottom:clamp(1.8rem,6vw,2.6rem)}
  .khero-scrim{background:linear-gradient(to bottom,rgba(21,20,18,.84) 0%,rgba(21,20,18,.58) 45%,rgba(21,20,18,.9) 100%)}
  .khero-services{letter-spacing:.18em}
  .khero-rail{gap:.5rem .9rem}
  .khero-rail span{font-size:.66rem;letter-spacing:.16em}
}


/* ── PANEL 02 / SERVICES SHOWCASE ──────────── */
.kservices{background:var(--bg);padding:6rem clamp(2rem,5vw,4rem) 7rem;position:relative}
.kservices::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--orange),transparent);opacity:.5}
.kservices-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3.5rem;flex-wrap:wrap}
.kservices-head .k-h2{max-width:720px}
.kservices-count{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.kservices-count strong{color:var(--orange);font-weight:800}

.kgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}
.kcard{background:var(--bg);padding:2.4rem 1.8rem 2.2rem;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;transition:background .3s,transform .3s;min-height:290px}
.kcard::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.kcard:hover{background:var(--bg2)}
.kcard:hover::before{transform:scaleX(1)}
.kcard-num{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;letter-spacing:.04em;color:var(--orange);line-height:1;opacity:.55;transition:opacity .3s}
.kcard:hover .kcard-num{opacity:1}
.kcard-body{margin-top:auto}
.kcard-name{font-family:'Bebas Neue',sans-serif;font-size:1.85rem;letter-spacing:.04em;color:var(--text);line-height:.95;margin-bottom:.5rem}
.kcard-desc{font-size:.82rem;color:var(--muted);line-height:1.55;margin-bottom:1.3rem}
.kcard-arrow{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);display:inline-flex;align-items:center;gap:.5rem;transition:gap .25s}
.kcard:hover .kcard-arrow{gap:.9rem}

@media(max-width:900px){.kgrid{grid-template-columns:1fr}}

/* ── PANEL 03 / WHY US ─────────────────────── */
.kwhy{display:grid;grid-template-columns:.85fr 1.15fr;min-height:90vh;background:var(--bg2)}
.kwhy-stat{background:var(--paper);color:#000;padding:clamp(3rem,6vw,6rem) clamp(2rem,4vw,4rem);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.kwhy-stat::after{content:'1';position:absolute;right:0;bottom:-4rem;font-family:'Bebas Neue',sans-serif;font-size:32rem;line-height:1;color:rgba(0,0,0,.08);pointer-events:none;user-select:none}
.kwhy-stat-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:rgba(0,0,0,.7);margin-bottom:1.6rem;position:relative;z-index:2}
.kwhy-stat-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(8rem,17vw,18rem);line-height:.85;color:#000;letter-spacing:-.01em;position:relative;z-index:2}
.kwhy-stat-lbl{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:.05em;color:#000;line-height:1;margin-top:.5rem;position:relative;z-index:2}
.kwhy-stat-lbl em{font-style:normal;display:inline-block;transform:skewX(-8deg);color:var(--orange)}
.kwhy-substats{display:flex;gap:2.4rem;margin-top:2.4rem;position:relative;z-index:2;flex-wrap:wrap}
.kwhy-substat-num{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:#000;letter-spacing:.04em;line-height:1}
.kwhy-substat-lbl{font-family:'Barlow Condensed',sans-serif;font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(0,0,0,.6);margin-top:.2rem}

.kwhy-body{container-type:inline-size;padding:clamp(3rem,6vw,6rem) clamp(2rem,4vw,5rem);display:flex;flex-direction:column;justify-content:center;color:var(--text)}
.kwhy-body .k-h2{margin:.7rem 0 1.8rem}
.kwhy-body p{font-size:.96rem;color:var(--muted);line-height:1.85;margin-bottom:1.2rem;max-width:600px}
.kwhy-badges{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem}
.kwhy-badge{font-family:'Barlow Condensed',sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:.45rem 1rem;border:1px solid var(--orange-border);color:var(--orange);background:var(--orange-dim)}

@media(max-width:880px){.kwhy{grid-template-columns:1fr}.kwhy-stat::after{font-size:22rem;right:-2rem;bottom:-3rem}}

/* ── PANEL 04 / REVIEWS ────────────────────── */
.kreviews{background:var(--bg);padding:6rem clamp(2rem,5vw,4rem) 7rem;position:relative}
.kreviews-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3.5rem;flex-wrap:wrap}
.kreviews-rating{display:flex;align-items:center;gap:1rem;font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.04em;color:var(--orange)}
.kreviews-rating .stars{color:var(--orange);letter-spacing:3px;font-size:1rem}
.kreviews-rating small{font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.24em;color:var(--muted);text-transform:uppercase}
.krev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5px;background:var(--border)}
.krev-card{background:var(--bg);padding:2.6rem 2.2rem;position:relative;transition:background .3s}
.krev-card::before{content:'\201C';position:absolute;top:1rem;right:1.6rem;font-family:'Bebas Neue',sans-serif;font-size:6rem;color:rgba(255,255,255,.07);line-height:1;pointer-events:none}
.krev-card:hover{background:var(--bg2)}
.krev-num{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;color:var(--orange);letter-spacing:.04em;line-height:1;margin-bottom:.7rem;opacity:.6}
.krev-stars{color:var(--orange);letter-spacing:3px;font-size:.95rem;margin-bottom:1rem}
.krev-text{font-size:.94rem;color:var(--text);line-height:1.8;margin-bottom:1.5rem;font-style:italic}
.krev-author{font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.krev-author strong{color:var(--orange)}

/* ── PANEL 05 / FINAL CTA ──────────────────── */
.kcta{background:var(--paper);color:#000;padding:clamp(5rem,9vw,8rem) clamp(2rem,5vw,4rem);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;min-height:60vh;justify-content:center}
.kcta::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(0,0,0,.025) 0px,rgba(0,0,0,.025) 2px,transparent 2px,transparent 14px);pointer-events:none}
.kcta-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:rgba(0,0,0,.7);position:relative;display:flex;align-items:center;gap:.8rem}
.kcta-eyebrow::before{content:'';width:28px;height:1px;background:#000}
.kcta-mega{font-family:'Bebas Neue',sans-serif;font-size:clamp(7rem,18vw,18rem);line-height:.85;color:#000;letter-spacing:-.005em;margin-top:1rem;position:relative}
.kcta-mega em{font-style:normal;display:inline-block;transform:skewX(-8deg);color:var(--orange)}
.kcta-sub{font-size:1rem;color:rgba(0,0,0,.72);line-height:1.7;max-width:540px;margin:1.5rem 0 2.4rem;position:relative}
.kcta-actions{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;position:relative}
.kcta-or{font-family:'Barlow Condensed',sans-serif;font-size:.86rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:rgba(0,0,0,.5)}
.kcta-phone{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:.05em;color:#000;display:flex;align-items:center;gap:.5rem;transition:opacity .25s;border-bottom:2px solid #000;padding-bottom:.2rem}
.kcta-phone:hover{opacity:.7}
.kcta-phone svg{width:24px;height:24px;fill:#000}

/* ── NARROW SCREENS (must stay last: media queries add no specificity) ── */
@media (max-width:700px){
  /* the ghost numeral reads as a stray blob once it's this cropped */
  .kwhy-stat::after{display:none}
}
@media (max-width:560px){
  .kservices-head,.kreviews-head{gap:1.2rem}
  .kwhy-substats{gap:1.2rem 1.6rem}
  .kwhy-substat-num{font-size:1.7rem}
  .kcta-sub,.kwhy-body p{font-size:.92rem}
  .kreviews-rating{font-size:1.3rem;gap:.7rem}
}

/* ═══════════════════════════════════════════════════════
   REGION GATE + QUOTE MODAL
   Both overlays are injected by assets/site.js so the markup
   stays in one place instead of being copied into every page.
═══════════════════════════════════════════════════════ */

.ov{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,2.5rem);background:rgba(10,9,8,.86);backdrop-filter:blur(10px);opacity:0;transition:opacity .3s var(--ease)}
.ov.in{opacity:1}
body.ov-open{overflow:hidden}

/* ── region gate ─────────────────────────── */
.rg-card{width:min(560px,100%);background:var(--bg2);border:1px solid var(--border);border-top:3px solid var(--orange);padding:clamp(2rem,5vw,3.2rem);text-align:center;transform:translateY(14px);transition:transform .35s var(--ease)}
.ov.in .rg-card{transform:none}
.rg-card img{height:96px;width:auto;margin:0 auto 1.6rem}
.rg-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--orange)}
.rg-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.9rem,5vw,2.9rem);letter-spacing:.03em;line-height:1;color:var(--text);margin:.7rem 0 .5rem}
.rg-h em{font-style:normal;color:var(--orange)}
.rg-sub{font-size:.9rem;color:var(--muted);line-height:1.65;max-width:38ch;margin:0 auto 2rem}
.rg-opts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border)}
.rg-opt{background:var(--bg);padding:1.7rem 1rem;cursor:pointer;border:none;transition:background .25s;display:flex;flex-direction:column;align-items:center;gap:.35rem;font-family:inherit}
.rg-opt:hover{background:rgba(255,73,57,.1)}
.rg-opt-name{font-family:'Bebas Neue',sans-serif;font-size:1.7rem;letter-spacing:.04em;color:var(--text);line-height:1}
.rg-opt:hover .rg-opt-name{color:var(--orange)}
.rg-opt-sub{font-family:'Barlow Condensed',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
@media(max-width:460px){.rg-opts{grid-template-columns:1fr}}

/* footer region switcher — the gate is one-time, so people need a way back */
.rsw{display:inline-flex;align-items:center;gap:.5rem;font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);background:transparent;border:1px solid var(--border);padding:.42rem .85rem;cursor:pointer;transition:color .25s,border-color .25s}
.rsw:hover{color:var(--orange);border-color:var(--orange-border)}
.rsw b{color:var(--muted);font-weight:700}
.rsw:hover b{color:var(--orange)}

/* ── quote modal ─────────────────────────── */
.qm-card{width:min(660px,100%);max-height:calc(100vh - 3rem);overflow-y:auto;background:var(--bg2);border:1px solid var(--border);border-top:3px solid var(--orange);transform:translateY(14px);transition:transform .35s var(--ease)}
.ov.in .qm-card{transform:none}
.qm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:clamp(1.6rem,4vw,2.2rem) clamp(1.4rem,4vw,2.2rem) 0}
.qm-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.7rem,4vw,2.4rem);letter-spacing:.03em;line-height:1;color:var(--text)}
.qm-h em{font-style:normal;color:var(--orange)}
.qm-sub{font-size:.86rem;color:var(--muted);line-height:1.6;padding:.6rem clamp(1.4rem,4vw,2.2rem) 0;max-width:52ch}
.qm-x{background:transparent;border:1px solid var(--border);color:var(--muted);width:34px;height:34px;flex-shrink:0;cursor:pointer;font-size:1.1rem;line-height:1;transition:color .25s,border-color .25s}
.qm-x:hover{color:var(--orange);border-color:var(--orange-border)}
.qm-form{padding:clamp(1.4rem,4vw,2.2rem);display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.qm-field{display:flex;flex-direction:column;gap:.4rem}
.qm-field.wide{grid-column:1/-1}
.qm-field label{font-family:'Barlow Condensed',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.qm-field label .req{color:var(--orange)}
.qm-field input,.qm-field select,.qm-field textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:'Barlow',sans-serif;font-size:.92rem;padding:.7rem .8rem;width:100%;transition:border-color .25s}
.qm-field textarea{resize:vertical;min-height:88px}
.qm-field input:focus,.qm-field select:focus,.qm-field textarea:focus{outline:none;border-color:var(--orange)}
.qm-field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2.2rem}
.qm-actions{grid-column:1/-1;display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:.4rem}
.qm-note{grid-column:1/-1;font-size:.75rem;color:var(--dim);line-height:1.55}
/* photo upload — the native control is unreadable on a phone, so the real
   input is hidden behind a styled label that still opens the camera roll */
.qm-file{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;cursor:pointer}
.qm-file input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.qm-file-btn{font-family:'Barlow Condensed',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);border:1px solid var(--orange-border);background:var(--orange-dim);padding:.6rem 1.1rem;flex-shrink:0;transition:background .25s}
.qm-file:hover .qm-file-btn{background:rgba(255,73,57,.16)}
.qm-file input:focus-visible+.qm-file-btn{border-color:var(--orange)}
.qm-file-name{font-size:.78rem;color:var(--dim);line-height:1.5;word-break:break-word;min-width:0}

@media(max-width:560px){
  .qm-form{grid-template-columns:1fr}
  /* iOS zooms the page on focus for anything under 16px */
  .qm-field input,.qm-field select,.qm-field textarea{font-size:16px}
  .qm-card{max-height:calc(100dvh - 1.5rem)}
  .qm-actions .btn-primary{width:100%;text-align:center}
  .qm-file-btn{width:100%;text-align:center}
}

/* preview confirmation — replaced with a real handler when forms go live */
.qm-done{padding:clamp(2rem,5vw,3rem);text-align:center}
.qm-done-mark{width:54px;height:54px;margin:0 auto 1.2rem;border:2px solid var(--orange);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--orange);font-size:1.5rem}
.qm-done h4{font-family:'Bebas Neue',sans-serif;font-size:1.9rem;letter-spacing:.03em;color:var(--text);margin-bottom:.6rem}
.qm-done p{font-size:.9rem;color:var(--muted);line-height:1.7;max-width:40ch;margin:0 auto 1.6rem}

/* ── quote card (replaces the old price tables) ── */
.quote-card-lead{font-size:.92rem;color:var(--muted);line-height:1.75;margin-bottom:1.5rem}
.quote-card-list{list-style:none;margin:0 0 1.7rem}
.quote-card-list li{position:relative;padding:.55rem 0 .55rem 1.5rem;font-size:.87rem;color:var(--text);border-bottom:1px solid var(--border)}
.quote-card-list li::before{content:'';position:absolute;left:0;top:1rem;width:9px;height:2px;background:var(--orange)}

/* region switcher sits at the far right of the nav; on a phone the label goes
   and just the state name rides next to the burger */
.top-nav .rsw{margin-left:auto;flex-shrink:0}
@media (max-width:900px){
  .rsw{padding:.34rem .6rem;font-size:.64rem;letter-spacing:.12em}
  .rsw-lbl{display:none}
}

/* honeypot — offscreen rather than display:none so bots still fill it in */
.qm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.qm-err{width:100%;margin-top:.7rem;font-size:.84rem;line-height:1.55;color:var(--orange)}
.qm-err a{color:var(--orange);text-decoration:underline}
