/* =========================================================
   404 RENOVATION TEAM — Theme Stylesheet
   Design system: black / gold / paper, industrial signage
   with an editorial, asymmetric layout language.
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  --black:#0b0b0c;
  --charcoal:#161616;
  --charcoal-2:#1f1f1f;
  --steel:#3a3a3a;
  --steel-light:#5c5c5c;
  --white:#ffffff;
  --offwhite:#f5f4f1;
  --line:#e6e4de;
  --line-dark:#2c2c2c;
  --line-dark-2:rgba(255,255,255,.1);

  --gold:#c89b3c;
  --gold-light:#e8c766;
  --gold-deep:#856418;

  --text-body:#2a2724;
  --text-muted:#6b6560;
  --text-on-dark:#f2efe9;
  --text-on-dark-muted:#b9b3aa;

  --font-display:"Anton", "Arial Narrow", sans-serif;
  --font-head:"Oswald", "Arial Narrow", sans-serif;
  --font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --radius-sm:3px;
  --radius-md:6px;
  --radius-lg:10px;

  --shadow-sm:0 2px 14px rgba(20,15,5,.10);
  --shadow-md:0 16px 40px rgba(15,12,4,.20);
  --shadow-gold:0 8px 24px rgba(200,155,60,.25);

  --container:1260px;
  --header-h:80px;

  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text-body);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;font-size:1rem;}
h1,h2,h3,h4{margin:0;font-family:var(--font-head);line-height:1.14;font-weight:600;letter-spacing:-.01em;}
p{margin:0 0 1rem;}
p:last-child{margin-bottom:0;}
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
section{position:relative;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

/* Fixed film-grain layer — texture over flat colour fields. Cheap: one
   fixed pseudo-element, never repainted on scroll. */
.grain{
  position:fixed;inset:0;z-index:998;pointer-events:none;
  background-image:var(--grain);
  opacity:.045;mix-blend-mode:overlay;
}

/* ---------- Type scale ---------- */
/* Anton (signage) is reserved for: the hero line, big ghost numerals, and
   the 404 code. Section headings (h2/h3) are sentence case Oswald —
   deliberately NOT uppercased everywhere, so the page doesn't read as one
   long shouted banner. */
.h-display{font-family:var(--font-display);text-transform:uppercase;font-weight:400;letter-spacing:.005em;line-height:.98;font-size:clamp(2.4rem,5.2vw,4.6rem);}
h1{font-family:var(--font-display);text-transform:uppercase;font-weight:400;font-size:clamp(2.3rem,4.6vw,3.9rem);line-height:1;letter-spacing:.005em;}
h2{font-size:clamp(1.9rem,3.4vw,2.75rem);font-weight:600;letter-spacing:-.015em;}
h3{font-size:1.28rem;font-weight:600;letter-spacing:-.005em;}
h4{font-size:1rem;font-weight:600;}
.eyebrow{
  display:inline-block;font-family:var(--font-head);font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);
  font-weight:600;margin-bottom:.9rem;
}
.on-dark .eyebrow{color:var(--gold);}
.section-lede{max-width:56ch;color:var(--text-muted);font-size:1.08rem;}
.on-dark .section-lede{color:var(--text-on-dark-muted);}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:var(--white);}
.gold-text{color:var(--gold);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-head);font-weight:600;text-transform:uppercase;
  letter-spacing:.04em;font-size:.92rem;white-space:nowrap;
  padding:.95rem 1.7rem;border-radius:var(--radius-sm);border:2px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn:active{transform:translateY(1px) scale(.98);}
.btn-gold{background:var(--gold);color:var(--black);box-shadow:var(--shadow-gold);}
.btn-gold:hover{background:var(--gold-light);box-shadow:0 10px 28px rgba(200,155,60,.35);}
.btn-outline-dark{background:transparent;border-color:var(--black);color:var(--black);}
.btn-outline-dark:hover{background:var(--black);color:var(--white);}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.55);color:var(--white);}
.btn-outline-light:hover{border-color:var(--gold);color:var(--gold);}
.btn-block{width:100%;}
.btn-lg{padding:1.1rem 2.1rem;font-size:1rem;}

/* ---------- Header ---------- */
.site-header{
  /* Note: intentionally no backdrop-filter/transform/filter here — any of those
     would create a new containing block for position:fixed descendants,
     which breaks the full-screen fixed mobile nav panel below. */
  position:sticky;top:0;z-index:200;height:var(--header-h);
  display:flex;align-items:center;
  background:rgba(10,10,11,.98);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background-color .2s ease;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%;}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--white);}
.brand img{height:44px;width:auto;display:block;flex:none;}
.footer-brand .brand img{height:54px;}

.primary-nav{display:flex;align-items:center;gap:2rem;}
.primary-nav ul{display:flex;gap:1.8rem;}
.primary-nav a{
  font-family:var(--font-head);font-size:.86rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--text-on-dark-muted);font-weight:500;position:relative;padding:6px 0;
  transition:color .15s ease;
}
.primary-nav a:hover,.primary-nav a.is-active{color:var(--white);}
.primary-nav a.is-active::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);
}
.primary-nav a.nav-cta,.primary-nav a.nav-cta:hover{color:var(--black);padding:.95rem 1.7rem;}
.header-actions{display:flex;align-items:center;gap:1.1rem;}
.header-phone{display:flex;align-items:center;gap:.5rem;color:var(--white);font-family:var(--font-head);font-size:.95rem;letter-spacing:.02em;}
.header-phone i{color:var(--gold);font-size:.95rem;}
.nav-toggle{
  display:none;width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:6px;
  background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:5px;
}
.nav-toggle span{width:20px;height:2px;background:var(--white);}

@media(max-width:1024px){
  .header-phone span.phone-label{display:none;}
}
@media(max-width:900px){
  .primary-nav{
    position:fixed;inset:var(--header-h) 0 0 0;background:var(--black);
    flex-direction:column;align-items:flex-start;padding:2rem 24px;gap:0;
    transform:translateX(100%);transition:transform .28s ease;overflow-y:auto;
  }
  .primary-nav.is-open{transform:translateX(0);}
  .primary-nav ul{flex-direction:column;gap:0;width:100%;}
  .primary-nav li{width:100%;border-bottom:1px solid var(--line-dark);}
  .primary-nav a{display:block;padding:1.1rem 0;font-size:1.05rem;}
  .primary-nav .nav-cta{margin-top:1.5rem;width:100%;}
  .nav-toggle{display:flex;}
}

/* ---------- Hero ---------- */
/* Asymmetric split hero: headline left, a small rotated "stamp" (not a
   glowing centred badge) bottom-right, an oversized faint wordmark
   bleeding off the right edge for depth, and the trust strip folded into
   the same dark field instead of a separate boxed section underneath. */
