/* ===========================================================
   Aurora Restoration Group — warm & local design system
   =========================================================== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Figtree:wght@400;500;600;700;800&display=swap');

:root{
  --cream: #FBF5EC;
  --cream-deep: #F3E8D6;
  --paper: #FFFFFF;
  --ink: #20304C;
  --ink-soft: #4C5C7C;
  --ink-faint: #7C8AA6;
  --teal: #2DA6A6;
  --green: #5CB86B;
  --terracotta: #DD7A38;
  --terracotta-dark: #B85F26;
  --amber: #F0A857;
  --border: #E7DCC8;
  --border-soft: #EFE6D6;
  --shadow-sm: 0 2px 10px rgba(32,48,76,0.07);
  --shadow-md: 0 10px 30px rgba(32,48,76,0.10);
  --shadow-lg: 0 18px 46px rgba(32,48,76,0.16);
  --radius: 20px;
  --radius-sm: 12px;
  --grad-aurora: linear-gradient(120deg, var(--teal), var(--green));
  --grad-warm: linear-gradient(120deg, var(--terracotta), var(--amber));
  font-size: 16px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden; width:100%;}
body{
  margin:0; background:var(--cream); color:var(--ink); overflow-x:hidden; width:100%;
  font-family:'Figtree', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces', Georgia, serif; color:var(--ink); font-weight:600;
  line-height:1.18; letter-spacing:-0.01em; margin:0 0 14px;
}
h1{font-size:clamp(32px,4.4vw,50px); font-weight:600;}
h2{font-size:clamp(24px,3vw,32px);}
h3{font-size:19px; margin-top:28px;}
p{margin:0 0 16px;}
a{color:var(--teal); text-decoration:none;}
a:hover{color:var(--terracotta);}
ul{margin:0; padding:0;}
img{display:block; max-width:100%;}
.container{max-width:1180px; margin:0 auto; padding:0 24px;}

/* ---------- buttons ---------- */
.btn-primary, .btn-secondary{
  display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:15px;
  padding:14px 26px; border-radius:999px; white-space:nowrap; transition:transform .15s, box-shadow .15s, background .15s;
}
.btn-primary{
  background:var(--grad-warm); color:#fff; box-shadow:var(--shadow-md);
}
.btn-primary:hover{color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-lg);}
.btn-secondary{
  background:var(--paper); color:var(--ink); border:2px solid var(--border);
}
.btn-secondary:hover{color:var(--ink); border-color:var(--teal); transform:translateY(-2px);}
.btn-ic, .btn-call-ic{display:inline-block; transform:rotate(100deg); font-size:15px;}

/* ---------- utility bar ---------- */
.utility-bar{
  background:var(--ink); color:#EFE9DC; font-size:12.5px; font-weight:600;
  letter-spacing:.02em; text-align:center; padding:8px 16px;
}
.utility-bar a{color:var(--amber); font-weight:800;}
.ub-dot{margin:0 10px; opacity:.5;}
@media (max-width:640px){ .ub-item:first-child{display:none;} .utility-bar .ub-dot:first-of-type{display:none;} }

/* ---------- header ---------- */
.site-header{background:var(--paper); border-bottom:1px solid var(--border-soft); position:sticky; top:0; z-index:300;}
.header-inner{max-width:1180px; margin:0 auto; padding:12px 24px; display:flex; align-items:center; gap:28px;}
.brand{display:flex; align-items:center; flex-shrink:0;}
.brand img{height:52px; width:auto;}
.main-nav{display:flex; align-items:center; gap:6px; flex:1; font-weight:700; font-size:14.5px;}
.main-nav > a{color:var(--ink); padding:10px 14px; border-radius:999px; transition:background .15s;}
.main-nav > a:hover{background:var(--cream-deep); color:var(--ink);}
.header-cta{display:flex; align-items:center; gap:14px; margin-left:auto; position:relative; z-index:260;}
.btn-call{
  display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:#fff;
  padding:11px 20px; border-radius:999px; font-weight:700; font-size:14.5px; white-space:nowrap;
}
.btn-call:hover{background:var(--terracotta); color:#fff;}

.nav-item{position:relative;}
.nav-top{
  font:inherit; font-weight:700; color:var(--ink); background:none; border:none; cursor:pointer;
  padding:10px 14px; border-radius:999px; display:flex; align-items:center; gap:6px; transition:background .15s;
}
.nav-item.open .nav-top, .nav-top:hover{background:var(--cream-deep);}
.chev{width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .15s;}
.nav-item.open .chev{transform:rotate(-135deg) translateY(2px);}
.nav-item::after{content:""; position:absolute; left:0; right:0; top:100%; height:14px;}
.dropdown{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%);
  background:#fff; border-radius:16px; box-shadow:var(--shadow-lg); border:1px solid var(--border-soft);
  min-width:280px; padding:10px; display:none; z-index:200;
}
.nav-item.open .dropdown{display:block;}
.dropdown a{display:block; padding:9px 14px; border-radius:10px; color:var(--ink); font-weight:600; font-size:13.8px;}
.dropdown a:hover{background:var(--cream-deep); color:var(--terracotta-dark);}
.dropdown .view-all{margin-top:4px; border-top:1px solid var(--border-soft); padding-top:12px; color:var(--terracotta-dark); font-weight:800;}

