*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:#172033;line-height:1.6;background:#fff}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.wrap{width:min(1160px,92%);margin:auto}.top{background:#061a34;color:#fff;font-size:.92rem}.top .wrap{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0}.nav{position:sticky;top:0;z-index:30;background:#081a34;color:#fff;border-bottom:1px solid #21344c}.navin{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand img{width:205px;max-height:58px;object-fit:contain}.links{display:flex;align-items:center;gap:1.15rem;font-weight:750;font-size:.94rem}.links .cta,.btn.primary{background:#f6c531;color:#081a34}.links .cta{padding:.8rem 1rem;border-radius:8px}.menu{display:none;background:none;border:1px solid #47617e;color:#fff;border-radius:8px;padding:.5rem .7rem;font-size:1.2rem}.hero,.pagehero{color:#fff}.hero{background:linear-gradient(135deg,#051225 0%,#081a34 55%,#102b4f 100%);min-height:650px;display:grid;align-items:center}.pagehero{background:linear-gradient(90deg,rgba(5,18,37,.95),rgba(5,18,37,.58)),url("/assets/images/site/roof-main.webp") center/cover}.hero .content{max-width:800px;padding:5rem 0}.pagehero{padding:6.5rem 0 4.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#f6c531;font-size:.8rem}.hero h1,.pagehero h1{font-size:clamp(2.7rem,6vw,5rem);line-height:1.02;margin:.6rem 0 1rem;letter-spacing:-.04em}.hero p,.pagehero p{font-size:1.12rem;color:#dbe5ef;max-width:720px}.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}.btn{display:inline-flex;justify-content:center;align-items:center;padding:1rem 1.2rem;border-radius:8px;font-weight:850;border:2px solid transparent}.btn.secondary{border-color:#fff;color:#fff}.btn.dark{background:#081a34;color:#fff}.section{padding:4.7rem 0}.section.alt{background:#f5f7fa}.section.dark{background:#081a34;color:#fff}.section h2{font-size:clamp(2rem,4vw,3.15rem);line-height:1.1;margin:.4rem 0 1rem;letter-spacing:-.03em}.lede{font-size:1.08rem;color:#5e6979;max-width:760px}.dark .lede{color:#c9d5e2}.grid{display:grid;gap:1.25rem}.services{grid-template-columns:repeat(4,1fr);margin-top:2rem}.card{background:#fff;border:1px solid #e0e6ec;border-radius:14px;overflow:hidden;box-shadow:0 12px 30px rgba(7,24,45,.06)}.card .pad{padding:1.35rem}.card h3{margin:.1rem 0 .5rem}.card p{color:#657183}.photo{width:100%;height:215px;object-fit:cover}.num{font-size:.8rem;color:#c99c00;font-weight:900}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}.featurelist{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.6rem}.feature{border-top:2px solid #e2e7ed;padding:1rem 0}.feature b{display:block;color:#081a34}.process{grid-template-columns:repeat(4,1fr);margin-top:2rem}.step{background:#fff;border:1px solid #dfe5ec;border-radius:12px;padding:1.4rem}.step .n{font-size:1.9rem;color:#c99c00;font-weight:900}.bullets{padding-left:1.2rem}.bullets li{margin:.45rem 0}.gallery{grid-template-columns:repeat(3,1fr)}.gallery img{height:300px;width:100%;object-fit:cover;border-radius:12px}.estimate{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem}.form{background:#fff;padding:1.5rem;border-radius:14px;color:#172033;box-shadow:0 18px 40px rgba(0,0,0,.14)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form input,.form textarea{width:100%;padding:.9rem 1rem;border:1px solid #ccd5df;border-radius:8px;font:inherit}.form textarea{min-height:120px;resize:vertical}.checks{display:flex;gap:1rem;flex-wrap:wrap;padding:.7rem 0}.check{display:flex;gap:.4rem;align-items:center}.check input{width:auto}.form button{width:100%;cursor:pointer}.note{font-size:.88rem;color:#718096}.ctaBand{background:#f6c531;color:#081a34;padding:2.3rem 0}.ctaBand .wrap{display:flex;align-items:center;justify-content:space-between;gap:2rem}.footer{background:#051326;color:#dbe4ef;padding:3.2rem 0 1.2rem}.footergrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}.footer img{width:210px}.footer h4{color:#fff;margin-top:0}.footer a{display:block;margin:.35rem 0}.copyright{border-top:1px solid #21344c;margin-top:2rem;padding-top:1rem;color:#99acc0;font-size:.9rem}.mobilebar{display:none}.article{max-width:850px}.article h2{margin-top:2rem}.notice{background:#fff5cf;color:#6b5300;padding:.85rem 1rem;border-radius:8px}.projectHero{border-radius:14px;min-height:430px;width:100%;object-fit:cover}@media(max-width:920px){.links{display:none;position:absolute;top:82px;left:0;right:0;background:#081a34;padding:1rem 4%;flex-direction:column;align-items:flex-start}.links.open{display:flex}.menu{display:block}.services,.process{grid-template-columns:repeat(2,1fr)}.split,.estimate{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}}@media(max-width:620px){body{padding-bottom:66px}.top span{display:none}.top .wrap{justify-content:center}.brand img{width:175px}.navin{min-height:74px}.links{top:74px}.hero{min-height:610px}.services,.process,.featurelist,.formgrid,.gallery,.footergrid{grid-template-columns:1fr}.section{padding:3.8rem 0}.pagehero{padding:5rem 0 3.5rem}.ctaBand .wrap{display:block}.ctaBand .btn{margin-top:1rem}.mobilebar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:100;box-shadow:0 -3px 18px rgba(0,0,0,.2)}.mobilebar a{padding:.9rem;text-align:center;font-weight:900}.mobilebar a:first-child{background:#081a34;color:#fff}.mobilebar a:last-child{background:#f6c531;color:#081a34}}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 390px;
  justify-content:space-between;
  gap:2rem;
  align-items:start;
  padding:3.25rem 0 2.5rem;
}
.hero .content{
  max-width:520px;
  padding:1.25rem 0 0;
}
.hero-form{
  max-width:390px;
  width:100%;
  margin-left:auto;
  align-self:start;
  padding:1.5rem;
}
.hero-form h2{
  font-size:1.55rem !important;
  margin:0 0 .35rem !important;
}
.hero-form .note{
  font-size:.92rem;
  margin-bottom:.8rem;
}
.hero-form .formgrid{
  grid-template-columns:1fr;
  gap:.75rem;
}
.hero-form textarea{
  margin-top:.75rem;
  min-height:110px;
}
.hero-form .checks{
  display:grid;
  grid-template-columns:1fr;
  gap:.35rem;
  padding:.7rem 0;
}
.hero-form button{
  width:100%;
}
@media(max-width:880px){
  .hero-grid{
    grid-template-columns:1fr;
    gap:2rem;
    padding:3rem 0;
  }
  .hero .content{
    max-width:680px;
  }
  .hero-form{
    max-width:520px;
    margin-left:0;
  }
}
@media(max-width:620px){
  .hero-grid{padding:2rem 0 3rem}
  .hero-form{max-width:none}
  .hero h1{font-size:clamp(2.5rem,14vw,4rem)}
}

