/* ===== Iron Mike Construction & Design - styles.css ===== */
:root{
  --blue:#0544a4;
  --blue-dark:#043b85;
  --blue-light:#7fa3e8;
  --ink:#14181d;
  --near-black:#0b0d10;
  --cream:#f5f3ee;
  --body-text:#454133;
  --muted:#6b6656;
  --muted-dark:#98a0ad;
  --hairline:rgba(11,13,16,0.12);
  --hairline-dark:rgba(255,255,255,0.1);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;max-width:100%;overflow-x:clip;}
body{
  font-family:'Archivo',Arial,sans-serif;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  padding-bottom:0;
}
body.has-mobile-bar{padding-bottom:68px;}
h1,h2,h3{font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:0.3px;margin:0;}
a{color:inherit;}
img{max-width:100%;}
button,a,input,textarea{font:inherit;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,[role="button"]:focus-visible{outline:3px solid var(--blue-light);outline-offset:3px;}
.mono{font-family:'IBM Plex Mono',monospace;}
.wrap{max-width:1400px;margin:0 auto;}
.wrap-lg{max-width:1400px;margin:0 auto;}
.wrap-sm{max-width:900px;margin:0 auto;}

/* header */
header.site-header{position:sticky;top:0;z-index:100;background:rgba(245,243,238,0.96);backdrop-filter:blur(7px);border-bottom:1px solid var(--hairline);}
.header-topbar{background:var(--near-black);color:#c3c9d1;border-bottom:1px solid var(--hairline-dark);}
.header-topbar-inner{max-width:1400px;margin:0 auto;padding:8px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.8px;text-transform:uppercase;}
.topbar-proof,.topbar-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.topbar-proof span{position:relative;}
.topbar-proof span + span::before{content:'';position:absolute;left:-10px;top:50%;width:3px;height:3px;background:var(--blue-light);transform:translateY(-50%);}
.topbar-actions a{color:#fff;text-decoration:none;font-weight:700;}
.topbar-actions a:hover{color:var(--blue-light);}
.header-inner{max-width:1400px;margin:0 auto;padding:13px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo img{height:46px;width:auto;display:block;}
.logo{text-decoration:none;display:flex;align-items:center;gap:11px;}
.brand-switcher{display:flex;align-items:center;gap:16px;min-width:300px;}
.construction-brand{border-left:1px solid var(--hairline);padding-left:16px;text-decoration:none;line-height:1.05;color:var(--ink);white-space:nowrap;}
.construction-brand span{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:20px;letter-spacing:.4px;color:var(--blue);}
.construction-brand strong{display:block;font-size:9px;letter-spacing:.45px;text-transform:uppercase;}
.construction-brand:hover strong{color:var(--blue);}
nav.main-nav{display:flex;align-items:center;gap:2px;}
nav.main-nav a{padding:10px 14px;text-decoration:none;font-weight:700;font-size:14px;color:var(--ink);}
nav.main-nav a:hover, nav.main-nav a.active{background:rgba(5,68,164,0.09);color:var(--blue);}
.more-wrap{position:relative;}
.more-menu{display:none;position:absolute;top:44px;right:0;background:#fff;border:1px solid var(--hairline);min-width:160px;padding:6px;box-shadow:0 16px 40px rgba(11,13,16,0.14);}
.more-wrap.open .more-menu{display:block;}
.more-menu a{display:block;padding:11px 14px;color:var(--ink);text-decoration:none;font-size:14px;font-weight:600;}
.more-menu a:hover{background:rgba(5,68,164,0.06);}
.call-btn{background:var(--blue);color:#fff;text-decoration:none;padding:11px 20px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}
.call-btn::before,.mobile-call-bar a:first-child::before{content:"\260E";font-size:14px;line-height:1;}
.call-btn:hover{background:var(--blue-dark);}
.hamburger{display:none;position:relative;background:transparent;border:1px solid rgba(11,13,16,.12);cursor:pointer;color:var(--ink);width:48px;height:44px;font-size:0;line-height:0;align-items:center;justify-content:center;}
.hamburger::before,.hamburger::after{content:'';position:absolute;left:13px;right:13px;height:2px;background:currentColor;transition:transform .22s ease,top .22s ease,box-shadow .22s ease;}
.hamburger::before{top:15px;box-shadow:0 6px 0 currentColor;}
.hamburger::after{top:27px;}
.hamburger:hover,.hamburger:focus-visible{border-color:var(--blue);color:var(--blue);outline:none;}
.hamburger[aria-expanded="true"]::before{top:21px;transform:rotate(45deg);box-shadow:0 0 0 transparent;}
.hamburger[aria-expanded="true"]::after{top:21px;transform:rotate(-45deg);}
.mobile-menu{display:none;background:var(--cream);border-bottom:1px solid var(--hairline);padding:8px 24px 20px;flex-direction:column;}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:14px 4px;color:var(--ink);text-decoration:none;font-size:16px;font-weight:600;border-bottom:1px solid rgba(11,13,16,0.08);}
.mobile-menu a:last-child{border-bottom:none;}
@media (max-width:900px){
  header.site-header{width:100vw;max-width:none;left:0;right:0;box-sizing:border-box;}
  .header-inner{width:100vw;max-width:none;margin:0;padding:12px 18px;box-sizing:border-box;gap:14px;}
  .header-inner .brand-switcher{flex:1 1 auto;max-width:calc(100vw - 84px);}
  .header-inner .custom-logo-link,.header-inner .logo{min-width:0;max-width:190px;}
  .header-inner .custom-logo-link img,.header-inner .logo img{display:block;width:auto;max-width:100%;height:46px;object-fit:contain;}
  .header-topbar{display:none;}
  nav.main-nav, .call-btn{display:none;}
  .hamburger{display:flex;}
  .mobile-menu{
    position:absolute;
    top:100%;
    right:0;
    bottom:auto;
    left:0;
    z-index:99;
    width:100vw;
    max-width:none;
    height:calc(100dvh - var(--mobile-menu-top,70px));
    max-height:calc(100dvh - var(--mobile-menu-top,70px));
    margin:0;
    padding:10px 20px calc(28px + env(safe-area-inset-bottom));
    box-sizing:border-box;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    touch-action:pan-y;
    background:var(--cream);
    box-shadow:0 12px 28px rgba(11,13,16,.16);
  }
  .mobile-menu.open{display:flex;}
  body.mobile-nav-open{overflow:hidden;}
  .hero-live-grid{grid-template-columns:1fr;gap:32px;}
  .hero-live-copy{padding-bottom:0;}
  .hero-live-media{min-height:360px;}
  .hero-live-media img{height:360px;}
  .brand-switcher{min-width:0;}
  .construction-brand{display:none;}
}

/* hero */
.hero{background:var(--near-black);padding:64px 32px 0;}
.hero-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:48px;align-items:center;padding-bottom:56px;}
.eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.eyebrow .bar{width:32px;height:2px;background:var(--blue);}
.eyebrow span{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--blue-light);}
.eyebrow.light span{color:var(--blue);}
.hero h1{font-size:clamp(48px,7vw,88px);line-height:0.96;color:#fff;margin:0 0 24px;}
.hero p.lead{font-size:18px;line-height:1.65;color:#b7bec9;max-width:520px;margin:0 0 36px;}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;}
.btn{text-decoration:none;padding:16px 30px;font-weight:700;font-size:15px;display:inline-block;border:1px solid transparent;cursor:pointer;font-family:inherit;}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:var(--blue-dark);}
.btn-outline-dark{background:transparent;border-color:rgba(255,255,255,0.25);color:#fff;}
.btn-outline-dark:hover{border-color:#fff;}
.hero-note{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.5px;color:#7d8492;margin-top:18px;}
.hero-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:#1b2028;}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.corner{position:absolute;width:20px;height:20px;border:2px solid rgba(255,255,255,0.4);}
.corner.tl{top:16px;left:16px;border-right:none;border-bottom:none;}
.corner.tr{top:16px;right:16px;border-left:none;border-bottom:none;}
.corner.bl{bottom:16px;left:16px;border-right:none;border-top:none;}
.corner.br{bottom:16px;right:16px;border-left:none;border-top:none;}
.hero-live{background:var(--near-black);color:#fff;padding:76px 32px;overflow:hidden;position:relative;isolation:isolate;}
.hero-live::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.94) 0%,rgba(11,13,16,.82) 38%,rgba(11,13,16,.48) 68%,rgba(11,13,16,.78) 100%),var(--hero-bg,url('../images/optimized/photo7.jpg')) center/cover no-repeat;z-index:-2;transition:filter .26s ease,opacity .26s ease;}
.hero-live.is-bg-swapping::before{filter:brightness(1.12) saturate(1.08);opacity:.82;}
.hero-live::after{content:'';position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(180deg,rgba(11,13,16,0),var(--near-black));z-index:-1;pointer-events:none;}
.hero-live-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(340px,.9fr) minmax(380px,1.1fr);gap:58px;align-items:center;position:relative;}
.hero-live-copy{padding-bottom:0;}
.hero-live h1{color:#fff;font-size:clamp(42px,5.2vw,66px);line-height:.98;margin:0 0 24px;max-width:620px;}
.hero-live .lead{color:#c3c9d1;font-size:18px;line-height:1.65;max-width:590px;margin:0 0 34px;}
.hero-live-proof{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#c3c9d1;}
.hero-live-proof span{border:1px solid rgba(255,255,255,.14);padding:8px 11px;}
.hero-live-media{position:relative;min-height:500px;align-self:center;border:1px solid rgba(255,255,255,.16);background:#10141a;}
.hero-live-media::before{content:'';position:absolute;inset:-18px 18px 18px -18px;border:1px solid rgba(127,163,232,.22);z-index:-1;}
.hero-live-media img{width:100%;height:500px;object-fit:cover;display:block;filter:saturate(1.02) contrast(1.04);transition:opacity .24s ease,filter .24s ease;}
.hero-live-media.is-swapping img{opacity:.38;filter:saturate(.95) contrast(1.02);}
.hero-live-card{position:absolute;left:24px;right:24px;bottom:24px;background:rgba(11,13,16,.88);border:1px solid rgba(255,255,255,.18);padding:20px 22px;backdrop-filter:blur(6px);}
.hero-live-card strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:28px;line-height:1;color:#fff;}
.hero-live-card span{display:block;margin-top:7px;color:#b7bec9;font-size:14px;}
.hero-carousel-controls{position:absolute;right:22px;top:22px;display:flex;gap:8px;z-index:2;}
.hero-carousel-controls button{width:42px;height:42px;border:1px solid rgba(255,255,255,.28);background:rgba(11,13,16,.58);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.8px;transition:background .2s ease,border-color .2s ease,color .2s ease;}
.hero-carousel-controls button:hover,.hero-carousel-controls button.active{background:#fff;border-color:#fff;color:var(--blue);}
.hero-carousel-controls button span{pointer-events:none;}

/* homepage proof strip */
.home-proof-strip{background:var(--near-black);padding:0 32px;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);}
.home-proof-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-left:0;padding-right:0;border-left:1px solid var(--hairline-dark);}
.home-proof-grid div{padding:24px 28px;border-right:1px solid var(--hairline-dark);background:linear-gradient(180deg,#0f1319,#090b0f);}
.home-proof-grid span{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:38px;line-height:1;color:#fff;margin-bottom:8px;}
.home-proof-grid strong{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;line-height:1.5;letter-spacing:1px;text-transform:uppercase;color:#9fa8b6;font-weight:600;}

/* conversion chooser */
.conversion-panel{background:linear-gradient(180deg,var(--cream) 0%,var(--cream) 50%,#fff 50%,#fff 100%);padding:0 32px 96px;}
.conversion-panel-inner{display:grid;grid-template-columns:minmax(280px,.86fr) minmax(0,1.14fr);align-items:stretch;padding-left:0;padding-right:0;border:1px solid rgba(11,13,16,.12);box-shadow:0 28px 80px rgba(14,22,34,.12);}
.conversion-intro{background:linear-gradient(135deg,#0b0d10 0%,#101a2a 72%,#0544a4 100%);color:#fff;padding:48px 44px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;}
.conversion-intro::after{content:'';position:absolute;right:-80px;bottom:-120px;width:240px;height:240px;border:1px solid rgba(255,255,255,.14);transform:rotate(18deg);}
.conversion-intro .service-kicker{color:var(--blue-light);}
.conversion-intro h2{font-size:clamp(34px,4.4vw,52px);line-height:.96;color:#fff;margin:0 0 18px;max-width:420px;}
.conversion-intro p{font-size:15px;line-height:1.7;color:#b7bec9;margin:0;max-width:430px;}
.conversion-paths{background:#fff;display:grid;}
.conversion-path{display:grid;grid-template-columns:58px minmax(0,1fr);gap:22px;align-items:start;padding:28px 34px;text-decoration:none;border-bottom:1px solid var(--hairline);transition:background .2s ease,color .2s ease;}
.conversion-path:last-child{border-bottom:none;}
.conversion-path:hover{background:rgba(5,68,164,.055);}
.conversion-path:first-child{background:var(--blue);color:#fff;}
.conversion-path:first-child .conversion-number,.conversion-path:first-child .conversion-label,.conversion-path:first-child strong,.conversion-path:first-child small{color:#fff;}
.conversion-path:first-child:hover{background:#063b8b;}
.conversion-number{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:1px;color:var(--blue);padding-top:6px;}
.conversion-label{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:1.1px;text-transform:uppercase;color:var(--blue);font-weight:700;margin-bottom:8px;}
.conversion-path strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:32px;line-height:1;color:var(--ink);font-weight:400;}
.conversion-path small{display:block;font-size:14px;line-height:1.55;color:var(--muted);margin-top:8px;max-width:520px;}

/* stat band */
.stat-band{max-width:1400px;margin:0 auto;border-top:1px solid var(--hairline-dark);display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.stat-band .stat{text-align:center;padding:32px 20px;border-left:1px solid var(--hairline-dark);}
.stat-band .stat:last-child{border-right:1px solid var(--hairline-dark);}
.stat .num{font-family:'Bebas Neue',sans-serif;font-size:44px;color:#fff;}
.stat .label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.5px;color:#7d8492;margin-top:2px;}

/* section generic */
section{padding:90px 32px;}
.section-cream{background:var(--cream);}
.section-white{background:#fff;}
.section-dark{background:var(--near-black);}
.blueprint{background-color:var(--cream);background-image:linear-gradient(rgba(11,13,16,0.026) 1px,transparent 1px),linear-gradient(90deg,rgba(11,13,16,0.026) 1px,transparent 1px);background-size:56px 56px;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px;}
.section-head h2{font-size:36px;color:var(--ink);}
.link-arrow{color:var(--blue);font-weight:700;text-decoration:none;font-size:14px;}
.tag-row{display:flex;flex-wrap:wrap;gap:10px;}
.tag-row span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--body-text);border:1px solid var(--hairline);padding:7px 12px;background:rgba(255,255,255,0.5);}
.photo-category-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding-top:4px;}
.photo-category-strip a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 15px;background:#fff;border:1px solid var(--hairline);color:var(--ink);text-decoration:none;font-weight:700;font-size:14px;}
.photo-category-strip a:hover,.photo-category-strip a:focus-visible{background:var(--blue);border-color:var(--blue);color:#fff;outline:none;}

/* process steps */
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
.process-grid .step{border:1px solid var(--hairline-dark);border-top:4px solid var(--blue);padding:26px 24px;background:rgba(255,255,255,.04);min-height:190px;}
.process-grid .step .n{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--blue-light);margin-bottom:18px;}
.process-grid .step .t{font-family:'Bebas Neue',sans-serif;font-size:27px;line-height:1;color:#fff;margin-bottom:12px;}
.process-grid .step .d{font-size:14px;color:#b7bec9;line-height:1.65;}
.process-late{padding-top:86px;padding-bottom:86px;position:relative;overflow:hidden;background:var(--cream);color:var(--ink);border-top:1px solid var(--hairline);}
.process-late::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,68,164,.07),rgba(5,68,164,0)),linear-gradient(rgba(11,13,16,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(11,13,16,0.035) 1px,transparent 1px);background-size:auto,56px 56px,56px 56px;opacity:1;}
.process-late .wrap{position:relative;}
.process-late-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);gap:36px;align-items:end;margin-bottom:38px;}
.process-late-head h2{font-size:clamp(38px,5vw,62px);line-height:.96;color:var(--ink);margin:0;}
.process-late-head p{margin:0;color:var(--body-text);font-size:16px;line-height:1.7;}
.process-late .process-grid{gap:0;border:1px solid var(--hairline);background:#fff;box-shadow:0 20px 60px rgba(12,18,28,.08);}
.process-late .process-grid .step{border:0;border-right:1px solid var(--hairline);border-top:4px solid var(--blue);background:#fff;min-height:0;}
.process-late .process-grid .step:last-child{border-right:none;}
.process-late .process-grid .step .n{color:var(--blue);}
.process-late .process-grid .step .t{color:var(--ink);}
.process-late .process-grid .step .d{color:var(--body-text);}
.section-white .process-grid:not(.on-dark){gap:0;border:1px solid var(--hairline);background:#fff;box-shadow:0 20px 60px rgba(12,18,28,.08);}
.section-white .process-grid:not(.on-dark) .step{border:0;border-right:1px solid var(--hairline);border-top:4px solid var(--blue);background:#fff;min-height:0;padding:30px 26px;}
.section-white .process-grid:not(.on-dark) .step:last-child{border-right:none;}
.section-white .process-grid:not(.on-dark) .step .n{color:var(--blue);margin-bottom:18px;}
.section-white .process-grid:not(.on-dark) .step .t{color:var(--ink);font-size:28px;}
.section-white .process-grid:not(.on-dark) .step .d{color:var(--body-text);}

/* intro two-col */
.intro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:56px;}
.intro-grid h2{font-size:40px;color:var(--ink);line-height:1.02;}
.intro-grid p{font-size:17px;line-height:1.75;color:var(--body-text);margin:0 0 22px;}

/* services grid (home teaser) */
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
.service-card{position:relative;aspect-ratio:4/3;overflow:hidden;display:block;text-decoration:none;background:var(--near-black);}
.service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease;}
.service-card:hover img{transform:scale(1.06);}
.service-card .grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,16,0) 35%,rgba(11,13,16,0.88) 100%);}
.service-card .blueprint-fill{position:absolute;inset:0;background:linear-gradient(135deg,#151a20 0%,#0b0d10 100%);}
.service-card .body{position:absolute;left:20px;right:20px;bottom:18px;}
.service-card .cat{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:1.5px;color:var(--blue-light);text-transform:uppercase;margin-bottom:6px;}
.service-card .name{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:0.3px;color:#fff;line-height:1;}
.service-card .desc{font-size:13px;color:#c3c9d1;margin-top:6px;max-width:92%;}
.services-priority{position:relative;overflow:hidden;background:var(--cream);padding:92px 32px 104px;}
.services-priority::before{content:'';position:absolute;inset:0 0 auto 0;height:300px;background:linear-gradient(90deg,rgba(5,68,164,.08),rgba(5,68,164,0)),linear-gradient(rgba(11,13,16,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(11,13,16,0.035) 1px,transparent 1px);background-size:auto,56px 56px,56px 56px;}
.services-priority .wrap{position:relative;}
#services-priority-title{scroll-margin-top:110px;}
.service-kicker{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--blue);margin-bottom:14px;}
.btn-outline-light{background:transparent;border:1px solid rgba(255,255,255,0.34);color:#fff;}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,0.08);}
.service-directory-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,460px);gap:36px;align-items:end;margin-bottom:34px;padding:36px 38px;background:#fff;border:1px solid var(--hairline);box-shadow:0 18px 60px rgba(14,22,34,.08);}
.service-directory-head h2{font-size:clamp(42px,6vw,72px);line-height:.94;margin:0;color:var(--ink);}
.service-directory-head p{font-size:17px;line-height:1.7;color:var(--body-text);margin:0;}
.service-directory-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px;}
.service-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.service-directory-card{position:relative;min-height:350px;overflow:hidden;background:var(--near-black);text-decoration:none;color:#fff;display:block;box-shadow:0 20px 44px rgba(11,13,16,.12);}
.service-directory-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease,filter .45s ease;}
.service-directory-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,16,.05) 18%,rgba(11,13,16,.55) 58%,rgba(11,13,16,.92) 100%);}
.service-directory-card:hover img{transform:scale(1.05);filter:saturate(1.05) contrast(1.04);}
.service-directory-body{position:absolute;left:24px;right:24px;bottom:22px;z-index:1;}
.service-directory-body span{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--blue-light);margin-bottom:8px;}
.service-directory-body strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:clamp(28px,3.4vw,42px);line-height:.98;font-weight:400;color:#fff;}
.service-directory-body small{display:block;font-size:14px;line-height:1.55;color:#d5dbe5;margin-top:8px;max-width:460px;}

/* gallery teaser */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;}
.gallery-grid a, .gallery-grid .tile{display:block;aspect-ratio:4/3;overflow:hidden;position:relative;cursor:pointer;background:#ece8de;}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.4s ease;}
.gallery-grid a:hover img{transform:scale(1.05);}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;}
.photo-grid.photo-grid-siding{grid-template-columns:repeat(3,minmax(0,1fr));}
.photo-grid .tile{overflow:hidden;position:relative;background:#ece8de;cursor:pointer;aspect-ratio:4/3;min-height:0;}
.photo-grid .tile img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-grid .tile.big,.photo-grid .tile.tall{grid-column:auto;grid-row:auto;}
.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.filter-tabs button{padding:10px 20px;border:1px solid var(--hairline);background:#fff;color:var(--body-text);font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;}
.filter-tabs button.active{border-color:var(--blue);background:var(--blue);color:#fff;}
.work-showcase{background:var(--cream);padding:88px 32px 104px;}
.work-showcase-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);gap:34px;align-items:end;margin-bottom:28px;}
.work-showcase-head h2{font-size:clamp(38px,5.5vw,64px);line-height:.96;color:var(--ink);margin:0;}
.work-showcase-copy p{font-size:16px;line-height:1.65;color:var(--body-text);margin:0 0 14px;}
.work-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;border-top:1px solid var(--hairline);padding-top:18px;}
.work-tabs button{background:#fff;border:1px solid var(--hairline);color:var(--body-text);font-weight:700;font-size:13px;padding:11px 18px;cursor:pointer;}
.work-tabs button:hover,.work-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff;}
.work-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;gap:12px;}
.work-shot{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:var(--near-black);overflow:hidden;cursor:pointer;text-align:left;color:#fff;}
.work-shot.wide{grid-column:span 2;}
.work-shot.tall{grid-row:span 2;}
.work-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease,filter .45s ease;}
.work-shot::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,16,0.02) 25%,rgba(11,13,16,.88) 100%);}
.work-shot span{position:absolute;left:18px;right:18px;bottom:16px;z-index:1;display:block;}
.work-shot b{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:clamp(24px,2.4vw,34px);line-height:1;color:#fff;font-weight:400;}
.work-shot small{display:block;color:#c3c9d1;font-size:13px;margin-top:4px;}
.work-shot:hover img{transform:scale(1.05);filter:saturate(1.04) contrast(1.03);}
.work-shot.is-hidden{display:none;}

.btn-outline-white{background:transparent;border:1px solid rgba(255,255,255,0.3);color:#fff;}
.btn-outline-white:hover{border-color:#fff;}

/* reviews marquee */
.marquee-section{padding:90px 0;background:var(--near-black);overflow:hidden;border-top:1px solid var(--hairline-dark);}
.marquee-head{max-width:1400px;margin:0 auto;padding:0 32px 44px;}
.marquee-head h2{font-size:36px;color:#fff;margin:6px 0 0;}
.marquee-head .rating{font-family:'Bebas Neue',sans-serif;font-size:44px;color:#fff;}
.marquee-head .rating-sub{font-size:15px;color:#c3c9d1;}
.marquee-head p.note{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#7d8492;margin:10px 0 0;}
.marquee-track-wrap{overflow:hidden;}
.marquee-track{display:flex;gap:20px;width:max-content;animation:marquee 54s linear infinite;padding-left:20px;}
.marquee-track:hover{animation-play-state:paused;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.marquee-card{width:380px;flex-shrink:0;padding:24px 28px;border:1px solid var(--hairline-dark);display:flex;flex-direction:column;gap:14px;}
.marquee-card .stars{color:var(--blue-light);font-size:14px;letter-spacing:2px;}
.marquee-card .excerpt{font-size:14.5px;line-height:1.6;color:#c3c9d1;}
.marquee-card .who{font-size:12.5px;font-weight:700;color:#fff;font-family:'IBM Plex Mono',monospace;}
.marquee-card .who span{font-weight:400;color:#7d8492;}
.marquee-foot{max-width:1400px;margin:0 auto;padding:36px 32px 0;text-align:center;}

/* moving review proof */
.review-proof{background:var(--near-black);padding:92px 32px;color:#fff;}
.review-proof-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px;}
.review-proof h2{font-size:clamp(34px,5vw,54px);line-height:0.98;max-width:700px;color:#fff;}
.review-score{border:1px solid var(--hairline-dark);padding:22px 24px;min-width:190px;text-align:center;}
.review-score strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:48px;line-height:1;color:#fff;font-weight:400;}
.review-score span{display:block;margin-top:4px;color:#9fa8b6;font-size:13px;}
.review-carousel{position:relative;overflow:hidden;width:100%;padding:0;}
.review-carousel::before,.review-carousel::after{content:'';position:absolute;top:0;bottom:0;width:min(140px,10vw);z-index:2;pointer-events:none;}
.review-carousel::before{left:0;background:linear-gradient(90deg,var(--near-black),rgba(11,13,16,0));}
.review-carousel::after{right:0;background:linear-gradient(270deg,var(--near-black),rgba(11,13,16,0));}
.review-carousel-track{display:flex;gap:16px;width:max-content;max-width:none;animation:review-scroll 48s linear infinite;will-change:transform;}
.review-carousel:hover .review-carousel-track,.review-carousel:focus-within .review-carousel-track{animation-play-state:paused;}
@keyframes review-scroll{from{transform:translateX(0);}to{transform:translateX(calc(-50% - 8px));}}
.review-proof-card{width:360px;min-height:256px;border:1px solid var(--hairline-dark);padding:28px;background:#10141a;display:flex;flex-direction:column;gap:18px;flex:0 0 auto;transition:background .25s ease,border-color .25s ease,color .25s ease,transform .25s ease;}
.review-proof-card.is-center{background:#fff;color:var(--ink);border-color:#fff;transform:translateY(-1px);}
.review-proof-card.compact{width:300px;}
.review-proof-card .stars{color:var(--blue-light);letter-spacing:2px;font-size:14px;}
.review-proof-card.is-center .stars{color:var(--blue);}
.review-proof-card p{margin:0;color:#c3c9d1;line-height:1.7;font-size:15px;}
.review-proof-card.is-center p{color:var(--body-text);font-size:16px;}
.review-proof-card span{margin-top:auto;font-family:'IBM Plex Mono',monospace;font-size:12px;color:#8f98a6;}
.review-proof-card.is-center span{color:var(--muted);}
.review-proof-action{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:32px;}

/* final CTA */
.cta-band{position:relative;overflow:hidden;background:var(--near-black);padding:52px 32px;color:#fff;}
.cta-band::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.96) 0%,rgba(11,13,16,.9) 50%,rgba(11,13,16,.68) 100%),url('../images/optimized/showroom-storefront.jpg') right center/cover no-repeat;transform:scale(1.015);}
.cta-band::after{content:'';position:absolute;left:0;right:0;top:0;height:6px;background:var(--blue);}
.cta-band-inner{position:relative;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:center;}
.cta-band-copy{max-width:720px;}
.cta-band-inner:not(:has(.cta-band-copy)){display:block;}
.cta-band-inner > .tag,.cta-band-inner > h2,.cta-band-inner > p,.cta-band-inner > .btn-row{grid-column:1;max-width:700px;}
.cta-band-inner > .tag:first-child{margin-top:0;}
.cta-band-inner:not(:has(.cta-band-copy))::before{content:'';position:absolute;inset:-16px auto -16px -20px;width:min(760px,calc(100% - 48px));background:rgba(9,12,17,.5);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(3px);z-index:-1;}
.cta-band-inner > .btn-row{justify-content:flex-start !important;margin-bottom:0 !important;}
.cta-band .tag{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:2px;color:var(--blue-light);margin-bottom:12px;text-transform:uppercase;}
.cta-band h2{font-size:clamp(38px,4.4vw,56px);margin:0 0 12px;color:#fff;line-height:.96;}
.cta-band p{font-size:16px;color:#d7e2f7;margin:0 0 22px;line-height:1.55;max-width:660px;}
.btn-white{background:#fff;color:var(--blue);}
.btn-white:hover{background:#eaf0fb;}
.btn-outline-blue{background:transparent;border:1px solid rgba(255,255,255,0.5);color:#fff;}
.btn-outline-blue:hover{border-color:#fff;background:rgba(255,255,255,0.08);}
.cta-band-panel{background:#fff;color:var(--ink);padding:28px;border:1px solid rgba(255,255,255,.2);}
.cta-band-panel span{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--blue);margin-bottom:12px;}
.cta-band-panel strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:34px;line-height:1;color:var(--ink);font-weight:400;}
.cta-band-panel small{display:block;margin-top:16px;color:var(--body-text);line-height:1.55;font-size:13.5px;}

/* about page */
.about-hero{background:var(--near-black);color:#fff;padding:86px 32px 72px;position:relative;overflow:hidden;}
.about-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.96),rgba(11,13,16,.82) 46%,rgba(11,13,16,.52)),url('../images/optimized/photo6.jpg') center/cover no-repeat;opacity:.82;}
.about-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:64px;align-items:end;}
.about-hero h1{font-size:clamp(48px,6vw,82px);line-height:.94;color:#fff;margin:0 0 22px;max-width:820px;}
.about-hero p{font-size:18px;line-height:1.7;color:#d4dbe7;max-width:720px;margin:0;}
.about-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px;}
.about-hero-panel{border:1px solid var(--hairline-dark);background:rgba(14,18,24,.86);padding:28px;}
.about-hero-panel span,.section-kicker{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--blue-light);margin-bottom:12px;}
.about-hero-panel strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:44px;line-height:1;color:#fff;font-weight:400;margin-bottom:12px;}
.about-hero-panel p{font-size:14px;line-height:1.65;color:#c3c9d1;margin:0;}
.about-intro-section{background:#fff;padding:78px 32px;}
.about-intro-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1fr);gap:64px;align-items:start;}
.about-intro-section h2{font-size:clamp(38px,4.8vw,58px);line-height:1;color:var(--ink);margin:0;}
.about-intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.about-intro-copy p{margin:0;color:var(--body-text);font-size:16px;line-height:1.8;}
.memorial-section{background:var(--cream);padding:0 32px 92px;}
.memorial-shell{max-width:1400px;margin:0 auto;border:1px solid var(--hairline);background:#fff;box-shadow:0 26px 70px rgba(12,18,28,.08);}
.memorial-flag{min-height:150px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;position:relative;overflow:hidden;background:linear-gradient(165deg,rgba(11,13,16,.52),rgba(11,13,16,.28)),linear-gradient(10deg,#0b2d73 0 22%,#f8f8f2 22% 31%,#b20f1c 31% 48%,#f8f8f2 48% 58%,#b20f1c 58% 72%,#f8f8f2 72% 81%,#0b2d73 81% 100%);}
.memorial-flag::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.54),rgba(11,13,16,.18),rgba(11,13,16,.58));}
.memorial-flag-inner{position:relative;z-index:1;padding:36px 24px;}
.memorial-flag span{display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:2.6px;text-transform:uppercase;color:#e7eefc;margin-bottom:10px;}
.memorial-flag h2{font-size:clamp(34px,5vw,56px);line-height:1;color:#fff;margin:0;text-shadow:0 2px 24px rgba(0,0,0,.36);}
.memorial-grid{display:grid;grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);align-items:stretch;}
.memorial-copy{background:var(--blue);color:#fff;padding:64px clamp(34px,5vw,70px);}
.memorial-copy .section-kicker{color:#cfe1ff;}
.memorial-copy h3{font-size:clamp(36px,4.5vw,56px);line-height:.98;color:#fff;margin:0 0 24px;}
.memorial-copy p{margin:0 0 18px;color:#e2ecff;font-size:16px;line-height:1.78;}
.memorial-copy .memorial-final{color:#fff;font-weight:700;margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.24);}
.memorial-photo{position:relative;margin:0;min-height:620px;background:#d9dce1;overflow:hidden;}
.memorial-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:contrast(1.05) saturate(.92);}
.memorial-photo::after{content:'';position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(0deg,rgba(11,13,16,.64),rgba(11,13,16,0));pointer-events:none;}
.memorial-photo figcaption{position:absolute;left:28px;right:28px;bottom:24px;z-index:1;color:#fff;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.8px;text-transform:uppercase;}
.about-standard-section{background:#fff;padding:86px 32px 96px;}
.about-standard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--hairline);}
.about-standard-card{padding:34px 28px;border-right:1px solid var(--hairline);background:linear-gradient(180deg,#fff,var(--cream));}
.about-standard-card:last-child{border-right:none;}
.about-standard-card span{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:1.6px;color:var(--blue);font-weight:700;}
.about-standard-card h3{font-size:24px;line-height:1;color:var(--ink);margin:22px 0 12px;}
.about-standard-card p{margin:0;color:var(--body-text);line-height:1.65;font-size:14.5px;}

/* services list page */
.service-list-row{position:relative;overflow:hidden;display:grid;grid-template-columns:120px 48px minmax(0,1fr) auto 28px;align-items:center;gap:24px;padding:18px;border:1px solid var(--hairline);background:#fff;text-decoration:none;transition:border-color 0.2s ease, transform 0.2s ease, box-shadow .2s ease;}
.service-list-row::before{content:'';width:120px;height:92px;background:var(--service-thumb) center/cover no-repeat;grid-column:1;grid-row:1;border:1px solid var(--hairline);}
.service-list-row:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 18px 44px rgba(11,13,16,.1);}
.service-list-row .go-arrow{flex-shrink:0;color:var(--blue);font-size:20px;opacity:0;transform:translateX(-6px);transition:opacity 0.2s ease, transform 0.2s ease;}
.service-list-row:hover .go-arrow{opacity:1;transform:translateX(0);}
.service-list-row .pos{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--blue);width:32px;flex-shrink:0;}
.service-list-row .name{font-family:'Bebas Neue',sans-serif;font-size:27px;letter-spacing:0.3px;color:var(--ink);}
.service-list-row .desc{font-size:14.5px;color:var(--muted);margin-top:4px;}
.service-list-row .cat{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:1px;color:#8b8674;text-transform:uppercase;flex-shrink:0;}
.service-list{display:grid;gap:14px;border-top:0;}

/* reviews page */
.review-row{padding:34px 4px;border-bottom:1px solid var(--hairline);}
.review-row .head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap;gap:8px;}
.review-row .author{font-weight:700;font-size:15px;color:var(--ink);}
.review-row .meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#8b8674;margin-top:2px;}
.review-row .stars{color:var(--blue);font-size:15px;letter-spacing:2px;}
.review-row p{font-size:16px;line-height:1.75;color:var(--body-text);margin:0;}
.review-list{border-top:1px solid var(--hairline);}
.reviews-hero{background:var(--near-black);padding:88px 32px 70px;color:#fff;}
.reviews-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:end;}
.reviews-hero h1{font-size:clamp(46px,6.6vw,78px);line-height:0.96;max-width:800px;color:#fff;margin:0 0 22px;}
.reviews-hero p{font-size:18px;line-height:1.7;color:#c3c9d1;max-width:650px;margin:0 0 32px;}
.reviews-scoreboard{display:grid;border:1px solid var(--hairline-dark);background:#10141a;}
.reviews-scoreboard div{display:grid;grid-template-columns:54px 120px 1fr;gap:18px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--hairline-dark);}
.reviews-scoreboard div:last-child{border-bottom:none;}
.reviews-scoreboard .score-icon{width:46px;height:46px;border:1px solid rgba(127,163,232,.24);background:rgba(127,163,232,.08);display:flex;align-items:center;justify-content:center;color:var(--blue-light);}
.reviews-scoreboard .score-icon svg{width:22px;height:22px;}
.reviews-scoreboard strong{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;font-size:42px;line-height:1;color:#fff;}
.reviews-scoreboard span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#9fa8b6;}
.reviews-wall-section{background:#fff;padding:82px 32px 96px;}
.reviews-wall-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:30px;}
.reviews-wall-head h2{font-size:40px;color:var(--ink);}
.reviews-wall-head p{max-width:420px;margin:0;color:var(--body-text);font-size:16px;line-height:1.65;}
.reviews-masonry{columns:3 300px;column-gap:18px;}
.review-card{break-inside:avoid;margin:0 0 18px;border:1px solid var(--hairline);background:#fff;padding:28px;display:inline-block;width:100%;}
.review-card.tall{padding:34px 30px;}
.review-card.compact{padding:24px;}
.review-card.cream{background:var(--cream);}
.review-card.blue{background:var(--blue);border-color:var(--blue);color:#fff;}
.review-card.dark{background:var(--near-black);border-color:var(--near-black);color:#fff;}
.review-card .stars{color:var(--blue);letter-spacing:2px;font-size:14px;margin-bottom:18px;}
.review-card.blue .stars,.review-card.dark .stars{color:var(--blue-light);}
.review-card p{margin:0;color:var(--body-text);font-size:15.5px;line-height:1.72;}
.review-card.tall p{font-size:16.5px;line-height:1.76;}
.review-card.compact p{font-size:18px;line-height:1.45;font-weight:700;color:var(--ink);}
.review-card.blue p,.review-card.dark p{color:#e8edf5;}
.review-card-foot{margin-top:24px;padding-top:18px;border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:4px;}
.review-card.blue .review-card-foot,.review-card.dark .review-card-foot{border-top-color:rgba(255,255,255,0.18);}
.review-card-foot strong{font-size:15px;color:inherit;}
.review-card-foot span,.review-card-foot small{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.4px;color:var(--muted);}
.review-card.blue .review-card-foot span,.review-card.blue .review-card-foot small,.review-card.dark .review-card-foot span,.review-card.dark .review-card-foot small{color:#b8c7dd;}
.review-next-step{background:var(--near-black);padding:66px 32px;color:#fff;}
.review-next-grid{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.review-next-step h2{font-size:38px;color:#fff;margin-bottom:10px;}
.review-next-step p{max-width:620px;color:#c3c9d1;line-height:1.65;margin:0;}

/* contact page */
.contact-hero{position:relative;overflow:hidden;background:var(--near-black);padding:96px 32px;color:#fff;}
.contact-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.96),rgba(11,13,16,.78) 48%,rgba(11,13,16,.42)),url('../images/optimized/showroom-storefront.jpg') center/cover no-repeat;transform:scale(1.02);}
.contact-hero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:7px;background:var(--blue);}
.contact-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:end;}
.contact-hero h1{font-size:clamp(48px,7vw,86px);line-height:.94;color:#fff;margin:0 0 20px;max-width:800px;}
.contact-hero p{font-size:18px;line-height:1.7;color:#d7deea;max-width:680px;margin:0 0 32px;}
.contact-hero-card{background:rgba(13,17,24,.88);border:1px solid var(--hairline-dark);padding:30px;backdrop-filter:blur(5px);}
.contact-hero-card span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--blue-light);}
.contact-hero-card strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:40px;line-height:1;color:#fff;font-weight:400;margin:14px 0 10px;}
.contact-hero-card p{font-size:14px;line-height:1.65;color:#b7bec9;margin:0 0 18px;}
.contact-hero-card a{display:inline-flex;color:#fff;font-weight:800;text-decoration:none;}
.contact-options-section{background:var(--cream);padding:0 32px 76px;}
.contact-options-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-left:0;padding-right:0;border:1px solid var(--hairline);background:#fff;transform:translateY(-34px);position:relative;z-index:2;box-shadow:0 26px 70px rgba(12,18,28,.1);}
.contact-option{display:block;text-decoration:none;padding:30px 28px;border-right:1px solid var(--hairline);color:var(--ink);transition:background .2s ease,color .2s ease;}
.contact-option:last-child{border-right:none;}
.contact-option.featured{background:var(--blue);color:#fff;}
.contact-option:hover{background:var(--near-black);color:#fff;}
.contact-option span{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--blue);margin-bottom:22px;}
.contact-option.featured span,.contact-option:hover span{color:var(--blue-light);}
.contact-option h2{font-size:31px;line-height:1;color:inherit;margin:0 0 12px;}
.contact-option p{font-size:14px;line-height:1.65;color:var(--body-text);margin:0 0 18px;}
.contact-option.featured p,.contact-option:hover p{color:#d7deea;}
.contact-option strong{font-size:14px;color:inherit;}
.contact-main-section{background:var(--cream);padding:0 32px 96px;}
.contact-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:28px;align-items:start;}
.contact-form-wrap{background:#fff;border:1px solid var(--hairline);padding:42px;box-shadow:0 18px 60px rgba(12,18,28,.08);}
.contact-form-wrap h2{font-size:clamp(36px,4vw,54px);line-height:1;color:var(--ink);margin:0 0 12px;}
.contact-form-wrap > p{font-size:16px;line-height:1.7;color:var(--body-text);max-width:680px;margin:0 0 28px;}
.contact-form{background:#fff;border:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.contact-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.contact-form label{display:grid;gap:7px;}
.contact-form label span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;}
.contact-form input,.contact-form textarea{padding:14px 14px;border:1px solid rgba(11,13,16,0.18);font-size:14px;font-family:inherit;background:#fbfaf6;}
.contact-form textarea{resize:vertical;}
.contact-form button{background:var(--blue);color:#fff;border:none;padding:16px;font-weight:700;font-size:15px;cursor:pointer;}
.contact-form button:hover{background:var(--blue-dark);}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{border-color:var(--blue);outline:3px solid rgba(127,163,232,0.55);outline-offset:0;}
.cf7-contact-form{display:block;}
.cf7-contact-form .wpcf7{margin:0;}
.cf7-contact-form .wpcf7-form{display:flex;flex-direction:column;gap:16px;}
.cf7-contact-form .wpcf7-form-control-wrap{display:block;}
.cf7-contact-form .wpcf7-form-control{width:100%;}
.cf7-contact-form input[type="submit"]{width:100%;background:var(--blue);color:#fff;border:0;padding:16px;font-weight:700;font-size:15px;cursor:pointer;}
.cf7-contact-form input[type="submit"]:hover{background:var(--blue-dark);}
.cf7-contact-form .wpcf7-spinner{display:block;margin:10px auto 0;}
.cf7-contact-form .wpcf7-not-valid-tip{margin-top:6px;color:#a62424;font-size:13px;font-weight:600;}
.cf7-contact-form .wpcf7-response-output{margin:4px 0 0!important;padding:12px 14px!important;border:1px solid var(--hairline)!important;font-size:14px;line-height:1.5;}
.cf7-contact-form form.sent .wpcf7-response-output{border-color:#2d7a47!important;background:#eef8f1;color:#174d2b;}
.cf7-contact-form form.invalid .wpcf7-response-output,.cf7-contact-form form.failed .wpcf7-response-output{border-color:#b93b3b!important;background:#fff2f2;color:#7b2020;}
.contact-info-panel{display:grid;gap:16px;}
.contact-photo-card{position:relative;min-height:290px;overflow:hidden;background:var(--near-black);}
.contact-photo-card img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;}
.contact-photo-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,16,.05),rgba(11,13,16,.86));}
.contact-photo-card div{position:absolute;left:22px;right:22px;bottom:22px;z-index:1;color:#fff;}
.contact-photo-card strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:32px;line-height:1;color:#fff;font-weight:400;}
.contact-photo-card span{display:block;margin-top:6px;color:#d7deea;font-size:14px;}
.contact-info-card,.contact-proof-card{background:#fff;border:1px solid var(--hairline);padding:24px;}
.contact-info-card .biz{font-family:'Bebas Neue',sans-serif;font-size:24px;color:var(--ink);margin-bottom:10px;}
.contact-info-card p{font-size:14.5px;color:#454133;line-height:1.6;margin:0 0 10px;}
.contact-info-card a{color:var(--blue);font-weight:800;text-decoration:none;}
.hours-title{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:12px;letter-spacing:1px;color:var(--ink);margin-bottom:12px;}
.hours-row{display:flex;justify-content:space-between;font-size:14px;color:var(--body-text);}
.hours-list{display:flex;flex-direction:column;gap:6px;}
.contact-proof-card{background:var(--near-black);color:#fff;display:grid;gap:10px;}
.contact-proof-card strong{font-family:'Bebas Neue',Impact,sans-serif;font-size:28px;line-height:1;font-weight:400;color:#fff;}
.contact-proof-card span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#c3c9d1;border-top:1px solid var(--hairline-dark);padding-top:10px;}
.badge-offer{display:inline-block;background:var(--blue);color:#fff;font-weight:700;font-size:13px;letter-spacing:1px;padding:10px 20px;}
.contact-next-section{background:#fff;padding:86px 32px;}
.contact-next-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:48px;align-items:start;}
.contact-next-grid h2{font-size:clamp(38px,5vw,60px);line-height:.96;margin:0;color:var(--ink);}
.contact-next-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--hairline);}
.contact-next-steps div{padding:26px;border-right:1px solid var(--hairline);background:linear-gradient(180deg,#fff,var(--cream));}
.contact-next-steps div:last-child{border-right:none;}
.contact-next-steps span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;color:var(--blue);font-weight:800;}
.contact-next-steps strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:27px;line-height:1;color:var(--ink);font-weight:400;margin:18px 0 10px;}
.contact-next-steps p{font-size:14px;line-height:1.6;color:var(--body-text);margin:0;}
.contact-review-section{background:var(--near-black);padding:70px 32px;color:#fff;}
.contact-review-card{max-width:980px;background:#10141a;border:1px solid var(--hairline-dark);padding:34px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;align-items:center;}
.contact-review-card .review-meta{border-right:1px solid var(--hairline-dark);padding-right:30px;}
.contact-review-card .stars{color:var(--blue-light);letter-spacing:3px;font-size:15px;margin-bottom:18px;}
.contact-review-card .review-meta strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:48px;line-height:1;color:#fff;font-weight:400;margin-bottom:8px;}
.contact-review-card .review-meta span,.contact-review-card .review-quote span{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;line-height:1.5;letter-spacing:1.1px;text-transform:uppercase;color:#9fa8b6;}
.contact-review-card blockquote{font-family:'Archivo',Arial,sans-serif;font-size:clamp(18px,2vw,24px);line-height:1.55;color:#fff;margin:0 0 20px;font-weight:600;}
.contact-map-section{background:var(--cream);padding:86px 32px 100px;}
.contact-map-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,460px);gap:36px;align-items:end;margin-bottom:28px;}
.contact-map-head h2{font-size:clamp(36px,4vw,52px);line-height:1;margin:0;color:var(--ink);}
.contact-map-head p{font-size:16px;line-height:1.7;color:var(--body-text);margin:0;}

/* showroom */
.showroom-hero{background:var(--near-black);padding:80px 32px 90px;text-align:center;}
.showroom-hero p{font-size:17px;line-height:1.7;color:#b7bec9;max-width:620px;margin:0 auto;}
.showroom-visit-cta{background:var(--near-black);padding:78px 32px;color:#fff;overflow:hidden;}
.showroom-visit-grid{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);align-items:stretch;border:1px solid var(--hairline-dark);background:#10141a;}
.showroom-visit-media{position:relative;min-height:390px;overflow:hidden;background:#151922;}
.showroom-visit-media img{width:100%;height:100%;object-fit:cover;display:block;}
.showroom-visit-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,16,.02),rgba(11,13,16,.45));}
.showroom-visit-copy{padding:50px;display:flex;flex-direction:column;justify-content:center;}
.showroom-visit-copy .service-kicker{color:var(--blue-light);}
.showroom-visit-copy h2{font-size:clamp(40px,5vw,64px);line-height:.96;color:#fff;margin:0 0 16px;text-wrap:balance;}
.showroom-visit-copy p{font-size:16px;line-height:1.7;color:#c3c9d1;max-width:720px;margin:0 0 24px;}
.showroom-visit-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 26px;}
.showroom-offerings{padding:92px 32px;background:#fff;}
.showroom-offerings-grid{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);gap:70px;align-items:start;}
.showroom-offerings-intro h2,.showroom-partners-head h2{font-size:clamp(38px,5vw,58px);line-height:.96;margin:8px 0 18px;}
.showroom-offerings-intro p,.showroom-partners-head p{max-width:590px;font-size:16px;line-height:1.7;color:var(--body-text);margin:0;}
.showroom-offerings-intro strong{display:block;margin-top:28px;padding-top:22px;border-top:1px solid var(--hairline);font-family:'Bebas Neue',Impact,sans-serif;font-size:27px;letter-spacing:.3px;color:var(--blue);}
.showroom-service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--hairline);border-left:1px solid var(--hairline);}
.showroom-service-list li{display:flex;align-items:center;gap:14px;min-height:72px;padding:18px 20px;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);font-weight:700;color:var(--ink);}
.showroom-service-list span{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:1px;color:var(--blue);}
.showroom-partners{margin-top:84px;padding-top:68px;border-top:1px solid var(--hairline);}
.showroom-partners-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:30px;}
.showroom-partners-head h2{margin:0;}
.showroom-partners-head p{text-align:right;max-width:460px;}
.showroom-partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--hairline);border-left:1px solid var(--hairline);}
.showroom-partner-grid > div{min-height:150px;padding:28px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);background:#fff;text-align:center;}
.showroom-partner-grid .partner-logo img{display:block;width:auto;height:auto;max-width:min(100%,220px);max-height:72px;object-fit:contain;filter:none;}
.showroom-visit-details div{border:1px solid var(--hairline-dark);background:rgba(255,255,255,.035);padding:16px;}
.showroom-visit-details span{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--blue-light);margin-bottom:8px;}
.showroom-visit-details strong{display:block;font-size:14px;line-height:1.5;color:#fff;}

/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(11,13,16,0.92);z-index:200;display:none;align-items:center;justify-content:center;padding:40px;}
.lightbox.open{display:flex;}
.lightbox-box{width:min(900px,90vw);max-height:85vh;background:#1b2028;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.lightbox-box img{width:100%;height:100%;max-height:85vh;object-fit:contain;display:block;}
.lightbox-close{position:absolute;top:12px;right:12px;color:#fff;font-size:22px;cursor:pointer;background:rgba(11,13,16,0.72);border:1px solid rgba(255,255,255,0.24);width:42px;height:42px;display:flex;align-items:center;justify-content:center;}

/* sticky mobile bar */
.mobile-call-bar{position:fixed;bottom:0;left:0;right:0;z-index:150;display:none;grid-template-columns:1fr 1fr;background:var(--near-black);border-top:1px solid rgba(255,255,255,0.12);box-shadow:0 -6px 20px rgba(0,0,0,0.25);}
.mobile-call-bar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:#fff;text-decoration:none;font-weight:700;font-size:14px;}
.mobile-call-bar a:first-child{border-right:1px solid rgba(255,255,255,0.12);}
.mobile-call-bar a:last-child{background:var(--blue);}
@media (max-width:900px){.mobile-call-bar{display:grid;}}

/* footer */
footer.site-footer{background:var(--near-black);padding:54px 32px 30px;color:#fff;overflow:hidden;}
.footer-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(150px,.7fr) minmax(220px,.9fr) minmax(230px,.85fr);gap:44px;padding:0 0 42px;border-bottom:1px solid var(--hairline-dark);}
.footer-logo{display:inline-flex;align-items:center;background:#fff;padding:10px 14px;margin-bottom:18px;text-decoration:none;border:1px solid rgba(255,255,255,.14);}
.footer-logo img{display:block;width:150px;height:auto;}
.footer-grid p{font-size:15px;color:#a7b0bf;line-height:1.7;max-width:360px;margin:0;}
.footer-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;}
.footer-badges span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:#c8d6ea;border:1px solid var(--hairline-dark);padding:8px 10px;background:#10141a;}
.footer-col-title{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;letter-spacing:1.8px;color:#fff;margin-bottom:18px;}
.footer-links{display:flex;flex-direction:column;gap:11px;}
.footer-links a{color:#a7b0bf;text-decoration:none;font-size:14.5px;line-height:1.25;transition:color .2s ease,transform .2s ease;}
.footer-links a:hover,.footer-links a:focus-visible{color:#fff;transform:translateX(3px);}
.footer-contact-card{background:#10141a;border:1px solid var(--hairline-dark);padding:24px;}
.footer-phone{display:inline-block;color:#fff;text-decoration:none;font-family:'Bebas Neue',sans-serif;font-size:32px;line-height:1;margin:0 0 18px;}
.footer-phone:hover{color:var(--blue-light);}
.footer-address{color:#a7b0bf;font-size:14.5px;line-height:1.6;margin-bottom:18px;}
.footer-contact-link{display:inline-flex;color:var(--blue-light);font-weight:700;text-decoration:none;font-size:14px;}
.footer-contact-link:hover{color:#fff;}
.footer-bottom{max-width:1400px;margin:0 auto;padding-top:24px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#677285;}

/* reveal animation */
[data-reveal]{opacity:1;transform:none;transition:opacity 0.6s ease, transform 0.6s ease;will-change:opacity,transform;}
.js-ready [data-reveal]:not(.in){opacity:0;transform:translateY(16px);}
[data-reveal].in{opacity:1;transform:translateY(0);}
.photo-grid .tile img,.work-shot img,.showroom-teaser-media img,.showroom-visit-media img,.service-split .visual img{will-change:transform;}
.photo-grid .tile img,.work-shot img{transition:transform .85s cubic-bezier(.16,1,.3,1),filter .85s cubic-bezier(.16,1,.3,1);}
.photo-grid .tile:hover img,.work-shot:hover img{transform:scale(1.055);filter:saturate(1.07) contrast(1.04);}
.feature-tile,.service-directory-card,.related-card,.review-proof-card,.contact-option,.photo-category-strip a{transition:transform .28s cubic-bezier(.16,1,.3,1),border-color .28s ease,background .28s ease,color .28s ease,box-shadow .28s ease;}
.feature-tile:hover,.service-directory-card:hover,.contact-option:hover{transform:translateY(-4px);}

/* ===================================================================
   WOW-FACTOR ADDITIONS
   =================================================================== */

/* subtle grain/texture overlay for dark sections */
.section-dark, .hero, .marquee-section, .cta-band{position:relative;}

/* nav dropdown (Services mega-menu) */
.nav-dropdown{position:relative;}
.nav-dropdown::after{content:'';display:none;position:absolute;left:-18px;right:-18px;top:100%;height:14px;z-index:19;}
.nav-dropdown.open::after,.nav-dropdown:hover::after{display:block;}
.nav-dropdown-toggle{display:inline-flex;align-items:center;gap:5px;}
.nav-dropdown-toggle .caret,.mobile-menu .msub-toggle .caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;display:inline-block;transition:transform 0.2s ease;}
.nav-dropdown.open .nav-dropdown-toggle .caret{transform:rotate(180deg);}
.nav-dropdown-menu{display:none;position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--hairline);width:560px;padding:18px;box-shadow:0 24px 60px rgba(11,13,16,0.16);grid-template-columns:1fr 1fr;gap:4px;z-index:20;}
.nav-dropdown.open .nav-dropdown-menu,.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{display:grid;}
.nav-dropdown-menu a.svc-item{display:flex;align-items:center;gap:12px;padding:10px;text-decoration:none;color:var(--ink);}
.nav-dropdown-menu a.svc-item:hover{background:rgba(5,68,164,0.06);}
.nav-dropdown-menu .ic{flex-shrink:0;width:38px;height:38px;border-radius:2px;background:rgba(5,68,164,0.08);display:flex;align-items:center;justify-content:center;color:var(--blue);}
.nav-dropdown-menu .ic svg{width:19px;height:19px;}
.nav-dropdown-menu .txt b{display:block;font-size:13.5px;font-weight:700;color:var(--ink);}
.nav-dropdown-menu .txt small{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;}
.nav-dropdown-menu .view-all{grid-column:1/-1;margin-top:8px;padding-top:14px;border-top:1px solid var(--hairline);font-size:12.5px;font-weight:700;color:var(--blue);text-decoration:none;font-family:'IBM Plex Mono',monospace;letter-spacing:0.5px;text-transform:uppercase;}
.photo-dropdown .nav-dropdown-menu{width:190px;left:0;transform:none;padding:8px;grid-template-columns:1fr;gap:0;}
.photo-dropdown-menu a{display:block;padding:10px 14px;text-decoration:none;color:var(--ink);font-size:15px;font-weight:500;}
.photo-dropdown-menu a:hover,.photo-dropdown-menu a:focus-visible{background:rgba(5,68,164,0.08);color:var(--blue);outline:none;}
@media (max-width:900px){.nav-dropdown-menu{display:none !important;}}

/* mobile menu service submenu */
.mobile-menu .msub-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;padding:14px 4px;border-bottom:1px solid rgba(11,13,16,0.08);font-weight:700;color:var(--ink);user-select:none;}
.mobile-menu .msub-toggle:hover,.mobile-menu .msub-toggle:focus-visible{color:var(--blue);outline:none;}
.mobile-menu .msub-toggle .caret{margin-right:4px;}
.mobile-menu .msub-toggle.open .caret{transform:rotate(180deg);}
.mobile-menu .msub{display:flex;flex-direction:column;max-height:0;overflow:hidden;transition:max-height .25s ease,opacity .2s ease;opacity:0;padding-left:14px;}
.mobile-menu .msub a{padding:11px 4px;font-size:14.5px;font-weight:500;border-bottom:none;color:var(--muted);}
.mobile-menu .msub a:hover{color:var(--blue);}
.mobile-menu .msub.open{max-height:70dvh;opacity:1;}

/* breadcrumb */
.breadcrumb{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.5px;color:#8b8674;margin-bottom:20px;}
.breadcrumb a{color:#8b8674;text-decoration:none;}
.breadcrumb a:hover{color:var(--blue);}
.breadcrumb span.sep{margin:0 8px;opacity:0.5;}
.breadcrumb span.current{color:var(--ink);}

/* icon feature grid (why choose us / service features) */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;background:transparent;border:0;}
.feature-tile{position:relative;overflow:hidden;background:#fff;border:1px solid var(--hairline);padding:34px 28px;box-shadow:0 14px 38px rgba(12,18,28,.06);}
.feature-tile::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:var(--blue);}
.feature-tile .fic{width:56px;height:56px;border-radius:2px;background:rgba(5,68,164,0.08);display:flex;align-items:center;justify-content:center;color:var(--blue);margin-bottom:20px;}
.feature-tile .fic svg{width:25px;height:25px;}
.feature-tile h3{font-family:'Bebas Neue',sans-serif;font-size:21px;letter-spacing:0.3px;color:var(--ink);margin-bottom:8px;}
.feature-tile p{font-size:14px;line-height:1.6;color:var(--muted);margin:0;}
.feature-grid.on-dark{background:var(--hairline-dark);border-color:var(--hairline-dark);}
.feature-grid.on-dark .feature-tile{background:var(--near-black);}
.feature-grid.on-dark .feature-tile .fic{background:rgba(127,163,232,0.12);}
.feature-grid.on-dark .feature-tile h3{color:#fff;}
.feature-grid.on-dark .feature-tile p{color:#98a0ad;}

/* trust + showroom passage */
.trust-standard{background:#fff;padding:92px 32px 0;color:var(--ink);overflow:hidden;}
.trust-standard-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:0;max-width:1400px;padding-left:0;padding-right:0;border:1px solid var(--hairline);background:var(--cream);}
.trust-standard-media{position:relative;min-height:560px;background:#10141a;}
.trust-standard-media img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.02) contrast(1.04);}
.trust-standard-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,16,.02),rgba(11,13,16,.32));}
.trust-standard-badge{position:absolute;left:24px;right:24px;bottom:24px;z-index:1;background:#fff;color:var(--ink);padding:22px;border:1px solid rgba(11,13,16,.12);}
.trust-standard-badge strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:48px;line-height:1;color:var(--blue);font-weight:400;}
.trust-standard-badge span{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--body-text);margin-top:4px;}
.trust-standard-copy{padding:64px 58px;}
.trust-standard-copy .service-kicker{color:var(--blue);}
.trust-standard-copy h2{font-size:clamp(36px,4.4vw,58px);line-height:.98;color:var(--ink);margin:0 0 28px;max-width:640px;}
.trust-list{display:grid;gap:0;border:1px solid var(--hairline);background:#fff;}
.trust-item{display:grid;grid-template-columns:48px minmax(0,1fr);gap:20px;padding:22px 24px;border-bottom:1px solid var(--hairline);}
.trust-item:last-child{border-bottom:none;}
.trust-item > span{font-family:'IBM Plex Mono',monospace;color:var(--blue);font-size:12px;letter-spacing:1px;padding-top:5px;}
.trust-item h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:26px;line-height:1;color:var(--ink);margin:0 0 7px;}
.trust-item p{font-size:15px;line-height:1.65;color:var(--body-text);margin:0;max-width:620px;}

/* service detail hero */
.service-hero{background:var(--near-black);padding:150px 32px 78px;position:relative;overflow:hidden;isolation:isolate;}
.service-hero.has-banner{background-size:cover;background-position:center;}
.service-hero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:7px;background:var(--blue);z-index:2;}
.service-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.97) 0%,rgba(11,13,16,.9) 50%,rgba(11,13,16,.68) 100%),linear-gradient(180deg,rgba(11,13,16,.12),rgba(11,13,16,.9));z-index:1;}
.service-hero > .wrap{position:relative;z-index:2;}
.service-hero > .wrap::after{display:none;}
.service-hero .eyebrow span{color:var(--blue-light);}
.service-hero h1{color:#fff;font-size:clamp(42px,6.5vw,72px);line-height:0.98;margin:0 0 20px;max-width:820px;}
.service-hero p.lead{color:#b7bec9;font-size:17px;line-height:1.7;max-width:560px;margin:0 0 32px;}
.service-hero .breadcrumb{position:relative;color:#7d8492;}
.service-hero .breadcrumb a{color:#7d8492;}
.service-hero .breadcrumb a:hover{color:#fff;}
.service-hero .breadcrumb span.current{color:#c3c9d1;}

/* service intro split */
.service-split{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr);gap:64px;align-items:center;}
.service-split .visual{aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--near-black);box-shadow:0 24px 70px rgba(11,13,16,.16);}
.service-split .visual img{width:100%;height:100%;object-fit:cover;display:block;}
.service-split .visual::after{content:'Built by Iron Mike';position:absolute;left:20px;bottom:20px;background:rgba(11,13,16,.86);color:#fff;border:1px solid rgba(255,255,255,.2);padding:12px 14px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;}
.service-split .visual.blueprint-fill{background:linear-gradient(135deg,#151a20 0%,#0b0d10 100%);display:flex;align-items:center;justify-content:center;}
.service-split .visual.blueprint-fill svg{width:34%;height:34%;color:rgba(127,163,232,0.55);}
.service-split h2{font-size:34px;margin:0 0 18px;}
.service-split p{font-size:16px;line-height:1.75;color:var(--body-text);margin:0 0 16px;}
.check-list{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}
.check-list li{display:flex;gap:12px;font-size:15px;color:var(--body-text);align-items:flex-start;}
.check-list li svg{flex-shrink:0;width:18px;height:18px;color:var(--blue);margin-top:2px;}

/* exterior product detail */
.exterior-product-section{padding-top:88px;padding-bottom:96px;position:relative;overflow:hidden;}
.exterior-product-section::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,68,164,.08),rgba(5,68,164,0) 52%);pointer-events:none;}
.exterior-product-grid{position:relative;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);gap:44px;align-items:start;}
.exterior-product-lead{background:var(--near-black);color:#fff;border:1px solid var(--hairline-dark);padding:42px;position:sticky;top:112px;}
.exterior-product-lead h2{font-size:clamp(34px,4.2vw,54px);line-height:.98;color:#fff;margin:0 0 18px;text-wrap:balance;}
.exterior-product-lead p{font-size:16px;line-height:1.72;color:#c3c9d1;margin:0 0 26px;}
.exterior-product-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.exterior-product-list article{background:#fff;border:1px solid var(--hairline);padding:30px 28px;min-height:260px;display:flex;flex-direction:column;}
.product-number{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:1px;color:var(--blue);margin-bottom:26px;}
.exterior-product-list h3{font-size:32px;line-height:1;color:var(--ink);margin:0 0 12px;}
.exterior-product-list p{font-size:15px;line-height:1.68;color:var(--body-text);margin:0;}

/* roofing scope */
.roofing-scope-section{padding-top:88px;padding-bottom:96px;position:relative;overflow:hidden;}
.roofing-scope-section::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.06),rgba(5,68,164,.08) 58%,rgba(5,68,164,0));pointer-events:none;}
.roofing-scope-grid{position:relative;display:grid;grid-template-columns:minmax(310px,.82fr) minmax(0,1.18fr);gap:44px;align-items:stretch;}
.roofing-scope-copy{background:var(--near-black);color:#fff;border:1px solid var(--hairline-dark);padding:42px;display:flex;flex-direction:column;justify-content:center;}
.roofing-scope-copy h2{font-size:clamp(34px,4.2vw,54px);line-height:.98;color:#fff;margin:0 0 18px;text-wrap:balance;}
.roofing-scope-copy p{font-size:16px;line-height:1.72;color:#c3c9d1;margin:0 0 26px;}
.roofing-scope-actions{display:flex;gap:12px;flex-wrap:wrap;}
.roofing-scope-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.roofing-scope-list article{background:#fff;border:1px solid var(--hairline);padding:30px 28px;min-height:248px;}
.roofing-scope-list span{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--blue);margin-bottom:24px;}
.roofing-scope-list h3{font-size:31px;line-height:1;color:var(--ink);margin:0 0 12px;}
.roofing-scope-list p{font-size:15px;line-height:1.68;color:var(--body-text);margin:0;}

/* kitchen and bath cabinet options */
.cabinet-options-section{padding-top:88px;padding-bottom:96px;position:relative;overflow:hidden;background:#fff;}
.cabinet-options-grid{display:grid;grid-template-columns:minmax(310px,.9fr) minmax(0,1.1fr);gap:44px;align-items:stretch;}
.cabinet-options-copy{background:linear-gradient(135deg,#0b0d10 0%,#101722 58%,#0544a4 100%);color:#fff;border:1px solid var(--hairline-dark);padding:44px;display:flex;flex-direction:column;justify-content:center;}
.cabinet-options-copy h2{font-size:clamp(34px,4.2vw,56px);line-height:.98;color:#fff;margin:0 0 18px;text-wrap:balance;}
.cabinet-options-copy p{font-size:16px;line-height:1.72;color:#d3d9e4;margin:0 0 26px;}
.cabinet-brand-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.cabinet-brand-grid article{background:var(--cream);border:1px solid var(--hairline);padding:30px 26px;min-height:300px;display:flex;flex-direction:column;}
.cabinet-brand-grid span{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--blue);margin-bottom:28px;}
.cabinet-brand-grid h3{font-size:31px;line-height:1;color:var(--ink);margin:0 0 14px;}
.cabinet-brand-grid p{font-size:15px;line-height:1.68;color:var(--body-text);margin:0;}

/* related services strip */
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;}
.related-card{position:relative;min-height:270px;overflow:hidden;display:flex;align-items:flex-end;text-decoration:none;background:var(--near-black);border:1px solid rgba(11,13,16,.16);padding:24px;color:#fff;transition:border-color 0.2s ease, transform 0.2s ease, box-shadow .2s ease;}
.related-card::before{content:'';position:absolute;inset:0;background:var(--related-img) center/cover no-repeat;transform:scale(1.01);transition:transform .45s ease,filter .45s ease;}
.related-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,16,.08) 10%,rgba(11,13,16,.46) 50%,rgba(11,13,16,.94) 100%);}
.related-card:hover{border-color:var(--blue);transform:translateY(-4px);box-shadow:0 22px 48px rgba(11,13,16,.16);}
.related-card:hover::before{transform:scale(1.07);filter:saturate(1.06) contrast(1.05);}
.related-card > *{position:relative;z-index:1;}
.related-card .cat{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:1.5px;color:var(--blue-light);text-transform:uppercase;margin-bottom:8px;}
.related-card .name{font-family:'Bebas Neue',sans-serif;font-size:30px;line-height:1;color:#fff;margin-bottom:8px;}
.related-card .desc{font-size:13.5px;color:#d7dce5;line-height:1.55;max-width:280px;}
.related-card .go{display:inline-block;margin-top:16px;font-size:13px;font-weight:700;color:#fff;}

/* service testimonials */
.service-testimonial-band{position:relative;overflow:hidden;background:var(--near-black);padding:90px 32px;color:#fff;text-align:left;}
.service-testimonial-band::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.94),rgba(11,13,16,.72)),var(--testimonial-bg,url('../images/optimized/photo1.jpg')) center/cover no-repeat;filter:saturate(.9);}
.service-testimonial-band .wrap{position:relative;}
.service-review-card{max-width:980px;margin:0 auto;display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;align-items:center;background:rgba(12,16,22,.88);border:1px solid var(--hairline-dark);padding:34px;backdrop-filter:blur(4px);}
.service-review-card .stars{color:var(--blue-light);font-size:15px;letter-spacing:3px;margin:0;border-right:1px solid var(--hairline-dark);padding-right:30px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;}
.service-review-card .stars::after{content:'Verified homeowner review';display:block;margin-top:18px;font-family:'IBM Plex Mono',monospace;font-size:11px;line-height:1.5;letter-spacing:1.2px;text-transform:uppercase;color:#9fa8b6;}
.service-review-card blockquote{font-family:'Archivo',Arial,sans-serif;font-size:clamp(18px,2vw,24px);font-weight:600;line-height:1.55;color:#fff;margin:0 0 20px;letter-spacing:0;}
.service-review-card .who{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#c3c9d1;}
.service-review-card .who span{color:#8f98a6;}

/* FAQ accordion */
.faq-list{border-top:1px solid var(--hairline);}
.faq-item{border-bottom:1px solid var(--hairline);}
.faq-q{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 4px;cursor:pointer;text-align:left;font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:0.3px;color:var(--ink);}
.faq-q:hover,.faq-q:focus-visible{color:var(--blue);}
.faq-q:focus-visible{outline:2px solid rgba(5,68,164,.35);outline-offset:4px;}
.faq-q .plus{font-family:'IBM Plex Mono',monospace;font-size:20px;color:var(--blue);flex-shrink:0;transition:transform 0.25s ease;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;opacity:0;transition:max-height .28s ease,opacity .2s ease;}
.faq-a p{font-size:15px;line-height:1.7;color:var(--body-text);margin:0;padding:0 40px 24px 0;}
.faq-item.open .faq-a{max-height:220px;opacity:1;}

/* map embed (contact page) */
.map-embed-wrap{max-width:1400px;margin:0 auto;border:1px solid var(--hairline);}
.map-embed-wrap iframe{width:100%;height:400px;border:0;display:block;filter:grayscale(0.25) contrast(1.05);}

/* showroom teaser (homepage) */
.showroom-teaser{background:#fff;padding:28px 32px 96px;overflow:hidden;}
.showroom-teaser-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(320px,.86fr) minmax(0,1.14fr);align-items:stretch;border:1px solid var(--hairline);background:var(--near-black);}
.showroom-teaser-media{order:2;position:relative;min-height:420px;display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:1fr 1fr;gap:2px;background:var(--near-black);}
.showroom-teaser-media img{width:100%;height:100%;object-fit:cover;display:block;}
.showroom-teaser-media a:first-child{grid-row:1/3;}
.showroom-teaser-copy{order:1;padding:58px 50px;display:flex;flex-direction:column;justify-content:center;color:#fff;}
.showroom-teaser-copy h2{font-size:clamp(34px,4vw,50px);color:#fff;margin:0 0 18px;line-height:1;}
.showroom-teaser-copy p{font-size:16px;line-height:1.75;color:#c3c9d1;margin:0 0 28px;max-width:500px;}
.showroom-teaser-copy .tag-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px;}
.showroom-teaser-copy .tag-row span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#c3c9d1;border:1px solid var(--hairline-dark);padding:7px 12px;background:rgba(255,255,255,.03);}

/* pull-quote testimonial spotlight (service pages without dedicated photos) */
.pull-quote{max-width:760px;margin:0 auto;text-align:center;}
.pull-quote .stars{color:var(--blue);font-size:18px;letter-spacing:3px;margin-bottom:20px;}
.pull-quote blockquote{font-family:'Bebas Neue',sans-serif;font-size:clamp(24px,3.2vw,34px);line-height:1.25;color:var(--ink);margin:0 0 22px;letter-spacing:0.2px;}
.pull-quote .who{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--muted);}
.pull-quote .who span{color:#8b8674;}
.pull-quote.service-review-card{max-width:1000px;text-align:left;}
.pull-quote.service-review-card .stars{color:var(--blue-light);margin:0;}
.pull-quote.service-review-card blockquote{font-family:'Archivo',Arial,sans-serif;font-size:clamp(18px,2vw,24px);font-weight:600;line-height:1.55;color:#fff;margin:0 0 20px;}
.pull-quote.service-review-card .who{color:#c3c9d1;}
.pull-quote.service-review-card .who span{color:#8f98a6;}

/* stat strip generic (service pages) */
.mini-stat-row{display:flex;gap:44px;flex-wrap:wrap;margin-top:36px;}
.mini-stat-row .mstat .n{font-family:'Bebas Neue',sans-serif;font-size:38px;color:var(--blue);line-height:1;}
.mini-stat-row .mstat .l{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#c3c9d1;margin-top:6px;}

/* GAF roofing certification page */
.gaf-hero{width:100%;background:var(--near-black);color:#fff;overflow:hidden;}
.gaf-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,640px);max-width:1400px;min-height:620px;margin:0 auto;}
.gaf-hero-media{position:relative;min-height:440px;order:2;}
.gaf-hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,13,16,.28),rgba(11,13,16,.68));}
.gaf-hero-media img{width:100%;height:100%;object-fit:cover;display:block;}
.gaf-hero-copy{order:1;padding:0;display:flex;flex-direction:column;justify-content:center;}
.gaf-hero .breadcrumb{color:#8f98a6;}
.gaf-hero h1{font-size:clamp(46px,6vw,78px);line-height:.94;color:#fff;max-width:760px;margin:0 0 24px;text-wrap:balance;}
.gaf-hero .lead{font-size:18px;line-height:1.7;color:#c3c9d1;max-width:640px;margin:0 0 34px;}
.gaf-proof-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.gaf-proof-row span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#d7dce5;border:1px solid rgba(255,255,255,.16);padding:8px 11px;background:rgba(255,255,255,.04);}
.roof-warning-section{background:var(--cream);padding:92px 32px 104px;}
.roof-warning-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,480px);gap:36px;align-items:end;margin-bottom:36px;}
.roof-warning-head h2,.gaf-system-intro h2,.gaf-video-copy h2{font-size:clamp(38px,5vw,62px);line-height:.96;color:var(--ink);margin:0;text-wrap:balance;}
.roof-warning-head p,.gaf-system-intro p,.gaf-video-copy p{font-size:16px;line-height:1.72;color:var(--body-text);margin:0;max-width:660px;}
.roof-warning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.roof-warning-card{background:#fff;border:1px solid var(--hairline);display:flex;flex-direction:column;min-height:100%;}
.roof-warning-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.roof-warning-card div{padding:28px 26px 30px;}
.roof-warning-card span{display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:1px;color:var(--blue);margin-bottom:18px;}
.roof-warning-card h3{font-size:31px;line-height:1;color:var(--ink);margin:0 0 12px;}
.roof-warning-card p{font-size:15px;line-height:1.68;color:var(--body-text);margin:0;}
.gaf-system-section{background:#fff;padding:94px 32px 104px;}
.gaf-system-intro{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(320px,.7fr);column-gap:56px;row-gap:18px;align-items:end;margin-bottom:38px;padding-bottom:30px;border-bottom:1px solid var(--hairline);}
.gaf-system-intro .service-kicker{grid-column:1;margin-bottom:0;}
.gaf-system-intro h2{grid-column:1;}
.gaf-system-intro p{grid-column:2;grid-row:1 / span 2;align-self:end;margin-bottom:4px;}
.gaf-system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--hairline);background:var(--cream);}
.gaf-system-grid article{display:grid;grid-template-rows:170px 1fr;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);background:var(--cream);}
.gaf-system-grid article:nth-child(3n){border-right:none;}
.gaf-system-grid article:nth-last-child(-n+3){border-bottom:none;}
.gaf-system-grid img{width:100%;height:170px;object-fit:contain;background:#fff;padding:20px;display:block;}
.gaf-system-grid div{padding:26px 24px 28px;}
.gaf-system-grid h3{font-size:28px;line-height:1;color:var(--ink);margin:0 0 10px;}
.gaf-system-grid p{font-size:14.5px;line-height:1.62;color:var(--body-text);margin:0;}
.gaf-video-section{background:linear-gradient(135deg,#0b0d10 0%,#101722 62%,#0544a4 100%);color:#fff;padding:96px 32px;}
.gaf-video-grid{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);gap:42px;align-items:center;}
.gaf-video-copy .service-kicker{color:var(--blue-light);}
.gaf-video-copy h2{color:#fff;margin-bottom:20px;}
.gaf-video-copy p{color:#d3d9e4;margin-bottom:28px;}
.gaf-video-frame{position:relative;aspect-ratio:16/9;background:#05070a;border:1px solid rgba(255,255,255,.14);}
.gaf-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.gaf-video-fallback{position:absolute;left:18px;bottom:16px;z-index:2;background:rgba(11,13,16,.86);color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.22);padding:10px 13px;font-size:13px;font-weight:700;}
.gaf-video-fallback:hover{background:#fff;color:var(--blue);}

/* Contact Form 7 */
.contact-form-wrap .wpcf7 {
  width: 100%;
  margin: 0;
}

.contact-form-wrap .wpcf7 form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin: 0;
}

.contact-form-wrap .wpcf7 form > p {
  margin: 0;
}

.contact-form-wrap .wpcf7 .row2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.contact-form-wrap .wpcf7 label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 8px;
  color: var(--ink, #14181d);
  font-size: 14px;
  font-weight: 700;
}

.contact-form-wrap .wpcf7 label > span:first-child:not(.wpcf7-form-control-wrap) {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--muted, #6b6656);
}

.contact-form-wrap .wpcf7 .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.contact-form-wrap .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-form-wrap .wpcf7 textarea,
.contact-form-wrap .wpcf7 select {
  display: block;
  width: 100%;
  min-height: 50px;
  margin: 0;
  padding: 13px 14px;
  border: 1px solid rgba(11, 13, 16, 0.22);
  border-radius: 0;
  background: #fbfaf6;
  color: var(--ink, #14181d);
  font-family: "Archivo", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.4;
  box-shadow: none;
  box-sizing: border-box;
}

.contact-form-wrap .wpcf7 textarea {
  min-height: 150px;
  resize: vertical;
}

.contact-form-wrap .wpcf7 input::placeholder,
.contact-form-wrap .wpcf7 textarea::placeholder {
  color: #68645a;
  opacity: 1;
}

.contact-form-wrap .wpcf7 input:focus,
.contact-form-wrap .wpcf7 textarea:focus,
.contact-form-wrap .wpcf7 select:focus {
  border-color: var(--blue, #0544a4);
  outline: 3px solid rgba(127, 163, 232, 0.42);
  outline-offset: 0;
  background: #fff;
}

.contact-form-wrap .wpcf7 input[type="submit"] {
  display: block;
  width: 100%;
  min-height: 52px;
  margin: 2px 0 0;
  padding: 15px 24px;
  border: 0;
  border-radius: 0;
  background: var(--blue, #0544a4);
  color: #fff;
  font-family: "Archivo", Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}

.contact-form-wrap .wpcf7 input[type="submit"]:hover {
  background: var(--blue-dark, #043b85);
}

.contact-form-wrap .wpcf7 .wpcf7-not-valid {
  border-color: #b93b3b !important;
}

.contact-form-wrap .wpcf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: #982d2d;
  font-size: 13px;
  font-weight: 600;
}

.contact-form-wrap .wpcf7 .wpcf7-response-output {
  margin: 2px 0 0 !important;
  padding: 12px 14px !important;
  font-size: 14px;
  line-height: 1.5;
}

.contact-form-wrap .wpcf7 form.sent .wpcf7-response-output {
  border-color: #2d7a47 !important;
  background: #eef8f1;
  color: #174d2b;
}

.contact-form-wrap .wpcf7 form.invalid .wpcf7-response-output,
.contact-form-wrap .wpcf7 form.failed .wpcf7-response-output {
  border-color: #b93b3b !important;
  background: #fff2f2;
  color: #7b2020;
}

.contact-form-wrap .wpcf7-form p {
  margin: 0 !important;
}

@media (max-width: 640px) {
  .contact-form-wrap .wpcf7 .row2 {
    grid-template-columns: 1fr;
  }
}



@media (max-width:640px){
  .contact-form .row2{grid-template-columns:1fr;}
  .contact-hero{padding:68px 20px 62px;}
  .contact-hero h1{font-size:clamp(44px,15vw,62px);}
  .contact-options-section,.contact-main-section,.contact-next-section,.contact-review-section,.contact-map-section{padding-left:20px;padding-right:20px;}
  .contact-options-grid{grid-template-columns:1fr;transform:translateY(-22px);}
  .contact-option{border-right:none;border-bottom:1px solid var(--hairline);}
  .contact-option:last-child{border-bottom:none;}
  .contact-form-wrap{padding:30px 22px;}
  .contact-next-steps{grid-template-columns:1fr;}
  .contact-next-steps div{border-right:none;border-bottom:1px solid var(--hairline);}
  .contact-next-steps div:last-child{border-bottom:none;}
  .contact-review-card{grid-template-columns:1fr;padding:28px 22px;gap:20px;}
  .contact-review-card .review-meta{border-right:none;border-bottom:1px solid var(--hairline-dark);padding-right:0;padding-bottom:18px;}
  section{padding:64px 20px;}
  .home-proof-strip{padding:0 20px;}
  .home-proof-grid{grid-template-columns:1fr;border-left:none;}
  .home-proof-grid div{border-right:none;border-bottom:1px solid var(--hairline-dark);padding:22px 0;}
  .home-proof-grid div:last-child{border-bottom:none;}
  .about-hero{padding:58px 20px 56px;}
  .about-hero h1{font-size:clamp(42px,15vw,58px);}
  .about-hero-actions{align-items:stretch;flex-direction:column;}
  .about-hero-actions .btn{width:100%;justify-content:center;}
  .about-intro-section,.memorial-section,.about-standard-section{padding-left:20px;padding-right:20px;}
  .about-intro-copy{grid-template-columns:1fr;}
  .memorial-flag{min-height:128px;}
  .memorial-copy{padding:42px 26px;}
  .memorial-photo{min-height:420px;}
  .memorial-photo figcaption{left:20px;right:20px;bottom:20px;font-size:10.5px;}
  .about-standard-grid{grid-template-columns:1fr;}
  .about-standard-card{border-right:none;border-bottom:1px solid var(--hairline);}
  .about-standard-card:last-child{border-bottom:none;}
  .hero{padding:48px 20px 0;}
  .service-hero{padding:120px 20px 48px;}
  .exterior-product-section{padding:64px 20px 72px;}
  .exterior-product-lead{padding:30px 24px;}
  .exterior-product-list{grid-template-columns:1fr;}
  .exterior-product-list article{min-height:0;padding:26px 22px;}
  .product-number{margin-bottom:18px;}
  .roofing-scope-section{padding:64px 20px 72px;}
  .roofing-scope-copy{padding:30px 24px;}
  .roofing-scope-list{grid-template-columns:1fr;}
  .roofing-scope-list article{min-height:0;padding:26px 22px;}
  .roofing-scope-list span{margin-bottom:18px;}
  .cabinet-options-section{padding:64px 20px 72px;}
  .cabinet-options-copy{padding:30px 24px;}
  .cabinet-brand-grid{grid-template-columns:1fr;}
  .cabinet-brand-grid article{min-height:0;padding:26px 22px;}
  .cabinet-brand-grid span{margin-bottom:18px;}
  .services-priority{padding:58px 20px 68px;}
  .service-directory-head{display:block;margin-bottom:24px;}
  .service-directory-head{padding:28px 22px;}
  .service-directory-head h2{margin-bottom:14px;}
  .service-directory-actions{align-items:flex-start;flex-direction:column;}
  .service-directory-grid{grid-template-columns:1fr;}
  .service-directory-card{grid-column:auto;min-height:310px;}
  .process-late{padding:64px 20px;}
  .process-late-head{display:block;}
  .process-late-head h2{margin-bottom:14px;}
  .process-late .process-grid .step{border-right:none;border-bottom:1px solid var(--hairline);}
  .process-late .process-grid .step:last-child{border-bottom:none;}
  .section-white .process-grid:not(.on-dark) .step{border-right:none;border-bottom:1px solid var(--hairline);}
  .section-white .process-grid:not(.on-dark) .step:last-child{border-bottom:none;}
  .showroom-teaser{padding:24px 20px 72px;}
  .showroom-teaser-copy{padding:42px 24px;}
  .showroom-teaser-media{min-height:320px;}
  .conversion-panel{padding:0 20px 68px;}
  .conversion-panel-inner{grid-template-columns:1fr;}
  .conversion-intro{padding:34px 28px;}
  .conversion-path{grid-template-columns:42px minmax(0,1fr);gap:16px;padding:24px;}
  .review-proof{padding:68px 20px;}
  .review-proof-head{align-items:flex-start;}
  .review-carousel{margin-left:0;margin-right:0;padding:0;}
  .review-proof-card{width:300px;min-height:280px;padding:24px;}
  .review-proof-card.compact{width:280px;}
  .reviews-hero,.reviews-wall-section,.review-next-step{padding-left:20px;padding-right:20px;}
  .reviews-wall-head{display:block;}
  .reviews-wall-head h2{margin-bottom:12px;}
  .reviews-scoreboard div{grid-template-columns:46px 88px 1fr;gap:14px;padding:20px;}
  .reviews-scoreboard .score-icon{width:40px;height:40px;}
  .work-showcase{padding:64px 20px 76px;}
  .work-showcase-head{display:block;}
  .work-showcase-head h2{margin-bottom:14px;}
  .work-tabs{overflow:auto;flex-wrap:nowrap;padding-bottom:4px;}
  .work-tabs button{white-space:nowrap;}
  .work-grid{grid-template-columns:1fr;grid-auto-rows:280px;}
  .photo-grid.photo-grid-siding{grid-template-columns:1fr;}
  .work-shot.wide,.work-shot.tall{grid-column:auto;grid-row:auto;}
  .trust-standard{padding:68px 20px 0;}
  .trust-standard-copy{padding:42px 24px;}
  .trust-standard-media{min-height:0;height:260px;}
  .trust-standard-badge{left:14px;right:14px;bottom:14px;padding:16px;}
  .trust-standard-badge strong{font-size:36px;}
  .trust-standard-badge span{font-size:10px;letter-spacing:.8px;}
  .trust-item{grid-template-columns:1fr;gap:8px;}
  .cta-band{padding:46px 20px;}
  .cta-band h2{font-size:clamp(36px,12vw,52px);}
  .cta-band p{font-size:16px;}
  .cta-band-inner:not(:has(.cta-band-copy))::before{inset:-12px 0;width:100%;}
  .cta-band-panel{padding:24px;}
  .showroom-visit-cta{padding:54px 20px;}
  .showroom-visit-media{min-height:220px;}
  .showroom-visit-copy{padding:30px 22px;}
  .showroom-visit-copy h2{font-size:clamp(36px,12vw,50px);}
  .showroom-visit-details{grid-template-columns:1fr;}
  footer.site-footer{padding-left:20px;padding-right:20px;}
  .footer-grid{gap:28px;padding:0 0 36px;}
  .footer-contact-card{padding:22px;}
  .footer-bottom{display:block;line-height:1.7;}
  .footer-bottom span{display:block;}
  .footer-bottom span + span{margin-top:8px;}
  .service-hero{padding:118px 20px 62px;}
  .service-hero > .wrap::after{display:none;}
  .service-split{grid-template-columns:1fr;gap:34px;}
  .service-review-card{grid-template-columns:1fr;padding:30px 24px;gap:22px;}
  .service-review-card .stars{border-right:none;border-bottom:1px solid var(--hairline-dark);padding-right:0;padding-bottom:18px;}
  .related-grid{grid-template-columns:1fr;}
  .related-card{min-height:260px;}
  .service-list-row{grid-template-columns:1fr;gap:10px;padding:0;}
  .service-list-row::before{width:100%;height:190px;}
  .service-list-row .pos,.service-list-row .cat,.service-list-row .go-arrow,.service-list-row > div[style]{margin-left:20px;margin-right:20px;}
  .service-list-row .cat{margin-bottom:20px;}
}

@media (max-width:1120px){
  nav.main-nav a{padding-left:10px;padding-right:10px;}
  .call-btn{padding-left:14px;padding-right:14px;}
}

@media (max-width:900px){
  .gaf-hero-inner{grid-template-columns:1fr;min-height:0;}
  .gaf-hero-media{order:1;min-height:340px;}
  .gaf-hero-media::after{background:linear-gradient(180deg,rgba(11,13,16,.08),rgba(11,13,16,.55));}
  .gaf-hero-copy{order:2;padding:0;}
  .gaf-hero h1{font-size:clamp(40px,11vw,58px);}
  .roof-warning-head,.gaf-system-intro,.gaf-video-grid{grid-template-columns:1fr;}
  .gaf-system-intro p{grid-column:1;grid-row:auto;max-width:720px;}
  .roof-warning-grid{grid-template-columns:1fr;}
  .gaf-system-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gaf-system-grid article:nth-child(3n){border-right:1px solid var(--hairline);}
  .gaf-system-grid article:nth-child(2n){border-right:none;}
  .gaf-system-grid article:nth-last-child(-n+3){border-bottom:1px solid var(--hairline);}
  .gaf-system-grid article:nth-last-child(-n+2){border-bottom:none;}
  .contact-hero-grid,.contact-grid,.contact-next-grid,.contact-map-head{grid-template-columns:1fr;}
  .contact-hero-card{max-width:460px;}
  .contact-options-grid{grid-template-columns:1fr;}
  .contact-option{border-right:none;border-bottom:1px solid var(--hairline);}
  .contact-option:last-child{border-bottom:none;}
  .contact-next-steps{grid-template-columns:1fr;}
  .contact-next-steps div{border-right:none;border-bottom:1px solid var(--hairline);}
  .contact-next-steps div:last-child{border-bottom:none;}
  .contact-review-card{grid-template-columns:1fr;}
  .contact-review-card .review-meta{border-right:none;border-bottom:1px solid var(--hairline-dark);padding-right:0;padding-bottom:18px;}
  .home-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .home-proof-grid div:nth-child(2){border-right:none;}
  .home-proof-grid div:nth-child(-n+2){border-bottom:1px solid var(--hairline-dark);}
  .about-hero-grid{grid-template-columns:1fr;gap:34px;}
  .about-hero-panel{max-width:420px;}
  .about-intro-grid{grid-template-columns:1fr;gap:28px;}
  .memorial-grid{grid-template-columns:1fr;}
  .memorial-photo{order:-1;min-height:520px;}
  .about-standard-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .about-standard-card:nth-child(2){border-right:none;}
  .about-standard-card:nth-child(-n+2){border-bottom:1px solid var(--hairline);}
  .review-proof-head{display:grid;}
  .review-score{text-align:left;min-width:0;}
  .reviews-hero-grid{grid-template-columns:1fr;gap:36px;}
  .reviews-masonry{columns:1;}
  .service-split{grid-template-columns:1fr;}
  .exterior-product-grid{grid-template-columns:1fr;}
  .exterior-product-lead{position:static;}
  .roofing-scope-grid{grid-template-columns:1fr;}
  .cabinet-options-grid{grid-template-columns:1fr;}
  .cabinet-brand-grid{grid-template-columns:1fr;}
  .service-review-card{grid-template-columns:1fr;}
  .service-list-row{grid-template-columns:120px 40px minmax(0,1fr) 28px;}
  .service-list-row .cat{display:none;}
  .hero-live{padding:58px 24px;}
  .hero-live-grid{grid-template-columns:1fr;gap:34px;}
  .hero-live-copy{padding-bottom:0;}
  .hero-live h1{font-size:clamp(40px,11vw,58px);}
  .hero-live-media{min-height:360px;}
  .hero-live-media img{height:360px;}
  .hero-carousel-controls{top:14px;right:14px;gap:6px;}
  .hero-carousel-controls button{width:36px;height:36px;font-size:10px;}
  .cta-band-inner{grid-template-columns:1fr;align-items:start;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-brand-block,.footer-contact-card{grid-column:1/-1;}
  .showroom-visit-grid{grid-template-columns:1fr;}
  .showroom-visit-media{min-height:300px;}
  .showroom-visit-copy{padding:42px 32px;}
  .showroom-offerings-grid{grid-template-columns:1fr;gap:42px;}
  .showroom-partner-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .showroom-partners-head{display:block;}
  .showroom-partners-head p{text-align:left;margin-top:14px;}
  .showroom-teaser-grid{grid-template-columns:1fr;}
  .showroom-teaser-media{order:1;}
  .showroom-teaser-copy{order:2;}
  .trust-standard-grid{grid-template-columns:1fr;}
  .trust-standard-media{min-height:0;height:320px;}
  .trust-standard-copy{padding:42px 28px;}
}

@media (max-width:640px){
  .roof-warning-section,.gaf-system-section,.gaf-video-section{padding-left:20px;padding-right:20px;}
  .gaf-system-grid{grid-template-columns:1fr;}
  .gaf-system-grid article,.gaf-system-grid article:nth-child(2n),.gaf-system-grid article:nth-child(3n){border-right:none;}
  .gaf-system-grid article:nth-last-child(-n+2){border-bottom:1px solid var(--hairline);}
  .gaf-system-grid article:last-child{border-bottom:none;}
  .gaf-system-grid article{grid-template-rows:150px 1fr;}
  .gaf-system-grid img{height:150px;}
  .about-standard-grid{grid-template-columns:1fr;}
  .about-standard-card{border-right:none;border-bottom:1px solid var(--hairline);}
  .about-standard-card:nth-child(2){border-right:none;}
  .about-standard-card:last-child{border-bottom:none;}
  .showroom-visit-cta{padding:54px 20px;}
  .showroom-visit-media{min-height:220px;}
  .showroom-visit-copy{padding:30px 22px;}
  .showroom-visit-copy h2{font-size:clamp(36px,12vw,50px);}
  .showroom-visit-details{grid-template-columns:1fr;}
  .showroom-offerings{padding:64px 20px;}
  .showroom-service-list{grid-template-columns:1fr;}
  .showroom-partners{margin-top:58px;padding-top:48px;}
  .showroom-partner-grid{grid-template-columns:1fr 1fr;}
  .showroom-partner-grid > div{min-height:112px;padding:20px;}
  .showroom-partner-grid .partner-logo img{max-height:56px;}
  .service-list-row{grid-template-columns:1fr;gap:10px;padding:0;}
  .service-list-row::before{width:100%;height:190px;}
  .service-list-row .pos,.service-list-row .cat,.service-list-row .go-arrow,.service-list-row > div[style]{margin-left:20px;margin-right:20px;}
  .service-list-row .cat{display:block;margin-bottom:20px;}
}

@media (min-width:641px) and (max-width:900px){
  .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .work-shot.wide{grid-column:span 2;}
  .photo-grid.photo-grid-siding{grid-template-columns:repeat(2,minmax(0,1fr));}
  .service-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .showroom-teaser-grid{grid-template-columns:1fr;}
  .showroom-teaser-media{order:1;min-height:380px;}
  .showroom-teaser-copy{order:2;}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important;transition-duration:0.001ms !important;}
  [data-reveal],.js-ready [data-reveal]:not(.in){opacity:1;transform:none;}
  .marquee-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;padding:0 20px;}
  .review-carousel{overflow:hidden;margin-left:0;margin-right:0;padding:0;}
  .review-carousel::before,.review-carousel::after{display:none;}
  .review-carousel-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;}
  .service-card:hover img,.gallery-grid a:hover img,.work-shot:hover img{transform:none;}
}
