/* =====================================================================
   KALK · Liquid Glass réteg a kalkulátor-oldalakhoz (hub + 25 kalkulátor)
   A glass.css + bridge.css UTÁN töltődik. Csak stílus: a hooks/kalk.py
   adja a szerkezetet (.lg felületek, blob-kártya, horizont, gk-<oldal>).
   ===================================================================== */

body.gl-kalk {
  --k-glass: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.02) 55%, rgba(255,255,255,.045));
  --k-glass-sh:
    inset 0 1px 0 rgba(255,255,255,.26), inset 0 -1px 0 rgba(255,255,255,.05),
    inset 0 0 22px rgba(255,255,255,.03), 0 18px 40px -18px rgba(0,0,0,.7);
  --k-fill: rgba(255,255,255,.04);
  --k-fill-sh: inset 0 1px 0 rgba(255,255,255,.06);
  --k-drop: #f4f8f0;
  --k-drop-sh: inset 0 1px 0 #fff, inset 0 -2px 6px rgba(0,0,0,.08), 0 8px 22px -8px rgba(198,255,61,.7);
  --k-danger: #ff7a6b;
}

/* ---------- tipográfia: nincs félkövér cím ---------- */
body.gl-kalk :is(h1, h2, h3, h4, h5) { font-weight: 400 !important; }
body.gl-kalk :is(strong, b) { font-weight: 500; }
body.gl-kalk .lime { color: var(--gl-lime); }

/* halk eyebrow: lime kocka + ritkított nagybetű, kapszula nélkül */
body.gl-kalk :is(.eyebrow, .kalk-hero-eyebrow, .hub-tag, .kalk-explain-aside) {
  display: inline-flex; align-items: center; gap: 10px;
  font: 500 12px/1.2 var(--gl-text) !important; letter-spacing: .14em !important; text-transform: uppercase;
  color: var(--gl-ink-3) !important;
  border: 0 !important; background: none !important; padding: 0 !important; border-radius: 0 !important;
}
body.gl-kalk :is(.eyebrow, .hub-tag, .kalk-explain-aside)::before,
body.gl-kalk .kalk-hero-eyebrow .kalk-eyebrow-line {
  content: ""; flex: none; width: 7px; height: 7px; border-radius: 2px;
  background: var(--gl-lime); box-shadow: 0 0 12px rgba(198,255,61,.8);
}
body.gl-kalk .eyebrow .dot { display: none; }

/* ---------- hero + horizont ---------- */
body.gl-kalk .kalk-hero, body.gl-kalk .hub-hero, body.gl-kalk.own-typo header.hero {
  padding: clamp(112px, 8.4vw, 134px) 0 26px; overflow: visible; border-bottom: 0; text-align: center;
}
body.gl-kalk .kalk-hero-inner, body.gl-kalk .hub-hero-inner { max-width: 880px; margin: 0 auto; }
body.gl-kalk .kalk-hero-eyebrow { margin-bottom: 20px; }
body.gl-kalk .kalk-hero h1, body.gl-kalk.own-typo header.hero h1 {
  font-family: var(--gl-display); font-size: clamp(36px, 3.7vw, 60px); line-height: 1.04; letter-spacing: -.011em;
  color: var(--gl-ink); text-wrap: balance; margin: 0 auto 18px; max-width: 860px;
}
body.gl-kalk .kalk-hero p, body.gl-kalk.own-typo header.hero .lead {
  font-size: 15.5px; line-height: 1.6; color: var(--gl-ink-2); max-width: 620px; margin: 0 auto; text-wrap: pretty;
}
body.gl-kalk .kalk-hero p em { color: var(--gl-ink); }
body.gl-kalk .kalk-hero-meta { justify-content: center; gap: 10px 26px; margin-top: 22px; font-size: 12.5px; color: var(--gl-ink-3); }
body.gl-kalk .kalk-hero-meta .dot-lime { width: 5px; height: 5px; background: var(--gl-lime); box-shadow: 0 0 10px var(--gl-lime); }

/* a kalkulátor a horizont alsó ívébe ér: az üveg a fényt töri */
body.gl-kalk .gl-horizon + .kalk-stage,
body.gl-kalk .gl-horizon + .grid { margin-top: -26px; }
body.gl-kalk.own-typo .gl-horizon + section { padding-top: 0; margin-top: -26px; }
body.gl-kalk .gl-horizon + .hub-featured { padding-top: 0; }

/* ---------- kalkulátor-színpad ---------- */
body.gl-kalk .kalk-stage { padding-bottom: 100px; }
body.gl-kalk .kalk-grid { gap: 26px; }
body.gl-kalk .kalk-grid > * { min-width: 0; }
body.gl-kalk .gl-kbcard { position: relative; isolation: isolate; min-width: 0; }
body.gl-kalk .gl-kbcard > .lg { z-index: 1; }

/* panelek: üveg, szegély nélkül */
body.gl-kalk .kalk-panel {
  background: var(--k-glass); border: 0; border-radius: 32px; padding: 34px;
  box-shadow: var(--k-glass-sh);
}
body.gl-kalk .kalk-panel.kalk-panel-lime {
  background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.012) 40%, rgba(255,255,255,.035));
}
body.gl-kalk .kalk-panel-title {
  display: flex; align-items: center; gap: 10px;
  font: 500 12px/1.2 var(--gl-text); letter-spacing: .14em; color: var(--gl-ink-3); margin-bottom: 10px;
}
body.gl-kalk .kalk-panel-title .roman { color: var(--gl-lime); margin: 0; font-feature-settings: "tnum"; }

