/* ═══════════════════════════════════════════════════════════
   BLOOMS ROOFING v2 — PAGE COMPONENT STYLES
   ═══════════════════════════════════════════════════════════ */

/* ── HERO ───────────────────────────────────────────────── */
.hero {
  min-height:100vh; display:flex; align-items:center;
  padding:120px 0 80px; position:relative; overflow:hidden;
}
.hero-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 40%, black 20%, transparent 85%);
}
.hero-halo {
  position:absolute; border-radius:50%; filter:blur(100px); pointer-events:none;
}
.halo-1 {
  width:700px;height:700px; top:-250px;left:-150px;
  background:radial-gradient(circle,rgba(74,222,128,0.10) 0%,transparent 70%);
}
.halo-2 {
  width:480px;height:480px; bottom:-100px;right:8%;
  background:radial-gradient(circle,rgba(251,191,36,0.06) 0%,transparent 70%);
}
.hero-lede {
  display:inline-flex; align-items:center; gap:10px;
  background:var(--s1); border:1px solid var(--b2);
  border-radius:var(--r-pill); padding:5px 16px 5px 5px;
  margin-bottom:32px; font-size:0.82rem; color:var(--t3);
  transition:border-color var(--dt);
}
.hero-lede:hover { border-color:var(--bg); }
.hero-lede-badge {
  background:var(--g400); color:#060910;
  font-family:'DM Mono',monospace; font-size:0.66rem; letter-spacing:0.08em;
  padding:3px 9px; border-radius:var(--r-pill); font-weight:600;
}
.hero-h1 { font-size:clamp(3.2rem,6.5vw,5.8rem); line-height:0.98; letter-spacing:-0.035em; margin-bottom:22px; }
.hero-h1 .hl {
  color:transparent;
  background:linear-gradient(135deg,var(--g400) 0%,#86efac 60%,var(--amber) 100%);
  -webkit-background-clip:text; background-clip:text;
}
.hero-sub { font-size:1.08rem; max-width:510px; line-height:1.72; margin-bottom:36px; }
.hero-ctas { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:52px; }
.hero-proof {
  display:flex; gap:36px; flex-wrap:wrap;
  padding-top:36px; border-top:1px solid var(--b0);
}
.hero-proof-n {
  font-family:'Fraunces',serif; font-weight:700;
  font-size:2rem; color:var(--t1); line-height:1; margin-bottom:3px;
  letter-spacing:-0.02em;
}
.hero-proof-l { font-family:'DM Mono',monospace; font-size:0.72rem; letter-spacing:0.08em; color:var(--t4); }

/* Hero visual */
.hero-frame {
  position:relative; border-radius:var(--r-xl); overflow:hidden;
  border:1px solid var(--b1); aspect-ratio:4/3;
  box-shadow:var(--sh-xl), 0 0 80px rgba(74,222,128,0.05);
}
.hero-frame img {
  width:100%;height:100%;object-fit:cover;
  filter:brightness(0.82) saturate(0.85);
  transition:filter var(--ds);
}
.hero-frame:hover img { filter:brightness(0.88) saturate(0.92); }
.hero-frame-overlay {
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(6,9,16,0.55) 0%,transparent 55%);
}
.frame-pip {
  position:absolute; border-radius:var(--r-md);
  background:rgba(6,9,16,0.88); border:1px solid var(--b2);
  backdrop-filter:blur(16px); padding:14px 18px;
}
.fp-label { font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--t4);margin-bottom:4px; }
.fp-value { font-family:'Fraunces',serif;font-weight:700;font-size:1.1rem;line-height:1; }
.frame-live { position:absolute;top:18px;right:18px; display:flex;align-items:center;gap:8px; background:rgba(6,9,16,0.88);border:1px solid var(--b1);border-radius:var(--r-md);padding:8px 14px;backdrop-filter:blur(16px); }
.live-dot { width:6px;height:6px;border-radius:50%;background:var(--g400);box-shadow:0 0 10px var(--g400); animation:lpulse 2s infinite; }
@keyframes lpulse { 0%,100%{opacity:1}50%{opacity:0.5} }
.live-txt { font-family:'DM Mono',monospace;font-size:0.72rem;color:var(--t2);letter-spacing:0.04em; }