.mobile-toggle{display:none; width:42px; height:42px; border-radius:999px; border:1px solid var(--border); background:var(--paper); position:relative; cursor:pointer;}
.mobile-toggle span, .mobile-toggle span::before, .mobile-toggle span::after{
  content:""; position:absolute; left:10px; right:10px; height:2px; background:var(--ink); border-radius:2px; transition:transform .2s, opacity .2s;
}
.mobile-toggle span{top:20px;}
.mobile-toggle span::before{top:-7px;}
.mobile-toggle span::after{top:7px;}
.mainNav-open .mobile-toggle span{background:transparent;}

@media (max-width:960px){
  .main-nav{
    position:fixed; top:0; right:0; height:100vh; width:min(320px,86vw); background:var(--paper);
    flex-direction:column; align-items:stretch; padding:90px 20px 30px; gap:2px; overflow-y:auto; overflow-x:hidden;
    box-shadow:var(--shadow-lg); transform:translateX(100%); transition:transform .25s ease; z-index:250;
  }
  .main-nav.open{transform:translateX(0);}
  .dropdown{min-width:0; width:100%;}
  .main-nav > a{padding:14px 12px; border-radius:12px;}
  .nav-top{width:100%; justify-content:space-between; padding:14px 12px; border-radius:12px;}
  .dropdown{position:static; transform:none; box-shadow:none; border:none; background:var(--cream-deep); margin:2px 0 8px; display:none;}
  .nav-item.open .dropdown{display:block;}
  .mobile-toggle{display:block;}
  .header-cta .btn-call span:last-child{display:none;}
  .header-cta .btn-call{padding:11px 14px;}
}
@media (max-width:640px){
  .header-cta .btn-call{display:none;}
}

/* ---------- breadcrumbs ---------- */
.breadcrumbs{padding:16px 24px 0; font-size:13px; color:var(--ink-faint);}
.breadcrumbs a{color:var(--ink-faint); font-weight:600;}
.breadcrumbs a:hover{color:var(--terracotta);}
.breadcrumbs .sep{margin:0 8px; opacity:.6;}

/* ---------- hero ---------- */
.hero{padding:32px 0 0; position:relative; overflow:hidden;}
.hero .container{display:grid; grid-template-columns:1.15fr 1fr; gap:52px; align-items:center; padding-bottom:56px;}
.hero.home .container{padding-top:8px;}
.badge{
  display:inline-flex; align-items:center; gap:9px; background:var(--cream-deep); color:var(--ink);
  padding:8px 16px; border-radius:999px; font-weight:700; font-size:13px; margin-bottom:18px;
}
.pulse{width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 0 rgba(92,184,107,.6); animation:pulse 1.8s infinite;}
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(92,184,107,.55);} 70%{box-shadow:0 0 0 9px rgba(92,184,107,0);} 100%{box-shadow:0 0 0 0 rgba(92,184,107,0);} }
.hero .sub{font-size:18px; color:var(--ink-soft); max-width:52ch;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:26px;}
.hero-illustration{position:relative; border-radius:28px; overflow:visible;}
.hero-illo-svg{width:100%; height:auto; display:block; border-radius:28px; box-shadow:var(--shadow-lg);}
.hero-photo{width:100%; height:100%; object-fit:cover; aspect-ratio:640/478; display:block; border-radius:28px; box-shadow:var(--shadow-lg);}
.float-chip{
  position:absolute; left:-16px; bottom:-16px; background:#fff; padding:11px 18px; border-radius:999px;
  box-shadow:var(--shadow-md); font-weight:800; font-size:13px; display:flex; align-items:center; gap:9px;
}
.dot-live{width:9px; height:9px; border-radius:50%; background:var(--terracotta);}
.section-divider{line-height:0; margin-top:-2px;}
.section-divider svg{width:100%; height:32px; display:block;}
.section-divider path{fill:var(--cream-deep);}