@media(min-width:881px){
  .hero h1{
    font-size:clamp(3rem,5.2vw,4.25rem);
  }
  .hero .content p{
    max-width:510px;
  }
}

.warranty-pill{display:inline-block;margin:.9rem 0 .1rem;padding:.5rem .9rem;border:1px solid rgba(246,197,49,.85);border-radius:999px;background:rgba(246,197,49,.1);color:#f6c531;font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:.88rem}
.roofing-intro p:not(.lede){color:#455265}
.roofing-service-list{display:grid;grid-template-columns:1fr 1fr;gap:.65rem .9rem;margin-top:1.35rem}
.roofing-service-list a,.roofing-service-list span{padding:.8rem .9rem;background:#f5f7fa;border-left:3px solid #f6c531;border-radius:5px;font-weight:750}
.roof-signs{grid-template-columns:repeat(3,1fr);margin-top:2rem}
.local-projects{grid-template-columns:repeat(3,1fr);margin-top:2rem}
.project-card{background:#fff;color:#172033;border-radius:14px;overflow:hidden}
.project-card img{width:100%;height:220px;object-fit:cover}
.project-card .pad{padding:1.25rem}
.project-card h3{margin:.3rem 0 .5rem}
.project-card p{margin:0;color:#5e6979}
.project-meta{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#a77e00}
.service-areas{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}
.service-areas a,.service-areas span{padding:.7rem 1rem;border:1px solid #d8e0e8;border-radius:999px;background:#fff;font-weight:800}
.service-areas a{border-color:#f6c531}
.roofing-faq{max-width:900px}
.roofing-faq details{border-bottom:1px solid #dce3ea;padding:1rem 0}
.roofing-faq summary{cursor:pointer;font-weight:850;font-size:1.05rem}
.roofing-faq details p{color:#5e6979;margin-bottom:.2rem}
@media(max-width:920px){.roof-signs,.local-projects{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.roofing-service-list,.roof-signs,.local-projects{grid-template-columns:1fr}.project-card img{height:240px}}

.gutter-size-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin:2rem 0 3rem}
.gutter-size-card{background:#f5f7fa;border:1px solid #dfe5ec;border-radius:14px;padding:1.6rem;position:relative}
.gutter-size-card.featured{border:2px solid #f6c531;background:#fffaf0}
.gutter-size{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:#081a34;color:#fff;font-size:1.4rem;font-weight:900;margin-bottom:.75rem}
.gutter-size-card.featured .gutter-size{background:#f6c531;color:#081a34}
.gutter-size-card h3{font-size:1.45rem;margin:.15rem 0 .65rem}
.gutter-measure{margin-top:1rem}
.city-gutter-grid{grid-template-columns:repeat(2,1fr);margin-top:2rem}
.city-gutter-card{border:1px solid #dfe5ec;border-radius:14px;padding:1.5rem;background:#fff}
.city-gutter-card h3{margin:.1rem 0 .65rem;font-size:1.35rem}
.city-gutter-card p{color:#566273}
@media(max-width:760px){.gutter-size-grid,.city-gutter-grid{grid-template-columns:1fr}}

.city-roof-grid{grid-template-columns:repeat(2,1fr);margin-top:2rem}
.city-roof-card{background:#fff;border:1px solid #dfe5ec;border-radius:14px;padding:1.5rem}
.city-roof-card h3{margin:.1rem 0 .65rem;font-size:1.35rem}
.city-roof-card p{color:#566273}
.city-roof-card a{display:inline-block;margin-top:.35rem;color:#081a34}
@media(max-width:760px){.city-roof-grid{grid-template-columns:1fr}}

.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.5rem}
.trust-grid>div{padding:1rem;border:1px solid #dde4eb;border-radius:10px;background:#fff}
.trust-grid b{display:block;color:#081a34;margin-bottom:.2rem}
.trust-grid span{font-size:.92rem;color:#657183}
.price-grid{grid-template-columns:1fr 1fr;margin-top:1.5rem}
.price-point{background:#fff;border:1px solid #dfe5ec;border-radius:10px;padding:1rem}
.price-point b{display:block;color:#081a34;margin-bottom:.25rem}
.price-point span{color:#657183;font-size:.92rem}
.area-hub-grid{grid-template-columns:repeat(2,1fr);margin-top:2rem}
.area-hub-card{border:1px solid #dfe5ec;border-radius:14px;padding:1.5rem;background:#fff}
.area-hub-card h3{margin:.1rem 0 .5rem}
.area-hub-card p{color:#566273}
.project-index{grid-template-columns:repeat(3,1fr)}
.project-index-card{scroll-margin-top:110px}
@media(max-width:920px){.project-index{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.trust-grid,.price-grid,.area-hub-grid,.project-index{grid-template-columns:1fr}}

@media(max-width:1080px){.links{display:none;position:absolute;top:82px;left:0;right:0;background:#081a34;padding:1rem 4%;flex-direction:column;align-items:flex-start}.links.open{display:flex}.menu{display:block}}

.work-toolbar{display:grid;grid-template-columns:1fr 1fr 2fr;gap:1rem;margin-bottom:1.4rem;padding:1rem;background:#f5f7fa;border:1px solid #dfe5ec;border-radius:12px}
.work-toolbar label{display:block;margin-bottom:.35rem}
.work-toolbar select,.work-toolbar input{width:100%;padding:.85rem .9rem;border:1px solid #cfd7e1;border-radius:8px;background:#fff;font:inherit}
.work-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:1.5rem;align-items:start}
.project-map{min-height:620px;border-radius:14px;border:1px solid #dce4ec;background:#eef2f6;overflow:hidden;position:sticky;top:105px}
.map-placeholder{min-height:620px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem;color:#64748b}
.map-placeholder strong{color:#081a34;font-size:1.25rem;margin-bottom:.35rem}
.project-count{font-weight:850;margin-bottom:.8rem}
.work-results{display:grid;gap:1rem}
.work-card{display:grid;grid-template-columns:150px 1fr;background:#fff;border:1px solid #dfe5ec;border-radius:12px;overflow:hidden}
.work-card img{width:100%;height:100%;min-height:145px;object-fit:cover}
.work-card .pad{padding:1rem}
.work-card h3{margin:.25rem 0 .4rem}
.work-card p{margin:0;color:#5e6979}
.admin-body{background:#f5f7fa}
.admin-shell{width:min(1180px,94%);margin:0 auto;padding:2rem 0 4rem}
.admin-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}
.admin-head h1{margin:.1rem 0}
.admin-grid{display:grid;grid-template-columns:minmax(0,520px) 1fr;gap:2rem;align-items:start;margin-top:1.5rem}
.admin-form{box-shadow:none;border:1px solid #dfe5ec}
.admin-form>input,.admin-form>select{width:100%;padding:.9rem 1rem;border:1px solid #ccd5df;border-radius:8px;font:inherit;margin-bottom:1rem}
.admin-project-list{display:grid;gap:.7rem}
.admin-project{display:grid;gap:.1rem;background:#fff;border:1px solid #dfe5ec;border-radius:10px;padding:1rem}
.admin-project span{color:#64748b;font-size:.9rem}
@media(max-width:900px){.work-layout,.admin-grid{grid-template-columns:1fr}.project-map{position:relative;top:auto;min-height:430px}.map-placeholder{min-height:430px}.work-toolbar{grid-template-columns:1fr 1fr}.work-search{grid-column:1/-1}}
@media(max-width:620px){.work-toolbar{grid-template-columns:1fr}.work-search{grid-column:auto}.work-card{grid-template-columns:1fr}.work-card img{height:210px}.admin-head{display:block}.admin-head .btn{margin-top:1rem}}

.project-read-more{display:inline-block;margin-top:.7rem;color:#081a34}
a.work-card,a.project-index-card{color:inherit;text-decoration:none}
a.work-card:hover,a.project-index-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(7,24,45,.10)}
.work-card,.project-index-card{transition:transform .16s ease,box-shadow .16s ease}
.project-facts{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1.4rem 0}
.project-facts>div{border:1px solid #dfe5ec;border-radius:10px;padding:.9rem;background:#f8fafc}
.project-facts b,.project-facts span{display:block}
.project-facts span{color:#657183}
@media(max-width:620px){.project-facts{grid-template-columns:1fr}}


/* Contact + shared form polish */
.form label>span{display:block;font-size:.82rem;font-weight:800;color:#445164;margin:0 0 .3rem}
.form input:focus,.form textarea:focus{outline:3px solid rgba(246,197,49,.28);border-color:#c99c00}
.form button[disabled]{opacity:.65;cursor:wait}
.form-status{min-height:1.35rem;margin:.7rem 0 0}
.form-status.success{color:#13713b;font-weight:800}
.form-status.error{color:#a32626;font-weight:800}
.form-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.service-fieldset{border:0;padding:.75rem 0;margin:0}
.service-fieldset legend{font-size:.86rem;font-weight:850;color:#445164;margin-bottom:.25rem}
.contact-hero{padding:3rem 0;background:linear-gradient(90deg,rgba(5,18,37,.96),rgba(5,18,37,.72)),url("/assets/images/site/roof-main.webp") center/cover}
.contact-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,470px);gap:3rem;align-items:start}
.contact-hero-copy{padding:2rem 0}
.contact-hero-copy h1{margin-top:.5rem}
.contact-hero-form{width:100%;padding:1.6rem}
.contact-hero-form h2{font-size:1.8rem!important;margin:0 0 .25rem!important;color:#081a34}
.contact-hero-form .formgrid{gap:.8rem}
.contact-hero-form textarea{min-height:105px}
.contact-hero-form .checks{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .75rem}
.contact-quick{display:grid;gap:.7rem;margin:1.4rem 0}
.contact-quick a{display:flex;flex-direction:column;width:max-content;max-width:100%;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(5,18,37,.38)}
.contact-quick a span{font-size:.82rem;color:#c9d5e2}
@media(max-width:920px){.contact-hero-grid{grid-template-columns:1fr}.contact-hero-copy{padding:1rem 0 0}.contact-hero-form{max-width:620px}.contact-hero{padding:2rem 0 3rem}}
@media(max-width:620px){.contact-hero-form .checks{grid-template-columns:1fr}.contact-hero-form{padding:1.25rem}.contact-hero{padding:1.5rem 0 2.5rem}}

.project-filter-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.project-filter-head h2{margin:.25rem 0 0}
.project-filter-bar{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 1.35rem}
.project-filter{appearance:none;border:1px solid #cbd5df;border-radius:999px;background:#fff;color:#081a34;padding:.72rem 1rem;font:inherit;font-weight:850;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.project-filter:hover{border-color:#f6c531;transform:translateY(-1px)}
.project-filter.active{background:#081a34;color:#fff;border-color:#081a34}
.project-index-card[hidden]{display:none!important}
.project-filter-empty{padding:1rem 1.2rem;border:1px dashed #cbd5df;border-radius:10px;background:#fff;color:#64748b}
@media(max-width:620px){.project-filter-head{display:block}.project-filter-head .project-count{margin-top:.6rem}.project-filter-bar{gap:.5rem}.project-filter{padding:.65rem .85rem;font-size:.92rem}}


.single-project-map{min-height:390px;border-radius:14px;border:1px solid #dce4ec;background:#eef2f6;overflow:hidden;margin-top:1.25rem}
.single-project-map .map-placeholder{min-height:390px}
@media(max-width:620px){.single-project-map{min-height:320px}.single-project-map .map-placeholder{min-height:320px}}
