:root{
  --bw-navy:#0b2a45;
  --bw-ink:#0a1f33;
  --bw-line:rgba(255,255,255,.22);
  --bw-glass:rgba(255,255,255,.10);
  --bw-glass2:rgba(255,255,255,.16);
  --bw-shadow: 0 24px 80px rgba(0,0,0,.35);
  --bw-radius: 26px;
}

.bw-openSolar{
  padding:14px 18px; border-radius:14px; border:0;
  background:#0b2a45; color:#fff; font-weight:800; cursor:pointer;
}

.bw-modal{ position:fixed; inset:0; display:none; z-index:9999; }
.bw-modal.is-open{ display:block; }

.bw-modal__backdrop{
  position:absolute; inset:0;
  background:rgba(5,10,18,.55);
  backdrop-filter: blur(10px);
}

.bw-modal__panel{
  position:relative;
  width:min(1060px, calc(100vw - 34px));
  height:min(720px, calc(100vh - 34px));
  margin: 17px auto;
  border-radius: var(--bw-radius);
  background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.08));
  border:1px solid rgba(255,255,255,.22);
  box-shadow: var(--bw-shadow);
  backdrop-filter: blur(18px);
  overflow:hidden;
  display:flex; flex-direction:column;
}

.bw-modal__close{
  position:absolute; top:14px; right:16px;
  width:44px; height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  color:#fff; font-size:26px; cursor:pointer;
}

.bw-modal__head{
  padding: 22px 26px 14px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.bw-modal__title{
  font-size:28px;
  font-weight:900;
  color:#fff;
  letter-spacing:.2px;
  text-align:center;
  margin-bottom:14px;
}

.bw-progress{
  max-width: 760px;
  margin:0 auto;
}
.bw-progress__top{
  display:flex; justify-content:flex-end;
  font-weight:700; color:rgba(255,255,255,.85);
  font-size:13px; margin-bottom:8px;
}
.bw-progress__bar{
  height: 10px;
  background: rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  position:relative;
  overflow:hidden;
}
.bw-progress__fill{
  height:100%;
  background: linear-gradient(90deg, rgba(86,210,120,1), rgba(86,210,120,.65));
  border-radius:999px;
}
.bw-progress__dot{
  position:absolute; top:50%;
  width:18px; height:18px;
  transform: translate(-50%,-50%);
  border-radius:999px;
  background: rgba(86,210,120,1);
  box-shadow:0 0 0 6px rgba(86,210,120,.15);
}

.bw-modal__body{
  padding: 22px 26px 12px;
  flex:1;
  overflow:auto;
}

.bw-step{
  max-width: 820px;
  margin: 0 auto;
}
.bw-step__h{
  text-align:center;
  font-size:22px;
  font-weight:900;
  color:#fff;
  margin: 8px 0 18px;
}
.bw-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:16px;
}
@media (max-width: 860px){
  .bw-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px){
  .bw-grid{ grid-template-columns: 1fr; }
}

.bw-card{
  border-radius: 22px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.10);
  box-shadow: 0 16px 40px rgba(0,0,0,.20);
  padding: 18px 16px;
  cursor:pointer;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
  min-height: 130px;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center;
}
.bw-card:hover{ transform: translateY(-2px); background: rgba(255,255,255,.14); }
.bw-card.is-selected{
  border-color: rgba(86,210,120,.95);
  box-shadow: 0 18px 46px rgba(86,210,120,.18);
}

.bw-card img{
  width:68px; height:68px;
  object-fit:contain;
  margin-bottom: 10px;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.18));
}
.bw-card__t{
  color:#fff;
  font-weight:900;
  font-size:16px;
}

.bw-formRow{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
  margin: 10px 0 12px;
}
@media (max-width: 720px){
  .bw-formRow{ grid-template-columns: 1fr; }
}
.bw-field label{
  display:block;
  color:rgba(255,255,255,.85);
  font-size:13px;
  font-weight:800;
  margin: 0 0 6px;
}
.bw-field input{
  width:100%;
  padding: 14px 14px;
  border-radius: 16px;
  border:1px solid rgb(157, 156, 156);
  background: rgb(0, 0, 0);
  color:#fff;
  outline:none;
}
.bw-field input::placeholder{ color: rgba(0, 0, 0, 0.55); }