/* mezők */
body.gl-kalk .kalk-label-text { font-weight: 500; font-size: 14px; color: var(--gl-ink); }
body.gl-kalk .kalk-label-hint { color: var(--gl-ink-3); }
body.gl-kalk .kalk-label-value {
  font-family: var(--gl-display); font-weight: 400; font-size: 18px; letter-spacing: -.006em;
  color: var(--gl-ink); font-feature-settings: "tnum";
}
body.gl-kalk .kalk-input { font-family: var(--gl-display); font-weight: 300; font-size: 24px; letter-spacing: -.006em; border-radius: 16px; }
body.gl-kalk .kalk-input-suffix { font-family: var(--gl-text); font-weight: 500; color: var(--gl-ink-3); }

/* beviteli mező: üveg (az inputon nincs ::before, ezért árnyékból épül a perem) */
body.gl.gl-kalk input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),
body.gl.gl-kalk select:not([multiple]):not([size]), body.gl.gl-kalk textarea:not([rows="0"]) {
  background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.022)) !important;
  -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22), inset 0 0 0 1px rgba(255,255,255,.08),
    inset 0 -1px 0 rgba(255,255,255,.04), 0 10px 26px -16px rgba(0,0,0,.8) !important;
}
body.gl.gl-kalk input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):focus,
body.gl.gl-kalk select:not([multiple]):not([size]):focus {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), inset 0 0 0 1.5px rgba(198,255,61,.7), 0 0 0 4px rgba(198,255,61,.12) !important;
}