.hero{
  position:relative;overflow:hidden;
  background:var(--black);color:var(--white);
  padding:6rem 0 0;
}
/* Finished-work photo as hero background texture, same technique as the
   paid-ads landing page (.lp-hero-bg / .lp-hero-overlay): a real photo sits
   behind a dark gradient so the black brand field stays dominant and hero
   text stays fully legible, with the image only readable as subtle texture. */
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.15) brightness(.55);}
.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(11,11,12,.55) 0%, rgba(11,11,12,.82) 55%, var(--black) 100%);
}
.hero .container{position:relative;z-index:3;}
.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:end;padding-bottom:3.4rem;}
.hero-copy{max-width:660px;}
.hero-copy h1{color:var(--white);margin-bottom:1.3rem;}
.hero-copy .section-lede{color:var(--text-on-dark-muted);font-size:1.1rem;max-width:50ch;margin-bottom:2rem;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:0;}
.hero-stamp{
  justify-self:end;position:relative;width:100%;max-width:230px;
  transform:rotate(-6deg);
}
.hero-stamp img{width:100%;height:auto;filter:drop-shadow(0 14px 30px rgba(0,0,0,.55));}

.hero-trust{
  border-top:1px solid var(--line-dark-2);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.hero-trust li{
  display:flex;align-items:center;gap:.65rem;padding:1.3rem 1.4rem;
  border-left:1px solid var(--line-dark-2);
}
.hero-trust li:first-child{border-left:none;padding-left:0;}
.hero-trust i{color:var(--gold);font-size:1.05rem;flex:none;}
.hero-trust span{font-family:var(--font-head);font-size:.8rem;letter-spacing:.03em;text-transform:uppercase;color:var(--text-on-dark-muted);font-weight:600;}

@media(max-width:920px){
  .hero{padding:2.75rem 0 0;}
  .hero-inner{grid-template-columns:1fr;gap:1.75rem;padding-bottom:2.4rem;align-items:start;}
  .hero-stamp{justify-self:start;max-width:150px;order:-1;}
}
@media(max-width:700px){
  .hero-trust{grid-template-columns:repeat(2,1fr);}
  .hero-trust li:nth-child(2){border-left:1px solid var(--line-dark-2);}
  .hero-trust li:nth-child(odd){border-left:none;padding-left:0;}
}

/* ---------- Sections ---------- */
.section{padding:6rem 0;}
.section-tight{padding:3.5rem 0;}
.section.on-dark{background:var(--black);}
.section.charcoal{background:var(--charcoal);}
.section-head{max-width:640px;margin-bottom:3.2rem;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head-row{
  display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;
  margin-bottom:3.2rem;flex-wrap:wrap;
}
.section-head-row .section-head{margin-bottom:0;}
.section-link{
  font-family:var(--font-head);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;
  font-weight:600;color:var(--gold-deep);white-space:nowrap;padding-bottom:.3rem;
  border-bottom:1px solid currentColor;
}
.on-dark .section-link{color:var(--gold);}
.section-link:hover{color:var(--text-body);}
.on-dark .section-link:hover{color:var(--white);}

/* ---------- Services index (replaces icon-card grid) ---------- */
/* A sticky intro column beside a numbered list of rows. No card boxes,
   no icon-in-circle badges — the number and the name carry the weight. */
.services-index-wrap{display:grid;grid-template-columns:.62fr 1.38fr;gap:3.5rem;align-items:start;}
.services-index-intro{position:sticky;top:calc(var(--header-h) + 2rem);}
.services-index-intro .section-lede{margin-bottom:1.8rem;}
.services-index{border-top:1px solid var(--line);}
.services-index li{border-bottom:1px solid var(--line);}
.services-index a{
  display:grid;grid-template-columns:2.6rem 1fr auto;align-items:center;gap:1.4rem;
  padding:1.5rem .25rem;transition:background-color .18s ease, padding-left .18s ease;
}
.services-index a:hover{background:var(--offwhite);padding-left:1rem;}
.services-index .idx-num{font-family:var(--font-display);font-size:1.15rem;color:var(--gold-deep);}
.services-index .idx-body h3{margin-bottom:.3rem;font-size:1.2rem;}
.services-index .idx-body p{margin:0;color:var(--text-muted);font-size:.94rem;max-width:56ch;}
.services-index .idx-arrow{font-size:1.1rem;color:var(--text-muted);transition:transform .18s ease, color .18s ease;}
.services-index a:hover .idx-arrow{transform:translateX(5px);color:var(--gold-deep);}
@media(max-width:900px){
  .services-index-wrap{grid-template-columns:1fr;gap:1.5rem;}
  .services-index-intro{position:static;}
  .services-index a{grid-template-columns:2.2rem 1fr auto;padding:1.2rem 0;}
}

/* ---------- Why us: image + stacked numbered list (asymmetric) ---------- */
.why-split{display:grid;grid-template-columns:.85fr 1.15fr;gap:3.5rem;align-items:center;}
.why-split figure{margin:0;position:relative;}
.why-split img{border-radius:var(--radius-lg);width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;}
.why-list li{
  display:grid;grid-template-columns:3.2rem 1fr;gap:1.3rem;
  padding:1.6rem 0;border-top:1px solid var(--line-dark-2);
}
.why-list li:first-child{border-top:none;padding-top:0;}
.why-list .num{font-family:var(--font-display);font-size:1.5rem;color:var(--gold);}
.why-list h3{color:var(--white);margin-bottom:.45rem;font-size:1.1rem;}
.why-list p{color:var(--text-on-dark-muted);font-size:.96rem;}
@media(max-width:900px){
  .why-split{grid-template-columns:1fr;gap:2rem;}
  .why-split figure{order:-1;}
  .why-split img{aspect-ratio:16/9;}
}

/* ---------- Process: connected horizontal line ---------- */
.process-line{display:flex;position:relative;}
.process-line::before{
  content:"";position:absolute;left:0;right:0;top:1.05rem;height:1px;background:var(--line);
}
.process-line .process-item{flex:1;position:relative;padding-right:1.6rem;}
.process-line .process-item:last-child{padding-right:0;}
.process-item .marker{
  width:2.1rem;height:2.1rem;background:var(--white);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;position:relative;z-index:1;
  font-family:var(--font-display);font-size:.95rem;color:var(--gold-deep);margin-bottom:1.4rem;
}
.process-item h3{margin-bottom:.5rem;font-size:1.05rem;}
.process-item p{color:var(--text-muted);font-size:.94rem;max-width:26ch;}
@media(max-width:860px){
  .process-line{flex-direction:column;gap:2rem;}
  .process-line::before{display:none;}
  .process-line .process-item{padding-right:0;}
}

/* ---------- Portfolio mosaic (varied cell sizes, not a uniform grid) ---------- */
.filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.5rem;}
.filter-btn{
  font-family:var(--font-head);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;
  padding:.6rem 1.15rem;border-radius:999px;border:1px solid var(--line);background:var(--white);
  color:var(--text-muted);font-weight:600;transition:.15s ease;
}
.filter-btn:hover{border-color:var(--gold);color:var(--text-body);}
.filter-btn.is-active{background:var(--black);border-color:var(--black);color:var(--gold);}

.portfolio-mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:190px;gap:1rem;}
.portfolio-mosaic .portfolio-item:nth-child(6n+1){grid-column:span 4;grid-row:span 2;}
.portfolio-mosaic .portfolio-item:nth-child(6n+2){grid-column:span 2;grid-row:span 1;}
.portfolio-mosaic .portfolio-item:nth-child(6n+3){grid-column:span 2;grid-row:span 1;}
.portfolio-mosaic .portfolio-item:nth-child(6n+4){grid-column:span 2;grid-row:span 2;}
.portfolio-mosaic .portfolio-item:nth-child(6n+5){grid-column:span 2;grid-row:span 2;}
.portfolio-mosaic .portfolio-item:nth-child(6n+6){grid-column:span 2;grid-row:span 2;}