.bw-primary{
  width:100%;
  border:0;
  border-radius: 18px;
  padding: 15px 16px;
  font-weight: 900;
  color:#0b2a45;
  background: rgba(209,31,47,.85);
  cursor:pointer;
  margin-top: 10px;
}
.bw-mutedLink{
  margin-top: 10px;
  display:block;
  text-align:center;
  color: rgba(255,255,255,.78);
  font-weight:700;
  text-decoration: underline;
  background: transparent;
  border:0;
  cursor:pointer;
}

/* Compact primary button (used in product step only) */
#bwSolarModal .bw-primary--compact{
  width: auto;
  min-width: 240px;
  max-width: 420px;
  margin: 18px auto 0;  /* center */
  display: flex;
  align-items: center;
  justify-content: center;
}

.bw-mapWrap{
  margin-top: 14px;
  border-radius: 22px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
}
.bw-mapWrap iframe{
  width:100%;
  height: 260px;
  border:0;
  display:block;
}

.bw-modal__foot{
  padding: 14px 18px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;
  gap:14px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}

.bw-back{
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color:#fff;
  font-weight:900;
  padding: 12px 14px;
  cursor:pointer;
}
.bw-back[disabled]{ opacity:.45; cursor:not-allowed; }

.bw-reviews{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.bw-reviews--mini .bw-review{
  border-radius: 18px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  padding: 10px 12px;
  display:flex;
  gap:10px;
  align-items:center;
}
.bw-review__icon{
  width:32px; height:32px;
  border-radius: 12px;
  background: rgba(255,255,255,.10);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.bw-review__icon img{ width:22px; height:22px; object-fit:contain; }
.bw-review__top{ display:flex; align-items:center; gap:8px; }
.bw-review__score{
  color:#fff; font-weight:900; font-size:14px;
}
.bw-review__stars{ color: rgba(255,255,255,.92); letter-spacing:1px; font-size:12px; }
.bw-review__sub{
  color: rgba(255,255,255,.75);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}



:root{
  --bw-red:#d11f2f;
  --bw-red-soft: rgba(209,31,47,.18);
  --bw-ink: rgba(27,35,51,.92);
  --bw-muted: rgba(27,35,51,.68);
  --bw-line: rgba(15,23,42,.12);
  --bw-radius: 22px;
  --bw-shadow: 0 20px 70px rgba(11,15,23,.18);
}

/* ===== MODAL BACKDROP + PANEL (less “glassy”, more pro) ===== */
.bw-modal{
  position:fixed; inset:0;
  display:none;
  z-index:99999;
}
.bw-modal.is-open{ display:block; }

.bw-modal__backdrop{
  position:absolute; inset:0;
  background: rgba(11,15,23,.55);
  animation: bwFadeIn .22s ease both;
}

.bw-modal__panel{
  position:absolute;
  left:50%; top:50%;
  transform: translate(-50%,-46%) scale(.985);
  width:min(1040px, calc(100vw - 28px));
  height:min(780px, calc(100vh - 28px));
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.65);
  background: rgba(255,255,255,.92);            /* white, slightly transparent */
  box-shadow: var(--bw-shadow);
  overflow:hidden;
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  opacity:0;
  animation: bwPanelIn .28s cubic-bezier(.2,.9,.2,1) both;
}

.bw-modal.is-closing .bw-modal__backdrop{ animation: bwFadeOut .18s ease both; }
.bw-modal.is-closing .bw-modal__panel{ animation: bwPanelOut .18s ease both; }

@keyframes bwFadeIn{ from{opacity:0} to{opacity:1} }
@keyframes bwFadeOut{ from{opacity:1} to{opacity:0} }

@keyframes bwPanelIn{
  from{ opacity:0; transform: translate(-50%,-44%) scale(.985); }
  to  { opacity:1; transform: translate(-50%,-50%) scale(1); }
}
@keyframes bwPanelOut{
  from{ opacity:1; transform: translate(-50%,-50%) scale(1); }
  to  { opacity:0; transform: translate(-50%,-46%) scale(.985); }
}

.bw-modal__close{
  position:absolute; right:16px; top:14px;
  width:42px; height:42px;
  border-radius: 14px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.85);
  color: rgba(27,35,51,.85);
  font-size: 26px;
  line-height: 1;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease;
  z-index:5;
}
.bw-modal__close:hover{ transform: translateY(-1px); box-shadow: 0 10px 28px rgba(11,15,23,.10); }