/* csúszka: üveg-sín, lime kitöltés, fehér üveg-gomb */
body.gl-kalk input[type="range"] {
  -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border: 0; outline: none;
  border-radius: 99px; margin: 14px 0 8px; cursor: pointer;
  background: linear-gradient(90deg, rgba(255,255,255,.5), var(--gl-lime) var(--gl-fill, var(--fill, 50%)), rgba(255,255,255,.08) var(--gl-fill, var(--fill, 50%))) !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.5), 0 0 18px -4px rgba(198,255,61,.45);
}
body.gl-kalk input[type="range"]::-webkit-slider-runnable-track { background: transparent; border: 0; height: 8px; }
body.gl-kalk input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none; width: 26px; height: 26px; margin-top: -9px; border: 0; border-radius: 50%; cursor: grab;
  background: radial-gradient(circle at 50% 30%, #fff, #e8f0e2 60%, #cfd8c9);
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.18), 0 0 0 5px rgba(255,255,255,.08), 0 6px 18px rgba(198,255,61,.55);
  transition: transform .3s var(--gl-spring);
}
body.gl-kalk input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.15); cursor: grabbing; }
body.gl-kalk input[type="range"]::-moz-range-track { height: 8px; border-radius: 99px; background: rgba(255,255,255,.08); }
body.gl-kalk input[type="range"]::-moz-range-progress { height: 8px; border-radius: 99px; background: var(--gl-lime); }
body.gl-kalk input[type="range"]::-moz-range-thumb { width: 24px; height: 24px; border: 0; border-radius: 50%; background: #f4f8f0; box-shadow: 0 6px 18px rgba(198,255,61,.55); }
body.gl-kalk input[type="range"]:focus-visible { box-shadow: inset 0 1px 2px rgba(0,0,0,.5), 0 0 0 4px rgba(198,255,61,.18); }

/* chipek, szegmentált vezérlők, gombok: üveg, a kiválasztott fehér csepp */
body.gl-kalk :is(.kalk-chip, .kalk-seg-btn, .preset-btn, .kalk-share-btn) {
  border: 0 !important; border-radius: 999px; background: var(--k-glass); box-shadow: var(--k-glass-sh);
  color: var(--gl-ink-2); font-family: var(--gl-text); font-weight: 500;
  transition: color .3s, background .3s, box-shadow .3s, transform .45s var(--gl-spring);
}
body.gl-kalk .kalk-chip { padding: 9px 14px; font-size: 12.5px; }
body.gl-kalk .kalk-chips { gap: 8px; }
body.gl-kalk :is(.kalk-chip, .kalk-seg-btn, .preset-btn, .kalk-share-btn):hover { color: var(--gl-ink); transform: translateY(-1px); }
body.gl-kalk :is(.kalk-chip.active, .kalk-seg-btn.is-active, .preset-btn.active) {
  background: var(--k-drop) !important; color: #0b1409 !important; box-shadow: var(--k-drop-sh) !important;
}
body.gl-kalk :is(.kalk-seg-btn.is-active, .preset-btn.active) * { color: inherit; }
body.gl-kalk .kalk-share-btn { color: var(--gl-ink); padding: 11px 18px; }

body.gl-kalk .kalk-toggle {
  display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 5px; border: 0; border-radius: 999px;
  background: var(--k-glass); box-shadow: var(--k-glass-sh);
}
body.gl-kalk .kalk-toggle button {
  font: 500 12.5px/1 var(--gl-text); padding: 10px 15px; border-radius: 999px; color: var(--gl-ink-2);
  transition: color .35s, background .35s, box-shadow .35s;
}
body.gl-kalk .kalk-toggle button:hover { color: var(--gl-ink); }
body.gl-kalk .kalk-toggle button.active {
  background: var(--k-drop); color: #0b1409; box-shadow: var(--k-drop-sh); font-weight: 500;
  animation: k-drop .5s var(--gl-spring);
}
@keyframes k-drop { 0% { transform: scale(.86, .8); } 60% { transform: scale(1.04, 1.06); } 100% { transform: none; } }

/* jelölőnégyzet-kártya: halvány kitöltés, nem doboz */
body.gl-kalk .kalk-check { background: var(--k-fill); border: 0; border-radius: 16px; box-shadow: var(--k-fill-sh); }
body.gl-kalk .kalk-check.checked { background: rgba(198,255,61,.08); }
body.gl-kalk .kalk-check-box { background: rgba(255,255,255,.06); border: 0; border-radius: 7px; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.24); }
body.gl-kalk .kalk-check.checked .kalk-check-box { background: var(--gl-lime); box-shadow: 0 0 14px rgba(198,255,61,.5); }
body.gl-kalk .kalk-check.checked .kalk-check-box::after { color: #0b1409; font-weight: 500; }
body.gl-kalk .kalk-check-label small { color: var(--gl-ink-3); }
body.gl-kalk .kalk-switch-track { border: 0 !important; background: rgba(255,255,255,.1); box-shadow: inset 0 1px 2px rgba(0,0,0,.45); }

/* ---------- eredmény ---------- */
body.gl-kalk .kalk-result-label { font: 500 12px/1.2 var(--gl-text); letter-spacing: .14em; color: var(--gl-ink-3); }
body.gl-kalk .kalk-result-value {
  font-family: var(--gl-display); font-weight: 300; font-size: clamp(48px, 5.8vw, 84px);
  letter-spacing: -.013em; color: var(--gl-ink); font-feature-settings: "tnum";
}
body.gl-kalk .kalk-result-value.lime { color: var(--gl-lime); text-shadow: 0 0 42px rgba(198,255,61,.35); }
body.gl-kalk .kalk-result-value.danger { color: var(--k-danger); }
body.gl-kalk .kalk-result-value .unit { font-weight: 300; color: var(--gl-ink-3); }
body.gl-kalk .kalk-result-sub { color: var(--gl-ink-2); }
body.gl-kalk .kalk-result-grid { gap: 10px; }
body.gl-kalk .kalk-result-mini-label { font: 500 11px/1.3 var(--gl-text); letter-spacing: .12em; color: var(--gl-ink-3); }
body.gl-kalk .kalk-result-mini-value {
  font-family: var(--gl-display); font-weight: 400; font-size: 23px; letter-spacing: -.009em;
  color: var(--gl-ink); font-feature-settings: "tnum";
}
body.gl-kalk .kalk-result-mini-value.lime { color: var(--gl-lime); }
body.gl-kalk .kalk-result-mini-value.danger { color: var(--k-danger); }
body.gl-kalk .kalk-result-mini-value.dim { color: var(--gl-ink-2); }
body.gl-kalk :is(.kalk-kassza-amount, .kalk-gauge-value) { font-family: var(--gl-display); font-weight: 300; letter-spacing: -.011em; color: var(--gl-ink); font-feature-settings: "tnum"; }
body.gl-kalk .kalk-kassza-name { font-weight: 400; color: var(--gl-ink); }

/* belső blokkok a panelen belül: nincs doboz a dobozban, csak halvány kitöltés */
body.gl-kalk :is(.kalk-result-mini, .kalk-chart, .kalk-kassza, .kalk-table-wrap, .fire-mmm-chart, .tax-pie-wrap,
  .jtm-gauge-wrap, .ves-progress-wrap, .ves-scenario, .kassza-projection, .kassza-health, .kassza-jar,
  .inf-eg-card, .mo-comp-item, .kalk-strat-card, .kata-card, .compare-card, .alt-box) {
  border-color: transparent !important;
  background: var(--k-fill);
  border-radius: 20px; box-shadow: var(--k-fill-sh);
}
body.gl-kalk .kalk-result-mini { border-radius: 18px; padding: 16px 18px; }
body.gl-kalk :is(.kata-card.win, .kalk-strat-card.winner, .kassza-jar.healthy) {
  background: rgba(198,255,61,.075); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 36px -14px rgba(198,255,61,.55);
}
body.gl-kalk :is(.kata-card.over, .kassza-jar.over) { background: rgba(255,107,107,.08); }
body.gl-kalk .compare-card { background: rgba(198,255,61,.06); }
body.gl-kalk .compare-card.warn { background: rgba(255,171,61,.07); }
body.gl-kalk .alt-box { background: rgba(60,242,200,.06); }
body.gl-kalk .compare-card-head .badge { border: 0 !important; background: rgba(198,255,61,.12); }
body.gl-kalk .compare-card.warn .compare-card-head .badge { background: rgba(255,171,61,.12); }
body.gl-kalk :is(.mo-day, .ves-progress-track, .kalk-debt-block) { border-color: transparent !important; }
body.gl-kalk .kalk-debt-block { border-top: 1px solid var(--gl-hair) !important; }
body.gl-kalk .fire-mmm-row + .fire-mmm-row { border-top: 1px solid var(--gl-hair); }

body.gl-kalk .kalk-callout { background: rgba(198,255,61,.075); border: 0; border-radius: 18px; color: var(--gl-ink-2); }
body.gl-kalk .kalk-callout strong { color: var(--gl-ink); }
body.gl-kalk :is(.kalk-disclaimer, .kalk-warn-box, .kata-warn) { background: rgba(255,171,61,.07); border: 0 !important; border-radius: 16px; color: var(--gl-ink-2); }
body.gl-kalk .kalk-disclaimer strong { color: var(--gl-amber); }
body.gl-kalk :is(.kalk-warn-box, .kata-warn) { background: rgba(255,107,107,.08); }

/* sávdiagram, mérő, grafikon */
body.gl-kalk :is(.kalk-bar, .vep-bar) { border: 0 !important; background: rgba(255,255,255,.06); box-shadow: inset 0 1px 2px rgba(0,0,0,.45); }
body.gl-kalk .kalk-bar-segment { font-family: var(--gl-text); font-weight: 500; }
body.gl-kalk .kalk-bar-legend-item { color: var(--gl-ink-2); }
body.gl-kalk .kalk-bar-legend-item .swatch { box-shadow: none; }
body.gl-kalk .kalk-gauge-arc-bg { stroke: rgba(255,255,255,.08); }
body.gl-kalk .kalk-gauge-arc-fill { stroke: var(--gl-lime); filter: drop-shadow(0 0 8px rgba(198,255,61,.45)); }
body.gl-kalk .kalk-gauge-arc-fill.warn { stroke: var(--gl-amber); }
body.gl-kalk .kalk-gauge-arc-fill.danger { stroke: var(--k-danger); }
body.gl-kalk .kalk-chart-head { color: var(--gl-ink-3); font-weight: 500; }
body.gl-kalk .area-principal { fill: rgba(60,242,200,.14); stroke: var(--gl-aqua); }
body.gl-kalk .area-interest { fill: rgba(198,255,61,.2); stroke: var(--gl-lime); }
body.gl-kalk .area-grid line { stroke: rgba(255,255,255,.07); }
body.gl-kalk .area-axis text { fill: var(--gl-ink-3); }

/* táblázat */
body.gl-kalk .kalk-table { background: transparent; }
body.gl-kalk .kalk-table th { background: transparent; color: var(--gl-ink-3); font-weight: 500; }
body.gl-kalk .kalk-table :is(td, th) { border-bottom-color: var(--gl-hair); }
body.gl-kalk .kalk-table td { color: var(--gl-ink-2); font-feature-settings: "tnum"; }
body.gl-kalk .kalk-table :is(td, th):first-child { font-weight: 400; color: var(--gl-ink); }
body.gl-kalk .kalk-table tr:hover td { background: rgba(198,255,61,.05); }

/* ---------- magyarázó + kapcsolódó ---------- */
body.gl-kalk .kalk-explain { border-top: 0; margin-top: 0; padding: 110px 0 30px; }
body.gl-kalk .kalk-explain h2 {
  font-family: var(--gl-display); font-size: clamp(30px, 3.4vw, 48px); line-height: 1.06; letter-spacing: -.011em;
  color: var(--gl-ink); margin-bottom: 22px; text-wrap: balance;
}
body.gl-kalk .kalk-explain h3 { font-family: var(--gl-display); letter-spacing: -.006em; }
body.gl-kalk .kalk-explain-body p, body.gl-kalk .kalk-explain-body ul li { color: var(--gl-ink-2); }
body.gl-kalk .kalk-explain-body strong { color: var(--gl-ink); }
body.gl-kalk .kalk-explain-body ul li::before {
  content: ""; top: .62em; width: 6px; height: 6px; border-radius: 2px;
  background: var(--gl-lime); box-shadow: 0 0 10px rgba(198,255,61,.7);
}
body.gl-kalk .formula, body.gl-kalk .kalk-explain-body .formula {
  background: var(--k-fill); border: 0; border-radius: 16px; box-shadow: var(--k-fill-sh); color: var(--gl-ink);
}

body.gl-kalk .kalk-related { border-top: 0; padding: 100px 0 10px; }
body.gl-kalk .kalk-related h3 { font-family: var(--gl-display); font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -.009em; color: var(--gl-ink); }
body.gl-kalk .kalk-related-grid { gap: 18px; }
body.gl-kalk :is(.kalk-related-card, .kalk-hub-card) {
  border: 0; background: var(--k-glass); box-shadow: var(--k-glass-sh);
  color: inherit; text-decoration: none; transition: transform .45s var(--gl-spring);
}
body.gl-kalk .kalk-related-card { border-radius: 28px; padding: 24px; }
body.gl-kalk :is(.kalk-related-card, .kalk-hub-card):hover { transform: translateY(-4px); border: 0; box-shadow: var(--k-glass-sh); }
body.gl-kalk :is(.kalk-related-card-emoji, .kalk-hub-card-emoji) {
  display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 15px;
  font-size: 22px; background: rgba(255,255,255,.06); box-shadow: inset 0 1px 0 rgba(255,255,255,.12); margin-bottom: 20px;
}
body.gl-kalk :is(.kalk-related-card-title, .kalk-hub-card-title) {
  font-family: var(--gl-display); font-weight: 400; font-size: 19px; letter-spacing: -.007em; color: var(--gl-ink);
}
body.gl-kalk :is(.kalk-related-card-desc, .kalk-hub-card-desc) { color: var(--gl-ink-3); font-size: 13px; line-height: 1.5; }

/* ---------- HUB ---------- */
body.gl-kalk .hub-hero h1 {
  font-family: var(--gl-display); font-size: clamp(40px, 4.4vw, 70px); line-height: 1.02; letter-spacing: -.012em;
  color: var(--gl-ink); text-wrap: balance; margin: 18px auto 20px !important;
}
body.gl-kalk .hub-hero p { color: var(--gl-ink-2); font-size: 16px; line-height: 1.6; max-width: 600px; }
body.gl-kalk .hub-hero-stats { gap: 18px 56px; margin-top: 34px; }
body.gl-kalk .hub-hero-stat-num {
  font-family: var(--gl-display); font-weight: 300; font-size: 46px; letter-spacing: -.013em; font-feature-settings: "tnum";
  color: var(--gl-lime); text-shadow: 0 0 30px rgba(198,255,61,.35);
}
body.gl-kalk .hub-hero-stat-label { font: 500 11px/1 var(--gl-text); letter-spacing: .14em; color: var(--gl-ink-3); margin-top: 10px; }
body.gl-kalk .hub-search { max-width: 500px; margin-top: 32px; border-radius: 999px; }
body.gl.gl-kalk .hub-search.lg input[type="search"]:not([type="range"]):not([type="checkbox"]) {
  background: transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none;
  border: 0 !important; border-radius: 999px; padding: 17px 22px 17px 50px; font-size: 15px;
}
body.gl.gl-kalk .hub-search.lg input[type="search"]:not([type="range"]):not([type="checkbox"]):focus {
  box-shadow: inset 0 0 0 1.5px rgba(198,255,61,.6) !important;
}
body.gl-kalk .hub-search-icon { position: absolute; z-index: 4; color: var(--gl-ink-3); }

body.gl-kalk .hub-featured { background: none; border: 0; padding: 0 0 20px; }
body.gl-kalk .hub-featured-head { margin-bottom: 30px; }
body.gl-kalk .hub-featured-head h2 { font-family: var(--gl-display); font-size: clamp(28px, 2.8vw, 40px); letter-spacing: -.01em; }
body.gl-kalk .hub-featured-grid { position: relative; isolation: isolate; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.gl-kalk .hub-featured-grid > .lg { z-index: 1; }
body.gl-kalk .kalk-hub-card { border-radius: 30px; padding: 26px; overflow: visible; display: flex; flex-direction: column; min-height: 236px; }
body.gl-kalk .kalk-hub-card-desc { flex: 1; font-size: 13.5px; margin-bottom: 18px; }
body.gl-kalk .kalk-hub-card-cta { color: var(--gl-ink-2); font-weight: 500; }
body.gl-kalk .kalk-hub-card-cta .arrow { color: var(--gl-lime); }
body.gl-kalk .kalk-hub-card .soon-badge { border: 0; background: rgba(255,255,255,.08); color: var(--gl-ink-3); font-weight: 500; }
body.gl-kalk .hub-categories { padding: 10px 0 40px; }
body.gl-kalk .kalk-hub-category { padding: 100px 0 0; }
body.gl-kalk .kalk-hub-category-head { gap: 20px; }
body.gl-kalk .kalk-hub-category-head .num {
  font-family: var(--gl-display); font-weight: 300; font-size: clamp(40px, 4.4vw, 64px); letter-spacing: -.013em;
  color: var(--gl-lime); text-shadow: 0 0 30px rgba(198,255,61,.35);
}
body.gl-kalk .kalk-hub-category-head h2 { font-family: var(--gl-display); font-size: clamp(30px, 3.6vw, 52px); letter-spacing: -.011em; line-height: 1.02; }
body.gl-kalk .kalk-hub-category-desc { color: var(--gl-ink-2); }
body.gl-kalk .kalk-hub-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); margin-top: 34px; }
body.gl-kalk .hub-cta { border-top: 0; padding: 150px 0 20px; }
body.gl-kalk .hub-cta::before { background: radial-gradient(circle, rgba(198,255,61,.10), transparent 60%); }
body.gl-kalk .hub-cta h2 { font-family: var(--gl-display); font-size: clamp(36px, 4.6vw, 66px); letter-spacing: -.012em; line-height: 1.02; }
body.gl-kalk .hub-cta p { color: var(--gl-ink-2); }
body.gl-kalk .btn.btn-ghost.lg { box-shadow: var(--k-glass-sh) !important; }