.portfolio-item{border-radius:var(--radius-md);overflow:hidden;position:relative;background:var(--charcoal);}
.portfolio-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.portfolio-item:hover img{transform:scale(1.05);}
.portfolio-item .cap{
  position:absolute;left:0;right:0;bottom:0;padding:1.1rem 1.1rem .9rem;
  background:linear-gradient(0deg, rgba(0,0,0,.85), transparent);color:var(--white);
}
.portfolio-item .cap strong{display:block;font-family:var(--font-head);font-size:.92rem;letter-spacing:.02em;}
.portfolio-item .cap span{font-size:.78rem;color:var(--text-on-dark-muted);}
.portfolio-item[hidden]{display:none;}
@media(max-width:900px){
  .portfolio-mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;}
  .portfolio-mosaic .portfolio-item{grid-column:span 1!important;grid-row:span 1!important;}
}

/* Simple 3-up preview grid used on the homepage teaser (kept unequal via
   the mosaic classes above when there are 3 items: one wide + two square) */
.portfolio-preview{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:1rem;}
.portfolio-preview .portfolio-item:first-child{grid-column:span 2;grid-row:span 2;}
.portfolio-preview .portfolio-item:not(:first-child){grid-column:span 2;grid-row:span 1;}
@media(max-width:700px){
  .portfolio-preview{grid-template-columns:1fr;grid-auto-rows:240px;}
  .portfolio-preview .portfolio-item{grid-column:span 1!important;grid-row:span 1!important;}
}

/* ---------- Testimonials: featured quote + supporting stack, with
   hover/click zones on the left and right edges that rotate through
   every review (hover left = previous, hover right = next). ---------- */
.testimonial-feature{position:relative;display:grid;grid-template-columns:1.3fr 1fr;gap:3.5rem;align-items:start;}
.quote-mark{font-family:var(--font-display);font-size:4.5rem;line-height:.6;color:var(--gold);display:block;margin-bottom:1rem;}
.testimonial-lead .stars{color:var(--gold-deep);letter-spacing:.15em;margin-bottom:1rem;font-size:1rem;}
.testimonial-lead p{font-size:1.5rem;line-height:1.4;color:var(--text-body);max-width:24ch;margin-bottom:1.4rem;letter-spacing:-.01em;}
.testimonial-lead .attrib{font-family:var(--font-head);font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--gold-deep);font-weight:600;}
.testimonial-lead .attrib small{display:block;color:var(--text-muted);text-transform:none;letter-spacing:0;font-family:var(--font-body);font-size:.85rem;margin-top:.2rem;font-weight:400;}

.testimonial-stack li{padding:1.7rem 0;border-top:1px solid var(--line);}
.testimonial-stack li:first-child{border-top:none;padding-top:0;}
.testimonial-stack .stars{color:var(--gold-deep);letter-spacing:.15em;margin-bottom:.7rem;font-size:.85rem;}
.testimonial-stack p{font-size:.98rem;color:var(--text-body);margin-bottom:.9rem;}
.testimonial-stack .attrib{font-family:var(--font-head);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--gold-deep);font-weight:600;}
.testimonial-stack .attrib small{display:block;color:var(--text-muted);text-transform:none;letter-spacing:0;font-family:var(--font-body);font-size:.8rem;margin-top:.15rem;font-weight:400;}
@media(max-width:860px){.testimonial-feature{grid-template-columns:1fr;gap:2.5rem;}}

.testimonial-lead,.testimonial-stack{transition:opacity .18s ease;}
.testimonial-feature.is-fading .testimonial-lead,.testimonial-feature.is-fading .testimonial-stack{opacity:0;}
.testimonial-zone{
  position:absolute;top:0;bottom:0;width:42%;display:flex;align-items:center;
  background:none;border:none;padding:0;cursor:pointer;z-index:2;
}
.testimonial-zone-prev{left:0;justify-content:flex-start;}
.testimonial-zone-next{right:0;justify-content:flex-end;}
.testimonial-zone i{
  width:46px;height:46px;border-radius:50%;background:var(--white);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--gold-deep);font-size:1rem;
  box-shadow:0 8px 22px rgba(0,0,0,.14);opacity:0;transform:scale(.85);
  transition:opacity .18s ease, transform .18s ease;
}
.testimonial-zone-prev i{margin-right:.5rem;}
.testimonial-zone-next i{margin-left:.5rem;}
.testimonial-zone:hover i,.testimonial-zone:focus-visible i{opacity:1;transform:scale(1);}
@media(max-width:860px){.testimonial-zone{width:20%;}}

