/* HVAC.TM F179 — public calculators + Pool & SPA */
.hvac-calc-launch { padding: 34px 0 10px; }
.hvac-calc-launch__panel {
  border: 1px solid #dcebe6;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(249,253,252,.98), rgba(244,250,248,.98));
  padding: 24px;
  box-shadow: 0 18px 48px rgba(25,74,64,.07);
}
.hvac-calc-launch__head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:18px; }
.hvac-calc-launch__head h2 { margin:4px 0 0; font-size:clamp(1.7rem,2.5vw,2.45rem); color:#153c3a; letter-spacing:-.035em; }
.hvac-calc-launch__grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.hvac-calc-launch__btn {
  appearance:none; border:1px solid #d8e7e2; background:#fff; color:#173f3d; border-radius:18px;
  min-height:96px; padding:16px 10px; font:inherit; font-weight:850; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease, background .18s ease;
}
 .hvac-calc-launch__icon {
  width:60px; height:60px; flex:none; display:block; object-fit:cover; border-radius:12px;
}
.hvac-calc-launch__btn:hover { border-color:#84cbb8; background:#fbfffd; box-shadow:0 10px 22px rgba(20,105,79,.09); transform:translateY(-1px); }
.hvac-calc-launch__btn:focus-visible { outline:3px solid rgba(13,153,107,.22); outline-offset:2px; }

.hvac-calc-modal[hidden] { display:none !important; }
.hvac-calc-modal { position:fixed; inset:0; z-index:1900; display:grid; place-items:center; padding:18px; }
.hvac-calc-modal__backdrop { position:absolute; inset:0; background:rgba(11,31,31,.52); backdrop-filter:blur(5px); }
.hvac-calc-modal__dialog {
  position:relative; width:min(1020px,100%); max-height:min(90vh,900px); overflow:auto;
  background:#fff; border:1px solid #d9e8e3; border-radius:28px; box-shadow:0 30px 90px rgba(9,45,40,.28);
}
.hvac-calc-modal__header { position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:14px; padding:18px 22px; background:rgba(255,255,255,.96); border-bottom:1px solid #e6efec; backdrop-filter:blur(10px); }
 .hvac-calc-modal__icon { width:60px; height:60px; border-radius:16px; display:grid; place-items:center; font-size:1.6rem; background:#eef8f5; overflow:hidden; flex:none; }
.hvac-calc-modal__icon img { width:100%; height:100%; display:block; object-fit:cover; border-radius:inherit; }
.hvac-calc-modal__titlebox { min-width:0; flex:1; }
.hvac-calc-modal__eyebrow { display:block; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:#69908a; font-weight:850; }
.hvac-calc-modal__title { margin:3px 0 0; color:#173c39; font-size:1.45rem; line-height:1.2; }
.hvac-calc-modal__close { border:0; background:#f3f7f6; color:#365b57; width:44px; height:44px; border-radius:14px; font-size:1.45rem; cursor:pointer; }
.hvac-calc-modal__body { padding:24px; }
.hvac-calc-stepbar { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:22px; }
.hvac-calc-step { min-width:0; display:flex; align-items:center; gap:8px; color:#839794; font-size:.83rem; font-weight:800; }
.hvac-calc-step::before { content:""; width:26px; height:6px; flex:none; border-radius:999px; background:#e5eeeb; }
.hvac-calc-step.is-active { color:#117c5e; }
.hvac-calc-step.is-active::before { background:#14a978; }
.hvac-calc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.hvac-calc-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.hvac-calc-field--wide { grid-column:1/-1; }
.hvac-calc-field label { color:#31534f; font-size:.9rem; font-weight:800; }
.hvac-calc-field input,.hvac-calc-field select,.hvac-calc-field textarea {
  width:100%; min-height:48px; border:1px solid #cfded9; border-radius:14px; background:#fff; color:#173c39;
  padding:11px 13px; font:inherit; font-size:16px; outline:none;
}
.hvac-calc-field textarea { min-height:92px; resize:vertical; }
.hvac-calc-field input:focus,.hvac-calc-field select:focus,.hvac-calc-field textarea:focus { border-color:#59b89d; box-shadow:0 0 0 3px rgba(20,169,120,.11); }
.hvac-calc-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; margin-top:20px; }
.hvac-calc-btn { min-height:46px; border-radius:14px; padding:0 18px; font:inherit; font-weight:850; cursor:pointer; border:1px solid #d4e2de; background:#fff; color:#214b46; }
.hvac-calc-btn--primary { background:#0b9c70; color:#fff; border-color:#0b9c70; }
.hvac-calc-btn--primary:hover { background:#087e5b; }
.hvac-calc-btn:disabled { opacity:.55; cursor:not-allowed; }
.hvac-calc-validation { min-height:20px; margin-top:10px; color:#a94141; font-weight:700; font-size:.88rem; }

.hvac-calc-result { border:1px solid #cfe8df; background:#f5fbf9; border-radius:22px; padding:20px; margin-bottom:20px; }
.hvac-calc-result__label { color:#5b7b75; font-size:.82rem; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.hvac-calc-result__value { margin:6px 0 2px; color:#123f38; font-size:clamp(2rem,5vw,3.4rem); line-height:1; font-weight:950; letter-spacing:-.05em; }
.hvac-calc-result__facts { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.hvac-calc-result__facts span { background:#fff; border:1px solid #dceae6; border-radius:999px; padding:8px 11px; color:#3e625c; font-size:.86rem; font-weight:750; }
.hvac-calc-intent h3,.hvac-calc-reco h3 { margin:0 0 8px; color:#193f3b; font-size:1.25rem; }
.hvac-calc-intent__grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.hvac-calc-intent__btn { border:1px solid #d8e5e1; background:#fff; color:#284f4a; border-radius:15px; min-height:70px; padding:10px; font:inherit; font-weight:800; cursor:pointer; }
.hvac-calc-intent__btn.is-selected { border-color:#0b9c70; background:#effaf6; color:#087a58; box-shadow:inset 0 0 0 1px #0b9c70; }

.hvac-calc-reco { margin-top:24px; border-top:1px solid #e4eeeb; padding-top:22px; }
.hvac-calc-reco[hidden] { display:none !important; }
.hvac-calc-reco__status { border-radius:14px; padding:11px 13px; background:#f6f9f8; color:#55736e; margin-bottom:14px; font-size:.9rem; }
.hvac-calc-reco__status.is-error { background:#fff3f2; color:#9e4343; }
.hvac-calc-section-title { display:flex; align-items:end; justify-content:space-between; gap:14px; margin:22px 0 10px; }
.hvac-calc-section-title h4 { margin:0; color:#1b4540; font-size:1.08rem; }
.hvac-calc-section-title span { color:#79908c; font-size:.82rem; }
.hvac-calc-product-grid,.hvac-calc-company-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.hvac-calc-product,.hvac-calc-company { min-width:0; border:1px solid #dce8e4; border-radius:17px; background:#fff; padding:13px; display:flex; flex-direction:column; gap:9px; }
.hvac-calc-product.is-selected { border-color:#0b9c70; box-shadow:inset 0 0 0 1px #0b9c70; }
.hvac-calc-cardtop { display:flex; gap:9px; align-items:center; min-width:0; }
.hvac-calc-logo { width:44px; height:44px; flex:none; border-radius:12px; object-fit:contain; background:#f3f7f6; border:1px solid #e4ece9; }
.hvac-calc-logo--fallback { display:grid; place-items:center; color:#0b8c66; font-weight:950; font-size:.78rem; }
.hvac-calc-cardname { min-width:0; color:#224843; font-weight:900; line-height:1.2; font-size:.9rem; overflow-wrap:anywhere; }
.hvac-calc-match { display:inline-flex; align-self:flex-start; border-radius:999px; background:#eef9f5; color:#0a7e5c; padding:5px 8px; font-weight:900; font-size:.77rem; }
.hvac-calc-meta { color:#68817c; font-size:.79rem; line-height:1.42; overflow-wrap:anywhere; }
.hvac-calc-price { color:#173f3a; font-weight:900; font-size:.92rem; }
.hvac-calc-cardactions { margin-top:auto; display:flex; gap:6px; flex-wrap:wrap; }
.hvac-calc-cardactions a,.hvac-calc-cardactions button { min-height:36px; flex:1; border-radius:10px; border:1px solid #d4e1dd; background:#fff; color:#21524b; padding:7px 8px; font:inherit; font-weight:850; font-size:.78rem; text-decoration:none; cursor:pointer; text-align:center; }
.hvac-calc-cardactions a.primary,.hvac-calc-cardactions button.primary { background:#0b9c70; border-color:#0b9c70; color:#fff; }
.hvac-calc-empty { grid-column:1/-1; border:1px dashed #d4e2de; border-radius:16px; padding:18px; color:#6a827e; text-align:center; }
body.hvac-calc-lock { overflow:hidden; }

@media (max-width:1180px){
  .hvac-calc-launch__grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .hvac-calc-product-grid,.hvac-calc-company-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hvac-calc-intent__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:720px){
  .hvac-calc-launch { padding-top:22px; }
  .hvac-calc-launch__panel { padding:18px; border-radius:22px; }
  .hvac-calc-launch__head { align-items:flex-start; flex-direction:column; gap:8px; }
  .hvac-calc-launch__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hvac-calc-modal { padding:8px; align-items:end; }
  .hvac-calc-modal__dialog { max-height:94vh; border-radius:22px 22px 14px 14px; }
  .hvac-calc-modal__header,.hvac-calc-modal__body { padding:16px; }
  .hvac-calc-grid { grid-template-columns:1fr; }
  .hvac-calc-field--wide { grid-column:auto; }
  .hvac-calc-step span { display:none; }
  .hvac-calc-intent__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hvac-calc-product-grid,.hvac-calc-company-grid { grid-template-columns:1fr; }
  .hvac-calc-section-title { align-items:flex-start; flex-direction:column; gap:3px; }
}
@media (max-width:420px){
  .hvac-calc-launch__grid { grid-template-columns:1fr 1fr; }
  .hvac-calc-launch__btn { min-height:84px; font-size:.88rem; }
  .hvac-calc-launch__icon { width:54px; height:54px; }
  .hvac-calc-intent__grid { grid-template-columns:1fr; }
}