/* ---------- ÖNÁLLÓ OLDALAK (saját token-rendszer) ---------- */
body.gl-kalk.own-typo {
  --bg: transparent; --bg-2: rgba(255,255,255,.045); --bg-3: rgba(255,255,255,.08);
  --fg: #f2f6ee; --fg-dim: rgba(232,242,226,.64); --fg-faint: rgba(232,242,226,.42);
  --line: rgba(255,255,255,.08); --line-2: rgba(255,255,255,.12);
  --lime-text: #c6ff3d; --lime-soft: #e4ffa6; --lime-on: #0b1409; --mint: rgba(198,255,61,.1);
  --glass: rgba(255,255,255,.04); --glass-2: rgba(255,255,255,.07);
  --pine: #0e1c13; --pine-ink: #f2f6ee;
  --ink: #f2f6ee; --ink-soft: rgba(232,242,226,.64); --card: rgba(255,255,255,.045); --card-2: rgba(255,255,255,.04);
  --green: #c6ff3d; --amber: #ffab3d; --blue: #3cf2c8; --amber-soft: rgba(255,171,61,.10);
  --radius: 26px; --radius-sm: 16px; --radius-lg: 32px;
  --display: var(--gl-display); --disp: var(--gl-display); --text: var(--gl-text);
  --grid-pattern: none;
  color: var(--gl-ink); font-size: 16px;
}
body.gl-kalk.own-typo section { border-bottom: 0; padding: 110px 0 0; }
body.gl-kalk.own-typo h2 { font-family: var(--gl-display); font-size: clamp(30px, 3.6vw, 50px); letter-spacing: -.011em; line-height: 1.05; }
body.gl-kalk.own-typo h3 { font-family: var(--gl-display); letter-spacing: -.006em; }
body.gl-kalk.own-typo .sub { color: var(--gl-ink-2); }
body.gl-kalk.own-typo a:hover { color: var(--gl-lime-soft); }

