:root{
  --saph:#1B3B6F;--saph-d:#122A51;--bronze:#A9702C;--bronze-d:#8A5A20;
  --gray:#565D6B;--line:#E2E6EE;--bg:#FFFFFF;--bg-alt:#F5F7FB;
  --nav-bg:#0F2447;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',sans-serif;color:#151C29;background:var(--bg);line-height:1.65;font-size:16px}
h1,h2,h3,h4{font-family:'Sora',sans-serif;letter-spacing:-.02em}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
a{color:inherit}
.skip-link{position:absolute;left:-999px;top:0;background:#fff;color:#151C29;padding:10px 16px;z-index:999}
.skip-link:focus{left:8px;top:8px}

.btn{display:inline-flex;align-items:center;gap:8px;background:var(--bronze);color:#fff;font-weight:700;font-size:16px;padding:15px 28px;text-decoration:none;border-radius:10px;box-shadow:0 10px 22px rgba(169,112,44,.32)}
.btn:hover{background:var(--bronze-d)}
.btn.saph{background:var(--saph)}
.btn.ghost{background:#fff;color:#151C29;border:2px solid var(--line);box-shadow:none}

.topbar{background:var(--saph-d);color:#AFC1DB;font-size:13.5px;padding:9px 0}
.topbar .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
.topbar b{color:var(--bronze)}
.topbar a{text-decoration:none;color:inherit}

/* NAV */
nav{background:var(--nav-bg);box-shadow:0 1px 0 var(--line);position:relative}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;position:relative}
.logo{font-family:'Sora';font-weight:800;font-size:19px;color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px}
.logo-icon{background:#fff;border-radius:8px;padding:3px;display:block;flex-shrink:0}
.logo-text span{color:var(--bronze)}
.navlinks{display:flex;align-items:center;gap:6px}
.navlinks > a{color:#fff;text-decoration:none;font-weight:600;font-size:14.5px;padding:10px 14px}
.navlinks > a:hover{color:var(--bronze)}
.navlinks .btn.callbtn{font-size:14px;padding:11px 20px;margin-left:6px}
.dropdown{position:relative}
.dropdown > a{color:#fff;text-decoration:none;font-weight:600;font-size:14.5px;padding:10px 14px;display:inline-block;cursor:pointer}
.dropmenu{list-style:none;position:absolute;top:100%;left:0;background:#fff;min-width:260px;border-radius:10px;box-shadow:0 18px 40px rgba(0,0,0,.18);padding:10px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.15s;z-index:60}
.dropdown:hover .dropmenu,.dropdown:focus-within .dropmenu{opacity:1;visibility:visible;transform:translateY(0)}
.dropmenu li{list-style:none}
.dropmenu a{display:block;padding:9px 12px;border-radius:8px;color:#151C29;text-decoration:none;font-size:14px;font-weight:600}
.dropmenu a:hover{background:var(--bg-alt);color:var(--saph)}

.hamburger{display:none;background:none;border:0;color:#fff;font-size:26px;cursor:pointer}
.mobilemenu,.mobile-menu{display:none;flex-direction:column;background:#fff;padding:14px 20px 22px;gap:2px}
.mobilemenu.open{display:flex}
.mobilemenu a{padding:11px 0;text-decoration:none;color:#151C29;font-weight:600;font-size:15px;border-bottom:1px solid var(--line)}
.mobilemenu .mm-heading{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);font-weight:700;padding-top:12px}
.mobilemenu .btn{margin-top:14px;justify-content:center}

@media(max-width:900px){
  .navlinks{display:none}
  .hamburger{display:block}
}

/* BENTO */
.kick{color:var(--saph-d);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;padding:28px 0 14px}
.tile-kick{grid-column:span 4;display:flex;align-items:center;padding:6px 4px 0;margin:0;grid-row:auto}
@media(max-width:900px){.tile-kick{grid-column:span 2}}
.bentowrap{padding:0 0 60px}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:16px}
.tile{border-radius:18px;padding:24px;position:relative;overflow:hidden}
.tile.border{border:1px solid var(--line)}
.t-hero{grid-column:span 2;grid-row:span 2;background:linear-gradient(135deg,rgba(11,31,61,.92),rgba(15,36,71,.88)),url('/assets/images/content/hero-woodstock-plumber-at-work.webp') center/cover no-repeat;color:#fff;display:flex;flex-direction:column;justify-content:center}
.t-hero h1{font-size:clamp(22px,4.5vw,28px);line-height:1.16;margin-bottom:10px}
.t-hero h1 span{color:var(--bronze)}
.t-hero p{color:#AFC1DB;font-size:13.5px;margin-bottom:16px}
.t-stat{background:var(--bronze);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.t-stat.alt{background:var(--saph)}
.t-stat b{font-family:'Sora';font-size:24px;display:block}
.t-stat span{font-size:11.5px;opacity:.9}
.t-cta{grid-column:span 2;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.t-cta h3{font-size:17px}
.t-svc{background:#fff;display:flex;flex-direction:column;justify-content:center}
.t-svc h3{font-size:14.5px;margin-bottom:4px}
.t-svc p{font-size:11.5px;color:var(--gray)}
.t-svc.tall{grid-row:span 2}
.t-price{background:#fff;grid-column:span 2;display:flex;flex-direction:column;justify-content:center}
.t-price h3{font-size:14px;color:var(--saph-d);margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em}
.prow{display:flex;justify-content:space-between;font-size:12.5px;padding:5px 0}
.prow b{color:var(--bronze-d)}
.t-process{background:var(--saph);color:#fff;grid-column:span 2;display:flex;align-items:center;justify-content:space-around;flex-wrap:wrap;gap:10px}
.pstep{text-align:center}
.pstep .n{width:32px;height:32px;background:var(--bronze);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:800;margin:0 auto 6px;font-size:13px}
.pstep span{font-size:11px}
.t-area{background:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#151C29}
.t-why{background:#fff;display:flex;flex-direction:column;justify-content:center}
.t-why h3{font-size:14px;margin-bottom:4px}
.t-why p{font-size:11.5px;color:var(--gray)}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}.t-hero,.t-cta,.t-price,.t-process{grid-column:span 2}.t-svc.tall{grid-row:span 1}}

/* SERVICE PAGE */
.breadcrumb{padding:16px 24px;font-size:13px;color:var(--gray)}
.breadcrumb a{color:var(--saph);text-decoration:none}
.svc-hero{background:var(--saph-d);color:#fff;padding:40px 0}
.svc-hero.loc-hero{background:var(--nav-bg)}
.svc-hero h1{font-size:clamp(24px,4vw,32px);margin-bottom:12px}
.svc-hero p{color:#AFC1DB;font-size:15.5px;max-width:720px;margin-bottom:18px}
.symptom-bridge h2{font-size:20px}
.zip-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.zip-chip{background:rgba(255,255,255,.12);color:#fff;font-size:12.5px;font-weight:700;padding:6px 14px;border-radius:999px;letter-spacing:.02em}
.zip-chip.badge{background:var(--bronze)}
.local-map iframe{display:block;border-radius:10px;overflow:hidden}

/* STANDARD PAGES */
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
.contact-card h3{font-size:13px;color:var(--saph-d);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.contact-card p{font-size:14.5px;margin:0}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr 1fr}}
.index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.index-card{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;text-decoration:none;color:inherit}
.index-card:hover{border-color:var(--saph)}
.index-card h2{font-size:15.5px;color:var(--saph-d);margin-bottom:6px}
.index-card p{font-size:13px;color:var(--gray);margin:0}
@media(max-width:800px){.index-grid{grid-template-columns:1fr 1fr}}
.notfound-hero{min-height:40vh;display:flex;align-items:center}
.notfound-hero .mini-cta{display:flex;gap:12px;flex-wrap:wrap}

/* BLOG */
.blog-post h1{font-size:clamp(24px,4vw,32px);color:var(--saph-d);margin-bottom:8px}
.blog-post .byline{color:var(--gray);font-size:13px;margin-bottom:18px}
.blog-post .lead{font-size:17px;font-weight:600;color:#151C29;margin-bottom:16px}
.blog-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.blog-card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;text-decoration:none;color:inherit}
.blog-card:hover{border-color:var(--saph)}
.blog-card h2{font-size:16.5px;color:var(--saph-d);margin-bottom:8px}
.blog-card p{font-size:13.5px;color:var(--gray);margin-bottom:10px}
.blog-card .blog-date{font-size:12px;color:var(--bronze-d);font-weight:700}
@media(max-width:800px){.blog-list{grid-template-columns:1fr}}

/* CONTENT SECTIONS */
.content-block{padding:48px 24px}
.content-block.alt-bg{background:var(--bg-alt)}
.content-block h2{font-size:24px;color:var(--saph-d);margin-bottom:16px}
.content-img{width:100%;height:auto;max-width:100%;border-radius:12px;margin:8px 0 24px;display:block;box-shadow:0 4px 16px rgba(15,36,71,.12)}
.loc-hero-img{width:100%;height:auto;max-height:360px;object-fit:cover;border-radius:12px;margin-top:18px}
.content-block p{font-size:15.5px;color:#2B3242;max-width:820px;margin-bottom:14px}
.mini-cta{margin-top:18px}
.table-scroll{overflow-x:auto;margin:18px 0}
.price-table{border-collapse:collapse;width:100%;min-width:420px}
.price-table th,.price-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);font-size:14.5px}
.price-table th{color:var(--saph-d);font-family:'Sora';font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.faq-list{display:flex;flex-direction:column;gap:18px;max-width:820px}
.faq-item h3{font-size:16px;color:var(--saph-d);margin-bottom:6px}
.faq-item p{font-size:14.5px;color:#2B3242}
.trust-strip{background:var(--nav-bg)}
.trust-strip h2{color:#fff}
.trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:20px}
.trust-row h4,.trust-row h3{font-size:15px;color:var(--bronze);margin-bottom:6px}
.trust-row p{font-size:13.5px;color:#C3CCDE;margin:0}
@media(max-width:800px){.trust-row{grid-template-columns:1fr}}

/* STICKY CTA (mobile bottom bar + desktop floating button) */
.sticky-cta{display:none}
.mobile-cta-bar{display:none}
.desktop-fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;background:var(--bronze);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;text-decoration:none;box-shadow:0 12px 26px rgba(169,112,44,.4);z-index:80}
.desktop-fab:hover{background:var(--bronze-d)}
@media(max-width:900px){
  .desktop-fab{display:none}
  .sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--bronze);color:#fff;text-decoration:none;align-items:center;justify-content:space-between;padding:13px 20px;font-weight:700;font-size:14px;box-shadow:0 -6px 18px rgba(0,0,0,.18)}
  .sticky-cta-num{font-family:'Sora';font-weight:800;font-size:15px}
  body{padding-bottom:56px}
}

/* MAP + FOOTER */
.sitemap-embed{border-top:1px solid var(--line)}
.sitemap-embed iframe{display:block}
footer{background:#fff;border-top:1px solid var(--line);padding:44px 0 0;font-size:14px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px;padding-bottom:28px}
.footer-col h3{font-size:13px;color:var(--saph-d);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-family:'Inter',sans-serif;font-weight:700}
.footer-col a{display:block;color:var(--gray);text-decoration:none;font-size:13.5px;padding:3px 0}
.footer-col a:hover{color:var(--saph)}
.flogo-img{display:block;height:auto;max-width:220px;margin-bottom:8px}
.footer-legal{border-top:1px solid var(--line);padding:16px 24px 30px;font-size:12px;color:var(--gray)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
