/* ============================================================
   EGYEDI GÉPEK — V3 felület (csak az egyedi-gepek.html tölti be).
   A tulajdonos által jóváhagyott makett (docs/freezes/V3-WEBSITE-EXPERIENCE:
   v3-custom.css + v3-advanced.css) éles portja, a valódi jelöléshez igazítva.
   A globális styles.css-t nem módosítja; a meglévő tokeneket
   (--font-mono, --header-h) használja. Paletta: sötét #0B0E14 / cián #4FD1C5.
   ============================================================ */

html { scroll-behavior: smooth; scroll-padding-top: 80px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.v3-custom {
  --adv-card: #16212b; --adv-card-2: #1b2832; --adv-line: #34434b; --adv-muted: #a9b8c0; --adv-accent: #4fd1c5;
  --adv-warn: #ffc991; --adv-error: #ffb4a8;
  --z-sticky: 5; --z-recap: 6; --z-skip: 50;
  background: #0b0e14; color: #f7f8fa;
}
.v3-custom button, .v3-custom input, .v3-custom textarea, .v3-custom select { font: inherit; }
.v3-custom button { cursor: pointer; touch-action: manipulation; }
.v3-custom button:focus-visible, .v3-custom a:focus-visible, .v3-custom input:focus-visible, .v3-custom textarea:focus-visible,
.v3-custom select:focus-visible, .v3-custom summary:focus-visible { outline: 3px solid var(--adv-accent); outline-offset: 3px; }
.v3-custom button:disabled { cursor: not-allowed; opacity: .46; }
.v3-custom .top-bar { background: rgba(16, 21, 29, .88); border-bottom-color: rgba(255, 255, 255, .11); }
.v3-custom .site-footer { position: relative; }
.v3-custom main { overflow-x: clip; }
.v3-custom .top-bar-nav { align-items: center; }
.v3-custom .top-bar-nav .lang-switch button { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }

.v3-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.v3-skip { position: absolute; left: 12px; top: -60px; z-index: var(--z-skip); padding: 10px 14px; background: var(--adv-accent); color: #0b0e14; border-radius: 8px; font-weight: 800; }
.v3-skip:focus { top: calc(var(--header-h) + 10px); }
.v3-eyebrow { display: block; color: var(--adv-accent); font-family: var(--font-mono); font-size: .72rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.v3-button { display: inline-flex; justify-content: center; align-items: center; gap: 1rem; min-height: 50px; padding: 13px 23px; border: 0; border-radius: 999px; font-size: .92rem; font-weight: 800; text-decoration: none; white-space: nowrap; transition: transform .2s, background-color .2s; }
.v3-button:hover { transform: translateY(-2px); }
.v3-button:active { transform: translateY(0) scale(.98); }
.v3-button--cyan { background: var(--adv-accent); color: #0b0e14; }
.v3-custom button.v3-button { font-weight: 800; }
.v3-button--cyan:hover { background: #71e6dc; }
.v3-text-button { border: 0; background: none; color: var(--adv-accent); min-height: 50px; padding: 10px 0; font-weight: 800; }

/* ---------- Hero: valódi gépházak a fő látványelem ---------- */
.v3-hero { min-height: min(790px, calc(100svh - 64px)); padding: calc(var(--header-h) + 42px) max(30px, calc((100vw - 1260px) / 2)) 64px; display: grid; grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr); gap: clamp(25px, 5vw, 80px); align-items: center; background: radial-gradient(circle at 76% 44%, #14313b 0%, #111e26 30%, #0b0e14 66%); }
.v3-hero-copy { padding: 28px 0 36px; position: relative; z-index: 1; }
.v3-hero h1 { font-size: clamp(3.5rem, 6vw, 6.8rem); letter-spacing: -.065em; line-height: .96; margin: 15px 0 25px; font-weight: 900; text-wrap: balance; }
.v3-hero-lead { max-width: 630px; font-size: clamp(1.35rem, 2.25vw, 2rem); font-weight: 700; line-height: 1.24; letter-spacing: -.025em; margin: 0 0 20px; text-wrap: pretty; }
.v3-hero-detail { max-width: 58ch; color: #c3cbd1; line-height: 1.65; font-size: 1rem; margin: 0 0 30px; }
.v3-hero-caption { display: block; color: #9cabaf; font-family: var(--font-mono); font-size: .7rem; margin-top: 15px; }
.v3-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.v3-hero-alt { display: inline-flex; align-items: center; min-height: 50px; color: #fff; font-weight: 800; text-underline-offset: 5px; text-decoration-color: rgba(79, 209, 197, .6); }
.v3-hero-alt:hover { color: var(--adv-accent); }
.v3-hero-gallery { min-width: 0; }
.v3-hero-image-wrap { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 22px 25px 25px; overflow: hidden; background: radial-gradient(circle at 50% 58%, rgba(112, 157, 160, .2), transparent 60%), linear-gradient(148deg, #1a2530, #111820 58%, #0b0e14); border: 1px solid rgba(255, 255, 255, .12); border-radius: 28px; box-shadow: 0 45px 90px rgba(4, 12, 18, .5); }
.v3-image-kicker { align-self: flex-start; color: #b0cbca; font-family: var(--font-mono); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.v3-hero-image { width: 80%; height: 420px; object-fit: contain; filter: drop-shadow(0 24px 20px rgba(0, 0, 0, .5)); }
.v3-hero-image[hidden] { display: none; }
.v3-hero-skeleton { width: 60%; height: 420px; border-radius: 18px; background: linear-gradient(100deg, rgba(255, 255, 255, .03) 30%, rgba(255, 255, 255, .08) 50%, rgba(255, 255, 255, .03) 70%) 0 0 / 300% 100%; animation: v3-shimmer 1.6s linear infinite; }
.v3-hero-skeleton[hidden] { display: none; }
@keyframes v3-shimmer { to { background-position: -100% 0; } }
.v3-image-caption { align-self: stretch; display: grid; gap: 2px; padding: 12px 16px; border: 1px solid rgba(255, 255, 255, .13); border-radius: 12px; background: rgba(10, 16, 23, .77); backdrop-filter: blur(10px); }
.v3-image-caption strong { font-size: 1rem; }
.v3-image-caption span { color: #bdd0d0; font-size: .76rem; }
.v3-image-caption span:empty { display: none; }
.v3-hero-picks { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 13px; }
.v3-hero-picks button { width: 74px; height: 73px; border: 1px solid rgba(255, 255, 255, .14); background: #19212a; border-radius: 10px; padding: 7px; transition: border-color .2s; }
.v3-hero-picks button:hover, .v3-hero-picks button.is-current { border-color: var(--adv-accent); }
.v3-hero-picks img { width: 100%; height: 100%; object-fit: contain; }
.v3-hero-more { display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px; color: var(--adv-accent); font-weight: 800; text-decoration: none; white-space: nowrap; }

/* ---------- Így lesz az ötletből gép ---------- */
.v3-flow { width: min(100% - 60px, 1200px); margin: 0 auto; padding: 90px 0 100px; }
.v3-section-heading h2 { font-size: clamp(2rem, 3.2vw, 3rem); letter-spacing: -.04em; margin: 12px 0 40px; line-height: 1.08; }
.v3-flow-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; list-style: none; margin: 0; padding: 0; }
.v3-flow-list li { border-top: 1px solid rgba(255, 255, 255, .24); padding-top: 19px; }
.v3-flow-list li > span { color: var(--adv-accent); font-family: var(--font-mono); font-size: .76rem; }
.v3-flow-list h3 { font-size: 1.12rem; margin: 28px 0 8px; letter-spacing: -.02em; }
.v3-flow-list p { color: #abb8c0; line-height: 1.5; margin: 0; font-size: .9rem; }

/* ---------- Konfigurátor ---------- */
.v3-builder { background: #111822; border-top: 1px solid rgba(255, 255, 255, .06); border-bottom: 1px solid rgba(255, 255, 255, .06); padding: 100px max(30px, calc((100vw - 1200px) / 2)) 85px; scroll-margin-top: var(--header-h); }
.v3-builder[hidden] { display: none; }
.v3-builder-intro { max-width: 760px; }
.v3-builder-intro h2 { font-size: clamp(2.4rem, 4vw, 4.4rem); line-height: 1.02; letter-spacing: -.055em; margin: 16px 0; text-wrap: balance; }
.v3-builder-intro p { color: #b2c1c8; line-height: 1.6; font-size: 1.05rem; margin: 0; }

/* Katalógus-állapot (betöltés / hiba / nem elérhető); rendben állapotban rejtett */
.cfg-catalog-status { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 24px 0 0; color: var(--adv-muted); font-family: var(--font-mono); font-size: .78rem; }
.cfg-catalog-status[data-tone="ok"] { display: none; }
.cfg-catalog-status[data-tone="warning"] { padding: 12px 16px; border-radius: 12px; background: rgba(255, 201, 145, .08); border: 1px solid rgba(255, 201, 145, .4); color: #ffe2c2; font-family: var(--font-base); font-size: .88rem; }
.cfg-catalog-status .v3-text-button { min-height: 44px; }

/* Módválasztó: két magyarázó kártya -> választás után ragadós, kétállású sáv */
.v3-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 40px 0 0; }
.v3-path { position: relative; display: grid; gap: 8px; align-content: start; padding: 26px 28px 24px; text-align: left; color: #fff; background: linear-gradient(155deg, #1b2832, #141d26); border: 1px solid var(--adv-line); border-radius: 18px; transition: border-color .2s, transform .2s, background-color .2s; }
.v3-path:hover { border-color: var(--adv-accent); transform: translateY(-2px); }
.v3-path-tag { width: max-content; padding: 4px 10px; border-radius: 6px; background: rgba(79, 209, 197, .12); color: var(--adv-accent); font-family: var(--font-mono); font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.v3-path strong { font-size: clamp(1.35rem, 2.2vw, 1.8rem); letter-spacing: -.03em; line-height: 1.1; }
.v3-path-desc { color: var(--adv-muted); line-height: 1.5; font-size: .95rem; max-width: 46ch; }
.v3-path-meta { margin-top: 6px; color: #7f959e; font-family: var(--font-mono); font-size: .72rem; }
.v3-path[aria-pressed="true"] { border-color: var(--adv-accent); background: linear-gradient(155deg, #173a3d, #15262c); box-shadow: inset 0 0 0 1px var(--adv-accent); }
.v3-path[aria-pressed="true"]::after { content: "✓"; position: absolute; top: 18px; right: 20px; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--adv-accent); color: #0b0e14; font-weight: 900; }
.v3-path-hint { margin: 14px 0 0; color: var(--adv-muted); font-size: .88rem; }
.v3-builder.has-mode .v3-paths { position: sticky; top: calc(var(--header-h) + 8px); z-index: var(--z-sticky); gap: 6px; padding: 6px; margin-top: 30px; background: rgba(11, 16, 22, .92); backdrop-filter: blur(12px); border: 1px solid var(--adv-line); border-radius: 16px; }
.v3-builder.has-mode .v3-path { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 2px 12px; padding: 10px 14px; border-radius: 11px; background: transparent; border-color: transparent; transform: none; }
.v3-builder.has-mode .v3-path-tag { grid-row: span 2; }
.v3-builder.has-mode .v3-path strong { font-size: 1rem; }
.v3-builder.has-mode .v3-path-desc { display: none; }
.v3-builder.has-mode .v3-path-meta { margin: 0; font-size: .68rem; }
.v3-builder.has-mode .v3-path[aria-pressed="true"] { background: #1c3439; border-color: var(--adv-accent); box-shadow: none; }
.v3-builder.has-mode .v3-path[aria-pressed="true"]::after { display: none; }
.v3-builder.has-mode .v3-path[aria-pressed="false"]:hover { background: #17222c; }

/* ---------- Egyszerű mód ---------- */
.v3-easy { margin-top: 26px; }
.v3-easy[hidden], .v3-adv[hidden] { display: none; }
.v3-stepper { display: flex; gap: 8px; margin: 48px 0 38px; padding: 0; list-style: none; }
.v3-stepper > li { flex: 1; display: flex; align-items: center; gap: 9px; min-width: 0; min-height: 44px; border-top: 3px solid #34454e; color: #8e9ea8; font-size: .81rem; font-weight: 700; padding: 12px 3px; }
.v3-stepper > li > span:first-child { font-family: var(--font-mono); font-size: .7rem; }
.v3-stepper > li.is-current { color: #fff; border-color: var(--adv-accent); }
.v3-stepper > li.is-done { color: #b6d2d0; border-color: #4a7fa5; }
.v3-builder-stage { min-height: 320px; }
.v3-builder-step { display: grid; gap: 16px; min-width: 0; }
.v3-builder-step > .v3-step-head { margin-bottom: 15px; }
.v3-builder-step > .v3-delegate { max-width: 460px; }
.v3-step-head { margin: 0 0 31px; scroll-margin-top: var(--cfg-sticky-offset, calc(var(--header-h) + 110px)); }
.v3-step-head h3 { font-size: clamp(2rem, 3.3vw, 3.35rem); letter-spacing: -.045em; line-height: 1.07; margin: 12px 0 10px; text-wrap: balance; }
.v3-step-head p { color: #aebcc5; line-height: 1.58; margin: 0; max-width: 72ch; }
.v3-choice-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.v3-choice-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v3-choice-grid button { min-height: 158px; padding: 22px; text-align: left; display: flex; flex-direction: column; justify-content: flex-end; gap: 7px; background: linear-gradient(150deg, #1b2832, #17212b); border: 1px solid #34434b; border-radius: 15px; color: #fff; transition: transform .2s, border-color .2s; }
.v3-choice-grid button:hover { transform: translateY(-3px); border-color: var(--adv-accent); }
.v3-choice-grid button.is-selected { border-color: var(--adv-accent); box-shadow: inset 0 0 0 1px var(--adv-accent); background: linear-gradient(150deg, #173a3d, #18272d); }
.v3-choice-grid strong { font-size: 1.16rem; line-height: 1.14; }
.v3-choice-grid span { color: #aabec5; font-size: .85rem; line-height: 1.4; }
.v3-field-label { display: block; font-size: .87rem; font-weight: 700; margin: 0 0 9px; }
.v3-builder textarea#cfg-easy-note { display: block; width: min(100%, 550px); min-height: 140px; border: 1px solid #4b5d64; background: #0b1016; color: #fff; border-radius: 10px; padding: 17px 18px; font-size: .95rem; resize: vertical; }
.v3-field-note { color: #9cabaf; font-size: .82rem; margin: 10px 0 0; line-height: 1.5; }
.v3-field-note.is-error { color: var(--adv-error); }
.v3-step-error { min-height: 22px; color: var(--adv-warn); margin: 15px 0 0; font-size: .84rem; }
.v3-step-actions { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin: 10px 0 35px; }
.v3-budget-row { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 22px; align-items: center; max-width: 820px; }
.v3-budget-range, .v3-watt-range { width: 100%; accent-color: var(--adv-accent); min-height: 44px; }
.v3-budget-box { display: flex; align-items: center; gap: 8px; padding: 0 16px; min-height: 58px; border: 1px solid #4b5d64; background: #0b1016; border-radius: 12px; }
.v3-budget-box:focus-within { border-color: var(--adv-accent); }
.v3-budget-box input { width: 100%; min-width: 0; border: 0; background: none; color: #fff; font-size: 1.3rem; font-weight: 800; font-variant-numeric: tabular-nums; outline: none; }
.v3-budget-box > span:last-child { color: var(--adv-muted); font-weight: 700; }
.v3-budget-ends { display: flex; justify-content: space-between; gap: 10px; max-width: 580px; margin-top: 4px; color: #7f959e; font-family: var(--font-mono); font-size: .7rem; font-variant-numeric: tabular-nums; }
.v3-inline-switch { padding: 0; border: 0; background: none; color: var(--adv-accent); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; }

/* ---------- Haladó mód ---------- */
.v3-adv { margin-top: 26px; }
.v3-adv-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 34px; align-items: start; }
.v3-adv-rail { position: sticky; top: calc(var(--header-h) + 96px); }
.v3-adv-rail-toggle { display: none; }
.v3-adv-rail-list { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.v3-rail-item { width: 100%; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 56px; padding: 8px 10px; text-align: left; color: #fff; background: transparent; border: 1px solid transparent; border-radius: 12px; transition: background-color .2s; }
.v3-rail-item:hover { background: #17222c; }
.v3-rail-item.is-current { background: #1c3439; border-color: var(--adv-accent); }
.v3-rail-num { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #1f2b34; color: #93a4ad; font-family: var(--font-mono); font-size: .72rem; }
.v3-rail-item.is-done .v3-rail-num { background: var(--adv-accent); color: #0b0e14; font-weight: 900; }
.v3-rail-text { display: grid; min-width: 0; }
.v3-rail-text strong { font-size: .93rem; }
.v3-rail-text span { color: var(--adv-muted); font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3-rail-item:not(.is-done) .v3-rail-text span { color: #6f838c; }
.v3-adv-panel { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.v3-adv-panel > * { margin-top: 0; margin-bottom: 0; }
.v3-adv-head { margin-bottom: 4px; }
.v3-adv-head h3 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.v3-adv-head p { margin: 0; }
.v3-adv-panel > .v3-step-actions { margin-top: 12px; }
.v3-adv-panel > .v3-delegate { align-self: flex-start; }
.v3-goal-line { margin: 0; padding: 11px 14px; border-radius: 10px; background: rgba(79, 209, 197, .08); border: 1px solid rgba(79, 209, 197, .22); color: #cfe1e0; font-size: .9rem; line-height: 1.5; }
.v3-goal-line strong { color: #fff; }
.v3-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.v3-toolbar .v3-search { flex: 1 1 240px; max-width: none; }
.v3-chip { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 15px; border: 1px solid var(--adv-line); border-radius: 999px; background: #121a22; color: #dbe6e8; font-weight: 700; font-size: .86rem; transition: border-color .2s, background-color .2s; }
.v3-chip:hover { border-color: #5d7580; }
.v3-chip[aria-pressed="true"] { border-color: var(--adv-accent); background: #1c3439; color: #fff; }
.v3-chip--sm { min-height: 40px; padding: 6px 12px; font-size: .82rem; }
.v3-chip--solid { min-height: 48px; padding: 0 20px; justify-content: center; border-color: var(--adv-accent); background: var(--adv-accent); color: #0b0e14; }
.v3-chip--solid:hover { border-color: #7fe0d6; background: #7fe0d6; }
.v3-brand-seg { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--adv-line); border-radius: 999px; background: #0f161d; }
.v3-brand-seg .v3-chip { min-height: 40px; border-color: transparent; background: transparent; padding: 6px 14px; justify-content: center; }
.v3-brand-seg .v3-chip[aria-pressed="true"] { background: #1c3439; border-color: var(--adv-accent); }
.v3-brand-seg .v3-chip--brand { min-width: 84px; }
.v3-tier-select select { min-height: 48px; padding: 0 38px 0 14px; border: 1px solid var(--adv-line); border-radius: 999px; background: #0f161d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23a9b8c0' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center; color: #fff; font-weight: 700; appearance: none; }
.v3-tier-select select:focus { border-color: var(--adv-accent); outline: none; }
.v3-search { width: 100%; max-width: 460px; min-height: 48px; padding: 10px 14px; border: 1px solid #4b5d64; border-radius: 11px; background: #0b1016; color: #fff; }
.v3-search:focus { border-color: var(--adv-accent); outline: none; }
.v3-search[aria-invalid="true"] { border-color: #ff9a8a; }
.v3-count { margin: 0; color: var(--adv-muted); font-size: .84rem; }

/* Gyártó-jelölés: hivatalos logó (egyszínű fehér), ha nem tölthető be: szóvédjegy */
.v3-brand { display: inline-flex; align-items: center; gap: 7px; font-weight: 900; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.v3-brand i { width: 16px; height: 16px; border-radius: 4px; background: var(--brand, #5d7580); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }
.v3-brand-logo { display: block; height: 15px; width: auto; max-width: 90px; object-fit: contain; filter: brightness(0) invert(1); }
.v3-brand--amd .v3-brand-logo { height: 12px; }
.v3-brand--intel .v3-brand-logo { height: 17px; }
.v3-brand.has-logo > i, .v3-brand.has-logo > .v3-brand-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.v3-brand--nvidia { --brand: #76b900; }
.v3-brand--amd { --brand: #ed1c24; }
.v3-brand--intel { --brand: #0071c5; }

.v3-part-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v3-part { position: relative; display: grid; gap: 8px; align-content: start; min-height: 150px; padding: 16px; text-align: left; color: #fff; background: var(--adv-card); border: 1px solid var(--adv-line); border-radius: 14px; transition: border-color .2s, transform .2s; }
.v3-part:hover { border-color: #5d7580; transform: translateY(-2px); }
.v3-part:active { transform: translateY(0) scale(.99); }
.v3-part.is-selected { border-color: var(--adv-accent); background: #183036; box-shadow: inset 0 0 0 1px var(--adv-accent); }
.v3-part-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 20px; }
.v3-part-tier { color: #8fa3ac; font-family: var(--font-mono); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.v3-part-name { font-size: 1.14rem; letter-spacing: -.02em; overflow-wrap: anywhere; }
.v3-part-spec, .v3-part-note, .v3-part-perf > span:last-child { color: var(--adv-muted); font-size: .8rem; line-height: 1.4; font-variant-numeric: tabular-nums; }
.v3-part-note { color: #8ea2ab; }
.v3-part-perf { display: grid; gap: 6px; }
.v3-perf-bar { height: 6px; border-radius: 3px; background: #26343d; overflow: hidden; }
.v3-perf-bar i { display: block; width: var(--share, 6%); height: 100%; border-radius: 3px; background: linear-gradient(90deg, #4a7fa5, var(--adv-accent)); }
.v3-fit { width: max-content; padding: 3px 8px; border-radius: 6px; background: rgba(79, 209, 197, .14); color: var(--adv-accent); font-size: .72rem; font-weight: 800; }
.v3-part-check { position: absolute; right: 12px; bottom: 12px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--adv-accent); color: #0b0e14; font-weight: 900; }
.v3-more { min-height: 48px; width: 100%; border: 1px dashed #4b5d64; border-radius: 12px; background: transparent; color: #dbe6e8; font-weight: 800; }
.v3-more:hover { border-color: var(--adv-accent); }

.v3-delegate { display: flex; justify-content: space-between; gap: 12px; align-items: center; width: 100%; max-width: 460px; min-height: 52px; border: 1px solid #567078; border-radius: 10px; background: transparent; color: #e9f4f2; padding: 13px 17px; font-weight: 750; text-align: left; transition: border-color .2s, color .2s; }
.v3-delegate:hover { border-color: var(--adv-accent); }
.v3-delegate.is-selected { border-color: var(--adv-accent); color: var(--adv-accent); }

/* Saját (egyedi) tétel: ár nélkül, személyes ajánlatra */
.v3-add-custom { display: flex; align-items: center; gap: 14px; width: 100%; padding: 16px 18px; text-align: left; color: #fff; background: #183036; border: 1px dashed var(--adv-accent); border-radius: 14px; }
.v3-add-custom > span:first-child { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--adv-accent); color: #0b0e14; font-weight: 900; font-size: 1.2rem; }
.v3-add-custom strong { display: block; overflow-wrap: anywhere; }
.v3-add-custom small { color: var(--adv-muted); }
.v3-custom-picked { display: grid; gap: 4px; padding: 16px 18px; border-radius: 14px; background: #183036; border: 1px solid var(--adv-accent); min-width: 0; }
.v3-custom-picked strong { font-size: 1.15rem; overflow-wrap: anywhere; }
.v3-custom-picked > span:not(.v3-part-tier):not(.v3-custom-actions) { color: #cfe1e0; font-size: .86rem; line-height: 1.45; }
.v3-custom-details { color: var(--adv-muted); overflow-wrap: anywhere; }
.v3-custom-actions { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.v3-custom-actions .v3-text-button { min-height: 44px; }
.v3-custom-req { padding: 4px 16px; border: 1px solid var(--adv-line); border-radius: 12px; }
.v3-custom-req summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; color: #dbe6e8; }
.v3-custom-req[open] { padding-bottom: 16px; }
.v3-custom-form { display: grid; gap: 12px; padding-top: 8px; }
.v3-custom-form .v3-field-label, .v3-custom-form .v3-field-note { margin: 0; }
.v3-custom-form .v3-search { max-width: none; }
.v3-custom-form textarea.v3-search { min-height: 72px; resize: vertical; }
.v3-custom-form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 20px; }
.cfg-field-error { display: block; font-size: .76rem; color: var(--adv-error); }
.cfg-field-error:empty { display: none; }
.v3-custom-row { display: flex; gap: 8px; }
.v3-custom-row .v3-search { flex: 1; min-width: 0; max-width: none; }

.v3-seg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.v3-seg-btn { display: grid; gap: 4px; align-content: start; min-height: 96px; padding: 16px; text-align: left; color: #fff; background: var(--adv-card); border: 1px solid var(--adv-line); border-radius: 14px; transition: border-color .2s; }
.v3-seg-btn:hover { border-color: #5d7580; }
.v3-seg-btn strong { font-size: 1.4rem; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.v3-seg-btn span { color: var(--adv-muted); font-size: .8rem; line-height: 1.35; }
.v3-seg-btn[aria-pressed="true"] { border-color: var(--adv-accent); background: #183036; box-shadow: inset 0 0 0 1px var(--adv-accent); }

/* Tárhely: rendszermeghajtó + egyetlen "Meghajtó hozzáadása" választó */
.v3-storage-block { display: grid; gap: 10px; min-width: 0; }
.v3-storage-block + .v3-storage-block { margin-top: 8px; }
.v3-block-label { margin: 0; color: #e9f1f2; font-size: .9rem; font-weight: 700; }
.v3-block-label span { color: #7f959e; font-family: var(--font-mono); font-size: .72rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.v3-drives { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.v3-drive { display: grid; grid-template-columns: 128px minmax(0, 1fr) 44px; align-items: center; gap: 14px; min-height: 62px; padding: 8px 8px 8px 16px; border: 1px solid var(--adv-line); border-radius: 12px; background: var(--adv-card); }
.v3-drive--keep { border-style: dashed; background: transparent; }
.v3-drive-label { color: #8fa3ac; font-family: var(--font-mono); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.v3-drive-sizes { display: flex; flex-wrap: wrap; gap: 6px; }
.v3-drive-sizes .v3-chip--sm { min-height: 44px; min-width: 64px; justify-content: center; font-variant-numeric: tabular-nums; }
.v3-drive-custom { display: grid; gap: 2px; min-width: 0; }
.v3-drive-custom strong { font-size: .98rem; overflow-wrap: anywhere; }
.v3-drive-custom small { color: var(--adv-muted); font-size: .78rem; }
.v3-drive--custom small { color: #ffd59a; }
.v3-drive-remove { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--adv-line); border-radius: 10px; background: transparent; color: #dbe6e8; font-size: 1.35rem; line-height: 1; transition: border-color .2s, color .2s, background-color .2s; }
.v3-drive-remove:hover { border-color: #ff9a8a; color: var(--adv-error); background: rgba(255, 154, 138, .08); }
.v3-add-inline { display: inline-flex; align-items: center; gap: 12px; justify-self: start; min-height: 48px; padding: 6px 20px 6px 6px; border: 1px dashed var(--adv-accent); border-radius: 999px; background: transparent; color: #fff; font-weight: 800; transition: background-color .2s, border-color .2s, transform .15s; }
.v3-add-inline:hover { background: rgba(79, 209, 197, .08); }
.v3-add-inline:active { transform: translateY(1px); }
.v3-add-inline[aria-expanded="true"] { border-style: solid; background: #16292e; }
.v3-add-inline-mark { position: relative; width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--adv-accent); transition: transform .2s; }
.v3-add-inline-mark::before, .v3-add-inline-mark::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; margin: -1px 0 0 -7px; border-radius: 1px; background: #0b0e14; }
.v3-add-inline-mark::after { transform: rotate(90deg); }
.v3-add-inline[aria-expanded="true"] .v3-add-inline-mark { transform: rotate(45deg); }
.v3-drive-chooser { display: grid; gap: 14px; padding: 14px; border: 1px solid var(--adv-line); border-radius: 16px; background: #0f161d; }
.v3-drive-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.v3-drive-choice { display: grid; grid-template-rows: auto auto 1fr; gap: 4px; align-content: start; min-height: 44px; padding: 14px 16px 16px; text-align: left; color: #fff; background: var(--adv-card); border: 1px solid var(--adv-line); border-radius: 12px; transition: border-color .2s, background-color .2s; }
.v3-drive-choice:hover:not(:disabled) { border-color: #5d7580; }
.v3-drive-choice:active:not(:disabled) { transform: translateY(1px); }
.v3-drive-choice[aria-expanded="true"] { border-color: var(--adv-accent); background: #183036; box-shadow: inset 0 0 0 1px var(--adv-accent); }
.v3-drive-choice:disabled { opacity: .45; cursor: not-allowed; }
.v3-drive-choice-meta { color: #8fa3ac; font-family: var(--font-mono); font-size: .68rem; letter-spacing: .04em; }
.v3-drive-choice strong { font-size: 1rem; letter-spacing: -.01em; }
.v3-drive-choice > span:last-child { color: var(--adv-muted); font-size: .82rem; line-height: 1.4; }
.v3-drive-lock { margin: 0; color: var(--adv-warn); font-size: .84rem; }
.v3-drive-form { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid #26343d; }
.v3-drive-form .v3-field-label, .v3-drive-form .v3-field-note { margin: 0; }

/* Hűtés / alaplap: kép nélküli, tipográfiai kártyák (subgrid-igazítás) */
.v3-opt-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.v3-opt { display: grid; gap: 10px; align-content: start; padding: 20px; text-align: left; color: #fff; background: var(--adv-card); border: 1px solid var(--adv-line); border-radius: 16px; transition: border-color .2s, background-color .2s, transform .2s; }
.v3-opt:hover { border-color: #5d7580; transform: translateY(-2px); }
.v3-opt:active { transform: translateY(0) scale(.995); }
.v3-opt.is-selected { border-color: var(--adv-accent); background: #183036; box-shadow: inset 0 0 0 1px var(--adv-accent); }
.v3-opt strong { font-size: 1.2rem; }
.v3-opt-desc { color: var(--adv-muted); font-size: .88rem; line-height: 1.5; }
.v3-opt ul { margin: 4px 0 0; padding: 0; list-style: none; display: grid; gap: 5px; font-size: .84rem; color: #d2dde0; }
.v3-opt li::before { content: "·"; margin-right: 7px; color: var(--adv-accent); font-weight: 900; }
.v3-opt-note { color: #ffd59a; font-size: .8rem; }
.v3-opt-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v3-opt-radio { position: relative; width: 22px; height: 22px; flex: none; border: 1.5px solid #5d7580; border-radius: 50%; transition: border-color .2s; }
.v3-opt-radio::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--adv-accent); transform: scale(0); transition: transform .2s; }
.v3-opt.is-selected .v3-opt-radio { border-color: var(--adv-accent); }
.v3-opt.is-selected .v3-opt-radio::after { transform: scale(1); }
.v3-opt-grid--rich { grid-template-rows: repeat(var(--opt-rows, 5), auto); }
.v3-opt--rich { grid-row: span var(--opt-rows, 5); display: grid; grid-template-rows: subgrid; gap: 0; align-content: stretch; padding: 18px 20px 20px; }
.v3-opt-spec { padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid #2a3942; color: #8fa3ac; font-family: var(--font-mono); font-size: .74rem; letter-spacing: .01em; }
.v3-opt--rich strong { font-size: 1.3rem; letter-spacing: -.02em; line-height: 1.15; }
.v3-opt--rich .v3-opt-desc { margin-top: 6px; }
.v3-opt-when { display: grid; gap: 4px; align-self: start; margin-top: 16px; padding-top: 14px; border-top: 1px solid #2a3942; color: #d2dde0; font-size: .86rem; line-height: 1.45; }
.v3-opt-when small { color: var(--adv-accent); font-family: var(--font-mono); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.v3-opt--rich .v3-opt-note { align-self: start; margin-top: 12px; line-height: 1.4; }
.v3-opt--rich.is-selected .v3-opt-spec, .v3-opt--rich.is-selected .v3-opt-when { border-color: rgba(79, 209, 197, .28); }

/* Tápegység: a 80 PLUS hat hivatalos fokozata + Watt-csúszka */
.v3-psu-scale { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v3-psu { display: grid; gap: 2px; justify-items: start; padding: 16px 16px 14px; text-align: left; color: #fff; background: var(--adv-card); border: 1px solid var(--adv-line); border-radius: 14px; transition: border-color .2s; }
.v3-psu:hover { border-color: #5d7580; }
.v3-psu-badge { height: 62px; width: auto; margin-bottom: 8px; }
.v3-psu .v3-fit { margin-top: 6px; }
.v3-psu small { font-family: var(--font-mono); font-size: .64rem; color: #8fa3ac; letter-spacing: .08em; }
.v3-psu strong { font-size: 1.15rem; }
.v3-psu > span:not(.v3-fit):not(.v3-psu-medal) { color: var(--adv-muted); font-size: .78rem; }
.v3-psu-medal { width: 34px; height: 34px; margin-bottom: 8px; border-radius: 50%; background: var(--medal, #8e979f); box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .25), inset 0 2px 0 rgba(255, 255, 255, .35); }
.v3-psu--standard { --medal: linear-gradient(145deg, #ffffff, #c9d1d8); }
.v3-psu--silver { --medal: linear-gradient(145deg, #e3e6ea, #8e979f); }
.v3-psu--bronze { --medal: linear-gradient(145deg, #d99a63, #8c5a33); }
.v3-psu--gold { --medal: linear-gradient(145deg, #f3d36b, #b8871d); }
.v3-psu--platinum { --medal: linear-gradient(145deg, #eef1f4, #9aa6b2); }
.v3-psu--titanium { --medal: linear-gradient(145deg, #b8c3cc, #56626c); }
.v3-psu[aria-pressed="true"] { border-color: var(--adv-accent); background: #183036; box-shadow: inset 0 0 0 1px var(--adv-accent); }
.v3-watt { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 16px; max-width: 640px; padding: 18px 20px; border: 1px solid var(--adv-line); border-radius: 14px; background: #121a22; }
.v3-watt label { font-weight: 700; }
.v3-watt-value { justify-self: end; font-size: 1.6rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.v3-watt-range, .v3-watt .v3-budget-ends, .v3-watt-help { grid-column: 1 / -1; }
.v3-watt-range { background: linear-gradient(90deg, rgba(255, 150, 90, .35) 0 var(--rec, 0%), transparent var(--rec, 0%)); border-radius: 999px; }
.v3-watt-rec { color: var(--adv-accent); }
.v3-watt-help { margin: 6px 0 0; font-size: .86rem; }
.v3-watt-help[data-tone="warn"] { color: var(--adv-warn); }
.v3-watt-help[data-tone="ok"] { color: #a9d8c8; }
.v3-adv-catalog-note { margin: 26px 0 0; color: #7f959e; font-size: .78rem; line-height: 1.5; max-width: 90ch; }

/* Gépház: nagy előnézet + stílusszűrő + választók (teljes, vágatlan fotók) */
.v3-case-showcase { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 18px; }
.v3-case-feature { border: 1px solid #354751; border-radius: 19px; overflow: hidden; background: #1a2630; }
.v3-case-feature-photo { height: 410px; display: flex; align-items: center; justify-content: center; padding: 26px; background: radial-gradient(circle at 50% 48%, #31494f, #1b2a33 58%, #111921); }
.v3-case-feature-photo img { width: 100%; height: 100%; min-height: 0; object-fit: contain; filter: drop-shadow(0 17px 17px rgba(0, 0, 0, .48)); }
.v3-photo-missing { color: var(--adv-muted); font-family: var(--font-mono); font-size: .78rem; }
.v3-case-feature-details { padding: 22px 26px 27px; border-top: 1px solid rgba(255, 255, 255, .12); display: grid; gap: 6px; }
.v3-case-feature-details h4 { font-size: 1.75rem; letter-spacing: -.03em; margin: 0; }
.v3-case-feature-details p { color: #aebdc5; margin: 0 0 6px; }
.v3-case-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.v3-case-tags:empty { display: none; }
.v3-case-tags span { padding: 3px 8px; border-radius: 6px; background: #22313a; color: #cfe1e0; font-size: .74rem; font-weight: 700; }
.v3-case-price { color: #ffd59a; font-size: .83rem; }
.v3-case-state { color: var(--adv-accent); font-size: .83rem; }
.v3-case-side { display: grid; gap: 12px; align-content: start; min-width: 0; }
.v3-case-side .v3-field-note { margin: 0; }
.v3-case-filter { display: flex; flex-wrap: wrap; gap: 6px; }
.v3-case-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-content: start; }
.v3-case-choices button { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 12px; min-height: 124px; background: #17222d; color: #f5f7f7; border: 1px solid #36444c; border-radius: 13px; text-align: left; font-weight: 700; font-size: .81rem; line-height: 1.3; transition: border-color .2s, background-color .2s; }
.v3-case-choices button:hover, .v3-case-choices button.is-selected { border-color: var(--adv-accent); background: #1c3439; }
.v3-case-choices button.is-selected { box-shadow: inset 0 0 0 1px var(--adv-accent); }
.v3-case-thumb { width: 66px; height: 87px; flex: none; display: block; }
.v3-case-thumb img { width: 100%; height: 100%; object-fit: contain; }
.v3-case-thumb.is-missing { border-radius: 8px; background: #22313a; }
.v3-case-choice-text { display: grid; gap: 4px; min-width: 0; }
.v3-case-name { overflow-wrap: anywhere; }
.v3-case-choice-text small { color: #ffd59a; font-weight: 600; font-size: .72rem; }
.v3-case-empty { padding: 18px; border: 1px dashed var(--adv-line); border-radius: 14px; }

/* ---------- Összegzősáv: a konfigurátor alján ragad ---------- */
.v3-builder .v3-recap { position: sticky; bottom: 12px; z-index: var(--z-recap); display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 8px 20px; align-items: center; margin-top: 30px; padding: 12px 12px 12px 20px; background: rgba(17, 26, 34, .96); backdrop-filter: blur(12px); border: 1px solid #3a4c55; border-radius: 16px; box-shadow: 0 18px 40px rgba(4, 12, 18, .45); color: var(--adv-muted); }
.v3-builder .v3-recap[hidden] { display: none; }
.v3-recap-count { display: grid; }
.v3-recap-count strong { color: #fff; font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.v3-recap-count span { font-size: .72rem; font-family: var(--font-mono); }
.v3-recap-text { min-width: 0; color: #dbe6e8; font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3-recap-estimate { display: grid; text-align: right; }
.v3-recap-estimate[hidden] { display: none; }
.v3-recap-estimate span { font-size: .7rem; font-family: var(--font-mono); }
.v3-recap-estimate strong { color: #fff; font-size: .95rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v3-builder .v3-recap .v3-button { min-height: 46px; margin: 0; }

/* ---------- Siker után, a konfigurátor helyén ---------- */
.v3-sent { width: min(100% - 60px, 1200px); margin: 0 auto; padding: 90px 0 40px; display: grid; gap: 12px; }
.v3-sent[hidden] { display: none; }
.v3-sent h2 { font-size: clamp(2.2rem, 4vw, 3.6rem); letter-spacing: -.045em; margin: 0; }
.v3-sent p { color: #b9cbd0; margin: 0; font-size: 1.05rem; line-height: 1.6; max-width: 62ch; }

.v3-pricing { width: min(100% - 60px, 1200px); margin: 0 auto; padding: 104px 0; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 7vw, 120px); align-items: end; }
.v3-pricing h2 { font-size: clamp(2.1rem, 3.5vw, 3.5rem); line-height: 1.08; letter-spacing: -.04em; margin: 13px 0 0; text-wrap: balance; }
.v3-pricing p { color: #bac7cc; font-size: 1.08rem; line-height: 1.66; margin: 0; }
.v3-contact-line { width: min(100% - 60px, 1200px); margin: 0 auto; padding: 26px 0 55px; border-top: 1px solid rgba(255, 255, 255, .18); color: #b9cbd0; }
.v3-contact-line a { color: var(--adv-accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(79, 209, 197, .5); }
.v3-contact-line a:hover { text-decoration-color: currentColor; }

/* ---------- Összegzés + ajánlatkérés dialógus ---------- */
.v3-summary { width: min(620px, calc(100vw - 20px)); max-height: calc(100dvh - 28px); border: 1px solid #40545e; border-radius: 18px; padding: 0; background: #16212a; color: #fff; box-shadow: 0 25px 80px rgba(2, 6, 10, .6); overscroll-behavior: contain; }
.v3-summary::backdrop { background: rgba(8, 13, 19, .74); }
.v3-dialog { position: relative; padding: 28px; overflow-y: auto; max-height: calc(100dvh - 28px); overscroll-behavior: contain; }
.v3-dialog-close { position: absolute; top: 15px; right: 15px; width: 44px; height: 44px; border: 1px solid #445960; border-radius: 50%; background: transparent; color: #fff; font-size: 1.5rem; line-height: 1; }
.v3-dialog-close:hover { border-color: var(--adv-accent); }
.v3-dialog h2 { font-size: 2rem; margin: 8px 0 16px; padding-right: 52px; }
.v3-summary-list { margin: 0 0 18px; }
.v3-summary-row { border-bottom: 1px solid #36474f; padding: 9px 0; display: flex; justify-content: space-between; gap: 15px; }
.v3-summary-row dt { color: #aabac1; flex: none; }
.v3-summary-row dd { margin: 0; font-weight: 750; text-align: right; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: baseline; gap: 2px 10px; min-width: 0; }
.v3-summary-row dd > span { overflow-wrap: anywhere; }
.v3-summary-row dd.is-unset > span { color: #8fa3ac; font-weight: 600; }
.v3-summary-edit { border: 0; background: none; color: var(--adv-accent); font-size: .74rem; font-weight: 600; min-height: 32px; padding: 0 2px; text-decoration: none; opacity: .85; }
.v3-summary-edit:hover { text-decoration: underline; text-underline-offset: 3px; opacity: 1; }
.v3-estimate { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid #36474f; border-radius: 12px; background: #121a22; }
.v3-estimate-pill { color: var(--adv-accent); font-family: var(--font-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.v3-estimate-range { font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.v3-estimate-note, .v3-estimate-warning { margin: 0; color: #b7c4ca; font-size: .84rem; line-height: 1.5; }
.v3-estimate-warning strong { color: #fff; }
.v3-dialog p { color: #b7c4ca; font-size: .86rem; line-height: 1.55; }
.v3-dialog-lead { margin: 14px 0 0; }
.v3-request-form { display: grid; gap: 16px; margin-top: 18px; padding-top: 18px; border-top: 1px solid #36474f; }
.v3-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.v3-f { display: grid; gap: 7px; min-width: 0; margin: 0; padding: 0; border: 0; }
.v3-f[hidden] { display: none; }
.v3-f--wide { grid-column: 1 / -1; }
.v3-f label, .v3-f legend { margin: 0; padding: 0; font-size: .86rem; font-weight: 700; color: #fff; }
.v3-optional, .v3-extras summary .v3-optional { color: #8fa3ac; font-weight: 500; }
.v3-dialog .v3-f input:not([type="radio"]), .v3-dialog .v3-f textarea, .v3-custom-form .v3-f input, .v3-custom-form .v3-f textarea { width: 100%; min-height: 48px; margin: 0; border: 1px solid #52656d; border-radius: 9px; background: #0b1119; color: #fff; padding: 10px 13px; font: inherit; }
.v3-dialog .v3-f textarea { min-height: 88px; resize: vertical; }
.v3-dialog .v3-f input:focus, .v3-dialog .v3-f textarea:focus { border-color: var(--adv-accent); }
.v3-f [aria-invalid="true"] { border-color: #ff9a8a !important; }
.v3-extras { border: 1px solid #36474f; border-radius: 12px; padding: 0 14px; }
.v3-extras summary { min-height: 48px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 700; }
.v3-extras-body { display: grid; gap: 18px; padding: 4px 0 16px; }
.v3-radio-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.v3-radio-pair label { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px; border: 1px solid #52656d; border-radius: 10px; font-weight: 600; cursor: pointer; }
.v3-radio-pair label:has(input:checked) { border-color: var(--adv-accent); background: #183036; }
.v3-radio-pair input[type="radio"] { width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; accent-color: var(--adv-accent); flex: none; }
.v3-privacy { margin: 0; }
.v3-privacy a { color: var(--adv-accent); }
.v3-submit { width: 100%; }
.v3-submit-msg { margin: 0; min-height: 1.2em; }
.v3-submit-msg[data-tone="error"] { color: var(--adv-warn) !important; }
.v3-success { display: grid; gap: 10px; padding-top: 10px; }
.v3-success[hidden] { display: none; }
.v3-success h2, .v3-success p { margin: 0; }

/* A ragadós összegzősáv ne takarja el a billentyűzettel fókuszba kerülő elemet. */
html:has(.v3-builder .v3-recap:not([hidden])) { scroll-padding-bottom: 110px; }

/* Nyitott előugró ablaknál a háttér nem görgethető (tulajdonosi szabály, 2026-09-26). */
html:has(dialog[open]) { overflow: hidden; }

/* ---------- Reszponzív ---------- */
@media (max-width: 1100px) {
  .v3-part-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v3-psu-scale { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 950px) {
  .v3-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding-inline: 28px; gap: 25px; }
  .v3-hero-image, .v3-hero-skeleton { height: 360px; }
  .v3-flow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v3-builder { padding-inline: 28px; }
  .v3-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v3-choice-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .v3-case-showcase { grid-template-columns: 1fr; }
}
@media (max-width: 899px) {
  .v3-adv-layout { grid-template-columns: 1fr; gap: 16px; }
  .v3-adv-rail { position: static; }
  .v3-adv-rail-toggle { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; width: 100%; min-height: 54px; padding: 10px 16px; border: 1px solid var(--adv-line); border-radius: 13px; background: #121a22; color: #fff; text-align: left; }
  .v3-adv-rail-toggle span:first-child { color: #7f959e; font-family: var(--font-mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
  .v3-adv-rail-toggle[aria-expanded="true"] span:last-child { transform: rotate(180deg); }
  .v3-adv-rail-list { display: none; margin-top: 6px; padding: 6px; border: 1px solid var(--adv-line); border-radius: 13px; background: #0f161d; }
  .v3-adv-rail-list.is-open { display: grid; }
  .v3-opt-grid { grid-template-columns: 1fr; }
  .v3-opt-grid--rich { grid-template-rows: none; }
  .v3-opt--rich { grid-row: auto; grid-template-rows: none; }
  .v3-opt--rich > span[aria-hidden="true"]:empty { display: none; }
  .v3-seg { grid-template-columns: 1fr 1fr; }
  .v3-drive-choices { grid-template-columns: 1fr; }
  .v3-builder .v3-recap { grid-template-columns: auto minmax(0, 1fr) auto; }
  .v3-recap-estimate { grid-column: 1 / -1; grid-row: 2; text-align: left; display: flex; gap: 8px; align-items: baseline; }
  .v3-budget-row { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 640px) {
  .v3-hero { display: block; padding: calc(var(--header-h) + 34px) 18px 56px; min-height: 0; }
  .v3-hero-copy { padding: 12px 0 28px; }
  .v3-hero h1 { font-size: clamp(3rem, 13vw, 4.3rem); }
  .v3-hero-lead { font-size: 1.42rem; }
  .v3-hero-detail { font-size: .93rem; }
  .v3-hero-image-wrap { padding: 16px 12px 12px; gap: 10px; }
  .v3-hero-image, .v3-hero-skeleton { height: 320px; width: 92%; }
  .v3-image-kicker { padding-left: 5px; font-size: .57rem; }
  .v3-hero-picks button { width: 68px; height: 66px; }
  .v3-flow { width: calc(100% - 36px); padding: 70px 0; }
  .v3-flow-list { grid-template-columns: 1fr 1fr; gap: 27px 17px; }
  .v3-flow-list h3 { font-size: .96rem; margin: 15px 0 6px; }
  .v3-flow-list p { font-size: .81rem; }
  .v3-builder { padding: 72px 18px 62px; }
  .v3-builder-intro h2 { font-size: 2.5rem; }
  .v3-paths { grid-template-columns: 1fr; gap: 10px; margin-top: 28px; }
  .v3-path { padding: 20px; }
  .v3-builder.has-mode .v3-paths { grid-template-columns: 1fr 1fr; top: calc(var(--header-h) + 4px); padding: 4px; }
  .v3-builder.has-mode .v3-path { grid-template-columns: 1fr; padding: 8px 10px; gap: 0; }
  .v3-builder.has-mode .v3-path-tag { grid-row: auto; padding: 0; background: none; font-size: .62rem; }
  .v3-builder.has-mode .v3-path strong { font-size: .84rem; }
  .v3-builder.has-mode .v3-path-meta { display: none; }
  .v3-stepper { gap: 5px; margin: 31px 0; }
  .v3-stepper > li { display: block; padding: 8px 2px 4px; }
  .v3-stepper-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .v3-step-head h3 { font-size: 2.1rem; }
  .v3-choice-grid, .v3-choice-grid--three { grid-template-columns: 1fr 1fr; gap: 9px; }
  .v3-choice-grid button { min-height: 144px; padding: 15px; }
  .v3-choice-grid strong { font-size: 1rem; }
  .v3-choice-grid span { font-size: .77rem; }
  .v3-toolbar .v3-search { flex-basis: 100%; }
  .v3-brand-seg { flex: 1 1 auto; }
  .v3-brand-seg .v3-chip { flex: 1; padding: 6px 8px; }
  .v3-brand-seg .v3-chip--brand { min-width: 0; }
  .v3-tier-select { flex: 1 1 calc(50% - 5px); min-width: 0; }
  .v3-tier-select select { width: 100%; padding-right: 30px; background-position: right 10px center; font-size: .86rem; }
  .v3-part-grid { grid-template-columns: 1fr; }
  .v3-part { min-height: 0; }
  .v3-chip { padding: 8px 12px; }
  .v3-psu-scale { grid-template-columns: 1fr 1fr; }
  .v3-watt { padding: 16px; }
  .v3-case-feature-photo { height: 300px; }
  .v3-case-feature-details { padding: 18px; }
  .v3-case-choices { gap: 8px; }
  .v3-case-choices button { display: block; min-height: 154px; padding: 9px; text-align: center; font-size: .75rem; }
  .v3-case-thumb { width: 100%; height: 103px; margin-bottom: 6px; }
  .v3-drive { grid-template-columns: minmax(0, 1fr) 44px; gap: 8px 10px; padding: 10px 8px 12px 14px; }
  .v3-drive-label { grid-column: 1; grid-row: 1; align-self: center; }
  .v3-drive-remove { grid-column: 2; grid-row: 1; align-self: start; }
  .v3-drive--custom .v3-drive-remove, .v3-drive--keep .v3-drive-remove { grid-row: 1 / span 2; }
  .v3-drive > :nth-child(2) { grid-column: 1; grid-row: 2; }
  .v3-drive > .v3-drive-sizes { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .v3-drive-sizes .v3-chip--sm { min-width: 0; padding: 6px 2px; font-size: .8rem; white-space: nowrap; }
  .v3-drive-chooser { padding: 12px; }
  .v3-drive-form .v3-custom-row { flex-wrap: wrap; }
  .v3-drive-form .v3-custom-row .v3-search { flex-basis: 100%; }
  .v3-drive-form .v3-chip--solid { flex: 1; }
  .v3-add-inline { width: 100%; justify-content: flex-start; }
  .v3-builder .v3-recap { bottom: 8px; grid-template-columns: auto minmax(0, 1fr) auto; padding: 8px 8px 8px 14px; gap: 4px 12px; }
  .v3-recap-text { display: none; }
  .v3-recap-estimate { grid-column: 2; grid-row: 1; display: grid; gap: 0; text-align: left; }
  .v3-recap-estimate strong { font-size: .8rem; white-space: normal; line-height: 1.25; }
  .v3-builder .v3-recap .v3-button { grid-column: 3; grid-row: 1; padding-inline: 16px; }
  .v3-sent, .v3-pricing, .v3-contact-line { width: calc(100% - 36px); }
  .v3-pricing { grid-template-columns: 1fr; gap: 20px; padding: 70px 0; }
  .v3-dialog { padding: 22px 18px; }
  .v3-dialog h2 { font-size: 1.6rem; letter-spacing: -.02em; }
}
@media (max-width: 520px) {
  .v3-form-grid, .v3-radio-pair { grid-template-columns: 1fr; }
}
@media (max-width: 385px) {
  .v3-choice-grid, .v3-choice-grid--three { grid-template-columns: 1fr; }
  .v3-choice-grid button { min-height: 105px; }
  .v3-flow-list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .v3-button, .v3-choice-grid button, .v3-path, .v3-part, .v3-opt, .v3-add-inline, .v3-add-inline-mark, .v3-drive-choice, .v3-opt-radio, .v3-opt-radio::after { transition: none; }
  .v3-hero-skeleton { animation: none; }
}