/* ===== HEAD ===== */
.bw-modal__head{
  padding: 20px 22px 14px;
  border-bottom: 1px solid rgba(15,23,42,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.82));
}
.bw-modal__title{
  font-weight: 950;
  color: var(--bw-ink);
  letter-spacing: -.02em;
  font-size: clamp(18px, 2.2vw, 24px);
  margin-bottom: 10px;
}

/* ===== PROGRESS (smooth) ===== */
.bw-progress__label{
  color: var(--bw-muted);
  font-weight: 850;
  font-size: 13px;
}
.bw-progress__bar{
  position:relative;
  height: 8px;
  border-radius: 999px;
  background: rgba(15,23,42,.10);
  overflow:hidden;
}
.bw-progress__fill{
  height:100%;
  background: linear-gradient(90deg, rgba(209,31,47,.90), rgba(209,31,47,.70));
  border-radius: 999px;
  transition: width .35s cubic-bezier(.2,.9,.2,1);
}
.bw-progress__dot{
  position:absolute;
  top:50%;
  transform: translate(-50%,-50%);
  width:16px; height:16px;
  border-radius:999px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(209,31,47,.18);
  transition: left .35s cubic-bezier(.2,.9,.2,1);
}

/* ===== BODY (step transitions) ===== */
.bw-modal__body{
  padding: 18px 22px;
  height: calc(100% - 170px);
  overflow:auto;
}
#bwStepMount{
  animation: bwStepIn .22s cubic-bezier(.2,.9,.2,1) both;
}
#bwStepMount.is-leaving{
  animation: bwStepOut .14s ease both;
}
@keyframes bwStepIn{
  from{ opacity:0; transform: translateY(6px); }
  to{ opacity:1; transform: translateY(0); }
}
@keyframes bwStepOut{
  from{ opacity:1; transform: translateY(0); }
  to{ opacity:0; transform: translateY(-4px); }
}

/* ===== FOOT ===== */
.bw-modal__foot{
  padding: 14px 18px;
  border-top: 1px solid rgba(15,23,42,.10);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  background: rgba(255,255,255,.88);
}
.bw-back{
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.88);
  color: var(--bw-ink);
  font-weight: 900;
  padding: 10px 14px;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.bw-back:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 34px rgba(11,15,23,.10);
  border-color: rgba(209,31,47,.18);
}

/* ===== CARD GRID: ALWAYS CENTERED ===== */
.bw-gridCards{
  display:flex;
  justify-content:center;     /* center the whole block */
}
.bw-cards{
  display:grid;
  grid-template-columns: repeat(2, minmax(240px, 320px));
  gap: 14px;
  justify-content:center;     /* center grid tracks */
  width: fit-content;         /* shrink to content for true centering */
  margin: 0 auto;
}
.bw-cards--3{ grid-template-columns: repeat(3, minmax(220px, 290px)); }
.bw-cards--1{ grid-template-columns: minmax(240px, 360px); }

@media (max-width: 820px){
  .bw-cards, .bw-cards--3{ grid-template-columns: minmax(240px, 1fr); width:100%; }
}

/* ===== CARD STYLE: subtle red outline + icon ===== */
.bw-cardOpt{
  border-radius: var(--bw-radius);
  border: 1px solid var(--bw-red-soft);
  background: rgba(255,255,255,.92);
  box-shadow: 0 16px 44px rgba(11,15,23,.10);
  padding: 18px;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  min-height: 132px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap: 10px;
}
.bw-cardOpt:hover{
  transform: translateY(-2px);
  box-shadow: 0 20px 60px rgba(11,15,23,.14);
  border-color: rgba(209,31,47,.28);
}
.bw-cardOpt.is-selected{
  border-color: rgba(209,31,47,.55);
  box-shadow: 0 26px 70px rgba(209,31,47,.12);
}