/* ── STATS BAND ──────────────────────────────────────────── */
.stats-band {
  background:var(--s1); border-top:1px solid var(--b0); border-bottom:1px solid var(--b0);
  padding:56px 0; position:relative;
}
.stats-band::before {
  content:''; position:absolute;inset:0;
  background:radial-gradient(ellipse 50% 100% at 50%,rgba(74,222,128,0.04) 0%,transparent 70%);
}
.stats-row { display:grid;grid-template-columns:repeat(4,1fr);position:relative; }
.stat-cell {
  padding:20px 28px; border-right:1px solid var(--b0); text-align:center;
}
.stat-cell:last-child { border-right:none; }
.stat-n {
  font-family:'Fraunces',serif;font-weight:700;font-size:2.8rem;
  letter-spacing:-0.04em;color:var(--t1);line-height:1;margin-bottom:6px;
}
.stat-n sup { font-size:1.2rem;vertical-align:super; }
.stat-l { font-family:'DM Mono',monospace;font-size:0.72rem;letter-spacing:0.08em;color:var(--t4); }

/* ── SERVICE CARD ────────────────────────────────────────── */
.svc-card {
  padding:32px;
  display:flex;
  flex-direction:column;
  gap:0;
  position:relative;
  overflow:hidden;
  min-height:360px;
  background:var(--s1);
  box-shadow:0 20px 60px rgba(74,222,128,0.08);
}
.svc-card::after {
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--g400),transparent);
  opacity:0;transition:opacity var(--dm);
}
.svc-card:hover::after { opacity:1; }
.svc-icon {
  width:56px;height:56px;border-radius:18px;
  border:1px solid var(--b1);background:rgba(74,222,128,0.1);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
  margin-bottom:24px; transition:border-color var(--dt),box-shadow var(--dt),transform var(--dt);
}
.card:hover .svc-icon { border-color:var(--bg);box-shadow:var(--sh-glow-sm);transform:scale(1.03); }
.svc-h  { font-size:1.1rem;margin-bottom:12px; line-height:1.35; }
.svc-p  { font-size:0.92rem;color:var(--t3);line-height:1.75;margin-bottom:22px;flex:1; }
.svc-link {
  display:inline-flex;align-items:center;gap:8px;
  font-family:'DM Mono',monospace;font-size:0.78rem;letter-spacing:0.08em;
  color:var(--g400);transition:gap var(--db),color var(--dt);
}
.svc-link:hover { gap:14px; }

/* ── PRICING ─────────────────────────────────────────────── */
.price-card {
  padding:36px;display:flex;flex-direction:column;position:relative;overflow:hidden;
}
.price-card.pop { background:var(--s2);border-color:var(--bg);box-shadow:var(--sh-glow); }
.price-card.pop::before {
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--g400),transparent);
}
.price-label { font-family:'DM Mono',monospace;font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--t4);margin-bottom:8px; }
.price-num {
  font-family:'Fraunces',serif;font-weight:700;font-size:3.2rem;
  letter-spacing:-0.04em;color:var(--t1);line-height:1;margin-bottom:4px;
}
.price-num sup { font-size:1.3rem;vertical-align:super; }
.price-unit { font-family:'DM Mono',monospace;font-size:0.76rem;color:var(--t4);margin-bottom:22px; }
.price-hr { height:1px;background:var(--b0);margin:20px 0; }
.price-feats { display:flex;flex-direction:column;gap:0;margin-bottom:26px;flex:1; }
.pf {
  display:flex;align-items:flex-start;gap:10px;
  padding:9px 0;font-size:0.86rem;color:var(--t2);
  border-bottom:1px solid var(--b0);
}
.pf:last-child { border-bottom:none; }
.pf-check {
  width:15px;height:15px;border-radius:50%;flex-shrink:0;margin-top:2px;
  background:var(--g-ink);border:1px solid rgba(74,222,128,0.25);
  display:flex;align-items:center;justify-content:center;
  font-size:0.5rem;color:var(--g400);
}
.price-badge {
  position:absolute;top:22px;right:22px;
  background:var(--g400);color:#060910;
  font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:0.08em;
  padding:3px 9px;border-radius:var(--r-pill);font-weight:600;
}