@media (max-width:900px){
  .hero .container{grid-template-columns:1fr; padding-bottom:40px;}
  .hero-illustration{order:-1; max-width:420px; margin:0 auto 8px;}
}

/* ---------- trust block ---------- */
.trust-block{background:var(--cream-deep); padding:30px 0;}
.trust-block .container{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.trust-tile{display:flex; align-items:center; gap:14px;}
.trust-tile .ic{
  width:46px; height:46px; border-radius:14px; background:var(--grad-aurora); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.trust-tile .ic svg{width:22px; height:22px;}
.trust-tile strong{display:block; font-size:14.5px; color:var(--ink);}
.trust-tile span{font-size:13px; color:var(--ink-soft);}
@media (max-width:900px){ .trust-block .container{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .trust-block .container{grid-template-columns:1fr;} }

/* ---------- section heading ---------- */
.section-heading{text-align:center; max-width:640px; margin:52px auto 30px;}
.section-heading p{color:var(--ink-soft); font-size:16px;}

/* ---------- card grid (home services) ---------- */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-bottom:56px;}
.service-card{
  background:var(--paper); border:1px solid var(--border-soft); border-radius:var(--radius);
  padding:28px 26px; box-shadow:var(--shadow-sm); transition:transform .18s, box-shadow .18s;
}
.service-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.service-card .ic{
  width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; color:#fff; margin-bottom:16px;
}
.service-card.water .ic{background:linear-gradient(120deg,#2DA6A6,#3FBEDB);}
.service-card.fire .ic{background:linear-gradient(120deg,var(--terracotta),var(--amber));}
.service-card.mold .ic{background:linear-gradient(120deg,var(--green),#8CCB6F);}
.service-card .ic svg{width:24px; height:24px;}
.service-card h3{margin-top:0; font-size:20px;}
.service-card p{color:var(--ink-soft); font-size:14.5px;}
.service-card .more{font-weight:800; font-size:14px; color:var(--terracotta-dark);}
@media (max-width:900px){ .card-grid{grid-template-columns:1fr;} }

/* ---------- hub grid section ---------- */
.hub-grid-section{margin:44px 0 8px; padding:30px; background:var(--paper); border:1px solid var(--border-soft); border-radius:var(--radius); box-shadow:var(--shadow-sm);}
.hub-grid-section h2{margin-bottom:18px;}
.hub-link-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; list-style:none;}
.hub-link-grid li a{
  display:block; background:var(--cream); border:1px solid var(--border-soft); border-radius:14px;
  padding:14px 16px; font-weight:700; font-size:14.5px; color:var(--ink); transition:all .15s;
}
.hub-link-grid li a:hover{background:var(--grad-aurora); color:#fff; border-color:transparent; transform:translateY(-2px);}
.serving-label{margin-top:26px; font-weight:800; color:var(--ink); font-size:14px;}
.area-pill-grid{display:flex; flex-wrap:wrap; gap:9px; list-style:none; margin-top:12px;}
.area-pill-grid li a{
  display:block; background:var(--cream-deep); border-radius:999px; padding:9px 16px; font-size:13.5px; font-weight:700; color:var(--ink);
}
.area-pill-grid li a:hover{background:var(--terracotta); color:#fff;}
@media (max-width:900px){ .hub-link-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .hub-link-grid{grid-template-columns:1fr;} }

.location-group h3{margin-top:8px;}
.location-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; list-style:none; margin-bottom:26px;}
.location-grid li a{
  display:block; background:var(--cream); border:1px solid var(--border-soft); border-radius:12px; padding:12px 14px;
  font-weight:700; font-size:13.8px; color:var(--ink);
}
.location-grid li a:hover{border-color:var(--teal); color:var(--teal);}
@media (max-width:900px){ .location-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .location-grid{grid-template-columns:1fr;} }

/* ---------- content + sidebar ---------- */
.content-wrap{display:grid; grid-template-columns:1fr 320px; gap:46px; padding:46px 24px 60px; align-items:start;}
.article-body{font-size:16px; color:var(--ink-soft); max-width:72ch;}
.article-body h2{color:var(--ink); margin-top:38px;}
.article-body h3{color:var(--ink); font-size:18px;}
.article-body ul, .article-body ol{margin:0 0 18px 22px;}
.article-body li{margin-bottom:8px;}
.article-body a{font-weight:700; color:var(--teal); text-decoration:underline; text-decoration-color:var(--border);}
.article-body a:hover{color:var(--terracotta);}

.sidebar{display:flex; flex-direction:column; gap:18px; position:sticky; top:96px;}
.side-card{background:var(--paper); border:1px solid var(--border-soft); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow-sm);}
.side-card h4{font-family:'Figtree',sans-serif; font-size:15px; font-weight:800; margin-bottom:12px; color:var(--ink);}
.side-card ul{list-style:none;}
.side-card li{border-bottom:1px solid var(--border-soft); padding:9px 0;}
.side-card li:last-child{border-bottom:none;}
.side-card li a{font-size:14px; font-weight:600; color:var(--ink-soft);}
.side-card li a:hover{color:var(--terracotta);}
.side-card.cta-card{background:var(--grad-aurora); color:#fff; border:none;}
.side-card.cta-card h4, .side-card.cta-card p{color:#fff;}
.side-card.cta-card .btn-primary{background:#fff; color:var(--terracotta-dark); box-shadow:none; width:100%; justify-content:center;}
.side-card.cta-card .btn-primary:hover{color:var(--terracotta-dark); transform:translateY(-2px);}

@media (max-width:960px){
  .content-wrap{grid-template-columns:1fr;}
  .sidebar{position:static;}
}

/* ---------- FAQ ---------- */
.faq-section{margin-top:44px;}
.faq-item{background:var(--paper); border:1px solid var(--border-soft); border-radius:14px; padding:18px 22px; margin-bottom:12px;}
.faq-item summary{
  cursor:pointer; font-weight:700; color:var(--ink); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-family:'Figtree',sans-serif; font-size:15.5px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-toggle{
  flex-shrink:0; width:26px; height:26px; border-radius:50%; background:var(--cream-deep); color:var(--ink);
  display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:800; transition:transform .2s, background .2s;
}
.faq-item[open] .faq-toggle{transform:rotate(45deg); background:var(--terracotta); color:#fff;}
.faq-a{padding-top:12px; color:var(--ink-soft); font-size:15px;}
.faq-a p{margin-bottom:0;}

/* ---------- final CTA ---------- */
.final-cta{background:var(--ink); color:#fff; padding:64px 0; text-align:center; position:relative;}
.final-cta-top-edge{line-height:0; margin-top:-1px;}
.final-cta-top-edge svg{width:100%; height:32px; display:block;}
.final-cta-top-edge path{fill:var(--ink);}
.final-cta h2{color:#fff; max-width:640px; margin:0 auto 12px;}
.final-cta p{color:#C7D0E0; max-width:520px; margin:0 auto 26px; font-size:16px;}
.final-cta .btn-primary{box-shadow:none;}

/* ---------- footer ---------- */
.site-footer{background:#152238; color:#C7D0E0; padding-top:0;}
.footer-top-edge{line-height:0;}
.footer-top-edge svg{width:100%; height:36px; display:block;}
.footer-top-edge path{fill:var(--cream);}
.site-footer .container{padding-top:50px;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-brand img{height:44px; margin-bottom:14px; filter:brightness(0) invert(1) opacity(.92);}
.footer-brand p{font-size:13.5px; color:#9FADC6; line-height:1.7;}
.site-footer h4{color:#fff; font-family:'Figtree',sans-serif; font-size:14px; margin-bottom:14px; letter-spacing:.02em;}
.site-footer ul{list-style:none;}
.site-footer li{margin-bottom:10px;}
.site-footer a{color:#AEBBD4; font-size:13.8px;}
.site-footer a:hover{color:var(--amber);}
.footer-disclaimer{font-size:12px; color:#7F8CA8; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.08); line-height:1.7;}
.footer-bottom{display:flex; justify-content:space-between; padding:18px 0; font-size:12.5px; color:#7F8CA8; flex-wrap:wrap; gap:8px;}
@media (max-width:800px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- sticky mobile call bar ---------- */
.sticky-call{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:400;
  background:var(--grad-warm); box-shadow:0 -6px 20px rgba(0,0,0,.18);
}
.sticky-call a{
  display:flex; align-items:center; justify-content:center; gap:10px; color:#fff; font-weight:800;
  padding:15px; font-size:15px;
}
@media (max-width:760px){ .sticky-call{display:block;} body{padding-bottom:58px;} }

/* ---------- 404 ---------- */
.error-404{padding:90px 0; text-align:center; max-width:640px;}
.error-code{
  display:inline-block; font-family:'Fraunces',serif; font-size:88px; font-weight:700; color:var(--border);
  line-height:1;
}
.error-cta{margin-top:24px;}