/* ---------- Lightbox / project carousel modal ---------- */
.portfolio-item[data-images]{cursor:pointer;}
.portfolio-item[data-images]:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
.portfolio-item .cap .count{display:flex;align-items:center;gap:.35rem;margin-top:.35rem;font-size:.72rem;color:var(--text-on-dark-muted);}
.lightbox{position:fixed;inset:0;z-index:400;display:none;}
.lightbox.is-open{display:block;}
.lightbox-backdrop{position:absolute;inset:0;background:rgba(10,10,10,.94);}
.lightbox-dialog{position:relative;z-index:1;max-width:min(1100px,92vw);margin:4vh auto;background:var(--black);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;max-height:92vh;}
.lightbox-close{position:absolute;top:.7rem;right:1rem;z-index:2;background:none;border:none;color:var(--white);font-size:2.3rem;line-height:1;cursor:pointer;padding:.3rem;}
.lightbox-close:hover{color:var(--gold);}
.lightbox-media{position:relative;display:flex;align-items:center;justify-content:center;background:var(--black);min-height:38vh;}
.lightbox-image{max-width:100%;max-height:76vh;object-fit:contain;display:block;}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.45);color:var(--white);font-size:1.05rem;display:flex;align-items:center;justify-content:center;transition:.15s ease;cursor:pointer;}
.lightbox-nav:hover{border-color:var(--gold);color:var(--gold);}
.lightbox-nav[hidden]{display:none;}
.lightbox-prev{left:1rem;}
.lightbox-next{right:1rem;}
.lightbox-info{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.5rem;border-top:1px solid var(--line-dark-2);color:var(--white);}
.lightbox-title{display:block;font-family:var(--font-head);font-size:.95rem;letter-spacing:.02em;}
.lightbox-location{display:block;color:var(--text-on-dark-muted);font-size:.82rem;margin-top:.15rem;}
.lightbox-counter{font-family:var(--font-head);font-size:.8rem;color:var(--text-on-dark-muted);flex:none;}
body.lightbox-open{overflow:hidden;}
@media(max-width:600px){
  .lightbox-dialog{margin:0;max-height:100vh;border-radius:0;}
  .lightbox-nav{width:40px;height:40px;}
}

/* ---------- Trust badges (HomeStars / Home Depot) ---------- */
.trust-badges{display:flex;flex-wrap:wrap;gap:1rem;}
.trust-badges.center{justify-content:center;}
.trust-badge{
  display:flex;align-items:center;gap:.75rem;padding:.85rem 1.3rem;
  border:1px solid var(--line);border-radius:999px;transition:border-color .15s ease, background-color .15s ease;
}
.trust-badge:hover{border-color:var(--gold-deep);background:var(--offwhite);}
.trust-badge i{color:var(--gold-deep);font-size:1.1rem;flex:none;}
.trust-badge strong{display:block;font-family:var(--font-head);font-size:.82rem;letter-spacing:.02em;color:var(--text-body);}
.trust-badge small{display:block;color:var(--text-muted);font-size:.76rem;margin-top:.15rem;}
.on-dark .trust-badge{border-color:var(--line-dark-2);}
.on-dark .trust-badge:hover{border-color:var(--gold);background:rgba(255,255,255,.04);}
.on-dark .trust-badge strong{color:var(--white);}
.on-dark .trust-badge small{color:var(--text-on-dark-muted);}
.contact-info-card .trust-badges{margin-top:1.6rem;padding-top:1.6rem;border-top:1px solid var(--line-dark);}
.contact-info-card .trust-badge{border-color:var(--line-dark);padding:.7rem 1rem;}
.contact-info-card .trust-badge:hover{border-color:var(--gold);background:rgba(255,255,255,.03);}
.contact-info-card .trust-badge strong{color:var(--white);font-size:.78rem;}
.contact-info-card .trust-badge small{color:var(--text-on-dark-muted);font-size:.72rem;}
@media(max-width:520px){.trust-badge{width:100%;}}

/* ---------- Service area ---------- */
.area-tags{display:flex;flex-wrap:wrap;gap:.6rem;}
.area-tags li{
  font-family:var(--font-head);font-size:.82rem;letter-spacing:.03em;text-transform:uppercase;
  padding:.55rem 1rem;border:1px solid var(--line);border-radius:6px;color:var(--text-body);font-weight:600;
}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;display:grid;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:1rem;
  padding:1.5rem 0;background:none;border:none;text-align:left;
  font-family:var(--font-head);font-size:1.05rem;letter-spacing:-.005em;color:var(--text-body);
}
.faq-q .idx-num{font-family:var(--font-display);font-size:.95rem;color:var(--gold-deep);}
.faq-q .plus{font-family:var(--font-display);font-size:1.3rem;color:var(--gold-deep);flex:none;transition:transform .2s ease;}
.faq-item.is-open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{padding:0 0 1.5rem 3.4rem;color:var(--text-muted);max-width:62ch;}
.faq-item.is-open .faq-a{max-height:400px;}
@media(max-width:600px){
  .faq-a p{padding-left:0;}
}

/* ---------- CTA band ---------- */
.cta-band{
  position:relative;overflow:hidden;background:var(--black);padding:5rem 0;text-align:center;
}
.cta-band::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 15% 20%, rgba(200,155,60,.14), transparent 55%),
    radial-gradient(ellipse at 85% 80%, rgba(200,155,60,.1), transparent 50%);
}
.cta-band .container{position:relative;z-index:1;}
.cta-band h2{color:var(--white);margin-bottom:.9rem;}
.cta-band p{color:var(--text-on-dark-muted);max-width:52ch;margin:0 auto 2rem;font-size:1.05rem;}
.cta-band .hero-ctas{justify-content:center;margin-bottom:0;}
.cta-tertiary{margin-top:1.3rem;}
.cta-tertiary a{
  font-family:var(--font-head);font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;
  color:var(--gold);border-bottom:1px solid rgba(232,199,102,.4);padding-bottom:2px;transition:color .15s ease,border-color .15s ease;
}
.cta-tertiary a:hover{color:var(--gold-light);border-color:var(--gold-light);}

/* ---------- Footer ---------- */
.site-footer{background:var(--black);color:var(--text-on-dark-muted);padding:4.5rem 0 0;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid var(--line-dark);}
.footer-brand p{max-width:34ch;font-size:.92rem;margin:1rem 0 1.4rem;}
.footer-social{display:flex;gap:1.1rem;}
.footer-social a{color:var(--text-on-dark-muted);font-size:1rem;}
.footer-social a:hover{color:var(--gold);}
.footer-col h4{color:var(--white);font-size:.82rem;letter-spacing:.1em;margin-bottom:1.2rem;text-transform:uppercase;}
.footer-col ul li{margin-bottom:.75rem;font-size:.9rem;}
.footer-col a:hover{color:var(--gold);}
.footer-contact li{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;}
.footer-contact i{color:var(--gold);flex:none;margin-top:3px;font-size:.9rem;width:16px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding:1.6rem 0;font-size:.82rem;}
.footer-bottom a:hover{color:var(--gold);}
@media(max-width:920px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{position:relative;overflow:hidden;background:var(--black);color:var(--white);padding:3.8rem 0 3.2rem;}
.page-hero .breadcrumb{font-family:var(--font-head);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-on-dark-muted);margin-bottom:1rem;}
.page-hero .breadcrumb a:hover{color:var(--gold);}
.page-hero h1{color:var(--white);}
.page-hero .section-lede{color:var(--text-on-dark-muted);margin-top:1rem;max-width:60ch;}

