:root{--bg:#f7f6f1;--panel:#fff;--ink:#1c1b1a;--muted:#5b5651;--accent:#6b4a2b;--accent2:#edd5a5;--roof:#1f6d5d;--roof-rgb:31,109,93;--sky:#89bae7;--sky2:#b5d6f4;--stone:#527d7e;--line:rgba(0,0,0,.09);--shadow:0 10px 30px rgba(0,0,0,.08);--radius:18px}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);
background:linear-gradient(180deg,var(--sky2) 0%, var(--bg) 22%, #fff 100%)}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 18px}
.site-header{position:sticky;top:0;z-index:10;background:rgba(251,250,247,.92);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line);box-shadow:0 8px 18px rgba(0,0,0,.07)}
.header-inner{display:flex;gap:16px;align-items:center;padding:6px 0}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;min-width:260px}
.brand.has-logo{min-width:0}
.brand-logo{height:110px;width:auto;max-width:520px;display:block}
.brand.has-logo .brand-text{display:none}
@media (max-width:680px){
  .brand-logo{height:75px;max-width:360px}
}

.brand-name{font-weight:900;letter-spacing:.2px}
.brand-tag{font-size:12.5px;color:var(--muted)}
.nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;width:100%}
.nav a{font-size:13px;color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:12px;border:1px solid transparent}
.nav a:hover{background:rgba(var(--roof-rgb),.08);color:var(--ink)}
.nav a.active{background:rgba(var(--roof-rgb),.10);border-color:rgba(var(--roof-rgb),.18);color:var(--ink);font-weight:800}
.hero{padding:34px 0 18px}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:stretch}
.kicker{color:var(--roof);font-weight:800;margin:0 0 10px}
h1{font-size:46px;line-height:1.04;margin:0 0 12px;letter-spacing:-.4px;font-weight:950}
.subhead{font-size:17px;color:var(--muted);margin:0 0 18px;max-width:62ch;line-height:1.6}
.cta{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 14px;border-radius:14px;border:1px solid var(--line);
background:var(--panel);text-decoration:none;font-weight:800}
.btn.primary{background:linear-gradient(135deg,var(--roof),#13483f);border-color:transparent;color:#fff}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.ph{height:100%;min-height:260px;border-radius:16px;border:1px dashed rgba(107,74,43,.35);display:flex;align-items:center;justify-content:center;
color:var(--muted);background:linear-gradient(180deg, rgba(107,74,43,.05), rgba(180,138,90,.06))}
.section{padding:10px 0 26px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.card{padding:16px}
.card h3{margin:0 0 6px}
.card p{margin:0;color:var(--muted);line-height:1.55}
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.content{padding:18px}
.content h2{margin:0 0 10px;font-size:28px}
.content h3{margin:18px 0 8px}
.content p{margin:0 0 12px;color:var(--muted);line-height:1.75;font-size:16.25px}
.list{margin:10px 0 0;padding-left:18px;color:var(--muted)}
.list li{margin:6px 0}
.page{padding:22px 0 34px}
.page h2{margin:0 0 12px;font-size:30px}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.badge{font-size:12px;padding:6px 10px;border-radius:999px;background:rgba(var(--roof-rgb),.10);border:1px solid rgba(107,74,43,.16);color:var(--ink);font-weight:800}
.quote{padding:16px;border-left:4px solid rgba(107,74,43,.35);background:rgba(107,74,43,.05);border-radius:14px}
.quote .who{margin-top:8px;font-weight:900;color:var(--ink)}
.site-footer{border-top:1px solid var(--line);background:rgba(251,250,247,.92)}
.footer-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:16px;padding:22px 0}
.ft-title{font-weight:900;margin-bottom:8px}
.ft-muted{color:var(--muted);margin:6px 0;line-height:1.5}
.social{display:flex;gap:10px;flex-wrap:wrap}
.social a{color:var(--accent);text-decoration:none;font-weight:900}
.social a:hover{text-decoration:underline}
.newsletter{display:flex;gap:8px;align-items:center}
.newsletter input{flex:1;min-width:180px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff}
.newsletter button{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(135deg,var(--roof),#13483f);
color:#fff;font-weight:900;cursor:pointer}
.ft-note{font-size:12.5px;color:var(--muted);margin:10px 0 0}
.copyright{padding:12px 0 18px;color:var(--muted);font-size:12.5px}
.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  h1{font-size:34px;letter-spacing:-.2px}
  .grid3{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .nav{justify-content:flex-start}
}

/* Image helpers */
.img-block{width:100%;height:auto;border-radius:16px;display:block}
.hero-rotator{transition:opacity .6s ease}
.hero-rotator.is-fading{opacity:0}
.img-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
@media (max-width:980px){.img-grid{grid-template-columns:1fr}}

/* Image grids */
.imggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.imggrid.small{grid-template-columns:repeat(4,1fr)}
.imgcard{margin:0}
.imgcard img{width:100%;height:auto;border-radius:14px;border:1px solid var(--line);display:block}
@media (max-width:980px){
  .imggrid{grid-template-columns:repeat(2,1fr)}
  .imggrid.small{grid-template-columns:repeat(2,1fr)}
}


/* Plans & Estimates form */
.estimate-form{margin-top:18px}
.estimate-form fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:16px 14px;margin:14px 0;background:linear-gradient(180deg,#fff,#fbfaf7)}
.estimate-form legend{padding:0 8px;font-weight:900;color:var(--accent)}
.estimate-form .subhead{font-weight:900;margin:10px 0 8px}
.estimate-form .top-gap{margin-top:14px}
.estimate-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.estimate-form .field{display:flex;flex-direction:column;gap:6px}
.estimate-form .field label{font-weight:800;font-size:14px}
.estimate-form input[type="text"],
.estimate-form input[type="email"],
.estimate-form input[type="number"],
.estimate-form textarea{
  padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff;font:inherit
}
.estimate-form textarea{resize:vertical;min-height:90px}
.estimate-form .span2{grid-column:1 / -1}
.estimate-form .choice-row{display:flex;flex-wrap:wrap;gap:12px}
.estimate-form .choice{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:#fff}
.estimate-form .choice input{margin:0}
.estimate-form .form-actions{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.btn-primary{
  align-self:flex-start;padding:12px 16px;border-radius:14px;border:1px solid var(--line);
  background:linear-gradient(135deg,var(--roof),#13483f);color:#fff;font-weight:900;cursor:pointer
}
.form-note{margin:0;color:var(--muted);font-size:13.5px}
.hp-field{position:absolute;left:-9999px;opacity:0}
@media (max-width:720px){
  .estimate-form .form-grid{grid-template-columns:1fr}
  .btn-primary{width:100%;text-align:center}
}

/* Mobile nav (hamburger) */
.nav-toggle{display:none;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--panel);font-weight:900;cursor:pointer;white-space:nowrap}
.nav-toggle:active{transform:translateY(1px)}
@media (max-width:980px){
  .header-inner{flex-wrap:wrap}
  .brand{min-width:0;flex:1}
  .nav-toggle{display:inline-flex}
  .nav{display:none;width:100%;flex-direction:column;gap:6px;padding:10px 0 2px}
  .nav a{width:100%;justify-content:flex-start}
  body.nav-open .nav{display:flex}
}


.footer-grid--two{grid-template-columns:1.2fr .8fr}
.hp-wrap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.estimate-form{position:relative}
.estimate-form input[type="text"],
.estimate-form input[type="email"],
.estimate-form input[type="number"],
.estimate-form textarea{min-height:46px;font-size:16px}
.estimate-form .choice{border-radius:18px;padding:10px 12px}
.estimate-form .choice-row{gap:10px}
.thankyou-card{text-align:center;padding:32px 20px}
@media (max-width:720px){
  .page{padding:16px 0 28px}
  .content{padding:16px}
  .estimate-form fieldset{padding:14px 12px}
  .estimate-form .choice-row{display:grid;grid-template-columns:1fr;gap:10px}
  .estimate-form .choice{width:100%;border-radius:14px;align-items:flex-start}
  .estimate-form .field label{font-size:15px}
  .estimate-form textarea{min-height:120px}
  .footer-grid--two{grid-template-columns:1fr}
}


.section-tight{padding-top:0}
.special-teaser{padding:20px;display:grid;grid-template-columns:1.4fr .8fr;gap:18px;align-items:center;background:linear-gradient(135deg, rgba(var(--roof-rgb),.08), rgba(237,213,165,.35));border-color:rgba(var(--roof-rgb),.16)}
.special-teaser h2{margin:0 0 8px;font-size:30px}
.special-teaser p{margin:0;color:var(--muted);line-height:1.7;font-size:16px}
.special-teaser__actions{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
@media (max-width:820px){
  .special-teaser{grid-template-columns:1fr}
  .special-teaser__actions{width:100%}
  .special-teaser__actions .btn{width:100%}
}