/* felületek */
body.gl-kalk.own-typo :is(.panel, .penztar, .cta, .card-box, .sumhero, .stat, .tablewrap, .kpi, .sorok, .hero-result, .hero-card, details) {
  border: 0 !important; background: var(--k-glass); box-shadow: var(--k-glass-sh); color: var(--gl-ink);
}
body.gl-kalk.own-typo :is(.panel, .penztar, .cta, .card-box, .sumhero, .tablewrap) { border-radius: 30px; }
body.gl-kalk.own-typo .panel { padding: 30px; }
body.gl-kalk.own-typo .penztar.ajanlott { background: linear-gradient(180deg, rgba(198,255,61,.10), rgba(255,255,255,.02) 50%, rgba(255,255,255,.045)); }
body.gl-kalk.own-typo .field label { font: 500 12px/1.3 var(--gl-text); letter-spacing: .12em; color: var(--gl-ink-3); }
body.gl-kalk.own-typo .field .val { font-family: var(--gl-display); font-weight: 300; font-size: 30px; letter-spacing: -.011em; color: var(--gl-ink); font-feature-settings: "tnum"; }
body.gl-kalk.own-typo .field .hint, body.gl-kalk.own-typo .hint { color: var(--gl-ink-3); }

/* fő eredmény: blob-kártya a lime tábla helyett */
body.gl-kalk.own-typo .gl-kbcard { margin-bottom: 16px; }
body.gl-kalk.own-typo .hero-result { border-radius: 32px; padding: 34px; margin: 0; }
body.gl-kalk.own-typo .hero-result .cim { opacity: 1; font: 500 12px/1.3 var(--gl-text); letter-spacing: .14em; color: var(--gl-ink-3); }
body.gl-kalk.own-typo .hero-result .osszeg {
  font-family: var(--gl-display); font-weight: 300; font-size: clamp(48px, 6.4vw, 86px); letter-spacing: -.013em;
  color: var(--gl-lime); text-shadow: 0 0 42px rgba(198,255,61,.35); font-feature-settings: "tnum"; margin: 16px 0 12px;
}
body.gl-kalk.own-typo .hero-result .alcim { opacity: 1; font-weight: 400; color: var(--gl-ink-2); }