/* ---------- Two-col content ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.split img{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);}
@media(max-width:860px){.split{grid-template-columns:1fr;}}

/* ---------- Values / list blocks (stacked numbered list, matches why-list) ---------- */
.value-list li{
  display:grid;grid-template-columns:3.2rem 1fr;gap:1.3rem;
  padding:1.6rem 0;border-top:1px solid var(--line-dark-2);
}
.value-list li:first-child{border-top:none;padding-top:0;}
.value-list .num{font-family:var(--font-display);font-size:1.5rem;color:var(--gold);}
.value-list h3{color:var(--white);margin-bottom:.45rem;font-size:1.1rem;}
.value-list p{color:var(--text-on-dark-muted);font-size:.96rem;}

/* ---------- Service detail sections (services hub page) ---------- */
.service-jump{
  position:sticky;top:var(--header-h);z-index:50;background:var(--white);
  border-bottom:1px solid var(--line);padding:1rem 0;
}
.service-jump ul{display:flex;gap:.6rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.service-jump ul::-webkit-scrollbar{display:none;}
.service-jump a{
  white-space:nowrap;font-family:var(--font-head);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;
  padding:.55rem 1rem;border-radius:999px;border:1px solid var(--line);color:var(--text-muted);font-weight:600;
}
.service-jump a:hover,.service-jump a.is-active{border-color:var(--black);color:var(--black);background:var(--offwhite);}

.service-detail{padding:4.6rem 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 70px);}
.service-detail:last-child{border-bottom:none;}
.service-detail .sd-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:3.5rem;align-items:start;}
.service-detail .sd-num{font-family:var(--font-display);font-size:2.4rem;color:var(--line);display:block;margin-bottom:.6rem;line-height:1;}
.service-detail h2{margin:0 0 1rem;}
.service-detail .includes{margin-top:1.6rem;}
.service-detail .includes h4{font-size:.82rem;letter-spacing:.08em;color:var(--gold-deep);margin-bottom:.9rem;text-transform:uppercase;}
.service-detail .includes ul{display:grid;grid-template-columns:1fr 1fr;gap:.6rem .9rem;}
.service-detail .includes li{font-size:.92rem;padding-left:1.1rem;position:relative;color:var(--text-body);}
.service-detail .includes li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;background:var(--gold);border-radius:1px;}
@media(max-width:860px){
  .service-detail .sd-grid{grid-template-columns:1fr;}
  .service-detail .includes ul{grid-template-columns:1fr;}
}

/* ---------- Forms ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;}
.form-field{display:flex;flex-direction:column;gap:.5rem;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-family:var(--font-head);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-body);font-weight:600;}
.form-field input,.form-field select,.form-field textarea{
  padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--text-body);
  transition:border-color .15s ease;
}
.form-field input::placeholder,.form-field textarea::placeholder{color:#9a948c;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--gold-deep);}
.form-field small{color:var(--text-muted);font-size:.8rem;}
.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:#b8433b;}
.form-error-text{color:#b8433b;font-size:.8rem;display:none;}
.form-field.has-error .form-error-text{display:block;}
.form-honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none;}
.form-note{grid-column:1/-1;font-size:.85rem;color:var(--text-muted);}
.form-status{grid-column:1/-1;padding:1rem 1.2rem;border-radius:var(--radius-sm);font-size:.94rem;display:none;}
.form-status.is-success{display:block;background:#eaf4ea;color:#2e5c34;border:1px solid #bfe0c2;}
.form-status.is-error{display:block;background:#fbeceb;color:#8f2f27;border:1px solid #f0c4c0;}

/* Contact Form 7 compatibility. The CF7 shortcode is embedded inside the
   original .form-grid / .form-field markup (see functions.php / page-
   contact.php / page-get-quote.php), so most of the styling above already
   applies via descendant selectors. CF7 wraps each field's actual input in
   its own inline-block span though, which would otherwise stop it filling
   the .form-field column — and CF7 supplies its own validation-tip and
   response-message markup in place of the old .form-error-text/.form-status
   — so both are bridged here. */