/* ── PROCESS STEPS ───────────────────────────────────────── */
.process-item {
  display:grid;grid-template-columns:52px 1fr;gap:20px;
  padding-bottom:44px;position:relative;
}
.process-item:last-child { padding-bottom:0; }
.process-item::before {
  content:'';position:absolute;left:25px;top:52px;bottom:0;width:2px;
  background:linear-gradient(to bottom,var(--bg) 0%,transparent 100%);
  opacity:0.25;
}
.process-item:last-child::before { display:none; }
.proc-num {
  width:52px;height:52px;border-radius:var(--r-md);
  background:var(--s2);border:1px solid var(--b1);
  font-family:'DM Mono',monospace;font-size:0.95rem;font-weight:500;
  color:var(--g400);display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.proc-body { padding-top:12px; }
.proc-h  { font-size:1rem;margin-bottom:7px; }
.proc-p  { font-size:0.85rem;color:var(--t4);line-height:1.65; }

/* ── TESTIMONIALS ────────────────────────────────────────── */
.testi-card { padding:30px; }
.testi-stars { font-size:0.8rem;letter-spacing:2px;color:var(--amber);margin-bottom:12px; }
.testi-q {
  font-size:0.9rem;color:var(--t2);line-height:1.78;margin-bottom:22px;
  position:relative;padding-left:16px;
}
.testi-q::before {
  content:'"';position:absolute;left:0;top:-4px;
  font-family:'Fraunces',serif;font-size:2rem;color:var(--g400);line-height:1;
}
.testi-who { display:flex;align-items:center;gap:11px; }
.testi-av {
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-weight:700;font-size:0.82rem;color:#060910;
}
.testi-name { font-weight:600;font-size:0.88rem;margin-bottom:1px; }
.testi-loc  { font-family:'DM Mono',monospace;font-size:0.7rem;color:var(--t4); }

/* ── FAQ ─────────────────────────────────────────────────── */
.faq-wrap { display:flex;flex-direction:column; }
.fq {
  border-bottom:1px solid var(--b0);
}
.fq:first-child { border-top:1px solid var(--b0); }
.fq-btn {
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:21px 0;
  font-family:'Fraunces',serif;font-weight:600;font-size:0.95rem;
  color:var(--t1);text-align:left;transition:color var(--dt);
}
.fq-btn:hover { color:var(--g400); }
.fq-ico {
  width:22px;height:22px;border-radius:var(--r-xs);flex-shrink:0;
  background:var(--s2);border:1px solid var(--b1);
  display:flex;align-items:center;justify-content:center;
  font-size:0.82rem;color:var(--t4);
  transition:all var(--dm);
}
.fq.open .fq-ico { transform:rotate(45deg);background:var(--g-ink);border-color:var(--bg);color:var(--g400); }
.fq-ans {
  max-height:0;overflow:hidden;
  transition:max-height 0.45s var(--ease-out),padding var(--dm);
}
.fq-ans.open { max-height:280px;padding-bottom:20px; }
.fq-ans p { font-size:0.86rem;color:var(--t4);line-height:1.72; }

/* ── TRUST CHIPS ─────────────────────────────────────────── */
.trust-strip { display:flex;gap:10px;flex-wrap:wrap; }
.tc-chip {
  display:flex;align-items:center;gap:7px;
  padding:7px 14px;background:var(--s2);border:1px solid var(--b1);border-radius:var(--r-sm);
  font-size:0.82rem;color:var(--t3);white-space:nowrap;
}
.tc-chip span { font-size:0.75rem; }

/* ── CONTACT INFO ────────────────────────────────────────── */
.ci-item {
  display:flex;gap:15px;align-items:flex-start;
  padding:18px 0;border-bottom:1px solid var(--b0);
}
.ci-item:first-child { padding-top:0; }
.ci-item:last-child { border-bottom:none; }
.ci-icon {
  width:38px;height:38px;border-radius:var(--r-sm);
  background:var(--s2);border:1px solid var(--b0);
  display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;
}
.ci-lbl { font-family:'DM Mono',monospace;font-size:0.68rem;letter-spacing:0.10em;text-transform:uppercase;color:var(--t4);margin-bottom:3px; }
.ci-val { font-weight:600;font-size:0.93rem;color:var(--t1);margin-bottom:1px; }
.ci-sub { font-size:0.78rem;color:var(--t4); }

/* ── MAP FRAME ───────────────────────────────────────────── */
.map-frame {
  aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;
  background:var(--s2);border:1px solid var(--b0);position:relative;
  display:flex;align-items:center;justify-content:center;
}
.map-frame::before {
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(var(--b0) 1px,transparent 1px),linear-gradient(90deg,var(--b0) 1px,transparent 1px);
  background-size:28px 28px;
}
.map-inner { position:relative;z-index:1;text-align:center; }

/* ── AREA GRID ───────────────────────────────────────────── */
.area-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px; }
.area-chip {
  padding:11px 14px;background:var(--s1);border:1px solid var(--b0);border-radius:var(--r-sm);
  font-size:0.84rem;color:var(--t3);display:flex;align-items:center;gap:7px;
  transition:all var(--dt);
}
.area-chip::before { content:'→';color:var(--g400);font-size:0.75rem; }
.area-chip:hover { border-color:var(--bg);color:var(--g400);background:var(--g-ink); }