/* listák az üvegben: hajszálvonal, nem külön dobozok */
body.gl-kalk.own-typo .sorok { gap: 0; border-radius: 28px; padding: 6px 8px; }
body.gl-kalk.own-typo .opcio { background: none; border: 0; border-radius: 0; padding: 16px 14px; }
body.gl-kalk.own-typo .opcio + .opcio { border-top: 1px solid var(--gl-hair); }
body.gl-kalk.own-typo .opcio.legjobb { background: rgba(198,255,61,.075); border-radius: 20px; border-top-color: transparent; }
body.gl-kalk.own-typo .opcio.legjobb + .opcio { border-top-color: transparent; }
body.gl-kalk.own-typo .opcio .nev { font-weight: 500; }
body.gl-kalk.own-typo .opcio .le, body.gl-kalk.own-typo .opcio .kulonbseg { color: var(--gl-ink-3); font-weight: 400; }
body.gl-kalk.own-typo .opcio .ossz { font-family: var(--gl-display); font-weight: 400; font-feature-settings: "tnum"; }
body.gl-kalk.own-typo .opcio.legjobb .ossz { color: var(--gl-lime); }

body.gl-kalk.own-typo .kpi { border-radius: 28px; }
body.gl-kalk.gk-elofizetesek .kpi { padding: 6px 8px; }
body.gl-kalk.gk-elofizetesek .kpi > div { background: none; border: 0; border-radius: 0; margin: 0; padding: 16px 14px; }
body.gl-kalk.gk-elofizetesek .kpi > div + div { border-top: 1px solid var(--gl-hair); }
body.gl-kalk.gk-otthon-start-egeszsegpenztar .kpi { padding: 10px; gap: 10px; }
body.gl-kalk.gk-otthon-start-egeszsegpenztar .kpi > div { background: var(--k-fill); border: 0; border-radius: 18px; box-shadow: var(--k-fill-sh); }
body.gl-kalk.own-typo .kpi b { font-family: var(--gl-display); font-weight: 400; color: var(--gl-ink); font-feature-settings: "tnum"; }
body.gl-kalk.own-typo .kpi span { color: var(--gl-ink-3); }

body.gl-kalk.own-typo :is(.figyelem, .warn) { border: 0; background: rgba(255,171,61,.08); border-radius: 18px; color: var(--gl-ink-2); }
body.gl-kalk.own-typo .tipp { border: 0; background: rgba(198,255,61,.075); border-radius: 18px; color: var(--gl-ink-2); }
body.gl-kalk.own-typo :is(.figyelem, .warn, .tipp) b { color: var(--gl-ink); }

