@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');

/* =========================================================
   Bing Roofs — residential-trust roofing theme
   (Component architecture adapted from the RMDT static build;
    re-themed light + navy + warm orange for homeowners.)
   ========================================================= */
:root{
  /* Brand palette sampled from the BRS logo: lime #A6CE39, kelly #3DA135, charcoal #202020 */
  --bg:#ffffff; --bg2:#f4f7f1; --panel:#ffffff; --panel2:#eef3e9;
  --ink:#1b241d; --muted:#5d6a5f; --soft:#84917f;
  --line:#e5ebe0; --line2:#cfd9c8;
  --navy:#1f2a22; --navy2:#2a382d; --navy3:#141d17;   /* charcoal-green "dark" brand role */
  --accent:#33982f; --accent-d:#26771f; --hv:#8cc63f; /* kelly green CTA + lime highlight */
  --lime:#8cc63f;
  --star:#f6a417; --green:#1f9d57;
  --ease:cubic-bezier(.23,1,.32,1);
  --heroov:linear-gradient(90deg,rgba(20,29,22,.9) 0%,rgba(20,29,22,.72) 46%,rgba(20,29,22,.5) 100%);
  --heroov2:linear-gradient(180deg,rgba(20,29,22,.34),rgba(20,29,22,.66) 60%,rgba(20,29,22,.86));
  --wrap:1200px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;height:auto;}
.wrap{width:min(100% - 48px,var(--wrap));margin:0 auto;}
.mono{font-family:"IBM Plex Mono",monospace;}
.arch{font-family:Archivo,sans-serif;font-weight:900;text-transform:uppercase;line-height:.92;letter-spacing:-.02em;}
.accent{color:var(--accent);}
.lab{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-weight:600;}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:Archivo;font-weight:800;font-size:13px;letter-spacing:.04em;text-transform:uppercase;padding:14px 24px;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);}
.btn-amber{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn-amber:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(51,152,47,.34);background:var(--accent-d);border-color:var(--accent-d);}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn-navy:hover{transform:translateY(-2px);background:var(--navy3);}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);}
.btn-ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);}
.btn-ghost-d{background:transparent;color:var(--navy);border-color:var(--line2);}
.btn-ghost-d:hover{background:var(--panel2);transform:translateY(-2px);}
.btn-lg{padding:16px 30px;font-size:14px;}

