@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700;900&family=Roboto+Condensed:wght@700;900&display=swap');

:root{
  --teal:#00b9c4;
  --teal-dark:#079aa3;
  --ink:#182433;
  --slate:#324559;
  --text:#536070;
  --muted:#eef3f4;
  --concrete:#f7f9f9;
  --line:#dce5e7;
  --black:#070a0d;
  --white:#ffffff;
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:Roboto,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.58;overflow-x:hidden}
a{color:inherit}img{display:block;max-width:100%}
main{background:#fff}
body:before{content:'v7-clean';display:none}

h1,h2{font-family:'Roboto Condensed',Roboto,Arial,sans-serif;font-weight:900;line-height:.98;letter-spacing:-.035em;color:var(--ink);margin:0 0 1rem;text-wrap:balance}
h3{font-family:Roboto,Arial,sans-serif;font-weight:900;line-height:1.15;color:var(--ink);margin:0 0 .55rem;text-wrap:balance}
p{margin:.25rem 0 1rem;color:var(--text)}
.kicker,.date{margin:0 0 .75rem;color:var(--teal-dark);font-size:.78rem;line-height:1.2;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.lead{font-size:1.12rem;font-weight:500;color:var(--slate)}

/* top and navigation */
.top-strip{background:#071016;color:#fff;font-size:.88rem;font-weight:700;letter-spacing:.01em}
.top-inner{max-width:var(--max);margin:auto;padding:.55rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.top-inner a{color:#fff;text-decoration:none}.dot{display:inline-block;width:5px;height:5px;background:var(--teal);margin:0 .65rem;vertical-align:middle}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1.2rem;min-height:78px;padding:.72rem clamp(1rem,3vw,2rem);box-shadow:0 4px 14px rgba(0,0,0,.035)}
.brand{display:flex;align-items:center;flex:0 0 auto;text-decoration:none}.brand img{width:196px;max-height:58px;object-fit:contain}.main-nav{display:flex;align-items:center;justify-content:flex-end;gap:.15rem;flex-wrap:wrap}.nav-link,.nav-dropdown-button,.nav-cta{font:inherit;font-size:.9rem;font-weight:900;text-decoration:none;border:0;background:transparent;color:var(--ink);padding:.62rem .75rem;border-radius:3px;cursor:pointer;white-space:nowrap}.nav-link:hover,.nav-link.active,.nav-dropdown-button:hover{background:var(--muted)}.nav-cta{background:var(--teal);color:#fff;border:1px solid var(--teal);padding:.68rem .9rem}.nav-cta:hover{background:var(--teal-dark);border-color:var(--teal-dark)}
.nav-group{position:relative}.dropdown-panel{display:none;position:absolute;right:0;top:calc(100% + .5rem);width:250px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 28px rgba(0,0,0,.10);padding:.35rem;border-radius:0}.nav-group:hover .dropdown-panel,.nav-group:focus-within .dropdown-panel,.nav-group.open .dropdown-panel{display:grid;gap:.1rem}.dropdown-panel a{text-decoration:none;font-weight:800;color:var(--ink);padding:.65rem .75rem;border-radius:0}.dropdown-panel a:hover{background:var(--muted);color:var(--teal-dark)}.menu-toggle{display:none;background:var(--ink);border:0;width:44px;height:40px;padding:9px;cursor:pointer;border-radius:0}.menu-toggle span{display:block;height:2px;background:#fff;margin:5px 0}

/* hero */
.hero-shell{position:relative;background:linear-gradient(90deg,#fff 0%,#fff 56%,#eef4f5 56%,#eef4f5 100%);border-bottom:1px solid var(--line);overflow:hidden;min-height:0;display:block}.hero-bg{position:absolute;right:0;top:0;width:44%;height:100%;background-size:cover;background-position:center;opacity:1;filter:none;transform:none}.hero-bg:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(238,244,245,.12),rgba(238,244,245,0))}.hero-scrim{display:none}.hero-grid{position:relative;z-index:2;max-width:var(--max);margin:auto;padding:4.8rem 1rem;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:2rem;align-items:center}.hero-copy{color:var(--ink);max-width:770px}.hero-copy h1{font-size:clamp(2.85rem,6vw,5.85rem);max-width:780px}.hero-lead{font-size:1.08rem;line-height:1.75;max-width:660px;color:var(--slate)}.hero-actions,.cta-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.55rem}.hero-card{background:#fff;border:1px solid var(--line);border-top:5px solid var(--teal);padding:1.2rem;box-shadow:none;border-radius:0;max-width:300px}.hero-card .mini-label{display:block;color:var(--teal-dark);font-weight:900;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;margin-bottom:.65rem}.hero-card strong{display:block;font-size:1.12rem;line-height:1.25;color:var(--ink);margin-bottom:.8rem}.hero-card a{font-weight:900;color:var(--teal-dark);text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:46px;padding:.82rem 1.05rem;background:var(--teal);color:#fff;border:1px solid var(--teal);font-weight:900;text-decoration:none;border-radius:0;box-shadow:none;cursor:pointer;line-height:1.15}.btn:hover{background:var(--teal-dark);border-color:var(--teal-dark)}.btn-glass,.btn-outline-light{background:#fff;color:var(--ink);border-color:var(--ink)}.btn-light{background:#fff;color:var(--ink);border-color:#fff}

/* info strip */
.quick-panel{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:#fff}.quick-panel div{padding:1.25rem 1rem;border-right:1px solid var(--line)}.quick-panel span{display:block;color:var(--teal-dark);font-weight:900;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem}.quick-panel strong{display:block;color:var(--ink);font-size:1.04rem;line-height:1.25;margin:.25rem 0}.quick-panel p{font-size:.95rem;margin:0;color:var(--text)}

/* section rhythm. Smaller padding prevents the giant blank gaps. */
.section,.feature-block,.gallery-wrap,.faq-section,.blog-grid,.article-body{max-width:var(--max);margin:0 auto;padding:3.25rem 1rem}.intro-section{max-width:var(--max);margin:0 auto;padding:3.25rem 1rem 1.5rem;text-align:left}.intro-section h1{font-size:clamp(2.25rem,4.6vw,4rem);max-width:900px}.intro-section p{font-size:1.05rem;max-width:760px;color:var(--text);margin-left:0}.section-head{text-align:left;margin-bottom:1.6rem}.section-head h2{font-size:clamp(2.15rem,4.5vw,4rem);max-width:840px}.section-head p{max-width:740px;margin-left:0;color:var(--text)}.section.muted{max-width:none;background:var(--concrete);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section.muted>.section-head,.section.muted>.service-grid,.section.muted>.image-card-grid,.section.muted>.two-up,.section.muted>.split-card{max-width:var(--max);margin-left:auto;margin-right:auto}.section + .section,.feature-block + .feature-block{padding-top:2rem}main>.intro-section+.section{padding-top:1.5rem}

/* square cards / image grids */
.service-grid,.image-card-grid,.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);padding:0}.service-tile,.image-card,.blog-card{background:#fff;border:0;border-radius:0;box-shadow:none;overflow:hidden}.service-tile:hover{transform:none;box-shadow:none}.tile-image img,.image-card img{width:100%;height:240px;object-fit:cover;filter:none;border-radius:0;transition:none}.service-tile:hover img{transform:none}.tile-copy,.image-card div,.blog-card{padding:1.15rem}.tile-copy h3,.image-card h3,.blog-card h2{font-size:1.3rem}.tile-copy p,.image-card p,.blog-card p{font-size:.98rem}.tile-copy span,.image-card a,.blog-card a,.article-body a:not(.btn){color:var(--teal-dark);font-weight:900;text-decoration:none}

/* clean non-overlapping callouts */
.dark-band{max-width:var(--max);margin:0 auto;padding:2rem 1rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.25rem;background:#fff;color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}.dark-band h2{font-size:clamp(2.1rem,4vw,3.5rem);max-width:760px;margin:0;color:var(--ink)}.dark-band .btn-light{background:var(--teal);border-color:var(--teal);color:#fff}
.split-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:0;box-shadow:none;padding:1.6rem}.split-card h2{font-size:clamp(2rem,4vw,3.5rem);margin:0}.split-card p{margin:0;color:var(--text)}

/* feature sections */
.feature-block{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}.feature-image img{height:100%;min-height:410px;width:100%;object-fit:cover;border-radius:0;box-shadow:none;filter:none}.feature-copy{background:#fff;border:1px solid var(--line);border-left:0;border-radius:0;box-shadow:none;padding:clamp(1.35rem,3vw,2.3rem)}.feature-copy h2{font-size:clamp(2.05rem,4.4vw,4rem)}.feature-copy p{color:var(--text)}.feature-reverse .feature-image{order:2}.feature-reverse .feature-copy{border-left:1px solid var(--line);border-right:0}.check-list{list-style:none;margin:1rem 0 1.35rem;padding:0;display:grid;gap:.55rem}.check-list li{position:relative;padding-left:1.45rem;color:var(--text)}.check-list li:before{content:'';position:absolute;left:0;top:.47rem;width:.65rem;height:.65rem;background:var(--teal)}
.service-area-strip{max-width:var(--max);margin:0 auto 3.25rem;padding:1.8rem 1rem;background:#fff;border:1px solid var(--line);border-radius:0;text-align:left;box-shadow:none}.service-area-strip h2{font-size:clamp(2rem,4vw,3.55rem);max-width:950px;margin:0 0 1.1rem}.service-area-strip p{max-width:900px}

/* interior pages */
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1.25rem;align-items:start}.content-main,.sticky-card,.contact-card,.estimate-form,.estimate-side,.article-body,.faq-section details{background:#fff;border:1px solid var(--line);border-radius:0;box-shadow:none}.content-main,.sticky-card,.contact-card,.estimate-form,.estimate-side{padding:1.25rem}.content-main h2,.article-body h2{font-size:clamp(2rem,4vw,3.45rem)}.content-main h3,.article-body h3{font-size:1.35rem;margin-top:1.35rem}.sticky-card{position:sticky;top:98px;background:var(--concrete)}.sticky-card .btn{width:100%;margin-top:.4rem}.rounded-img{border-radius:0;width:100%;height:240px;object-fit:cover;margin-bottom:1rem;box-shadow:none}.mini-faq{display:grid;gap:.85rem}.mini-faq h3{font-size:1.1rem;margin:0}
.gallery-wrap{max-width:1220px}.gallery-masonry{columns:3 280px;column-gap:1rem}.gallery-masonry.compact{columns:3 240px}.gallery-masonry figure{break-inside:avoid;margin:0 0 1rem;background:#fff;border:1px solid var(--line);border-radius:0;box-shadow:none;overflow:hidden}.gallery-masonry img{width:100%;height:auto}.gallery-masonry figcaption{font-size:.88rem;color:var(--text);padding:.65rem .75rem}.faq-section details{margin:.65rem 0;padding:1rem 1.1rem}.faq-section summary{cursor:pointer;font-weight:900;color:var(--ink);font-size:1.05rem}.two-up{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.two-up img{height:360px;width:100%;object-fit:cover;border-radius:0;box-shadow:none;filter:none}

/* forms */
.estimate-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.25rem;align-items:start}.contact-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:1.25rem;align-items:start}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}form{display:grid;gap:.85rem}label{display:grid;gap:.35rem;color:var(--ink);font-weight:900}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:0;padding:.82rem .9rem;font:inherit;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,185,196,.10)}textarea{resize:vertical}.form-status{font-weight:900;color:var(--teal-dark);margin:.2rem 0}.mini-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem}.mini-gallery img{height:96px;width:100%;object-fit:cover;border-radius:0}
.blog-grid{padding:0}.article-body{max-width:900px;margin-top:1.5rem;margin-bottom:2rem;padding:1.35rem}.article-body .lead{font-size:1.12rem;color:var(--slate);font-weight:500}.socials{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:1rem}.socials a{padding:.48rem .65rem;border:1px solid rgba(255,255,255,.20);text-decoration:none;font-weight:800;color:#fff;border-radius:0}.socials.dark a{color:var(--ink);border-color:var(--line);background:var(--concrete)}

/* footer */
.footer-cta{max-width:none;margin:0;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.25rem;background:var(--ink);color:#fff;padding:2.8rem clamp(1rem,calc((100vw - var(--max))/2 + 1rem),6rem);border-radius:0;box-shadow:none}.footer-cta h2{font-size:clamp(2.1rem,4vw,3.5rem);max-width:850px;color:#fff;margin:0}.footer-cta p,.footer-cta .kicker{color:var(--teal)}.site-footer{background:#070a0d;color:#fff;padding:2.8rem 1rem 1.2rem}.footer-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.15fr .8fr .95fr 1fr;gap:1.3rem}.footer-brand img{width:220px;margin-bottom:1rem}.site-footer h3{color:#fff;font-size:1.05rem;margin:.1rem 0 .65rem}.site-footer p,.site-footer a{color:rgba(255,255,255,.76)}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .75rem}.footer-links a{text-decoration:none}.footer-bottom{max-width:var(--max);margin:1.8rem auto 0;border-top:1px solid rgba(255,255,255,.14);padding-top:1rem;display:flex;justify-content:space-between;gap:1rem;color:rgba(255,255,255,.62);font-size:.88rem}.reveal,.reveal.in-view{opacity:1!important;visibility:visible!important;transform:none!important}

@media(max-width:1080px){.main-nav{display:none;position:absolute;top:calc(100% + .5rem);left:1rem;right:1rem;background:#fff;border:1px solid var(--line);box-shadow:0 18px 35px rgba(0,0,0,.12);padding:.75rem;align-items:stretch}.main-nav.open{display:grid}.nav-link,.nav-dropdown-button,.nav-cta{text-align:left;width:100%;border-radius:0}.nav-group{display:grid}.dropdown-panel{position:static;width:100%;box-shadow:none;border:0;background:var(--concrete);margin:.2rem 0 .55rem}.nav-group .dropdown-panel{display:none}.nav-group.open .dropdown-panel{display:grid}.menu-toggle{display:block}.brand img{width:176px}.hero-shell{background:#fff}.hero-bg{position:relative;width:100%;height:320px;display:block;order:0}.hero-grid{grid-template-columns:1fr;padding:3rem 1rem}.hero-card{max-width:480px}.quick-panel{grid-template-columns:1fr;border-left:0}.quick-panel div{border-right:0;border-bottom:1px solid var(--line)}.quick-panel div:last-child{border-bottom:0}.service-grid,.image-card-grid,.blog-grid{grid-template-columns:1fr 1fr}.feature-block,.feature-reverse{grid-template-columns:1fr}.feature-reverse .feature-image{order:0}.feature-copy,.feature-reverse .feature-copy{border:1px solid var(--line);border-top:0}.feature-image img{min-height:340px;height:340px}.content-grid,.estimate-layout,.contact-layout,.footer-grid{grid-template-columns:1fr}.sticky-card{position:relative;top:0}.dark-band,.split-card,.footer-cta{grid-template-columns:1fr}.top-inner{font-size:.82rem}}
@media(max-width:680px){.top-strip{display:none}.site-header{min-height:68px;padding:.6rem 1rem}.brand img{width:154px}.hero-bg{height:250px}.hero-grid{padding:2.5rem 1rem}.hero-copy h1{font-size:clamp(2.35rem,11vw,3.8rem)}.hero-lead{font-size:1rem}.hero-actions,.cta-buttons{display:grid}.btn{width:100%}.section,.feature-block,.gallery-wrap,.faq-section,.blog-grid,.article-body{padding:2.5rem 1rem}.intro-section{padding:2.5rem 1rem 1.1rem}.intro-section h1{font-size:clamp(2.1rem,10vw,3.2rem)}.service-grid,.image-card-grid,.blog-grid,.form-row,.two-up{grid-template-columns:1fr}.tile-image img,.image-card img{height:220px}.two-up img{height:260px}.gallery-masonry{columns:1}.footer-cta{padding:2.4rem 1rem}.footer-links{grid-template-columns:1fr}.footer-bottom{display:grid}.mini-gallery img{height:85px}}


/* V8 polished landscape/concrete design: not bare, not agency-style, balanced roundness, shaped panels, preserved footer. */
body:before{content:'v8-polished';display:none}
:root{
  --radius-lg:26px;
  --radius-md:18px;
  --radius-sm:12px;
  --card-shadow:0 22px 55px rgba(17,34,50,.12);
  --card-shadow-soft:0 14px 32px rgba(17,34,50,.075);
  --teal-soft:rgba(0,185,196,.10);
  --sand:#f2eee8;
  --warm:#fbfaf7;
}
body{
  background:
    radial-gradient(circle at 10% 16%, rgba(0,185,196,.075), transparent 32rem),
    radial-gradient(circle at 88% 42%, rgba(50,69,89,.055), transparent 30rem),
    #fff;
}
main{background:transparent;position:relative;overflow:hidden}
main:before{content:'';position:absolute;inset:36rem auto auto -12rem;width:26rem;height:26rem;border:42px solid rgba(0,185,196,.08);border-radius:50%;pointer-events:none;z-index:0}
main>*{position:relative;z-index:1}
h1,h2{letter-spacing:-.028em;line-height:1.02}.lead{line-height:1.7}.kicker{color:var(--teal-dark)}

/* header gets a designed but clean feel */
.site-header{min-height:82px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(11,24,38,.055);border-bottom:1px solid rgba(24,36,51,.10)}
.brand img{width:206px;max-height:62px}.nav-link,.nav-dropdown-button{border-radius:10px}.nav-link:hover,.nav-link.active,.nav-dropdown-button:hover{background:#f0f6f6;color:var(--ink)}.nav-cta{border-radius:10px;box-shadow:0 10px 25px rgba(0,185,196,.22)}.dropdown-panel{border-radius:16px;box-shadow:0 18px 45px rgba(11,24,38,.13);padding:.55rem;border:1px solid rgba(24,36,51,.12)}.dropdown-panel a{border-radius:10px}

/* hero: image is clear, shaped, and not a dark overlay */
.hero-shell{
  background:linear-gradient(115deg,#ffffff 0%,#ffffff 55%,#edf8f9 55%,#edf8f9 100%);
  border-bottom:0;
  overflow:hidden;
  min-height:auto;
}
.hero-shell:before{content:'';position:absolute;right:39%;top:0;width:10rem;height:100%;background:linear-gradient(180deg,rgba(0,185,196,.18),rgba(0,185,196,0));transform:skewX(-10deg);transform-origin:top;opacity:.85;pointer-events:none}
.hero-bg{
  right:clamp(1rem,3vw,3.2rem);
  top:2.25rem;
  width:43%;
  height:calc(100% - 4.5rem);
  border-radius:var(--radius-lg) 0 var(--radius-lg) var(--radius-lg);
  box-shadow:var(--card-shadow);
  overflow:hidden;
  background-position:center;
}
.hero-bg:after{background:linear-gradient(0deg,rgba(24,36,51,.05),rgba(24,36,51,.05))}
.hero-grid{padding:clamp(3.7rem,7vw,5.8rem) 1rem;grid-template-columns:minmax(0,1fr) minmax(285px,340px);gap:2.2rem;align-items:center}.hero-copy{max-width:710px}.hero-copy h1{font-size:clamp(2.75rem,5.2vw,5.1rem);max-width:700px;line-height:1.01}.hero-lead{max-width:620px;color:#3e4e60;font-size:1.08rem;line-height:1.72}.hero-card{border:0;border-left:7px solid var(--teal);border-radius:var(--radius-md);box-shadow:var(--card-shadow);background:rgba(255,255,255,.95);padding:1.35rem;backdrop-filter:blur(10px)}.hero-card strong{font-size:1.18rem}.btn{border-radius:12px;box-shadow:0 12px 26px rgba(0,185,196,.18);transition:transform .18s ease, box-shadow .18s ease, background .18s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(0,185,196,.22)}.btn-glass,.btn-outline-light{background:#fff;border-color:#cbd7da;color:var(--ink);box-shadow:0 12px 26px rgba(17,34,50,.06)}

/* quick stats: no overlap, no bare outlines */
.quick-panel{margin:2rem auto 0;gap:1rem;border:0;background:transparent;padding:0 1rem;box-shadow:none}.quick-panel div{border:1px solid rgba(24,36,51,.10);border-top:4px solid var(--teal);border-radius:var(--radius-md);background:#fff;padding:1.35rem;box-shadow:var(--card-shadow-soft)}.quick-panel strong{font-size:1.08rem}

/* tighter section rhythm with designed backgrounds */
.section,.feature-block,.gallery-wrap,.faq-section,.blog-grid,.article-body{padding:clamp(2.8rem,5vw,4.6rem) 1rem}.intro-section{padding:clamp(2.8rem,5vw,4.2rem) 1rem 1rem}.section-head{margin-bottom:1.8rem}.section-head h2,.intro-section h1{font-size:clamp(2.2rem,4.4vw,4rem)}.section-head p{font-size:1.04rem;line-height:1.75}.section.muted{background:linear-gradient(180deg,#f6fbfb 0%,#fff 100%);border:0}.section + .section,.feature-block + .feature-block{padding-top:3rem}

/* service cards regain polish without becoming the Arsenal layout */
.service-grid,.image-card-grid,.blog-grid{background:transparent;border:0;gap:1.2rem;padding:0}.service-tile,.image-card,.blog-card{border:1px solid rgba(24,36,51,.10);border-radius:var(--radius-md);box-shadow:var(--card-shadow-soft);overflow:hidden;transition:transform .2s ease, box-shadow .2s ease;background:#fff}.service-tile:hover,.image-card:hover,.blog-card:hover{transform:translateY(-4px);box-shadow:var(--card-shadow)}.tile-image,.image-card{position:relative}.tile-image img,.image-card img{height:250px;border-radius:0;transition:transform .35s ease}.service-tile:hover img,.image-card:hover img{transform:scale(1.035)}.tile-copy,.image-card div,.blog-card{padding:1.25rem}.tile-copy h3,.image-card h3,.blog-card h2{font-size:1.34rem}.tile-copy span,.image-card a,.blog-card a,.article-body a:not(.btn){text-decoration:none;border-bottom:2px solid rgba(0,185,196,.25);padding-bottom:.08rem}.tile-copy span:hover,.image-card a:hover,.blog-card a:hover{border-bottom-color:var(--teal)}

/* callout gets shape and color again */
.dark-band{border:0;border-radius:var(--radius-lg);margin:2rem auto;background:linear-gradient(135deg,var(--ink),#0b1116 68%,#074b51);box-shadow:var(--card-shadow);padding:2.25rem;overflow:hidden;position:relative}.dark-band:after{content:'';position:absolute;right:-4rem;top:-5rem;width:16rem;height:16rem;border-radius:50%;border:32px solid rgba(0,185,196,.16)}.dark-band>*{position:relative;z-index:1}.dark-band h2{color:#fff}.dark-band .kicker{color:var(--teal)}.dark-band .btn-light{background:#fff;border-color:#fff;color:var(--ink);box-shadow:none}.dark-band .btn-light:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.split-card{border:1px solid rgba(24,36,51,.10);border-radius:var(--radius-lg);box-shadow:var(--card-shadow-soft);background:#fff;padding:1.8rem;overflow:hidden;position:relative}.split-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--teal)}

/* feature block: clear image plus soft content panel */
.feature-block{gap:1.2rem;align-items:center}.feature-image img{min-height:420px;border-radius:var(--radius-lg);box-shadow:var(--card-shadow-soft)}.feature-copy,.feature-reverse .feature-copy{border:1px solid rgba(24,36,51,.10);border-radius:var(--radius-lg);box-shadow:var(--card-shadow-soft);background:#fff;padding:clamp(1.5rem,3vw,2.4rem)}.feature-copy h2{font-size:clamp(2.1rem,4.3vw,4rem)}.check-list li:before{width:.62rem;height:.62rem;border-radius:50%;box-shadow:0 0 0 5px rgba(0,185,196,.12);top:.48rem}.service-area-strip{border:0;border-radius:var(--radius-lg);box-shadow:var(--card-shadow-soft);background:linear-gradient(135deg,#fff,#f4fbfb);padding:2rem;margin-bottom:3rem}.service-area-strip h2{font-size:clamp(2rem,4vw,3.5rem)}

/* interior pages and forms should look finished, not like wireframes */
.content-main,.sticky-card,.contact-card,.estimate-form,.estimate-side,.article-body,.faq-section details{border:1px solid rgba(24,36,51,.10);border-radius:var(--radius-md);box-shadow:var(--card-shadow-soft);background:#fff}.content-main,.sticky-card,.contact-card,.estimate-form,.estimate-side{padding:1.45rem}.sticky-card{background:linear-gradient(180deg,#fff,#f7fbfb)}.rounded-img,.two-up img,.mini-gallery img{border-radius:var(--radius-sm);box-shadow:0 10px 22px rgba(17,34,50,.08)}.faq-section details{margin:.8rem 0;padding:1.1rem 1.2rem}.gallery-masonry figure{border:0;border-radius:var(--radius-md);box-shadow:var(--card-shadow-soft)}.gallery-masonry figcaption{padding:.75rem .9rem}.estimate-layout,.contact-layout,.content-grid{gap:1.4rem}.form-row{gap:1rem}input,select,textarea{border-radius:12px;background:#f9fbfb;border:1px solid #dce6e8;padding:.9rem 1rem}input:focus,select:focus,textarea:focus{background:#fff}.contact-card h2,.estimate-side h2{font-size:1.55rem}.mini-gallery{gap:.65rem}

/* keep footer strong and polished */
.footer-cta{background:linear-gradient(135deg,#182433 0%,#070a0d 70%,#074b51 100%);box-shadow:none}.footer-cta .btn-light{border-color:#fff;background:#fff;color:var(--ink)}.footer-cta .btn-outline-light{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;box-shadow:none}.site-footer{background:#070a0d}

@media(max-width:1080px){
  .hero-shell{background:#fff}.hero-shell:before{display:none}.hero-bg{position:relative;right:auto;top:auto;width:auto;height:330px;margin:1rem;border-radius:var(--radius-lg)}.hero-grid{padding:2.7rem 1rem 3.1rem}.quick-panel{grid-template-columns:1fr;margin-top:1rem}.quick-panel div{border-bottom:1px solid rgba(24,36,51,.10)}.service-grid,.image-card-grid,.blog-grid{grid-template-columns:1fr 1fr}.feature-block,.feature-reverse{grid-template-columns:1fr}.feature-reverse .feature-image{order:0}.feature-image img{height:360px;min-height:360px}.dark-band,.split-card,.footer-cta{grid-template-columns:1fr}.main-nav{border-radius:var(--radius-md)}.nav-link,.nav-dropdown-button,.nav-cta{border-radius:10px}.dropdown-panel{border-radius:12px}
}
@media(max-width:680px){
  .hero-bg{height:250px;margin:.8rem;border-radius:20px}.hero-grid{padding:2rem 1rem 2.6rem}.hero-copy h1{font-size:clamp(2.25rem,10.5vw,3.65rem)}.service-grid,.image-card-grid,.blog-grid,.form-row,.two-up{grid-template-columns:1fr}.section,.feature-block,.gallery-wrap,.faq-section,.blog-grid,.article-body{padding:2.3rem 1rem}.dark-band,.service-area-strip,.split-card{border-radius:20px;margin-left:1rem;margin-right:1rem;padding:1.5rem}.footer-cta{padding:2.4rem 1rem}.feature-image img{height:290px;min-height:290px}.tile-image img,.image-card img{height:220px}.brand img{width:160px}
}


/* V9 compact spacing pass: keep the polished V8 design/footer, but tighten page rhythm to ~30-40px between major sections. */
body:before{content:'v9-compact-spacing';display:none}

/* Hero and top modules */
.hero-grid{
  padding-top:clamp(2.6rem,4.5vw,4rem) !important;
  padding-bottom:clamp(2.4rem,4vw,3.6rem) !important;
}
.hero-actions,.cta-buttons{margin-top:1.1rem !important}
.quick-panel{margin-top:1.35rem !important}
.quick-panel div{padding:1.1rem !important}

/* Main vertical rhythm. Each section carries about 18-22px on each side so adjacent sections land around 36-44px total. */
.section,
.feature-block,
.gallery-wrap,
.faq-section,
.blog-grid,
.article-body{
  padding-top:22px !important;
  padding-bottom:22px !important;
}
.intro-section{
  padding-top:34px !important;
  padding-bottom:12px !important;
}
.section + .section,
.feature-block + .feature-block,
main > .intro-section + .section{
  padding-top:22px !important;
}
.section.muted{
  padding-top:28px !important;
  padding-bottom:28px !important;
}
.section-head{
  margin-bottom:18px !important;
}
.section-head h2,
.intro-section h1{
  margin-bottom:.65rem !important;
}
.section-head p,
.intro-section p,
.feature-copy p,
.content-main p,
.article-body p{
  margin-bottom:.75rem !important;
}

/* Cards, image groups, and service sections */
.service-grid,
.image-card-grid,
.blog-grid{
  gap:18px !important;
}
.tile-copy,
.image-card div,
.blog-card{
  padding:1.05rem !important;
}
.tile-image img,
.image-card img{
  height:230px !important;
}

/* Feature/image blocks: pull text and photos closer without flattening the design. */
.feature-block{
  gap:22px !important;
}
.feature-image img{
  min-height:360px !important;
}
.feature-copy,
.feature-reverse .feature-copy{
  padding:clamp(1.25rem,2.5vw,1.9rem) !important;
}
.check-list{
  margin:.75rem 0 1rem !important;
  gap:.45rem !important;
}

/* Callouts and panels */
.dark-band{
  margin-top:28px !important;
  margin-bottom:28px !important;
  padding:1.8rem !important;
}
.split-card{
  padding:1.45rem !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.service-area-strip{
  margin-top:0 !important;
  margin-bottom:28px !important;
  padding:1.65rem !important;
}
.two-up{
  gap:18px !important;
}

/* Interior pages and forms */
.content-grid,
.estimate-layout,
.contact-layout{
  gap:22px !important;
}
.content-main,
.sticky-card,
.contact-card,
.estimate-form,
.estimate-side{
  padding:1.25rem !important;
}
.content-main h2,
.article-body h2{
  margin-top:.75rem !important;
  margin-bottom:.65rem !important;
}
.content-main h3,
.article-body h3{
  margin-top:1rem !important;
  margin-bottom:.45rem !important;
}
.faq-section details{
  margin:.55rem 0 !important;
  padding:1rem 1.1rem !important;
}
.gallery-masonry{
  gap:18px !important;
}
.gallery-masonry figure{
  margin:0 0 18px !important;
}
.form-row,
form{
  gap:.75rem !important;
}
.mini-gallery{
  margin-top:.75rem !important;
}

/* Footer stays polished, just removes excess white before it. */
.footer-cta{
  margin-top:28px !important;
  margin-bottom:0 !important;
  padding-top:2rem !important;
  padding-bottom:2rem !important;
}
.site-footer{
  padding-top:2.3rem !important;
}

@media(max-width:1080px){
  .hero-grid{padding-top:2.3rem !important;padding-bottom:2.6rem !important}
  .hero-bg{margin-bottom:0 !important}
  .section,.feature-block,.gallery-wrap,.faq-section,.blog-grid,.article-body{padding-top:20px !important;padding-bottom:20px !important}
  .intro-section{padding-top:28px !important;padding-bottom:10px !important}
  .section.muted{padding-top:24px !important;padding-bottom:24px !important}
  .feature-image img{height:320px !important;min-height:320px !important}
  .dark-band,.service-area-strip,.split-card{margin-top:24px !important;margin-bottom:24px !important}
}
@media(max-width:680px){
  .section,.feature-block,.gallery-wrap,.faq-section,.blog-grid,.article-body{padding-top:18px !important;padding-bottom:18px !important}
  .intro-section{padding-top:24px !important;padding-bottom:8px !important}
  .section-head{margin-bottom:14px !important}
  .hero-grid{padding-top:1.8rem !important;padding-bottom:2rem !important}
  .quick-panel{margin-top:1rem !important}
  .dark-band,.service-area-strip,.split-card{margin-top:20px !important;margin-bottom:20px !important;padding:1.25rem !important}
  .feature-image img{height:260px !important;min-height:260px !important}
  .tile-image img,.image-card img{height:205px !important}
  .footer-cta{margin-top:20px !important;padding-top:1.8rem !important;padding-bottom:1.8rem !important}
}


/* V10 navigation dropdown fix.
   The desktop dropdown previously had a small dead zone between the nav item and the dropdown panel.
   This transparent bridge keeps the hover state alive while moving the cursor into the menu. */
@media (min-width:1081px){
  .site-header{overflow:visible;}
  .main-nav{overflow:visible;}
  .nav-group{position:relative;}
  .nav-group::after{
    content:"";
    position:absolute;
    left:-8px;
    right:-8px;
    top:100%;
    height:14px;
    background:transparent;
    pointer-events:auto;
    z-index:1001;
  }
  .dropdown-panel{
    top:calc(100% + 10px) !important;
    z-index:1002;
    pointer-events:auto;
  }
  .nav-group:hover .dropdown-panel,
  .nav-group:focus-within .dropdown-panel,
  .nav-group.open .dropdown-panel{
    display:grid;
  }
}


/* V11 mobile stacking pass: fixes phone view across every page. Keeps V10 desktop, but changes the mobile hero/order, heading scale, grid stacking, and overflow behavior. */
body:before{content:'v11-mobile-stack';display:none}
html,body{width:100%;max-width:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
img,video,iframe{max-width:100%;height:auto}
.hero-copy,.hero-card,.content-main,.sticky-card,.estimate-form,.estimate-side,.contact-card,.feature-copy,.section-head,.intro-section,.article-body{min-width:0}

@media (max-width:1080px){
  .site-header{overflow:visible}
  .hero-shell{
    display:flex !important;
    flex-direction:column !important;
    background:linear-gradient(180deg,#ffffff 0%,#ffffff 62%,#f3fbfb 100%) !important;
    overflow:hidden !important;
  }
  .hero-shell:before{display:none !important}
  .hero-grid{
    order:1 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:760px !important;
    padding:30px 18px 18px !important;
    gap:18px !important;
    margin:0 auto !important;
  }
  .hero-bg{
    order:2 !important;
    position:relative !important;
    inset:auto !important;
    width:calc(100% - 36px) !important;
    max-width:760px !important;
    height:clamp(220px,56vw,390px) !important;
    min-height:0 !important;
    margin:0 auto 24px !important;
    border-radius:22px !important;
    box-shadow:0 14px 32px rgba(17,34,50,.13) !important;
    background-size:cover !important;
    background-position:center !important;
    display:block !important;
  }
  .hero-bg:after{background:linear-gradient(0deg,rgba(24,36,51,.03),rgba(24,36,51,.03)) !important}
  .hero-copy{width:100% !important;max-width:none !important}
  .hero-copy .kicker{max-width:100% !important;letter-spacing:.14em !important;line-height:1.45 !important;overflow-wrap:normal !important;word-break:normal !important}
  .hero-copy h1{
    font-size:clamp(2.35rem,8.8vw,4rem) !important;
    line-height:1.02 !important;
    letter-spacing:-.025em !important;
    max-width:100% !important;
    margin-bottom:.75rem !important;
    text-wrap:balance !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
  }
  .hero-lead{font-size:1rem !important;line-height:1.62 !important;max-width:100% !important;margin-bottom:0 !important}
  .hero-card{width:100% !important;max-width:none !important;margin:0 !important;border-radius:18px !important;padding:1.15rem !important}
  .quick-panel{max-width:760px !important;width:calc(100% - 36px) !important;margin:0 auto 24px !important;grid-template-columns:1fr !important;padding:0 !important;gap:12px !important}
  .quick-panel div{border-radius:16px !important;padding:1rem !important;border:1px solid rgba(24,36,51,.10) !important;border-top:4px solid var(--teal) !important}

  .section,.feature-block,.gallery-wrap,.faq-section,.article-body{width:100% !important;max-width:var(--max) !important;padding-left:18px !important;padding-right:18px !important}
  .intro-section{width:100% !important;padding-left:18px !important;padding-right:18px !important}
  .section-head h2,.intro-section h1,.feature-copy h2,.service-area-strip h2,.content-main h2,.article-body h2,.footer-cta h2{
    line-height:1.05 !important;
    letter-spacing:-.022em !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
  }
  .section-head h2,.intro-section h1{font-size:clamp(2rem,7.5vw,3.25rem) !important;max-width:100% !important}
  .feature-copy h2,.service-area-strip h2{font-size:clamp(1.9rem,7vw,3rem) !important}
  .content-main h2,.article-body h2{font-size:clamp(1.75rem,6.6vw,2.65rem) !important}

  .service-grid,.image-card-grid,.blog-grid,.content-grid,.estimate-layout,.contact-layout,.feature-block,.feature-reverse,.two-up,.form-row,.footer-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:100% !important;
  }
  .service-grid,.image-card-grid,.blog-grid{gap:16px !important;background:transparent !important;border:0 !important}
  .feature-reverse .feature-image,.feature-reverse .feature-copy{order:initial !important}
  .feature-copy,.feature-reverse .feature-copy{border-radius:18px !important;border:1px solid rgba(24,36,51,.10) !important}
  .feature-image img,.two-up img,.rounded-img{height:auto !important;min-height:0 !important;aspect-ratio:16/10 !important;object-fit:cover !important;border-radius:18px !important}
  .tile-image img,.image-card img{height:auto !important;aspect-ratio:16/10 !important;object-fit:cover !important}
  .gallery-masonry,.gallery-masonry.compact{columns:1 !important;column-gap:0 !important}
  .gallery-masonry figure{margin-bottom:16px !important}
  .mini-gallery{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
  .mini-gallery img{height:auto !important;aspect-ratio:1/1 !important;object-fit:cover !important}
  .dark-band,.service-area-strip,.split-card,.footer-cta{
    width:calc(100% - 36px) !important;
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    border-radius:20px !important;
  }
  .footer-cta{grid-template-columns:1fr !important}
}

@media (max-width:680px){
  .site-header{min-height:92px !important;padding:14px 24px !important;gap:12px !important}
  .brand img{width:148px !important;max-height:68px !important}
  .menu-toggle{width:52px !important;height:52px !important;border-radius:0 !important;flex:0 0 auto !important}
  .main-nav{left:16px !important;right:16px !important;top:calc(100% + 8px) !important;border-radius:18px !important;padding:.75rem !important}
  .nav-link,.nav-dropdown-button,.nav-cta{text-align:left !important;border-radius:12px !important}
  .dropdown-panel{border-radius:14px !important;margin:.25rem 0 .6rem !important;background:#f4fafb !important}

  .hero-grid{padding:28px 22px 16px !important;gap:16px !important}
  .hero-bg{width:calc(100% - 44px) !important;height:240px !important;margin-bottom:22px !important;border-radius:20px !important}
  .hero-copy .kicker{font-size:.78rem !important;letter-spacing:.15em !important;line-height:1.55 !important;margin-bottom:.75rem !important}
  .hero-copy h1{
    font-size:clamp(2.08rem,10vw,2.9rem) !important;
    line-height:1.06 !important;
    max-width:100% !important;
  }
  .hero-lead{font-size:.98rem !important;line-height:1.6 !important}
  .hero-actions,.cta-buttons{display:grid !important;grid-template-columns:1fr !important;gap:.65rem !important;margin-top:1rem !important}
  .btn{width:100% !important;min-height:48px !important;border-radius:12px !important}
  .hero-card{border-radius:18px !important}

  .quick-panel{width:calc(100% - 44px) !important;margin-bottom:22px !important}
  .section,.feature-block,.gallery-wrap,.faq-section,.article-body{padding:18px 22px !important}
  .intro-section{padding:24px 22px 10px !important}
  .section-head{margin-bottom:14px !important}
  .section-head h2,.intro-section h1{font-size:clamp(1.85rem,9.2vw,2.55rem) !important}
  .feature-copy h2,.service-area-strip h2{font-size:clamp(1.75rem,8.5vw,2.4rem) !important}
  .content-main h2,.article-body h2{font-size:clamp(1.55rem,7.4vw,2.15rem) !important}
  .section-head p,.intro-section p,.content-main p,.article-body p,.feature-copy p{font-size:.98rem !important;line-height:1.58 !important}
  .service-grid,.image-card-grid,.blog-grid{gap:14px !important}
  .tile-copy,.image-card div,.blog-card,.content-main,.sticky-card,.contact-card,.estimate-form,.estimate-side{padding:1rem !important}
  .tile-copy h3,.image-card h3,.blog-card h2{font-size:1.2rem !important;line-height:1.2 !important}
  .feature-block{gap:16px !important}
  .feature-image img,.two-up img,.rounded-img{border-radius:16px !important;aspect-ratio:4/3 !important}
  .dark-band,.service-area-strip,.split-card,.footer-cta{width:calc(100% - 44px) !important;margin-top:18px !important;margin-bottom:18px !important;padding:1.25rem !important;border-radius:18px !important}
  .dark-band h2,.split-card h2,.footer-cta h2{font-size:clamp(1.75rem,8.5vw,2.35rem) !important}
  .footer-grid{gap:1.2rem !important}
  .footer-brand img{width:190px !important}
  .footer-links{grid-template-columns:1fr !important}
  .footer-bottom{display:grid !important;gap:.45rem !important}
}

@media (max-width:390px){
  .site-header{padding-left:18px !important;padding-right:18px !important}
  .hero-grid{padding-left:18px !important;padding-right:18px !important}
  .hero-bg,.quick-panel,.dark-band,.service-area-strip,.split-card,.footer-cta{width:calc(100% - 36px) !important}
  .hero-copy h1{font-size:2rem !important;line-height:1.08 !important}
  .section,.feature-block,.gallery-wrap,.faq-section,.article-body,.intro-section{padding-left:18px !important;padding-right:18px !important}
}