/* szegmentált gomb: fehér csepp */
body.gl-kalk.own-typo .seg { gap: 4px; padding: 5px; border-radius: 20px; background: var(--k-glass); box-shadow: var(--k-glass-sh); }
body.gl-kalk.own-typo .seg button { border: 0; background: none; border-radius: 15px; color: var(--gl-ink-2); font-weight: 500; transition: color .3s, background .3s, box-shadow .3s; }
body.gl-kalk.own-typo .seg button[aria-pressed="true"] { background: var(--k-drop); color: #0b1409; box-shadow: var(--k-drop-sh); animation: k-drop .5s var(--gl-spring); }

/* gombok */
body.gl-kalk.own-typo .btn { border: 0; background: var(--k-glass); box-shadow: var(--k-glass-sh); color: var(--gl-ink); font-weight: 500; }
body.gl-kalk.own-typo .btn.primary, body.gl-kalk .vnav-cta:not(.lg) {
  background: var(--k-drop); color: #0b1409; border: 0; font-weight: 500;
  box-shadow: inset 0 1px 0 #fff, 0 12px 32px -12px rgba(198,255,61,.65);
}
body.gl-kalk .vnav-cta.lg { background: var(--k-glass) !important; color: var(--gl-ink) !important; border: 0 !important; font-weight: 500; }

/* táblák az önálló oldalakon */
body.gl-kalk.own-typo table :is(th, td) { border-bottom-color: var(--gl-hair); }
body.gl-kalk.own-typo thead th { background: transparent; color: var(--gl-ink-3); font-weight: 500; font-family: var(--gl-text); }
body.gl-kalk.own-typo tbody td { font-family: var(--gl-text); font-feature-settings: "tnum"; color: var(--gl-ink-2); }
body.gl-kalk.own-typo tbody td:first-child { color: var(--gl-ink); font-weight: 400; }
body.gl-kalk.own-typo td.ki, body.gl-kalk.own-typo tbody td.total { color: var(--gl-lime); font-weight: 500; }
body.gl-kalk.own-typo tbody tr.plafon td:first-child::after { border: 0; background: rgba(198,255,61,.12); color: var(--gl-lime); }
body.gl-kalk.gk-elofizetesek table.tetelek th { color: var(--gl-ink-3); font-weight: 500; }
body.gl-kalk.gk-elofizetesek table.tetelek td { border-bottom-color: var(--gl-hair); }
body.gl-kalk.gk-elofizetesek .torol:hover { color: var(--gl-lime); }

body.gl-kalk.own-typo details { border-radius: 20px; }
body.gl-kalk.own-typo details summary { font-weight: 500; }
body.gl-kalk.own-typo details summary::after { color: var(--gl-lime); }
body.gl-kalk.own-typo details p { color: var(--gl-ink-2); }
body.gl-kalk.own-typo .penztar h4 { font-family: var(--gl-text); font-weight: 500 !important; color: var(--gl-ink-3); }
body.gl-kalk.own-typo .penztar .mondat, body.gl-kalk.own-typo .penztar ul { color: var(--gl-ink-2); }

/* régi lábléc: a jogi szöveg marad, a duplikált márka-sor megy */
body.gl-kalk .gl-klegal { padding: 90px 0 0; }
body.gl-kalk .gl-klegal .jog { color: var(--gl-ink-3); border-top-color: var(--gl-hair); }
body.gl-kalk .gl-kdup, body.gl-kalk .gl-kold { display: none !important; }

/* vagyonépítő: a monospace számok a Display Light-ra, a zöld kártya üvegre */
body.gl-kalk.gk-vagyonepito header.hero { padding-bottom: 30px; }
body.gl-kalk.gk-vagyonepito .panel h2 {
  font: 500 12px/1.3 var(--gl-text); letter-spacing: .14em; text-transform: uppercase; color: var(--gl-ink-3);
  border-bottom: 1px solid var(--gl-hair);
}
body.gl-kalk.gk-vagyonepito .section-label { font-family: var(--gl-text); font-weight: 500; color: var(--gl-ink-3); letter-spacing: .14em; }
body.gl-kalk.gk-vagyonepito .field label { text-transform: none; letter-spacing: 0; font-size: 13.5px; color: var(--gl-ink); }
body.gl-kalk.gk-vagyonepito .field label .val { font-family: var(--gl-display); font-weight: 400; font-size: 15px; color: var(--gl-lime); letter-spacing: -.003em; }
body.gl-kalk.gk-vagyonepito #ret-info { color: var(--gl-lime) !important; font-weight: 500 !important; }
body.gl-kalk.gk-vagyonepito .check { background: var(--k-fill); border: 0; border-radius: 16px; box-shadow: var(--k-fill-sh); }
body.gl-kalk.gk-vagyonepito .check input { accent-color: var(--gl-lime); }
body.gl-kalk.gk-vagyonepito .hero-card { border-radius: 32px; padding: 30px; }
body.gl-kalk.gk-vagyonepito :is(.hero-card .label, .sumhero .label, .stat .k) { font-family: var(--gl-text); font-weight: 500; color: var(--gl-ink-3); letter-spacing: .12em; }
body.gl-kalk.gk-vagyonepito :is(.hero-card .big, .sumhero .big) {
  font-family: var(--gl-display); font-weight: 300; letter-spacing: -.012em; color: var(--gl-lime);
  text-shadow: 0 0 42px rgba(198,255,61,.35); font-feature-settings: "tnum";
}
body.gl-kalk.gk-vagyonepito .hero-card .big { font-size: clamp(38px, 4.6vw, 60px); }
body.gl-kalk.gk-vagyonepito :is(.hero-card .sub, .sumhero .sub) { color: var(--gl-ink-2); }
body.gl-kalk.gk-vagyonepito .hero-card .sub strong { color: var(--gl-ink); }
body.gl-kalk.gk-vagyonepito .stat { border-radius: 24px; }
body.gl-kalk.gk-vagyonepito .stat[style*="border-color"] { background: linear-gradient(180deg, rgba(198,255,61,.11), rgba(255,255,255,.02) 60%, rgba(255,255,255,.04)); }
body.gl-kalk.gk-vagyonepito .stat .v { font-family: var(--gl-display); font-weight: 400; letter-spacing: -.007em; color: var(--gl-ink); }
body.gl-kalk.gk-vagyonepito .stat .pct { color: var(--gl-ink-3); }
body.gl-kalk.gk-vagyonepito .card-box h3 { font-size: 18px; color: var(--gl-ink); }
body.gl-kalk.gk-vagyonepito .card-box .sub { color: var(--gl-ink-3); }
body.gl-kalk.gk-vagyonepito .bar { border: 0; border-radius: 10px; background: rgba(255,255,255,.06); }
body.gl-kalk.gk-vagyonepito .bar span { font-family: var(--gl-text); font-weight: 500; }
body.gl-kalk.gk-vagyonepito .legend { color: var(--gl-ink-2); }
body.gl-kalk.gk-vagyonepito tbody td { border-bottom-style: solid; }
body.gl-kalk.gk-vagyonepito tbody td .age { color: var(--gl-ink-3); }
body.gl-kalk.gk-vagyonepito .infobox { border: 0; background: rgba(255,171,61,.08); border-radius: 18px; color: var(--gl-ink-2); }
body.gl-kalk.gk-vagyonepito .sumhero { border-radius: 32px; }
body.gl-kalk.gk-vagyonepito #chart text { fill: var(--gl-ink-3); }
@media (min-width: 901px) {
  body.gl-kalk.gk-vagyonepito aside.panel.lg { position: sticky; top: 96px; }
}

/* ---------- az aurora.css-ből átvett elrendezési javítások ----------
   (a build az aurora.css-t leveszi, de ezek nem színek, hanem a kalkulátorok
   szerkezetének javításai: a számok nem törnek, a csúszka melletti mező nem lóg ki) */
body.gl-kalk .kalk-slider-row { grid-template-columns: minmax(0, 1fr) minmax(116px, max-content); }
body.gl-kalk .kalk-slider-row .kalk-input { font-size: 17px; padding: 10px 12px; }
body.gl-kalk .kalk-result-grid > * { min-width: 0; }
body.gl-kalk :is(.kalk-result-value, .kalk-result-mini-value, .kalk-kassza-amount, .kalk-gauge-value, [data-fit]) {
  white-space: nowrap; max-width: 100%; font-variant-numeric: lining-nums tabular-nums;
}
body.gl-kalk .kalk-label { flex-wrap: wrap; }
body.gl-kalk .kalk-label-text { min-width: 0; }
body.gl-kalk .kalk-label-value { white-space: nowrap; flex-shrink: 0; }
@media (min-width: 900px) {
  body.gl-kalk .kalk-explain-grid { grid-template-columns: 200px minmax(0, 1fr); gap: 52px; }
  body.gl-kalk .kalk-explain-aside { position: sticky; top: 100px; }
  body.gl-kalk .kalk-explain-body { max-width: 760px; }
}
/* az eredménykártya kövesse a görgetést, ahol van rá hely */
@media (min-width: 1000px) {
  body.gl-kalk .kalk-grid > .gl-kbcard { position: sticky; top: 92px; }
}
/* A régi dizájnból: ahol az eredménypanel magasabb a nézetnél, a panelen BELÜL a nagy
   eredményszám ragad a tetején, így a beállítások állítása közben végig látszik a végeredmény.
   Nyugalomban nincs sáv; csak ragadáskor kap sötét, fagyott üveget maga mögé (glass.js: is-stuck). */
@media (min-width: 1000px) {
  body.gl-kalk .kalk-panel { overflow: clip; }
  body.gl-kalk .kalk-panel-lime .kalk-result-hero {
    position: sticky; top: 92px; z-index: 5;
    margin: 0 -34px; padding: 12px 34px 14px; border-radius: 0 0 22px 22px;
    transition: background-color .35s var(--gl-ease), box-shadow .35s var(--gl-ease);
  }
  body.gl-kalk .kalk-panel-lime .kalk-result-hero.is-stuck {
    background-color: rgba(9, 15, 11, .94);
    -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
    box-shadow: inset 0 -1px 0 rgba(255,255,255,.07), 0 18px 28px -20px rgba(0,0,0,.9), 0 10px 30px -18px rgba(198,255,61,.25);
  }
}

/* ---------- reszponzív ---------- */
@media (max-width: 1100px) {
  body.gl-kalk .hub-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body.gl-kalk .kalk-hero, body.gl-kalk .hub-hero, body.gl-kalk.own-typo header.hero { padding-top: 116px; }
  body.gl-kalk .kalk-hero h1, body.gl-kalk.own-typo header.hero h1 { font-size: 38px; }
  body.gl-kalk .hub-hero h1 { font-size: 44px; }
  body.gl-kalk .kalk-hero p, body.gl-kalk.own-typo header.hero .lead, body.gl-kalk .hub-hero p { font-size: 15px; }
  body.gl-kalk .gl-horizon { height: 144px; }
  body.gl-kalk .kalk-panel, body.gl-kalk.own-typo .panel, body.gl-kalk.own-typo .hero-result { padding: 24px 20px; border-radius: 26px; }
  body.gl-kalk .kalk-result-value { font-size: 50px; }
  body.gl-kalk .kalk-toggle { border-radius: 22px; }
  body.gl-kalk .kalk-toggle button { border-radius: 16px; }
  body.gl-kalk .hub-featured-grid { grid-template-columns: minmax(0, 1fr); }
  body.gl-kalk .hub-hero-stats { gap: 18px 30px; }
  body.gl-kalk .hub-hero-stat-num { font-size: 38px; }
  body.gl-kalk .kalk-hub-card { min-height: 0; }
  body.gl-kalk .kalk-hub-category { padding-top: 76px; }
  body.gl-kalk .kalk-explain, body.gl-kalk .kalk-related { padding-top: 76px; }
  body.gl-kalk.own-typo section { padding-top: 80px; }
}

/* a közös lábléc-ív (clip-path) a lap alá ~1000 px üres görgetést tenne:
   a body függőlegesen is vág, így a lap a lábléccel ér véget */
body.gl.gl-kalk { overflow-y: clip; }
/* hosszú hero-eyebrow (önálló oldalak): a kocka a szöveggel együtt törik, középre */
body.gl-kalk.own-typo header.hero .eyebrow { display: inline-block !important; text-wrap: balance; }
body.gl-kalk.own-typo header.hero .eyebrow::before { display: inline-block; margin-right: 10px; vertical-align: 1px; }
body.gl-kalk .kalk-result-mini-label { overflow-wrap: anywhere; }

/* ============ MEGTAKARÍTÁSI RÁTA (új kalkulátor) ============ */
body.gl-kalk nav.top { display: none !important; }
body.gl-kalk .pu-cta-wrap { background: none !important; }
body.gl-kalk .pu-cta-block {
  position: relative; border: 0 !important; border-radius: 34px !important; color: var(--gl-ink) !important;
  background: radial-gradient(70% 70% at 85% 0%, rgba(198,255,61,.22), transparent 70%), radial-gradient(60% 60% at 0% 100%, rgba(60,242,200,.12), transparent 70%), linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.24), inset 0 0 0 1px rgba(255,255,255,.08), 0 30px 60px -26px rgba(0,0,0,.85), 0 0 60px -20px rgba(198,255,61,.35) !important;
}
body.gl-kalk .pu-cta-block :is(h2, h3) { color: var(--gl-ink) !important; font-weight: 400 !important; letter-spacing: -.009em; }
body.gl-kalk .pu-cta-block p { color: var(--gl-ink-2) !important; }
body.gl-kalk .pu-cta-block a:not(.gl-store) { color: var(--gl-lime) !important; }