/* icon holder */
.bw-cardOpt__icon{
  width:54px; height:54px;
  border-radius: 18px;
  display:grid; place-items:center;
  background: rgba(209,31,47,.06);
  border: 1px solid rgba(209,31,47,.14);
}
.bw-cardOpt__icon img{
  width:30px; height:30px; object-fit:contain;
}
.bw-cardOpt__label{
  font-weight: 950;
  color: var(--bw-ink);
}

/* ===== PRIMARY BUTTONS: BW RED ===== */
.bw-btnPrimary{
  width:100%;
  border:none;
  border-radius: 16px;
  padding: 14px 16px;
  font-weight: 950;
  cursor:pointer;
  background: var(--bw-red);
  color:#fff;
  box-shadow: 0 18px 50px rgba(209,31,47,.20);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.bw-btnPrimary:hover{
  transform: translateY(-1px);
  box-shadow: 0 24px 64px rgba(209,31,47,.26);
  filter: saturate(1.05);
}
.bw-btnGhost{
  width:100%;
  border-radius: 16px;
  padding: 14px 16px;
  font-weight: 950;
  cursor:pointer;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(209,31,47,.18);
  color: var(--bw-ink);
}

/* ===== ADDRESS STEP: form left, map right (no scroll) ===== */
.bw-addrRow{
  display:grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 14px;
  align-items:stretch;
}
.bw-addrForm{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--bw-radius);
  padding: 14px;
  background: rgba(255,255,255,.92);
}
.bw-addrMap{
  border: 1px solid rgba(209,31,47,.14);
  border-radius: var(--bw-radius);
  overflow:hidden;
  background: rgba(255,255,255,.92);
  min-height: 360px;
}
.bw-addrMap iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}
@media (max-width: 900px){
  .bw-addrRow{ grid-template-columns: 1fr; }
  .bw-addrMap{ min-height: 300px; }
}

/* ===== FULLSCREEN “checking” step ===== */
.bw-checking{
  height: calc(100% - 8px);
  min-height: 520px;
  display:grid;
  place-items:center;
  text-align:center;
  border-radius: var(--bw-radius);
  border: 1px solid rgba(209,31,47,.14);
  background:
    radial-gradient(700px 240px at 12% 0%, rgba(209,31,47,.10), transparent 60%),
    radial-gradient(700px 240px at 88% 110%, rgba(43,182,115,.08), transparent 60%),
    rgba(255,255,255,.92);
}
.bw-checking__title{
  font-weight: 950;
  color: var(--bw-ink);
  font-size: clamp(18px, 2.4vw, 26px);
  margin: 0 0 10px;
}
.bw-checking__sub{
  margin: 0;
  color: var(--bw-muted);
  font-weight: 800;
}
.bw-spinner{
  width: 46px; height: 46px;
  border-radius: 999px;
  border: 4px solid rgba(15,23,42,.12);
  border-top-color: rgba(209,31,47,.85);
  animation: bwSpin .9s linear infinite;
  margin: 0 auto 14px;
}
@keyframes bwSpin{ to{ transform: rotate(360deg); } }

:root{
  --bw-red:#d11f2f;
  --bw-red-soft: rgba(209,31,47,.18);
  --bw-ink: #1b2333;
  --bw-muted: rgba(27,35,51,.70);
  --bw-line: rgba(15,23,42,.12);
  --bw-radius: 22px;
  --bw-shadow: 0 20px 70px rgba(11,15,23,.18);
}

/* HARD OVERRIDES: kill "blue buttons/links" + unreadable white text */
#bwSolarModal, #bwSolarModal *{
  color: var(--bw-ink) !important;
  font-family: Manrope, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
#bwSolarModal a{ color: inherit !important; }
#bwSolarModal button{ -webkit-appearance:none; appearance:none; }
#bwSolarModal input, #bwSolarModal select{
  color: var(--bw-ink) !important;
  background: rgba(255,255,255,.96) !important;
}

/* ===== MODAL ===== */
.bw-modal{ position:fixed; inset:0; display:none; z-index:99999; }
.bw-modal.is-open{ display:block; }

.bw-modal__backdrop{
  position:absolute; inset:0;
  background: rgba(11,15,23,.55);
  animation: bwFadeIn .22s ease both;
}

