:root {
  --ink:#12201f; --body:#44514f; --teal:#1d766f; --teal-dark:#125850; --coral:#d9563c; --gold:#f5bf38; --mint:#eef7f1; --cream:#f8f5ed; --white:#fff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--body); background:#fff; line-height:1.55; letter-spacing:0; }
a { color:inherit; }
img { max-width:100%; height:auto; display:block; }
.site-header { position:fixed; top:18px; left:0; right:0; z-index:20; display:flex; justify-content:center; pointer-events:none; }
.nav-shell { width:fit-content; max-width:calc(100vw - 28px); display:inline-flex; align-items:center; gap:24px; padding:10px 12px 10px 18px; background:rgba(255,255,255,.88); border:1px solid rgba(18,32,31,.12); box-shadow:0 12px 40px rgba(18,32,31,.14); border-radius:999px; backdrop-filter:blur(18px); pointer-events:auto; }
.brand img { width:172px; height:auto; }
.desktop-nav { display:flex; gap:22px; align-items:center; margin:0; }
.desktop-nav a, .mobile-menu a { text-decoration:none; font-weight:750; color:var(--ink); font-size:14px; }
.nav-cta, .btn, button { border:0; border-radius:8px; font-weight:850; text-decoration:none; cursor:pointer; }
.nav-cta { background:var(--coral); color:#fff; padding:12px 18px; box-shadow:0 10px 24px rgba(217,86,60,.24); }
.mobile-menu-toggle { display:flex; width:44px; height:44px; align-items:center; justify-content:center; flex-direction:column; gap:5px; background:var(--ink); padding:0; }
.mobile-menu-toggle span { width:18px; height:2px; background:#fff; display:block; }
.mobile-menu { display:none; position:fixed; top:86px; left:18px; right:18px; padding:18px; background:#fff; border-radius:8px; box-shadow:0 18px 50px rgba(18,32,31,.2); border:1px solid rgba(18,32,31,.12); pointer-events:auto; }
.mobile-menu.is-open { display:grid; gap:14px; }
.hero { min-height:88vh; position:relative; display:grid; align-items:end; overflow:hidden; color:#fff; }
.hero picture, .hero picture img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(18,32,31,.88) 0%, rgba(18,32,31,.62) 42%, rgba(18,32,31,.18) 100%); }
.hero-content { position:relative; width:min(1120px, calc(100vw - 40px)); margin:0 auto; padding:150px 0 86px; }
.eyebrow { color:var(--gold); text-transform:uppercase; font-size:13px; font-weight:900; margin:0 0 12px; }
h1, h2, h3 { color:var(--ink); line-height:1.02; margin:0; letter-spacing:0; }
.hero h1 { color:#fff; font-size:clamp(46px, 8vw, 112px); max-width:900px; }
.hero-lede { font-size:clamp(18px, 2vw, 24px); max-width:680px; color:rgba(255,255,255,.9); margin:24px 0 0; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:14px 20px; }
.btn.primary { background:var(--coral); color:#fff; box-shadow:0 12px 28px rgba(217,86,60,.25); }
.btn.secondary { background:#fff; color:var(--ink); }
.btn.light { background:#fff; color:var(--teal-dark); }
.proof-strip { display:grid; grid-template-columns:repeat(4,1fr); background:var(--ink); color:#fff; }
.proof-strip div { padding:26px 22px; border-right:1px solid rgba(255,255,255,.16); }
.proof-strip strong { display:block; font-size:30px; color:var(--gold); }
.proof-strip span { font-size:14px; color:rgba(255,255,255,.75); }
.band-mint { background:var(--mint); } .band-white { background:#fff; }
.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,520px); gap:44px; align-items:center; padding:84px max(24px,calc((100vw - 1120px)/2)); }
.copy h2, .section-inner h2, .page-hero h1, .cta-band h2 { font-size:clamp(34px, 5vw, 62px); }
.copy p, .page-hero p, .section-inner>p { font-size:18px; max-width:680px; }
.tick-list { display:grid; gap:12px; padding:0; margin:26px 0 0; list-style:none; }
.tick-list li { padding-left:30px; position:relative; color:var(--ink); font-weight:700; }
.tick-list li::before { content:""; position:absolute; left:0; top:.45em; width:14px; height:14px; border-radius:50%; background:var(--teal); box-shadow:inset 0 0 0 4px #fff; }
.image-card { border-radius:8px; overflow:hidden; box-shadow:0 22px 60px rgba(18,32,31,.16); background:#fff; }
.cards-section { padding:84px 24px; }
.section-inner { width:min(1120px,100%); margin:0 auto; }
.narrow { width:min(860px,100%); }
.cards { display:grid; gap:20px; margin-top:34px; } .cards.three { grid-template-columns:repeat(3,1fr); } .cards.two { grid-template-columns:repeat(2,1fr); }
.cards article, .gr-summary, .profile-panel, .quote-form, .area-panel { border:1px solid rgba(18,32,31,.11); border-radius:8px; background:#fff; box-shadow:0 16px 42px rgba(18,32,31,.08); }
.cards article { padding:26px; }
.cards h3, .cards h2 { font-size:24px; margin:14px 0 10px; }
.icon { width:42px; height:42px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; background:var(--teal); font-weight:900; }
.service-card img { border-radius:8px; margin-bottom:20px; }
.accent-card { background:var(--ink)!important; color:#fff; } .accent-card h2 { color:#fff; }
.text-link { color:var(--teal-dark); font-weight:850; text-decoration-thickness:2px; }
.reviews { padding:84px 24px; }
.gr-summary { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; padding:28px; }
.gr-g { width:58px; height:58px; border-radius:50%; display:grid; place-items:center; font-size:32px; font-weight:900; color:#4285f4; background:#fff; border:1px solid #ddd; }
.gr-score { font-size:42px; line-height:1; margin:0; font-weight:900; color:var(--ink); } .stars { color:var(--gold); letter-spacing:0; margin:4px 0; }
.pill-link { justify-self:end; background:var(--mint); color:var(--teal-dark); padding:12px 16px; border-radius:999px; text-decoration:none; font-weight:850; }
.cta-band { background:linear-gradient(90deg,var(--teal-dark),var(--teal)); color:#fff; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:54px max(24px,calc((100vw - 1120px)/2)); }
.cta-band h2, .cta-band p { color:#fff; margin:0; }
.subpage { padding-top:120px; }
.page-hero { padding:72px max(24px,calc((100vw - 1120px)/2)) 54px; background:var(--cream); }
.page-hero h1 { max-width:900px; }
.contact-grid { display:grid; grid-template-columns:minmax(0,420px) minmax(320px,1fr); gap:38px; padding:76px max(24px,calc((100vw - 1120px)/2)); }
.phone-large a { color:var(--ink); font-size:34px; font-weight:900; text-decoration:none; }
.quote-form { display:grid; gap:16px; padding:28px; }
.quote-form label { display:grid; gap:8px; color:var(--ink); font-weight:800; }
.quote-form input, .quote-form textarea { width:100%; border:1px solid rgba(18,32,31,.18); border-radius:8px; padding:13px 14px; font:inherit; }
.quote-form button { background:var(--coral); color:#fff; min-height:52px; font-size:16px; }
.faq-strip { padding:76px 24px; }
details { border-bottom:1px solid rgba(18,32,31,.12); padding:18px 0; }
summary { color:var(--ink); font-weight:900; cursor:pointer; font-size:18px; }
.profile-panel { padding:28px; }
.profile-panel h2 { font-size:28px; margin-bottom:18px; }
dl { display:grid; grid-template-columns:130px 1fr; gap:12px; } dt { font-weight:900; color:var(--ink); } dd { margin:0; }
.area-panel { margin:76px auto; width:min(1120px,calc(100vw - 48px)); padding:38px; display:flex; justify-content:space-between; align-items:center; gap:22px; background:var(--mint); }
.site-footer { background:var(--ink); color:rgba(255,255,255,.78); padding:56px max(24px,calc((100vw - 1120px)/2)) 24px; }
.site-footer h2 { color:#fff; font-size:18px; margin-bottom:12px; }
.footer-grid { display:grid; grid-template-columns:1.4fr .8fr 1fr; gap:36px; }
.footer-grid nav { display:grid; gap:9px; }
.site-footer a { color:#fff; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.14); margin-top:34px; padding-top:20px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.mobile-sticky { display:none; }
@media (min-width:1024px) { .mobile-menu-toggle { display:none !important; } }
@media (max-width:900px) {
  .desktop-nav,.nav-cta { display:none; } .brand img { width:152px; }
  .hero { min-height:86vh; } .hero-overlay { background:linear-gradient(0deg, rgba(18,32,31,.88), rgba(18,32,31,.28)); }
  .hero-content { padding:132px 0 72px; }
  .proof-strip,.cards.three,.cards.two,.split,.contact-grid,.footer-grid { grid-template-columns:1fr; }
  .proof-strip div { border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .split,.cards-section,.reviews,.faq-strip { padding:58px 20px; }
  .gr-summary { grid-template-columns:1fr; text-align:left; } .pill-link { justify-self:start; }
  .cta-band,.area-panel { flex-direction:column; align-items:flex-start; }
  .subpage { padding-top:98px; } .page-hero { padding:54px 20px 42px; }
  dl { grid-template-columns:1fr; }
  .mobile-sticky { position:fixed; display:grid; grid-template-columns:1fr 1fr; left:0; right:0; bottom:0; z-index:30; }
  .mobile-sticky a { min-height:56px; display:grid; place-items:center; color:#fff; text-decoration:none; font-weight:900; }
  .sticky-call { background:var(--teal); } .sticky-message { background:#0a0a0a; }
  .site-footer { padding-bottom:86px; }
}
@media (max-width:460px) { .hero h1 { font-size:42px; } .phone-large a { font-size:28px; } .nav-shell { width:calc(100vw - 24px); justify-content:space-between; } }