.form-field .wpcf7-form-control-wrap{display:block;width:100%;}
.form-field input.wpcf7-not-valid,.form-field select.wpcf7-not-valid,.form-field textarea.wpcf7-not-valid{border-color:#b8433b;}
.wpcf7-not-valid-tip{color:#b8433b;font-size:.8rem;display:block;margin-top:.35rem;}
.wpcf7-response-output{margin:1.2rem 0 0;padding:1rem 1.2rem;border-radius:var(--radius-sm);font-size:.94rem;}
.wpcf7-response-output.wpcf7-mail-sent-ok{background:#eaf4ea;color:#2e5c34;border:1px solid #bfe0c2;}
.wpcf7-response-output.wpcf7-validation-errors,
.wpcf7-response-output.wpcf7-mail-sent-ng,
.wpcf7-response-output.wpcf7-spam-blocked{background:#fbeceb;color:#8f2f27;border:1px solid #f0c4c0;}
.dr-popup-form .wpcf7-not-valid-tip{color:#ff9d94;}
.dr-popup-form .wpcf7-response-output.wpcf7-mail-sent-ok{background:rgba(234,244,234,.12);color:#bfe6c2;border-color:rgba(191,224,194,.35);}
.dr-popup-form .wpcf7-response-output.wpcf7-validation-errors,
.dr-popup-form .wpcf7-response-output.wpcf7-mail-sent-ng,
.dr-popup-form .wpcf7-response-output.wpcf7-spam-blocked{background:rgba(251,236,235,.12);color:#f0c4c0;border-color:rgba(240,196,192,.35);}

/* CF7 submit buttons render as <input type="submit" class="btn btn-gold ...">
   inside the same .form-field wrapper as the text inputs above — and
   ".form-field input" has higher specificity than the standalone ".btn" /
   ".btn-gold" classes, so it would otherwise flatten the submit button to a
   plain white text-input look. Restore full button styling here. */
.form-field input.btn{
  border:2px solid transparent;padding:.95rem 1.7rem;
  font-family:var(--font-head);font-weight:600;text-transform:uppercase;
  letter-spacing:.04em;font-size:.92rem;white-space:nowrap;cursor:pointer;
}
.form-field input.btn-lg{padding:1.1rem 2.1rem;font-size:1rem;}
.form-field input.btn:focus{border-color:transparent;}
.wpcf7-submit.btn-gold{background:var(--gold);color:var(--black);box-shadow:var(--shadow-gold);}
.wpcf7-submit.btn-gold:hover{background:var(--gold-light);box-shadow:0 10px 28px rgba(200,155,60,.35);}

.contact-info-card{background:var(--charcoal);border-top:3px solid var(--gold);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:2.2rem;color:var(--text-on-dark);}
.contact-info-card h3{color:var(--white);margin-bottom:1.4rem;}
.contact-info-card ul li{display:flex;gap:.8rem;padding:.85rem 0;border-bottom:1px solid var(--line-dark);}
.contact-info-card ul li:last-child{border-bottom:none;}
.contact-info-card i{color:var(--gold);flex:none;margin-top:3px;font-size:1.05rem;width:18px;}
.contact-info-card strong{display:block;color:var(--white);font-family:var(--font-head);font-size:.85rem;letter-spacing:.03em;text-transform:uppercase;margin-bottom:.15rem;}
.contact-info-card a:hover{color:var(--gold);}
.map-wrap{border-radius:var(--radius-lg);overflow:hidden;margin-top:1.6rem;border:1px solid var(--line-dark);}
.map-wrap iframe{width:100%;height:260px;border:0;display:block;filter:grayscale(.3) contrast(1.05);}

/* ---------- Brand stamp block (About page) ---------- */
.brand-block{display:grid;grid-template-columns:auto 1fr;gap:2.5rem;align-items:center;}
.brand-block .stamp{transform:rotate(-5deg);}
.brand-block img{width:180px;height:auto;filter:drop-shadow(0 14px 26px rgba(0,0,0,.5));}
.brand-block h2{margin-bottom:1rem;}
.brand-block p{color:var(--text-on-dark-muted);}
@media(max-width:700px){
  .brand-block{grid-template-columns:1fr;text-align:center;justify-items:center;}
}

/* ---------- 404 page ---------- */
.error-hero{min-height:70vh;display:flex;align-items:center;background:var(--black);color:var(--white);text-align:center;}
.error-hero .code{font-family:var(--font-display);font-size:clamp(4rem,14vw,9rem);color:var(--gold);line-height:1;}
.error-hero p{color:var(--text-on-dark-muted);max-width:48ch;margin:1.2rem auto 2rem;}

/* ---------- Legal / policy content (Privacy Policy) ---------- */
.legal-content{max-width:74ch;}
.legal-updated{font-family:var(--font-head);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2.4rem;}
.legal-content h2{margin-top:3rem;margin-bottom:1rem;font-size:1.4rem;}
.legal-content h2:first-of-type{margin-top:0;}
.legal-content h3{margin-top:1.8rem;margin-bottom:.6rem;font-size:1.05rem;}
.legal-content p{color:var(--text-muted);margin-bottom:1.1rem;line-height:1.7;}
.legal-content ul{margin:0 0 1.1rem 1.3rem;}
.legal-content li{color:var(--text-muted);margin-bottom:.5rem;font-size:.98rem;line-height:1.6;}
.legal-content a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:2px;}
.legal-content a:hover{color:var(--black);}
.legal-content strong{color:var(--text-body);}

/* ---------- Thank-you page ---------- */
.thank-you-hero{text-align:center;}
.thank-you-hero .container{max-width:640px;}
.thank-you-hero .section-lede{margin:1rem auto 0;}
.thank-you-icon{
  width:3.4rem;height:3.4rem;border-radius:50%;border:1.5px solid var(--gold);
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.6rem;color:var(--gold);font-size:1.3rem;
}

/* ---------- Utility ---------- */
.mt-0{margin-top:0;}
.text-center{text-align:center;}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.skip-link{
  position:absolute;left:-9999px;top:0;background:var(--gold);color:var(--black);padding:.8rem 1.2rem;z-index:999;
  font-family:var(--font-head);text-transform:uppercase;font-size:.85rem;
}
.skip-link:focus{left:12px;top:12px;}

@media(max-width:640px){
  .section{padding:3.75rem 0;}
  h1{font-size:clamp(1.9rem,7vw,2.6rem);}
}

/* ---------- Featured renovation: before/after slider ---------- */
.featured-reno{padding-top:3.5rem;}
.featured-reno-head{max-width:70ch;margin-bottom:2rem;}
.featured-reno-head .section-lede{max-width:none;}
.featured-reno-badge{
  display:inline-flex;align-items:center;gap:.4rem;background:var(--gold);color:var(--charcoal);
  font-family:var(--font-head);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.35rem .75rem;border-radius:999px;font-weight:600;margin-bottom:1rem;
}

.ba-tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem;}
.ba-tab{
  padding:.6rem 1.15rem;border-radius:999px;border:1px solid var(--line-dark-2);background:transparent;
  color:var(--text-on-dark-muted);font-family:var(--font-head);font-size:.82rem;letter-spacing:.02em;
  cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.on-dark .ba-tab{border-color:var(--line-dark-2);}
.featured-reno:not(.on-dark) .ba-tab{border-color:var(--line);color:var(--text-muted);}
.ba-tab:hover{border-color:var(--gold);color:var(--gold);}
.ba-tab.is-active{background:var(--gold);border-color:var(--gold);color:var(--charcoal);font-weight:600;}

.ba-slider{
  position:relative;width:100%;aspect-ratio:16/10;border-radius:var(--radius-md);overflow:hidden;
  background:var(--charcoal);cursor:ew-resize;user-select:none;touch-action:pan-y;box-shadow:var(--shadow-md);
}
.ba-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;}
.ba-img-before{z-index:1;}
.ba-img-after{z-index:2;clip-path:inset(0 0 0 var(--ba-pos, 50%));}
.ba-divider{position:absolute;top:0;bottom:0;left:var(--ba-pos, 50%);width:0;z-index:3;transform:translateX(-50%);pointer-events:none;}
.ba-divider::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--white);transform:translateX(-50%);box-shadow:0 0 0 1px rgba(0,0,0,.3);}
.ba-handle{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;
  background:var(--gold);color:var(--charcoal);display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(0,0,0,.4);font-size:.95rem;
}
.ba-label{
  position:absolute;top:1rem;z-index:4;background:rgba(11,11,12,.72);color:var(--white);font-family:var(--font-head);
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.35rem .7rem;border-radius:3px;pointer-events:none;
}
.ba-label-before{left:1rem;}
.ba-label-after{right:1rem;}

.ba-thumbs{display:flex;gap:.65rem;margin-top:1.1rem;overflow-x:auto;padding-bottom:.35rem;}
.ba-thumb{
  flex:0 0 auto;width:92px;height:66px;border-radius:6px;overflow:hidden;border:2px solid transparent;
  padding:0;cursor:pointer;position:relative;background:none;line-height:0;
}
.ba-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.ba-thumb:hover{border-color:var(--gold-deep);}
.ba-thumb.is-active{border-color:var(--gold);}
.ba-thumb-tag{
  position:absolute;bottom:3px;left:3px;font-size:.58rem;letter-spacing:.04em;background:rgba(11,11,12,.75);
  color:var(--white);padding:1px 5px;border-radius:3px;text-transform:uppercase;font-family:var(--font-head);
}

.featured-reno-cta{margin-top:2rem;}

/* Compact homepage preview variant */
.featured-reno-preview{padding-bottom:1rem;}
.featured-reno-preview .ba-slider{aspect-ratio:16/8;}
.featured-reno-preview .ba-tabs{margin-bottom:1.1rem;}
.featured-reno-preview-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:1.2rem;}

@media(max-width:640px){
  .ba-slider{aspect-ratio:4/3;}
  .featured-reno-preview .ba-slider{aspect-ratio:4/3;}
  .ba-handle{width:40px;height:40px;}
}

/* =========================================================
   PAID LANDING PAGE (/get-quote/) — minimal chrome, hero form,
   condensed proof. Scoped under .lp-* so nothing here touches
   the main site's header/footer/hero styling.
   ========================================================= */

/* ---------- Emergency call bar ---------- */
/* Sits above the sticky header so "call now" urgency is visible the instant
   the page loads, before any scrolling — the whole point of a paid-ads
   landing page is giving high-intent visitors the fastest possible path to
   calling. Not sticky itself; only the .lp-header below it sticks. */
.lp-emergency-bar{background:var(--charcoal);border-bottom:1px solid var(--line-dark-2);}
.lp-emergency-bar .container{display:flex;justify-content:center;}
.lp-emergency-bar a{
  display:flex;align-items:center;gap:.55rem;padding:.6rem 0;
  font-family:var(--font-head);font-size:.8rem;letter-spacing:.03em;text-transform:uppercase;
  font-weight:600;color:var(--text-on-dark-muted);
}
.lp-emergency-bar i{color:var(--gold);font-size:.9rem;}
.lp-emergency-bar strong{color:var(--white);font-weight:700;}
.lp-emergency-bar a:hover strong{color:var(--gold);}

/* ---------- Minimal header ---------- */
.lp-header{
  position:sticky;top:0;z-index:200;height:var(--header-h);
  background:var(--black);display:flex;align-items:center;
}
.lp-header .container{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%;}
.lp-brand img{height:34px;width:auto;display:block;}
.lp-header-phone{display:flex;align-items:center;gap:.55rem;color:var(--white);font-family:var(--font-head);font-size:1rem;letter-spacing:.02em;font-weight:600;}
.lp-header-phone i{color:var(--gold);font-size:1rem;}
.lp-header-phone:hover{color:var(--gold);}

/* ---------- Hero + form card ---------- */
.lp-hero{padding:3.2rem 0 3.6rem;overflow:hidden;}

/* Finished-work photos as hero background texture — decorative only (not
   links, not a gallery). A dense grid fills the section behind a dark
   overlay so the black brand field stays dominant and hero text stays
   fully legible; the photos read as texture, not content to click. */
.lp-hero-bg{
  position:absolute;inset:0;z-index:0;
  display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:1fr;gap:2px;
}
.lp-hero-bg img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.1) brightness(.85);}
.lp-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(11,11,12,.35) 0%, rgba(11,11,12,.68) 60%, var(--black) 100%);
}
.lp-hero .container{position:relative;z-index:2;}
@media(max-width:900px){
  .lp-hero-bg{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);}
  .lp-hero-overlay{background:rgba(11,11,12,.6);}
}
.lp-hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:start;}
.lp-hero-copy h1{color:var(--white);margin-bottom:1.2rem;text-shadow:0 2px 24px rgba(0,0,0,.55);}
.lp-hero-copy .section-lede{color:var(--text-on-dark-muted);font-size:1.1rem;max-width:48ch;margin-bottom:1.8rem;text-shadow:0 1px 12px rgba(0,0,0,.6);}
.lp-hero-trust{display:flex;flex-direction:column;gap:.85rem;}
.lp-hero-trust li{display:flex;align-items:center;gap:.7rem;}
.lp-hero-trust i{color:var(--gold);font-size:1.05rem;flex:none;width:18px;}
.lp-hero-trust span{font-family:var(--font-head);font-size:.92rem;letter-spacing:.02em;color:var(--text-on-dark);font-weight:600;text-shadow:0 1px 10px rgba(0,0,0,.6);}