.bw-modal__panel{
  position:absolute;
  left:50%; top:50%;
  transform: translate(-50%,-46%) scale(.985);
  width:min(1040px, calc(100vw - 28px));
  height:min(780px, calc(100vh - 28px));
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.65);
  background: rgba(255,255,255,.92);
  box-shadow: var(--bw-shadow);
  overflow:hidden;
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  opacity:0;
  animation: bwPanelIn .28s cubic-bezier(.2,.9,.2,1) both;
}

.bw-modal.is-closing .bw-modal__backdrop{ animation: bwFadeOut .18s ease both; }
.bw-modal.is-closing .bw-modal__panel{ animation: bwPanelOut .18s ease both; }

@keyframes bwFadeIn{ from{opacity:0} to{opacity:1} }
@keyframes bwFadeOut{ from{opacity:1} to{opacity:0} }

@keyframes bwPanelIn{
  from{ opacity:0; transform: translate(-50%,-44%) scale(.985); }
  to{ opacity:1; transform: translate(-50%,-50%) scale(1); }
}
@keyframes bwPanelOut{
  from{ opacity:1; transform: translate(-50%,-50%) scale(1); }
  to{ opacity:0; transform: translate(-50%,-46%) scale(.985); }
}

.bw-modal__close{
  position:absolute; right:16px; top:14px;
  width:42px; height:42px;
  border-radius: 14px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.92);
  font-size: 26px;
  line-height: 1;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease;
  z-index:5;
}
.bw-modal__close:hover{ transform: translateY(-1px); box-shadow: 0 10px 28px rgba(11,15,23,.10); }

.bw-modal__head{
  padding: 20px 22px 14px;
  border-bottom: 1px solid rgba(15,23,42,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.82));
}
.bw-modal__title{
  font-weight: 950;
  letter-spacing: -.02em;
  font-size: clamp(18px, 2.2vw, 24px);
  margin-bottom: 10px;
}

/* progress */
.bw-progress__top{ display:flex; justify-content:space-between; gap:10px; margin-bottom:10px; }
.bw-progress__label{ color: var(--bw-muted) !important; font-weight: 850; font-size: 13px; }
.bw-progress__bar{ position:relative; height: 8px; border-radius: 999px; background: rgba(15,23,42,.10); overflow:hidden; }
.bw-progress__fill{
  height:100%;
  background: linear-gradient(90deg, rgba(209,31,47,.90), rgba(209,31,47,.70));
  border-radius: 999px;
  transition: width .35s cubic-bezier(.2,.9,.2,1);
}
.bw-progress__dot{
  position:absolute;
  top:50%;
  transform: translate(-50%,-50%);
  width:20px; height:20px;
  border-radius:999px;
  background: #d2d2d2;
  box-shadow: 0 10px 30px rgba(209,31,47,.18);
  transition: left .35s cubic-bezier(.2,.9,.2,1);
}

.bw-modal__body{
  padding: 18px 22px;
  height: calc(100% - 170px);
  overflow:auto;
}

#bwStepMount{ animation: bwStepIn .22s cubic-bezier(.2,.9,.2,1) both; }
#bwStepMount.is-leaving{ animation: bwStepOut .14s ease both; }
@keyframes bwStepIn{ from{opacity:0; transform: translateY(6px);} to{opacity:1; transform: translateY(0);} }
@keyframes bwStepOut{ from{opacity:1; transform: translateY(0);} to{opacity:0; transform: translateY(-4px);} }

.bw-modal__foot{
  padding: 14px 18px;
  border-top: 1px solid rgba(15,23,42,.10);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  background: rgba(255,255,255,.88);
}

/* back */
.bw-back{
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.92);
  padding: 10px 14px;
  cursor:pointer;
  font-weight: 900;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.bw-back:hover{ transform: translateY(-1px); box-shadow: 0 12px 34px rgba(11,15,23,.10); border-color: rgba(209,31,47,.18); }

/* ===== CARDS (always centered) ===== */
.bw-gridCards{ display:flex; justify-content:center; }
.bw-cards{
  display:grid;
  grid-template-columns: repeat(2, minmax(240px, 320px));
  gap: 14px;
  justify-content:center;
  width: fit-content;
  margin: 0 auto;
}
.bw-cards--3{ grid-template-columns: repeat(3, minmax(220px, 290px)); }
.bw-cards--1{ grid-template-columns: minmax(240px, 360px); }

