/* -------- Card & Layout -------- */
.gwv-hero{
  border:1px solid #e8eef2; border-radius:16px; padding:18px;
  background:linear-gradient(120deg, #FAF9F6, #fff);
}
.gwv-eyebrow{ color:var(--gwv-green, #3BB273); font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:.82rem; }
.gwv-sub{ color:#314155; margin:.3rem 0 0; }

.gwv-grid{ display:grid; gap:18px; }
@media (min-width: 900px){ .gwv-cols-2{ grid-template-columns: 1.2fr .8fr; } }

.gwv-card{ border:1px solid #e8eef2; border-radius:16px; padding:18px; background:#fff; }
.gwv-form .gwv-field{ margin-bottom:12px; }

/* -------- Form -------- */
.gwv-field label{ display:block; font-weight:700; color:var(--gwv-navy,#1A2E40); margin-bottom:6px; }
.gwv-field input, .gwv-field select{
  width:100%; padding:11px 12px; border:1px solid #dfe7ec; border-radius:10px; font-size:1rem; outline:none; background:#fff;
}
.gwv-field small{ display:block; color:#6B7A8C; margin-top:6px; }

.gwv-inline{ display:flex; gap:10px; align-items:center; }
.gwv-adv{ margin:8px 0 4px; }
.gwv-link{ background:none; border:none; padding:0; color:var(--gwv-navy, #1A2E40); text-decoration:underline; cursor:pointer; font-weight:700; }

/* -------- Buttons -------- */
.gwv-actions{ display:flex; gap:12px; margin-top:12px; flex-wrap:wrap; }
.gwv-btn{
  background:var(--gwv-green,#3BB273); color:#fff; border:2px solid var(--gwv-green,#3BB273);
  padding:10px 16px; border-radius:999px; cursor:pointer; font-weight:800; text-decoration:none; display:inline-block;
  transition:transform .04s ease, box-shadow .12s ease;
}
.gwv-btn:hover{ box-shadow:0 6px 14px rgba(59,178,115,.18); transform:translateY(-1px); }
.gwv-btn:active{ transform:translateY(0); box-shadow:none; }
.gwv-btn.ghost{ background:transparent; color:var(--gwv-navy,#1A2E40); border-color:var(--gwv-navy,#1A2E40); }
.gwv-btn.secondary{ background:#fff; color:var(--gwv-navy,#1A2E40); border-color:#fff; }

/* -------- Results -------- */
.gwv-results h3{ margin-top:0; color:var(--gwv-navy, #1A2E40); }
.gwv-kpis{ display:grid; gap:10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width:720px){ .gwv-kpis{ grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.gwv-kpi{ border:1px solid #e8eef2; border-radius:14px; padding:12px; background:#fff; }
.gwv-kpi-label{ color:#48627e; font-size:.9rem; }
.gwv-kpi-value{ font-weight:800; font-size:1.1rem; color:var(--gwv-navy,#1A2E40); }

/* Highlight cost/subsidy KPIs */
.gwv-kpi.--highlight{ border-color:#d6f2e3; background:linear-gradient(180deg, #f6fffa, #ffffff); }
.gwv-kpi.--accent{ border-color:#ffe6a4; background:linear-gradient(180deg, #fffaf0, #ffffff); }

/* Notes / alerts */
.gwv-note{ margin-top:12px; }
.gwv-small{ color:#6B7A8C; font-size:.92rem; }
.gwv-alert{ border:1px solid #ffe6a4; background:#fff8df; color:#7a5a00; padding:12px; border-radius:10px; }
.gwv-cta{ margin-top:14px; text-align:right; }

/* A11y */
.gwv-field input:focus, .gwv-field select:focus{
  border-color:var(--gwv-green,#3BB273); box-shadow:0 0 0 3px rgba(59,178,115,.18);
}