.lp-form-card{
  position:relative;background:var(--white);border-radius:var(--radius-lg);
  padding:2.4rem 2.2rem 2rem;box-shadow:var(--shadow-md);
  color:var(--text-body);
}
.lp-form-card-badge{position:absolute;top:-34px;right:28px;width:64px;height:auto;filter:drop-shadow(0 8px 16px rgba(0,0,0,.35));}
.lp-form-card h2{font-size:1.5rem;margin-bottom:.3rem;}
.lp-form-card-lede{color:var(--text-muted);font-size:.94rem;margin-bottom:1.6rem;}
.lp-form .form-field{margin-bottom:0;}
/* Every other field gets its natural breathing room from its own label
   sitting above the input. The submit button has no label, so without this
   it sits flush against the field above it — add back the same visual gap
   explicitly. */
.lp-form .wpcf7-submit{margin-top:1.6rem;}
.lp-form-micro{font-size:.85rem;color:var(--text-muted);text-align:center;margin:.9rem 0 0;}
.lp-form-consent{font-size:.76rem;color:var(--text-muted);text-align:center;margin:.6rem 0 0;line-height:1.5;}
.lp-form-consent a{color:var(--gold-deep);text-decoration:underline;}

@media(max-width:900px){
  .lp-hero{padding:2.2rem 0 2.6rem;}
  .lp-hero-inner{grid-template-columns:1fr;gap:2.2rem;}
  .lp-form-card{padding:2.1rem 1.5rem 1.8rem;}
}

/* ---------- Trust bar ---------- */
.lp-trust-bar{background:var(--offwhite);border-bottom:1px solid var(--line);padding:1.6rem 0;}
.lp-trust-bar ul{display:flex;flex-wrap:wrap;justify-content:center;gap:2.2rem;}
.lp-trust-bar li{display:flex;align-items:center;gap:.6rem;}
.lp-trust-bar i{color:var(--gold-deep);font-size:1rem;}
.lp-trust-bar span{font-family:var(--font-head);font-size:.82rem;letter-spacing:.03em;text-transform:uppercase;color:var(--text-body);font-weight:600;}
@media(max-width:640px){.lp-trust-bar ul{gap:1.2rem 1.6rem;}}