@media (max-width: 820px){
  .bw-cards, .bw-cards--3{ grid-template-columns: minmax(240px, 1fr); width:100%; }
}

/* card option */
.bw-cardOpt{
  border-radius: var(--bw-radius);
  border: 1px solid var(--bw-red-soft);
  background: rgba(255,255,255,.94);
  box-shadow: 0 16px 44px rgba(11,15,23,.10);
  padding: 18px;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  min-height: 132px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap: 10px;
}
.bw-cardOpt:hover{ transform: translateY(-2px); box-shadow: 0 20px 60px rgba(11,15,23,.14); border-color: rgba(209,31,47,.28); }
.bw-cardOpt.is-selected{ border-color: rgba(209,31,47,.55); box-shadow: 0 26px 70px rgba(209,31,47,.12); }

.bw-cardOpt__icon{
  width:54px; height:54px;
  border-radius: 18px;
  display:grid; place-items:center;
  background: rgba(209,31,47,.06);
  border: 1px solid rgba(209,31,47,.14);
}
.bw-cardOpt__icon img{ width:30px; height:30px; object-fit:contain; }
.bw-cardOpt__label{ font-weight: 950; }

/* ===== PRIMARY BUTTONS (FORCED RED) ===== */
.bw-btnPrimary,
#bwSolarModal .bw-btnPrimary,
#bwSolarModal a.bw-btnPrimary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  border:none !important;
  border-radius: 16px;
  padding: 14px 16px;
  font-weight: 950;
  cursor:pointer;
  background: var(--bw-red) !important;
  color:#fff !important;
  box-shadow: 0 18px 50px rgba(209,31,47,.20);
  text-decoration:none !important;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.bw-btnPrimary:hover{ transform: translateY(-1px); box-shadow: 0 24px 64px rgba(209,31,47,.26); filter:saturate(1.05); }

.bw-btnGhost{
  width:100%;
  border-radius: 16px;
  padding: 14px 16px;
  font-weight: 950;
  cursor:pointer;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(209,31,47,.18);
}

/* inputs */
.bw-field{ display:grid; gap:8px; margin-top:10px; }
.bw-label{ font-weight:900; color: rgba(27,35,51,.86) !important; font-size:13px; }
.bw-input{
  border:1px solid rgba(15,23,42,.14);
  border-radius: 14px;
  padding: 12px 12px;
  outline:none;
}
.bw-input:focus{ border-color: rgba(209,31,47,.35); box-shadow: 0 0 0 4px rgba(209,31,47,.08); }

/* address step: form left, map right */
.bw-addrRow{ display:grid; grid-template-columns: 1fr 1.1fr; gap: 14px; align-items:stretch; }
.bw-addrForm{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--bw-radius);
  padding: 14px;
  background: rgba(255,255,255,.94);
}
.bw-addrMap{
  border: 1px solid rgba(209,31,47,.14);
  border-radius: var(--bw-radius);
  overflow:hidden;
  background: rgba(255,255,255,.94);
  min-height: 360px;
}
.bw-addrMap iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width: 900px){
  .bw-addrRow{ grid-template-columns: 1fr; }
  .bw-addrMap{ min-height: 300px; }
}

/* checking step */
.bw-checking{
  height: min(560px, calc(100vh - 260px));
  min-height: 420px;
  display:grid;
  place-items:center;
  text-align:center;
  border-radius: var(--bw-radius);
  border: 1px solid rgba(209,31,47,.14);
  background:
    radial-gradient(700px 240px at 12% 0%, rgba(209,31,47,.10), transparent 60%),
    radial-gradient(700px 240px at 88% 110%, rgba(43,182,115,.08), transparent 60%),
    rgba(255,255,255,.94);
}
.bw-checking__title{ font-weight: 950; font-size: clamp(18px, 2.4vw, 26px); margin: 0 0 10px; }
.bw-checking__sub{ margin: 0; color: var(--bw-muted) !important; font-weight: 850; }
.bw-spinner{
  width: 46px; height: 46px;
  border-radius: 999px;
  border: 4px solid rgba(15,23,42,.12);
  border-top-color: rgba(209,31,47,.85);
  animation: bwSpin .9s linear infinite;
  margin: 0 auto 14px;
}
@keyframes bwSpin{ to{ transform: rotate(360deg); } }