/* ── BLOG ────────────────────────────────────────────────── */
.blog-card { overflow:hidden; }
.blog-thumb { height:200px;overflow:hidden;position:relative; }
.blog-img { width:100%;height:100%;object-fit:cover;filter:brightness(0.78) saturate(0.82);transition:transform var(--ds),filter var(--ds); }
.card:hover .blog-img { transform:scale(1.04);filter:brightness(0.84) saturate(0.9); }
.blog-body { padding:26px; }
.blog-meta-row { display:flex;gap:14px;margin-bottom:8px; }
.blog-cat { font-family:'DM Mono',monospace;font-size:0.66rem;letter-spacing:0.10em;text-transform:uppercase;color:var(--g400); }
.blog-date{ font-family:'DM Mono',monospace;font-size:0.66rem;letter-spacing:0.05em;color:var(--t4); }
.blog-h  { font-size:1rem;margin-bottom:8px;line-height:1.35; }
.blog-ex { font-size:0.83rem;color:var(--t4);line-height:1.65;margin-bottom:16px; }
.blog-arrow { font-family:'DM Mono',monospace;font-size:0.76rem;color:var(--t3);transition:all var(--dt); }
.blog-arrow:hover { color:var(--g400);letter-spacing:0.08em; }

/* ── BLOG HERO CARD (listing) ─────────────────────────────── */
.blog-hero-row {
  display:grid;grid-template-columns:1.3fr 1fr;gap:0;
  border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--b1);
}
.blog-hero-img { overflow:hidden; }
.blog-hero-img img { width:100%;height:100%;object-fit:cover;filter:brightness(0.8) saturate(0.85);min-height:320px;transition:transform var(--ds); }
.blog-hero-row:hover .blog-hero-img img { transform:scale(1.03); }
.blog-hero-body {
  background:var(--s1);padding:48px 44px;
  display:flex;flex-direction:column;justify-content:center;
}
.blog-hero-h { font-size:clamp(1.4rem,2.5vw,1.9rem);margin-bottom:12px; }
.blog-hero-ex { font-size:0.9rem;color:var(--t3);line-height:1.72;margin-bottom:22px; }

