:root{
  /* Base (clean '107ec50e' vibe) */
  --bg:#ffffff; --ink:#0f172a; --ink-2:#334155; --ink-3:#64748b;
  --muted:#f8fafc; --line:#e2e8f0;
  --accent:#0ea5e9;         /* default accent for home */
  --accent-ink:#0b4c6a;
  --shadow:0 1px 2px rgba(15,23,42,.06), 0 10px 28px rgba(15,23,42,.08);

  /* Brand overrides (used by [data-theme]) */
  --roof-accent:#0b6bcb;    /* sapphire for Raze page */
  --roof-accent-ink:#084785;
  --well-accent:#0a8f6a;    /* emerald for Elason VT page */
  --well-accent-ink:#075a44;
}

html,body{height:100%}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,"Noto Sans";
  color:var(--ink); background:var(--bg); line-height:1.55;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px} .skip:focus{left:auto;top:auto;padding:.5rem 1rem;background:#000;color:#fff}

.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.hdr-inner{display:flex;align-items:center;justify-content:space-between;height:58px}
.wordmark{font-weight:800;letter-spacing:.2px}
.nav a{color:var(--ink-2);text-decoration:none;margin-left:16px;font-weight:600}
.nav a:hover{color:var(--ink)}

.hero{
  padding:68px 0 28px; border-bottom:1px solid var(--line);
  background:
    radial-gradient(1200px 320px at 12% -50%, #ecf7ff 0%, rgba(236,247,255,0) 65%),
    radial-gradient(900px 260px at 110% -10%, #f1f8ff 0%, rgba(241,248,255,0) 70%);
}
.hero-grid{display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:980px){.hero-grid{grid-template-columns:6fr 6fr}}
.hero-copy h1{margin:0 0 10px 0;font-size:clamp(26px,3.6vw,44px);letter-spacing:.2px}
.hero-copy .thin{font-weight:500;color:var(--ink-2)}
.lede{color:var(--ink-2);max-width:64ch;margin:0 0 16px 0}

.tiles{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:720px){.tiles{grid-template-columns:1fr 1fr}}
.tile{
  background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);padding:18px; transition:transform .15s ease, box-shadow .15s ease;
}
.tile:hover{ transform: translateY(-2px); box-shadow:0 6px 18px rgba(15,23,42,.10), 0 18px 40px rgba(15,23,42,.06) }
.tile .sub{color:var(--ink-3);margin:6px 0 12px 0}
.tile-logo .brand-logo{width:auto; height:48px; display:block; margin:4px 0 2px 0}

.brand-logo.lg{height:54px; width:auto; display:block; margin:2px 0 10px 0}

.sect{padding:44px 0} .sect.alt{background:var(--muted)} .sect.tiny{padding:16px 0}
.grid.two{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:880px){.grid.two{grid-template-columns:7fr 5fr;gap:20px}}

.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.card.outline{background:#fff}
.card-body{padding:20px}
.tight{margin:0 0 4px 0}
.muted{color:var(--ink-3)}
.body{margin:8px 0 14px 0}
.list{margin:10px 0 16px 1.2rem} .list li{margin:6px 0}

.kv>div{display:flex;justify-content:space-between;border-top:1px dashed var(--line);padding:8px 0}
.kv .k{color:var(--ink-3)} .kv .v{font-weight:700}
.note{color:var(--ink-3);font-size:14px;margin-top:8px}

.cta-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

.btn{
  display:inline-block;padding:12px 16px;font-weight:800;border-radius:12px;
  border:1px solid var(--accent);background:var(--accent);color:#fff;text-decoration:none;box-shadow:var(--shadow);
  transition:transform .08s ease, background .08s ease, border-color .08s ease;
}
.btn:hover{background:var(--accent-ink);border-color:var(--accent-ink);text-decoration:none;transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn.ghost{background:#fff;color:var(--accent-ink);border-color:var(--accent)}
.btn.lg{padding:12px 18px} .btn.xl{padding:14px 20px;font-size:18px} .btn.sm{padding:10px 14px;font-size:14px}

.lnk{color:var(--ink-2);font-weight:700} .lnk:hover{color:var(--ink)}

.sticky{position:sticky;bottom:0;z-index:60;display:flex;gap:10px;justify-content:center;padding:10px;border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(6px)}
@media (min-width:900px){.sticky{display:none}}

.ftr{border-top:1px solid var(--line);padding:18px 0;color:var(--ink-3);font-size:14px}
.ftr-inner{display:flex;align-items:center;justify-content:space-between}
.ftr-links{display:flex;gap:8px;align-items:center}
.ftr a{color:var(--ink-2)} .ftr a:hover{color:var(--ink)}

:focus{outline:3px solid rgba(14,165,233,.35);outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Per-page accent overrides */
html[data-theme="roofing"] .btn{ background:var(--roof-accent); border-color:var(--roof-accent) }
html[data-theme="roofing"] .btn:hover{ background:var(--roof-accent-ink); border-color:var(--roof-accent-ink) }
html[data-theme="roofing"] .btn.ghost{ color:var(--roof-accent-ink); border-color:var(--roof-accent); background:#fff }
html[data-theme="roofing"] .hero{
  background:
    radial-gradient(1200px 320px at 12% -50%, #e8f1ff 0%, rgba(232,241,255,0) 65%),
    radial-gradient(900px 260px at 110% -10%, #eaf2ff 0%, rgba(234,242,255,0) 70%);
}

html[data-theme="wellness"] .btn{ background:var(--well-accent); border-color:var(--well-accent) }
html[data-theme="wellness"] .btn:hover{ background:var(--well-accent-ink); border-color:var(--well-accent-ink) }
html[data-theme="wellness"] .btn.ghost{ color:var(--well-accent-ink); border-color:var(--well-accent); background:#fff }
html[data-theme="wellness"] .hero{
  background:
    radial-gradient(1200px 320px at 12% -50%, #e8fff6 0%, rgba(232,255,246,0) 65%),
    radial-gradient(900px 260px at 110% -10%, #f1fff9 0%, rgba(241,255,249,0) 70%);
}

/* Testimonials */
.t-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:10px}
@media (min-width:780px){.t-grid{grid-template-columns:1fr 1fr 1fr}}
.t-card{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);padding:16px}
.t-card blockquote{margin:0 0 8px 0;font-weight:700;color:var(--ink-2)}
.t-card figcaption{color:var(--ink-3)}