/* reviews mini */
.bw-reviews--mini{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.bw-review{
  display:flex; gap:10px; align-items:center;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.92);
  border-radius: 16px;
  padding: 10px 12px;
  box-shadow: 0 10px 28px rgba(11,15,23,.06);
}
.bw-review__icon{
  width:36px; height:36px; border-radius:12px;
  background: rgba(11,15,23,.04);
  display:grid; place-items:center;
  overflow:hidden;
}
.bw-review__icon img{ width:18px; height:18px; object-fit:contain; }
.bw-review__score{ font-weight:950; }
.bw-review__stars{ color: var(--bw-red) !important; font-weight: 950; letter-spacing:.08em; }
.bw-review__sub{ color: rgba(27,35,51,.70) !important; font-size: 11px; font-weight: 900; letter-spacing:.10em; text-transform:uppercase; }



/* =========================
   Solar-Check modal reviews override
   (does NOT affect other pages)
   ========================= */

#bwSolarModal .bw-reviews{
  display:flex;              /* force 1 row */
  gap:12px;
  flex-wrap:nowrap;          /* no stacking */
  align-items:stretch;
  justify-content:center;
  margin: 6px 0 14px;
}

#bwSolarModal .bw-review{
  flex: 1 1 0;               /* equal width cards */
  min-width: 0;              /* IMPORTANT: allows shrink without wrapping */
  gap: 12px;                 /* reduce from 29px so it fits */
}

/* Tablet tuning */
@media (max-width: 980px){
  #bwSolarModal .bw-reviews{ gap:10px; }
  #bwSolarModal .bw-review{ padding:10px; }
}

/* If it's still too tight, allow 2+1 instead of stacking badly */
@media (max-width: 720px){
  #bwSolarModal .bw-reviews{
    display:grid;
    grid-template-columns: 1fr 1fr;  /* 2 per row */
  }
  #bwSolarModal .bw-review{
    gap: 12px;
  }
}

#bwSolarModal #bwProgStep,
#bwSolarModal #bwProgressStep{
  display:none !important;
}

/* Smooth progress animation */
#bwSolarModal #bwProgressFill,
#bwSolarModal #bwProgFill{
  transition: width 420ms cubic-bezier(.2,.9,.2,1);
  will-change: width;
}

#bwSolarModal #bwProgressDot,
#bwSolarModal #bwProgDot{
  transition: left 420ms cubic-bezier(.2,.9,.2,1);
  will-change: left;
}


/* Solar modal: smooth progress animations */
#bwSolarModal #bwProgressFill{
  transition: width 420ms cubic-bezier(.2,.9,.2,1);
  will-change: width;
}
#bwSolarModal #bwProgressDot{
  transition: left 420ms cubic-bezier(.2,.9,.2,1);
  will-change: left;
}

/* If you want to hard-hide the "Schritt 1/9" line if it exists */
#bwSolarModal #bwProgressStep{
  display:none !important;
}



/* ========== Solar-Check: compact only for name step ========== */
#bwSolarModal .bw-step--compact .bw-formRow{
  max-width: 860px;
  margin: 0 auto;
}

#bwSolarModal .bw-step--compact .bw-field label{
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 8px;
  color: rgba(27,35,51,.78);
}

/* input smaller + cleaner */
#bwSolarModal .bw-step--compact .bw-field input{
  height: 48px;
  padding: 12px 14px;
  font-size: 15px;
  border-radius: 14px;
}

/* salutation buttons smaller (you used .bw-card for Herr/Frau) */
#bwSolarModal .bw-step--compact .bw-card{
  min-height: 56px;
  padding: 12px 12px;
  border-radius: 16px;
}

/* main CTA button smaller and centered */
#bwSolarModal .bw-step--compact .bw-primary{
  height: 50px;
  border-radius: 16px;
  font-size: 15px;
  max-width: 560px;
  margin: 14px auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* When mobile menu is open, header should behave like scrolled */
.bw-header.is-menu-open{
  background: var(--bw-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--bw-line);
  box-shadow: 0 10px 30px rgba(2, 10, 14, .08);
}