.active-link { color: var(--primary-color) !important; text-shadow: 0 0 6px rgba(0,255,255,.55); }
.logo-container { text-decoration: none; }
.map-hero { padding: 90px 20px 55px; max-width: 1200px; margin: 0 auto; }
.map-hero-inner { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr); gap:54px; align-items:center; }
.map-hero-copy h1 { font-size:clamp(2rem,5vw,4.2rem); line-height:1.08; margin:14px 0 24px; overflow-wrap:break-word; text-wrap:balance; background:linear-gradient(115deg,var(--gradient-start),var(--gradient-end)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.map-hero-copy .lead { font-size:1.12rem; max-width:760px; color:#e9edf7; }
.eyebrow { display:inline-flex; gap:9px; align-items:center; text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; font-weight:700; color:var(--primary-color); }
.hero-badges { display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 32px; }
.hero-badges span { border:1px solid rgba(0,255,255,.25); background:rgba(10,10,31,.62); border-radius:999px; padding:8px 12px; font-size:.88rem; }
.hero-badges i { color:var(--primary-color); margin-right:4px; }
.map-hero-card { min-height:390px; background:linear-gradient(145deg,rgba(26,26,58,.86),rgba(10,10,31,.72)); border:1px solid rgba(0,255,255,.24); border-radius:24px; display:grid; place-items:center; padding:30px; box-shadow:0 20px 55px rgba(0,0,0,.34); text-align:center; }
.map-hero-card p { opacity:.8; margin:0; font-size:.9rem; }
.signal-orbit { width:260px; height:260px; position:relative; margin:auto; }
.orbit { position:absolute; inset:20px; border:1px solid rgba(0,255,255,.3); border-radius:50%; }
.orbit-2 { inset:55px; border-style:dashed; animation:spin 18s linear infinite reverse; }
.orbit-1 { animation:spin 25s linear infinite; }
.orbit-core { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:84px; height:84px; display:grid; place-items:center; border-radius:50%; font-size:2rem; background:linear-gradient(135deg,#007bff,#00ffd1); box-shadow:0 0 35px rgba(0,255,209,.42); }
.orbit-node { position:absolute; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:#161636; border:1px solid rgba(0,255,255,.35); color:var(--primary-color); }
.n1{left:15px;top:108px}.n2{right:16px;top:108px}.n3{left:106px;top:13px}.n4{left:106px;bottom:13px}
@keyframes spin { to { transform:rotate(360deg); } }
.assessment-shell,.result-shell { max-width:1050px; margin:30px auto 80px; padding:clamp(22px,4vw,46px); background:rgba(10,10,31,.91); border:1px solid rgba(0,255,255,.22); border-radius:24px; box-shadow:0 22px 70px rgba(0,0,0,.38); }
.assessment-topbar { display:flex; justify-content:space-between; gap:30px; align-items:flex-end; border-bottom:1px solid rgba(255,255,255,.09); padding-bottom:22px; margin-bottom:30px; }
.assessment-topbar h2 { margin:5px 0 0; font-size:clamp(1.45rem,3vw,2.15rem); }
.progress-wrap { min-width:220px; text-align:right; font-size:.85rem; }
.progress-track { height:7px; background:#29294b; border-radius:999px; overflow:hidden; margin-top:8px; }
.progress-bar { height:100%; width:20%; background:linear-gradient(90deg,var(--gradient-start),var(--gradient-end)); transition:width .3s ease; }
.form-step { display:none; }
.form-step.is-active { display:block; animation:stepIn .28s ease; }
@keyframes stepIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
/* Alex javaslata (2026-09-14): a blokk-cím legyen kisebb keretben, ami picit
 * rálóg az alatta lévő blokkra, így látszik, hogy az a blokkhoz tartozik.
 * Alex korrekciója (2026-09-14 este): a -16px átfedés a kérdésblokkok
 * fejléc-sorait (legend) takarta; a rálógás csak az üres felső sávot
 * érintse, a tartalom teljesen olvasható maradjon. */
.step-heading { position:relative; z-index:1; width:fit-content; max-width:100%; margin-bottom:-4px; padding:14px 18px 12px; background:#14142f; border:1px solid rgba(0,255,255,.28); border-radius:14px; box-shadow:0 10px 24px rgba(0,0,0,.28); }
.task-grid, .slider-grid, .question-grid { padding-top:14px; }
.step-heading > span { color:var(--primary-color); font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }
.step-heading h3 { font-size:clamp(1.25rem,3vw,1.8rem); margin:6px 0; overflow-wrap:break-word; }
.step-heading p { margin:0; color:#bfc7d9; overflow-wrap:break-word; }
.task-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.choice-card { cursor:pointer; }
.choice-card input { position:absolute; opacity:0; pointer-events:none; }
.choice-card span { display:flex; flex-direction:column; min-height:122px; gap:5px; padding:18px; border:1px solid #36365a; border-radius:14px; background:rgba(26,26,58,.78); transition:.2s ease; }
.choice-card i { color:var(--primary-color); font-size:1.25rem; }
.choice-card small { color:#abb4c7; line-height:1.35; }
.choice-card input:checked + span { border-color:var(--primary-color); box-shadow:0 0 0 2px rgba(0,255,255,.1),0 0 18px rgba(0,255,255,.12); transform:translateY(-1px); }
.field-block { display:flex; flex-direction:column; gap:8px; margin-top:20px; text-align:left; }
.field-block label { font-weight:600; }
.field-block label span { font-weight:400; color:#aab3c5; font-size:.85rem; }
.field-block input,.field-block textarea { width:100%; box-sizing:border-box; color:#fff; background:#151530; border:1px solid #3a3a60; border-radius:10px; padding:13px 14px; font:inherit; outline:none; }
.field-block input:focus,.field-block textarea:focus { border-color:var(--primary-color); box-shadow:0 0 0 3px rgba(0,255,255,.09); }
.compact-field input { max-width:180px; }
.slider-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.range-card { display:grid; grid-template-columns:1fr auto; gap:10px; background:rgba(26,26,58,.75); border:1px solid #343458; padding:18px; border-radius:14px; font-weight:600; }
.range-card output { color:var(--primary-color); font-size:1.25rem; }
.range-card input { grid-column:1/-1; width:100%; accent-color:#00ffd1; }
.range-card small { grid-column:1/-1; color:#aab3c5; font-weight:400; }
.question-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.question-grid.single-column { grid-template-columns:1fr; }
fieldset { border:1px solid #343458; border-radius:14px; padding:17px; margin:0; background:rgba(26,26,58,.58); text-align:left; }
legend { padding:0 7px; font-weight:700; color:#fff; }
fieldset label { display:flex; gap:9px; align-items:flex-start; padding:7px 4px; cursor:pointer; color:#e7eaf2; }
fieldset input { margin-top:4px; accent-color:#00ffd1; }
.contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.contact-grid .full { grid-column:1/-1; }
.consent-box { margin-top:26px; display:grid; gap:12px; padding:18px; background:rgba(0,123,255,.08); border:1px solid rgba(0,255,209,.2); border-radius:14px; }
.consent-box label { display:flex; gap:10px; align-items:flex-start; cursor:pointer; }
.consent-box input { margin-top:4px; accent-color:#00ffd1; }
.consent-box a { color:var(--primary-color); }
.form-actions { display:flex; justify-content:space-between; gap:12px; margin-top:30px; }
.btn-secondary { background:#252545; border:1px solid #45456c; }
.form-message { margin-top:20px; padding:13px 15px; border-radius:10px; }
.form-message.error { color:#ffd9de; background:rgba(170,31,54,.22); border:1px solid rgba(255,103,126,.36); }
.result-shell { text-align:center; max-width:900px; }
.result-shell h2 { font-size:clamp(1.8rem,4vw,3rem); margin:10px 0; }
.result-summary { color:#d7deec; font-size:1.07rem; max-width:720px; margin:0 auto 26px; }
.result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:26px 0; }
.result-card { background:rgba(26,26,58,.72); border:1px solid #343458; border-radius:14px; padding:18px; text-align:left; }
.result-card span { display:block; color:#aeb7c8; font-size:.82rem; margin-bottom:5px; }
.result-card strong { color:#fff; font-size:1.05rem; }
.human-note { display:flex; gap:14px; align-items:flex-start; text-align:left; background:rgba(255,171,0,.1); border:1px solid rgba(255,193,7,.33); padding:17px; border-radius:14px; margin:22px 0; }
.human-note i { font-size:1.6rem; color:#ffc857; margin-top:3px; }
.human-note p { margin:4px 0 0; color:#e4dfcc; }
.result-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:25px; }
.result-disclaimer { font-size:.77rem; color:#939caf; margin-top:24px; }
.loader-ring { width:54px; height:54px; border-radius:50%; border:4px solid #29294b; border-top-color:#00ffd1; animation:spin 1s linear infinite; margin:5px auto 20px; }
.trust-section { padding-top:35px; }
@media (max-width:900px){ .map-hero-inner{grid-template-columns:1fr}.map-hero-card{min-height:310px}.task-grid{grid-template-columns:repeat(2,1fr)}.slider-grid{grid-template-columns:1fr}.question-grid{grid-template-columns:1fr}.assessment-topbar{align-items:flex-start;flex-direction:column}.progress-wrap{width:100%;text-align:left}.contact-grid{grid-template-columns:1fr}.contact-grid .full{grid-column:auto} }
@media (max-width:600px){ .map-hero{padding-top:55px;padding-left:16px;padding-right:16px}.map-hero-copy h1{font-size:clamp(1.75rem,7vw,2.3rem);line-height:1.12}.map-hero-copy .lead{font-size:1rem}.task-grid{grid-template-columns:1fr}.map-hero-card{display:none}.assessment-shell,.result-shell{margin:18px 12px 55px;border-radius:18px;padding:18px 14px}.step-heading{padding:12px 14px 10px;margin-bottom:-4px}.step-heading h3{font-size:1.2rem}.result-grid{grid-template-columns:1fr}.form-actions{position:sticky;bottom:10px;background:rgba(10,10,31,.94);padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.07)} }
