
:root{
  --gold:#f4c430;
  --gold-dark:#c79b15;
  --petrol:#0e3d3f;
  --petrol-dark:#092829;
  --red:#e3242b;
  --red-dark:#b81c22;
  --black:#111111;
  --gray-900:#1c1c1c;
  --gray-700:#4d4d4d;
  --gray-500:#777777;
  --gray-200:#e7e7e7;
  --gray-100:#f6f6f6;
  --white:#ffffff;
  --shadow:0 18px 50px rgba(0,0,0,.14);
  --radius:24px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial, Helvetica, sans-serif;color:var(--black);background:var(--white);line-height:1.55}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--max), calc(100% - 40px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--gray-200)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 0}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.brand-logo{width:48px;height:48px}.brand-text{display:flex;flex-direction:column;line-height:1}.brand-text strong{font-size:1rem;letter-spacing:.02em}.brand-text small{text-transform:uppercase;font-size:.68rem;color:var(--gray-700);letter-spacing:.18em}.main-nav{display:flex;align-items:center;gap:22px;font-weight:700}.main-nav a{font-size:.94rem}.main-nav a:hover{color:var(--gold-dark)}.nav-cta{background:var(--black);color:var(--white)!important;padding:11px 18px;border-radius:999px}.nav-cta:hover{background:var(--gold);color:var(--black)!important}.menu-toggle{display:none;border:1px solid var(--gray-200);background:var(--white);border-radius:999px;padding:9px 15px;font-weight:700}.hero{background:radial-gradient(circle at 20% 30%, rgba(244,196,48,.34), transparent 28%), linear-gradient(135deg,var(--white) 0%,#f8f8f8 48%,#202020 48%,#101010 100%);padding:82px 0}.hero-grid{display:grid;grid-template-columns:1.05fr .8fr;gap:54px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:900;color:var(--gold-dark);margin:0 0 14px}.hero h1,.page-hero h1{font-size:clamp(2.6rem,6vw,5.5rem);line-height:.95;margin:0 0 22px;letter-spacing:-.06em}.lead{font-size:1.18rem;color:var(--gray-700);max-width:680px;margin:0 0 28px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:999px;padding:13px 24px;background:var(--gold);color:var(--black);font-weight:900;box-shadow:0 12px 25px rgba(244,196,48,.26);cursor:pointer}.button:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(244,196,48,.34)}.button.secondary{background:var(--white);border:1px solid var(--gray-200);box-shadow:none}.button-small{min-height:40px;padding:10px 18px;font-size:.9rem}.trust-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}.trust-row span{background:var(--white);border:1px solid var(--gray-200);border-radius:999px;padding:8px 13px;font-size:.9rem;font-weight:700}.hero-card{background:var(--white);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;inset:0 0 auto auto;width:170px;height:170px;background:var(--gold);clip-path:polygon(100% 0,0 0,100% 100%);opacity:.88}.hero-card h2{font-size:2rem;line-height:1.05;margin:12px 0 12px;position:relative}.hero-card p,.hero-card li{color:var(--gray-700);position:relative}.hero-card ul{padding-left:20px}.roof-shape{height:115px;border:10px solid var(--black);border-bottom:0;transform:skewX(-8deg) rotate(-2deg);border-radius:8px 8px 0 0;background:repeating-linear-gradient(90deg,#efefef,#efefef 16px,#dedede 16px,#dedede 18px);margin-bottom:22px;position:relative}.roof-shape:before{content:"";position:absolute;left:-18px;right:-18px;top:-24px;height:18px;background:var(--gold);transform:skewX(25deg);border-radius:8px}.section{padding:82px 0}.section-heading{max-width:760px;text-align:center;margin-bottom:34px}.section-heading h2,.split h2,.service-area-strip h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1;margin:0 0 16px;letter-spacing:-.045em}.cards{display:grid;gap:22px}.cards.three{grid-template-columns:repeat(3,1fr)}.cards.four{grid-template-columns:repeat(4,1fr)}.service-card,.cards article,.quote-panel{border:1px solid var(--gray-200);border-radius:var(--radius);padding:28px;background:var(--white);box-shadow:0 8px 28px rgba(0,0,0,.04)}.service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.service-card h3,.cards article h3,.quote-panel h3{font-size:1.35rem;margin:10px 0}.service-card p,.cards article p,.quote-panel p{color:var(--gray-700)}.service-card a{font-weight:900;color:var(--gold-dark)}.icon{width:52px;height:52px;display:grid;place-items:center;background:var(--black);color:var(--gold);border-radius:18px;font-size:1.6rem}.dark-section{background:var(--black);color:var(--white)}.dark-section .eyebrow{color:var(--gold)}.dark-section p{color:#d6d6d6}.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.feature-grid div{background:#1f1f1f;border:1px solid #333;border-radius:22px;padding:24px}.feature-grid strong{color:var(--gold);font-size:1.3rem}.feature-grid h3{margin:8px 0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.steps div{border-top:4px solid var(--gold);background:var(--gray-100);border-radius:0 0 22px 22px;padding:24px}.steps span{display:grid;place-items:center;width:42px;height:42px;background:var(--black);color:var(--gold);border-radius:50%;font-weight:900}.gallery-section{background:var(--gray-100)}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.gallery-card{min-height:165px;border-radius:22px;overflow:hidden;position:relative;background:linear-gradient(135deg,#ddd,#aaa);box-shadow:var(--shadow)}.gallery-card:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.62),transparent)}.gallery-card span{position:absolute;bottom:16px;left:18px;color:white;font-weight:900}.gallery-card.roof{background:repeating-linear-gradient(135deg,#454545,#454545 18px,#2d2d2d 18px,#2d2d2d 28px)}.gallery-card.siding{background:repeating-linear-gradient(0deg,#f5f5f5,#f5f5f5 18px,#d5d5d5 18px,#d5d5d5 20px)}.gallery-card.trim{background:linear-gradient(135deg,#f4c430,#333)}.gallery-card.repair{background:repeating-linear-gradient(45deg,#777,#777 14px,#555 14px,#555 24px)}
.gallery-grid.illustrated{grid-template-columns:repeat(5,1fr)}
.gallery-tile{min-height:190px;border-radius:22px;background:var(--petrol);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px 14px;text-align:center;position:relative;overflow:hidden}
.gallery-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(244,196,48,.14),transparent 55%)}
.gallery-tile svg{width:56px;height:56px;position:relative}
.gallery-tile span{color:var(--white);font-weight:900;font-size:.92rem;letter-spacing:.01em;position:relative}
.gallery-tile small{color:var(--gold);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;position:relative}
.gallery-note{grid-column:1/-1;font-size:.82rem;color:var(--gray-500);text-align:center;margin-top:2px}
@media(max-width:900px){.gallery-grid.illustrated{grid-template-columns:repeat(2,1fr)}}.service-area-strip{text-align:center;background:linear-gradient(135deg,#fff,#f6f6f6)}.service-area-strip p{max-width:850px;margin:0 auto 22px;color:var(--gray-700)}.estimate-section{background:var(--white)}.estimate-form{background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius);padding:26px;display:grid;gap:14px}.estimate-form label{display:grid;gap:7px;font-weight:800;font-size:.92rem}.estimate-form input,.estimate-form select,.estimate-form textarea{width:100%;border:1px solid #d7d7d7;border-radius:14px;padding:13px 14px;font:inherit;background:white}.estimate-form textarea{resize:vertical}.form-note,.fine-print{font-size:.86rem;color:var(--gray-500)}.check-list{list-style:none;padding:0;margin:20px 0;display:grid;gap:10px}.check-list li{position:relative;padding-left:32px}.check-list li:before{content:"✓";position:absolute;left:0;top:0;background:var(--gold);color:var(--black);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:900}.page-hero{background:radial-gradient(circle at 84% 25%, rgba(244,196,48,.36), transparent 25%), linear-gradient(135deg,#f8f8f8,#fff);padding:82px 0}.page-hero.compact{padding:74px 0}.siding-hero{background:radial-gradient(circle at 84% 25%, rgba(244,196,48,.36), transparent 25%), repeating-linear-gradient(0deg,#fff,#fff 32px,#f1f1f1 32px,#f1f1f1 34px)}.quote-panel{background:var(--red);color:var(--white)}.quote-panel p{color:#ffe1e1}.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.area-grid div{background:var(--gray-100);border-radius:var(--radius);padding:28px;border:1px solid var(--gray-200)}.site-footer{background:#151515;color:var(--white);padding-top:58px}.footer-grid{display:grid;grid-template-columns:1.35fr repeat(3,.8fr);gap:36px}.site-footer p{color:#ccc}.site-footer a{display:block;color:#eee;margin:8px 0}.site-footer a:hover{color:var(--gold)}.footer-brand{margin-bottom:14px}.footer-bottom{border-top:1px solid #333;margin-top:36px;padding:18px 0;color:#bbb}.success-toast{position:fixed;right:20px;bottom:20px;background:var(--black);color:var(--white);border-left:6px solid var(--gold);padding:16px 18px;border-radius:16px;box-shadow:var(--shadow);z-index:100;max-width:340px}.hidden{display:none!important}
@media(max-width:900px){.menu-toggle{display:inline-flex}.main-nav{display:none;position:absolute;left:20px;right:20px;top:78px;background:white;border:1px solid var(--gray-200);box-shadow:var(--shadow);border-radius:20px;padding:18px;flex-direction:column;align-items:flex-start}.main-nav.open{display:flex}.hero{background:linear-gradient(135deg,#fff,#f6f6f6);padding:56px 0}.hero-grid,.split,.footer-grid{grid-template-columns:1fr}.cards.three,.cards.four,.steps,.area-grid{grid-template-columns:1fr}.hero-card{margin-top:10px}.feature-grid,.gallery-grid{grid-template-columns:1fr}.section{padding:58px 0}.hero h1,.page-hero h1{font-size:clamp(2.3rem,11vw,4.2rem)}}
@media(max-width:540px){.container{width:min(var(--max), calc(100% - 28px))}.hero-actions{display:grid}.button{width:100%}.brand-text strong{font-size:.9rem}.brand-logo{width:42px;height:42px}}

.hidden { display: none !important; }