/* topbar (thin trust strip above header) */
.topbar{background:var(--navy3);color:#dbe4ee;font-size:12.5px;}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;min-height:38px;gap:14px;}
.topbar .stars{color:var(--star);letter-spacing:1px;}
.topbar a{color:#fff;font-weight:600;}
.topbar .tb-r{display:flex;gap:20px;align-items:center;}
.topbar .tb-r span{color:#aebccb;}

/* header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:74px;gap:18px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{width:46px;height:46px;border-radius:9px;background:#fff url('/img/logo.png') center/84% no-repeat;border:1px solid var(--line2);color:transparent;font-size:0;flex:none;}
.brand .mark em{color:var(--accent);font-style:normal;}
.brand b{font-family:Archivo;font-weight:900;text-transform:uppercase;font-size:18px;letter-spacing:.01em;color:var(--navy);line-height:1;}
.brand small{display:block;font-family:"IBM Plex Mono";font-weight:500;font-size:10px;letter-spacing:.1em;color:var(--soft);text-transform:uppercase;margin-top:3px;}
.nav-links{display:flex;align-items:center;gap:24px;}
.nav-links a{font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--ink);transition:color .16s var(--ease);}
.nav-links a:hover,.nav-links a.active{color:var(--accent);}
.nav-links .btn{color:#fff;}
.nav-links .btn.btn-ghost-d{color:var(--navy);}
.nav-phone{font-family:Archivo;font-weight:800;font-size:16px;color:var(--navy);letter-spacing:.01em;}
.nav-phone:hover{color:var(--accent);}
.nav-toggle{display:none;background:none;border:1px solid var(--line2);border-radius:6px;color:var(--navy);padding:8px 11px;font-size:18px;cursor:pointer;}

/* home hero (full-bleed photo) */
.hero{min-height:640px;display:flex;align-items:center;position:relative;background:var(--heroov),var(--ph,none) center/cover no-repeat, var(--navy);padding:64px 0;color:#fff;}
.hero .eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:#dff2c2;letter-spacing:.12em;text-transform:uppercase;background:rgba(140,198,63,.18);border:1px solid rgba(140,198,63,.45);padding:7px 13px;border-radius:100px;}
.hero h1{font-family:Archivo;font-weight:900;text-transform:uppercase;font-size:clamp(40px,6.4vw,82px);line-height:.94;letter-spacing:-.02em;margin:20px 0 0;max-width:16ch;}
.hero h1 span{color:var(--accent);}
.hero .lead{color:#dbe4ee;font-size:19px;max-width:52ch;margin:22px 0 0;line-height:1.55;}
.hero .cta{display:flex;gap:13px;margin-top:30px;flex-wrap:wrap;}
.hero .hero-trust{display:flex;gap:26px;margin-top:32px;flex-wrap:wrap;align-items:center;color:#cdd8e2;font-size:13.5px;}
.hero .hero-trust b{color:#fff;}
.hero .hero-trust .stars{color:var(--star);}

/* page hero + breadcrumb */
.page-hero{position:relative;color:#fff;padding:70px 0 58px;border-bottom:1px solid var(--navy2);background:var(--navy);}
.page-hero.photo{background:var(--heroov),var(--ph,none) center/cover;}
.crumb{font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:#9fb2c4;letter-spacing:.05em;}
.crumb a:hover{color:var(--accent);}
.page-hero h1{font-family:Archivo;font-weight:900;text-transform:uppercase;font-size:clamp(34px,5vw,62px);line-height:.94;letter-spacing:-.02em;margin:14px 0 0;max-width:20ch;}
.page-hero h1 span{color:var(--accent);}
.page-hero .sub{color:#cdd8e2;font-size:18px;max-width:62ch;margin:18px 0 0;line-height:1.6;}
.page-hero .cta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}

/* sections */
section{padding:82px 0;}
section.tight{padding:56px 0;}
section.soft{background:var(--bg2);border-block:1px solid var(--line);}
section.navy{background:var(--navy);color:#fff;border-block:1px solid var(--navy2);}
section.navy h2,section.navy h3{color:#fff;}
section.navy .lead-p{color:#c3d0dc;}
h2{font-family:Archivo;font-weight:800;text-transform:uppercase;font-size:clamp(28px,4.2vw,48px);line-height:1;letter-spacing:-.01em;color:var(--navy);}
h3{font-family:Archivo;font-weight:700;text-transform:uppercase;font-size:20px;letter-spacing:.005em;color:var(--navy);}
.lead-p{color:var(--muted);font-size:17px;max-width:64ch;margin:16px 0 0;line-height:1.65;}
.center{text-align:center;} .center .lead-p{margin-left:auto;margin-right:auto;}

/* prose */
.prose{max-width:760px;}
.prose p{color:#41505e;font-size:16.5px;line-height:1.78;margin:0 0 18px;}
.prose h2{font-size:clamp(25px,3.2vw,36px);margin:40px 0 14px;}
.prose h3{font-size:20px;margin:30px 0 10px;}
.prose ul,.prose ol{margin:0 0 18px;padding-left:22px;color:#41505e;}
.prose li{margin-bottom:9px;line-height:1.65;}
.prose strong{color:var(--navy);}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
.prose blockquote{border-left:3px solid var(--accent);background:var(--panel2);padding:16px 20px;margin:22px 0;border-radius:0 8px 8px 0;color:var(--navy);font-size:17px;}
.prose table{border-collapse:collapse;width:100%;margin:20px 0;font-size:14.5px;}
.prose th{background:var(--navy);color:#fff;text-align:left;padding:11px 13px;font-family:"IBM Plex Mono";font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--navy2);}
.prose td{border:1px solid var(--line);padding:11px 13px;color:#41505e;}

/* stat strip */
.strip{background:var(--navy);}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.strip .s{padding:26px 6px;border-right:1px solid var(--navy2);text-align:center;}
.strip .s:last-child{border-right:0;}
.strip .n{font-family:Archivo;font-weight:900;font-size:40px;line-height:1;color:#fff;}
.strip .n em{color:var(--accent);font-style:normal;}
.strip .l{font-family:"IBM Plex Mono";font-size:11px;color:#9fb2c4;letter-spacing:.08em;text-transform:uppercase;margin-top:9px;}

/* trust badge row */
.badges{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:center;}
.badge{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--panel);border-radius:100px;padding:10px 18px;font-size:13px;font-weight:600;color:var(--navy);}
.badge svg{width:18px;height:18px;flex:none;}
.badge .dot{color:var(--accent);}

/* offer stack card */
.offer{background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:0;overflow:hidden;box-shadow:0 24px 60px -30px rgba(13,39,64,.4);}
.offer .top{background:var(--navy);color:#fff;padding:24px 28px;}
.offer .top .lab{color:#cfe9a6;}
.offer .top h3{color:#fff;font-size:23px;margin-top:8px;}
.offer .top p{color:#c3d0dc;font-size:14px;margin-top:6px;}
.offer ul{list-style:none;padding:22px 28px;}
.offer li{display:flex;gap:13px;padding:11px 0;border-bottom:1px dashed var(--line);align-items:flex-start;}
.offer li:last-child{border-bottom:0;}
.offer li .ic{color:var(--green);flex:none;margin-top:2px;}
.offer li .txt{flex:1;}
.offer li .txt b{color:var(--navy);font-size:15px;font-weight:700;display:block;}
.offer li .txt span{color:var(--muted);font-size:13.5px;}
.offer li .val{font-family:"IBM Plex Mono";font-size:12.5px;color:var(--soft);white-space:nowrap;}
.offer .foot{background:var(--panel2);padding:20px 28px;text-align:center;}
.offer .foot .big{font-family:Archivo;font-weight:900;font-size:26px;color:var(--navy);}
.offer .foot .big em{color:var(--accent);font-style:normal;}
.offer .foot .btn{margin-top:14px;width:100%;}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.cards.c2{grid-template-columns:repeat(2,1fr);} .cards.c4{grid-template-columns:repeat(4,1fr);}
.card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:26px;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);}
.card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -24px rgba(13,39,64,.35);border-color:var(--line2);}
.card .ci{width:52px;height:52px;border-radius:11px;background:var(--panel2);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:16px;}
.card .ci svg{width:27px;height:27px;}
.card h3{margin-top:2px;}
.card p{color:var(--muted);font-size:14px;margin-top:9px;line-height:1.6;}
.card.link{cursor:pointer;}
.card.link .more{font-family:Archivo;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-top:16px;display:inline-block;}

/* process steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:st;}
.step{position:relative;padding-top:16px;border-top:3px solid var(--line2);}
.step .n{font-family:Archivo;font-weight:900;font-size:15px;color:#fff;background:var(--accent);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.step h4{font-family:Archivo;font-weight:700;text-transform:uppercase;font-size:16px;color:var(--navy);}
.step p{color:var(--muted);font-size:13.5px;margin-top:7px;line-height:1.55;}

/* why rows */
.wrows{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 36px;}
.wrow{display:flex;gap:14px;border-top:1px solid var(--line);padding-top:20px;}
.wrow .ck{color:var(--accent);flex:none;margin-top:2px;}
.wrow .ck svg{width:24px;height:24px;}
.wrow h4{font-family:Archivo;font-weight:700;text-transform:uppercase;font-size:16px;color:var(--navy);}
.wrow p{color:var(--muted);font-size:13.5px;margin-top:6px;line-height:1.55;}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;}
.split-media{position:relative;}
.split-media img{width:100%;border-radius:12px;border:1px solid var(--line);}
.split-media .tag{position:absolute;left:16px;bottom:16px;background:var(--navy);color:#fff;font-family:"IBM Plex Mono";font-size:11.5px;letter-spacing:.05em;padding:8px 13px;border-radius:7px;}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.review{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:24px;display:flex;flex-direction:column;}
.review .stars{color:var(--star);font-size:16px;letter-spacing:2px;}
.review p{color:#41505e;font-size:14.5px;line-height:1.6;margin:12px 0 16px;flex:1;}
.review .who{display:flex;align-items:center;gap:11px;}
.review .av{width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Archivo;font-weight:800;font-size:16px;}
.review .who b{color:var(--navy);font-size:14px;display:block;}
.review .who span{color:var(--soft);font-size:12px;}
.review .g{margin-left:auto;font-size:11px;color:var(--soft);display:flex;align-items:center;gap:5px;}

/* work gallery */
.work-band{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.work-band figure{position:relative;overflow:hidden;border-radius:10px;cursor:zoom-in;margin:0;}
.work-band img{width:100%;height:290px;object-fit:cover;transition:transform .5s var(--ease);}
.work-band figure:hover img{transform:scale(1.06);}
.work-band figcaption{position:absolute;left:12px;bottom:12px;background:rgba(9,25,42,.82);color:#fff;font-family:"IBM Plex Mono";font-size:11px;padding:6px 10px;border-radius:6px;}
.gallery{columns:3;column-gap:14px;}
.gallery figure{margin:0 0 14px;border-radius:10px;overflow:hidden;break-inside:avoid;border:1px solid var(--line);cursor:zoom-in;}
.gallery img{width:100%;transition:transform .5s var(--ease);}
.gallery figure:hover img{transform:scale(1.05);}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(6,14,24,.94);display:none;align-items:center;justify-content:center;z-index:90;padding:30px;}
.lb.open{display:flex;}
.lb img{max-width:92vw;max-height:90vh;border-radius:8px;}
.lb .x{position:absolute;top:22px;right:26px;color:#fff;font-size:34px;cursor:pointer;line-height:1;}

/* forms */
.lead-form{background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:30px;box-shadow:0 24px 60px -30px rgba(13,39,64,.4);}
.lead-form h3{font-size:22px;}
.lead-form .fsub{color:var(--muted);font-size:14px;margin:8px 0 4px;}
.lead-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.lead-form label{display:block;font-size:12px;font-weight:600;color:var(--navy);margin-top:14px;margin-bottom:5px;letter-spacing:.02em;}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;background:#fff;border:1.5px solid var(--line2);border-radius:8px;padding:13px 14px;color:var(--ink);font:inherit;transition:border-color .16s var(--ease),box-shadow .16s var(--ease);}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(51,152,47,.16);}
.lead-form .btn{width:100%;margin-top:18px;border:0;}
.lead-form .msg{font-size:13.5px;font-weight:600;margin-top:12px;display:none;}
.lead-form .msg.ok{display:block;color:var(--green);} .lead-form .msg.err{display:block;color:var(--accent-d);}
.lead-form .fine{font-size:11.5px;color:var(--soft);margin-top:11px;line-height:1.5;display:flex;gap:7px;align-items:flex-start;}
.lead-form .fine svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--green);}

/* faq */
.faq{max-width:820px;margin:0 auto;}
.faq details{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:18px 22px;margin-bottom:12px;}
.faq summary{cursor:pointer;font-family:Archivo;font-weight:700;text-transform:uppercase;font-size:15px;color:var(--navy);list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;}
.faq summary::after{content:"+";color:var(--accent);font-size:22px;line-height:1;font-weight:400;}
.faq details[open] summary::after{content:"\2212";}
.faq details p{color:var(--muted);font-size:14.5px;margin-top:12px;line-height:1.65;}

/* cta band */
.cta-band{background:linear-gradient(115deg,var(--navy2),var(--navy3));border-top:1px solid var(--navy2);text-align:center;color:#fff;}
.cta-band h2{color:#fff;}
.cta-band p{color:#c3d0dc;max-width:52ch;margin:14px auto 26px;font-size:17px;}
.cta-band .cta{display:flex;gap:13px;justify-content:center;flex-wrap:wrap;}

/* alert / seasonal callout */
.alert{display:flex;gap:16px;align-items:flex-start;background:#f2f8ea;border:1px solid #d3e5bb;border-left:4px solid var(--accent);border-radius:10px;padding:20px 22px;}
.alert svg{width:26px;height:26px;color:var(--accent);flex:none;}
.alert h4{font-family:Archivo;font-weight:800;text-transform:uppercase;font-size:16px;color:var(--navy);}
.alert p{color:#3f4a37;font-size:14px;margin-top:5px;line-height:1.6;}

/* footer */
.site-footer{background:var(--navy3);border-top:3px solid var(--accent);padding:52px 0 28px;color:#a9bacb;font-size:13.5px;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:32px;}
.footer-grid h5{font-family:"IBM Plex Mono";font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:14px;}
.footer-grid a{display:block;color:#a9bacb;padding:5px 0;}
.footer-grid a:hover{color:var(--accent);}
.footer-grid .brand b{color:#fff;}
.footer-grid .brand small{color:#7f92a5;}
.footer-nap{color:#c3d0dc;line-height:1.9;margin-top:12px;}
.footer-nap b{color:#fff;}
.footer-bottom{border-top:1px solid var(--navy2);margin-top:36px;padding-top:20px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px;color:#7f92a5;}

/* sticky mobile call bar */
.callbar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--navy);border-top:1px solid var(--navy2);padding:9px 12px;gap:9px;box-shadow:0 -6px 20px rgba(0,0,0,.24);}
.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-family:Archivo;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.03em;padding:14px 8px;border-radius:8px;}
.callbar .call{background:var(--accent);color:#fff;}
.callbar .quote{background:#fff;color:var(--navy);}
.callbar svg{width:18px;height:18px;}

/* animations */
@keyframes fadeUp{from{opacity:0;transform:translate3d(0,22px,0);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translate3d(0,26px,0);transition:opacity .75s var(--ease),transform .75s var(--ease);transition-delay:var(--d,0ms);}
  .reveal.in{opacity:1;transform:none;}
  .hero .eyebrow,.hero h1,.hero .lead,.hero .cta,.hero .hero-trust,.page-hero .crumb,.page-hero h1,.page-hero .sub,.page-hero .cta{animation:fadeUp .8s var(--ease) both;}
  .hero h1{animation-delay:.08s;} .hero .lead{animation-delay:.16s;} .hero .cta{animation-delay:.24s;} .hero .hero-trust{animation-delay:.32s;}
  .page-hero h1{animation-delay:.06s;} .page-hero .sub{animation-delay:.13s;}
}

/* responsive */
@media(max-width:960px){
  .nav-links{display:none;}
  .nav-links.open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);padding:16px 24px;gap:8px;align-items:stretch;box-shadow:0 16px 30px -18px rgba(13,39,64,.4);}
  .nav-links.open a{padding:11px 0;}
  .nav-links.open .btn{color:#fff;}
  .nav-toggle{display:inline-block;}
  .cards,.cards.c4,.wrows,.split,.reviews,.steps{grid-template-columns:1fr;}
  .cards.c2{grid-template-columns:1fr;}
  .strip .wrap{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .gallery{columns:2;} .work-band{grid-template-columns:1fr 1fr;}
  .reviews{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .topbar{display:none;}
  .strip .wrap,.footer-grid,.gallery,.work-band,.steps{grid-template-columns:1fr;}
  .gallery{columns:1;}
  .lead-form .row{grid-template-columns:1fr;}
  .hero .cta .btn,.page-hero .cta .btn{width:100%;}
  section{padding:56px 0;}
  .callbar{display:flex;}
  body{padding-bottom:66px;}
}