/* ── ARTICLE ─────────────────────────────────────────────── */
.art-hero-img {
  width:100%;aspect-ratio:16/9;border-radius:var(--r-xl);overflow:hidden;
  border:1px solid var(--b0);margin-bottom:40px;position:relative;
}
.art-hero-img img { width:100%;height:100%;object-fit:cover;filter:brightness(0.82) saturate(0.85); }
.art-hero-img-overlay {
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(6,9,16,0.4) 0%,transparent 55%);
}
.art-body {
  background:var(--s1);border:1px solid var(--b0);border-radius:var(--r-xl);
  padding:56px 64px;margin-bottom:40px;
}
.art-body h2 { font-size:1.5rem;margin:40px 0 13px;padding-bottom:10px;border-bottom:1px solid var(--b0); }
.art-body h2:first-child { margin-top:0; }
.art-body p  { font-size:0.94rem;color:var(--t3);line-height:1.82;margin-bottom:18px; }
.art-body strong { color:var(--t1); }
.art-body ul { margin:0 0 18px 20px; }
.art-body li { font-size:0.94rem;color:var(--t3);margin-bottom:8px;line-height:1.7; }
.tag-row { display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 30px; }
.tag-chip {
  padding:3px 11px;background:var(--s2);border:1px solid var(--b1);
  border-radius:var(--r-pill);font-family:'DM Mono',monospace;font-size:0.68rem;color:var(--t4);
}
.back-arrow {
  display:inline-flex;align-items:center;gap:8px;
  font-family:'DM Mono',monospace;font-size:0.76rem;letter-spacing:0.04em;
  color:var(--t4);margin-bottom:28px;transition:color var(--dt),gap var(--db);
}
.back-arrow:hover { color:var(--g400);gap:12px; }
.read-bar {
  position:fixed;top:0;left:0;height:2px;
  background:linear-gradient(90deg,var(--g400),var(--amber));
  width:0%;z-index:9998;transition:width 0.1s linear;
}
@media (max-width:700px) {
  .art-body { padding:30px 20px; }
  .blog-hero-row { grid-template-columns:1fr; }
  .blog-hero-img img { min-height:200px; }
}

/* ── LEGAL PAGE ──────────────────────────────────────────── */
.legal-doc {
  background:var(--s1);border:1px solid var(--b0);border-radius:var(--r-xl);
  padding:56px 64px;max-width:840px;margin:0 auto;
}
.legal-doc h2 { font-size:1.15rem;margin:40px 0 12px;padding-bottom:10px;border-bottom:1px solid var(--b0); }
.legal-doc h2:first-child { margin-top:0; }
.legal-doc p  { font-size:0.88rem;color:var(--t4);line-height:1.78;margin-bottom:14px; }
.legal-doc ul { margin:0 0 14px 18px; }
.legal-doc li { font-size:0.88rem;color:var(--t4);margin-bottom:6px;line-height:1.7; }
.legal-doc a  { color:var(--g400); }
.legal-meta   { font-family:'DM Mono',monospace;font-size:0.76rem;color:var(--t4);margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid var(--b0); }
@media (max-width:700px) { .legal-doc { padding:30px 20px; } }

/* ── STAT COUNTER ────────────────────────────────────────── */
@media(max-width:700px) {
  .stats-row { grid-template-columns:repeat(2,1fr); }
  .stat-cell:nth-child(2) { border-right:none; }
}
@media(max-width:440px) {
  .stats-row { grid-template-columns:1fr; }
  .stat-cell { border-right:none; border-bottom:1px solid var(--b0); }
  .stat-cell:last-child { border-bottom:none; }
}