/* ---------- Condensed services ---------- */
.lp-services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:900px;margin:0 auto;
}
.lp-services-grid li{
  display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center;
  padding:1.8rem 1rem;border:1px solid var(--line);border-radius:var(--radius-md);
}
.lp-services-grid i{color:var(--gold-deep);font-size:1.5rem;}
.lp-services-grid span{font-family:var(--font-head);font-size:.88rem;letter-spacing:.02em;color:var(--text-body);font-weight:600;}
@media(max-width:700px){.lp-services-grid{grid-template-columns:repeat(2,1fr);}}

/* ---------- Social proof ---------- */
.lp-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.lp-proof-grid li{background:rgba(255,255,255,.04);border:1px solid var(--line-dark-2);border-radius:var(--radius-md);padding:1.8rem;}
.lp-proof-grid .stars{color:var(--gold);letter-spacing:.15em;margin-bottom:.9rem;font-size:.95rem;}
.lp-proof-grid .t-quote{color:var(--text-on-dark);font-size:.96rem;margin-bottom:1.1rem;}
.lp-proof-grid .attrib{font-family:var(--font-head);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--gold);font-weight:600;}
.lp-proof-grid .attrib small{display:block;color:var(--text-on-dark-muted);text-transform:none;letter-spacing:0;font-family:var(--font-body);font-size:.82rem;margin-top:.2rem;font-weight:400;}
@media(max-width:860px){.lp-proof-grid{grid-template-columns:1fr;}}

/* ---------- Repeated form section ---------- */
.lp-form-repeat-inner{max-width:560px;margin:0 auto;}
.lp-form-card-repeat{margin-top:1rem;}

/* ---------- FAQ (reuses .faq-list/.faq-item) ---------- */
.lp-faq-list{max-width:760px;margin:0 auto;}
/* This page's FAQ has no numbered index column (unlike the homepage FAQ),
   so its .faq-q only has two children: the question and the plus icon. */
.lp-faq-list .faq-q{grid-template-columns:1fr auto;}

/* ---------- Sticky mobile CTA bar ---------- */
.lp-sticky-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:300;
  background:var(--white);border-top:1px solid var(--line);
  padding:.75rem 1rem;gap:.75rem;box-shadow:0 -6px 20px rgba(0,0,0,.12);
}
.lp-sticky-bar .btn{flex:1;padding:.85rem 1rem;font-size:.85rem;}
@media(max-width:760px){
  .lp-sticky-bar{display:flex;}
  .lp-footer{padding-bottom:5.2rem;}
}

/* ---------- Minimal footer ---------- */
.lp-footer{background:var(--black);color:var(--text-on-dark-muted);padding:3.2rem 0 1.6rem;}
.lp-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2rem;padding-bottom:2rem;border-bottom:1px solid var(--line-dark);}
.lp-footer-logo{height:40px;width:auto;}
.lp-footer-details{display:flex;flex-wrap:wrap;gap:1.6rem;}
.lp-footer-details li{display:flex;align-items:center;gap:.55rem;font-size:.88rem;}
.lp-footer-details i{color:var(--gold);flex:none;font-size:.88rem;width:16px;}
.lp-footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-top:1.4rem;font-size:.8rem;}
.lp-footer-bottom a:hover{color:var(--gold);}
@media(max-width:600px){.lp-footer-inner{flex-direction:column;align-items:flex-start;}}

.lp-thanks-hero{padding-bottom:3rem;}

/* ---------- Popups (exit-intent + engagement nudge) ---------- */
.dr-popup{display:none;position:fixed;inset:0;z-index:500;}
.dr-popup.is-open{display:block;}
.dr-popup-backdrop{position:absolute;inset:0;background:rgba(11,11,12,.65);}
.dr-popup-panel{
  position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  width:100%;max-width:480px;max-height:90vh;overflow-y:auto;
  background:var(--black);color:var(--text-on-dark);
  border:1px solid var(--line-dark-2);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);padding:2.2rem 2rem 1.8rem;
}
.dr-popup-close{
  position:absolute;top:.9rem;right:1rem;width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;color:var(--text-on-dark-muted);
  font-size:1.6rem;line-height:1;cursor:pointer;
}
.dr-popup-close:hover{color:var(--gold);}
.dr-popup-handle{display:none;}
.dr-popup-panel h2{color:var(--white);font-size:1.4rem;margin-bottom:.7rem;padding-right:1.6rem;}
.dr-popup-sub{color:var(--text-on-dark-muted);font-size:.94rem;margin-bottom:1.4rem;}
.dr-popup-form .form-field{margin-bottom:.9rem;}
/* .form-field label and .lp-form-consent default to dark, light-background
   text colors (they're normally used on white/off-white cards). The popup
   panel itself is dark, so both need the on-dark muted color here or the
   label and fine print are unreadable against the black background. */
.dr-popup-form .form-field label{color:var(--text-on-dark-muted);}
.dr-popup-form .lp-form-consent{color:var(--text-on-dark-muted);}
.dr-popup-decline{
  display:block;width:100%;text-align:center;background:none;border:none;
  color:var(--text-on-dark-muted);font-size:.82rem;margin-top:.9rem;
  text-decoration:underline;text-underline-offset:3px;cursor:pointer;
}
.dr-popup-decline:hover{color:var(--gold);}

/* Popup B: corner slide-in, no backdrop, smaller and quieter than the
   exit modal so it nudges rather than interrupts. */
.dr-popup-nudge .dr-popup-panel{
  top:auto;left:auto;right:1.6rem;bottom:1.6rem;transform:none;
  max-width:340px;box-shadow:var(--shadow-md);
  animation:dr-popup-slide-in .35s ease-out;
}
.dr-popup-nudge .dr-popup-panel h2{font-size:1.15rem;}
.dr-popup-nudge .dr-popup-sub{font-size:.86rem;margin-bottom:1.1rem;}
@keyframes dr-popup-slide-in{
  from{transform:translateY(24px);opacity:0;}
  to{transform:translateY(0);opacity:1;}
}

body.dr-popup-open{overflow:hidden;}

@media(max-width:640px){
  .dr-popup-exit .dr-popup-panel{
    top:auto;left:0;bottom:0;transform:none;max-width:none;width:100%;
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    max-height:85vh;padding-top:1.4rem;
  }
  .dr-popup-exit .dr-popup-handle{
    display:block;width:40px;height:4px;border-radius:2px;
    background:var(--line-dark-2);margin:0 auto 1rem;
  }
  .dr-popup-nudge .dr-popup-panel{
    right:.8rem;left:.8rem;bottom:.8rem;max-width:none;width:auto;
  }
}
