/* ============================================================
   BROWARD IMPACT — INTERACTIVE COMPONENTS
   1) Before/After hurricane comparison slider
   2) Savings & financing calculator
   Brand: navy #0a1a2f / red #c8102e
   ============================================================ */

/* ---------- shared section intro ---------- */
.cmp-section{ padding:clamp(56px,9vw,110px) 0; }
.cmp-head{ text-align:center; max-width:720px; margin:0 auto clamp(28px,5vw,52px); }
.cmp-eyebrow{ display:inline-block; font-family:'Inter',sans-serif; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; font-size:12px; color:var(--mo-red,#c8102e); margin-bottom:14px; }
.cmp-head h2{ font-family:'Montserrat',sans-serif; font-weight:900; line-height:1.05;
  font-size:clamp(28px,4.4vw,48px); margin:0 0 14px; }
.cmp-head p{ font-size:clamp(15px,1.6vw,18px); line-height:1.6; opacity:.82; margin:0; }

/* ---------- 1. Before/After slider ---------- */
.ba-wrap{ max-width:1000px; margin:0 auto; }
.ba-slider{ position:relative; width:100%; aspect-ratio:16/9; border-radius:18px; overflow:hidden;
  box-shadow:0 30px 70px -28px rgba(0,0,0,.6); user-select:none; touch-action:none;
  --pos:50%; background:#0a1a2f; cursor:ew-resize; }
.ba-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ba-img.is-before{ filter:grayscale(.9) brightness(.55) contrast(1.08); }
/* BEFORE overlay sits on the left, revealed via clip-path so the image never scales */
.ba-before{ position:absolute; inset:0; clip-path:inset(0 calc(100% - var(--pos)) 0 0); will-change:clip-path; }
.ba-label{ position:absolute; top:16px; z-index:3; font-family:'Inter',sans-serif; font-weight:700;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; padding:7px 13px; border-radius:999px;
  backdrop-filter:blur(6px); }
.ba-label.is-before{ left:16px; background:rgba(10,26,47,.7); color:#fff; }
.ba-label.is-after{ right:16px; background:var(--mo-red,#c8102e); color:#fff; }
.ba-handle{ position:absolute; top:0; bottom:0; left:var(--pos); width:3px; transform:translateX(-50%);
  background:#fff; z-index:4; box-shadow:0 0 18px rgba(0,0,0,.5); }
.ba-grip{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:48px; height:48px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center;
  gap:3px; box-shadow:0 6px 22px rgba(0,0,0,.35); }
.ba-grip svg{ width:12px; height:12px; fill:var(--mo-navy,#0a1a2f); }
.ba-slider:focus-visible{ outline:3px solid var(--mo-red,#c8102e); outline-offset:3px; }
.ba-note{ text-align:center; font-size:13px; opacity:.6; margin-top:16px; }

/* ---------- 2. Savings calculator ---------- */
.calc{ max-width:1040px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:0;
  border-radius:20px; overflow:hidden; box-shadow:0 30px 70px -30px rgba(0,0,0,.55); }
.calc__inputs{ background:#0e2038; padding:clamp(26px,3.5vw,42px); }
.calc__results{ background:linear-gradient(160deg,#c8102e,#8d0a1f); padding:clamp(26px,3.5vw,42px); color:#fff; }
.calc h3{ font-family:'Montserrat',sans-serif; font-weight:800; font-size:20px; margin:0 0 22px; color:#fff; }

.calc__field{ margin-bottom:24px; }
.calc__field label{ display:flex; justify-content:space-between; align-items:baseline;
  font-size:14px; font-weight:600; color:#cdd9e8; margin-bottom:10px; }
.calc__field label b{ color:#fff; font-size:17px; font-family:'Montserrat',sans-serif; }
.calc input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:999px;
  background:#24395a; outline:none; }
.calc input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:22px; height:22px; border-radius:50%;
  background:var(--mo-red,#c8102e); cursor:pointer; border:3px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.4); }
.calc input[type=range]::-moz-range-thumb{ width:22px; height:22px; border-radius:50%;
  background:var(--mo-red,#c8102e); cursor:pointer; border:3px solid #fff; }

.calc__result{ margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.18); }
.calc__result:last-of-type{ border-bottom:none; }
.calc__result-label{ font-size:13px; font-weight:600; letter-spacing:.04em; opacity:.85; text-transform:uppercase; }
.calc__result-num{ font-family:'Montserrat',sans-serif; font-weight:900; font-size:clamp(30px,4vw,42px); line-height:1.05; margin-top:4px;
  font-variant-numeric:tabular-nums; }
.calc__result-num small{ font-size:15px; font-weight:600; opacity:.8; }
.calc__cta{ display:inline-flex; margin-top:8px; }
.calc__disclaimer{ font-size:12px; opacity:.7; margin-top:16px; line-height:1.5; }

@media (max-width:760px){
  .calc{ grid-template-columns:1fr; }
  .ba-slider{ aspect-ratio:4/3; }
}
