/* 62 – Sicherheitskarte · die Karte aus der Sitztasche */
:root {
  --card: #fbfaf5;
  --ink: #16181d;
  --navy: #233149;
  --blue: #5d7fa8;
  --sky: #bcd3ea;
  --pale: #e6eff8;
  --yellow: #ffc400;
  --orange: #ff7a00;
  --red: #d7262e;
  --green: #2e9e5b;
  --cabin: #cfd5dc;
  --display: 'Red Hat Display', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --text: 'Inter Tight', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --pad: clamp(18px, 4vw, 64px);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body {
  margin: 0; color: var(--ink); font: 400 17px/1.55 var(--text); overflow-x: hidden;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,.18) 0 2px, transparent 2px 6px), repeating-linear-gradient(-45deg, rgba(0,0,0,.05) 0 2px, transparent 2px 6px), linear-gradient(180deg, #3b4553, #2c3440);
  background-color: #2f3743;
  padding: clamp(0px, 1.2vw, 18px) clamp(0px, 2vw, 30px) clamp(0px, 3vw, 40px);
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--yellow); color: var(--ink); padding: 10px 16px; font-weight: 700; }
.skip:focus { left: 16px; }
.arw { width: 1.15em; height: 1.15em; flex: none; }

/* Die laminierte Karte */
.card { position: relative; max-width: 1360px; margin-inline: auto; background: var(--card); border-radius: clamp(0px, 2.4vw, 30px); box-shadow: 0 30px 60px rgba(0,0,0,.35), 0 0 0 1px rgba(0,0,0,.2), inset 0 0 0 clamp(0px, .7vw, 10px) var(--yellow); }
.card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(118deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 18%, rgba(255,255,255,0) 52%, rgba(255,255,255,.22) 58%, rgba(255,255,255,0) 66%); mix-blend-mode: soft-light; }

/* ---------- Kopf ---------- */
.top { position: sticky; top: 0; z-index: 50; background: var(--card); border-radius: clamp(0px, 2.4vw, 30px) clamp(0px, 2.4vw, 30px) 0 0; box-shadow: 0 6px 0 var(--orange), inset 0 clamp(0px, .7vw, 10px) 0 var(--yellow); }
.top-in { display: flex; align-items: center; gap: 22px; padding: 14px var(--pad); padding-top: calc(14px + clamp(0px, .7vw, 10px)); }
.logo img { width: 66px; height: auto; aspect-ratio: 1510 / 1300; }
.card-id { display: grid; line-height: 1.15; padding-left: 16px; border-left: 3px solid var(--ink); font-family: var(--display); }
.card-id b { font-weight: 900; font-size: 15px; text-transform: uppercase; letter-spacing: .06em; }
.card-id span { font-size: 13px; color: #59606b; font-style: italic; }
.nav { margin-left: auto; }
.nav ul { display: flex; gap: 4px; }
.nav a { display: inline-flex; align-items: center; gap: 9px; padding: 8px 12px; border-radius: 10px; text-decoration: none; font: 700 15.5px var(--display); }
.n { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: #fff; font: 900 13px var(--display); }
.nav a:hover { background: var(--yellow); }
.tools { display: flex; align-items: center; gap: 10px; }
.phone { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px; border-radius: 999px; background: var(--ink); color: #fff; text-decoration: none; font: 700 15px var(--display); }
.phone svg { width: 17px; height: 17px; color: var(--yellow); }
.phone:hover { background: var(--navy); }
.lang { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--yellow); text-decoration: none; font: 900 14px var(--display); box-shadow: inset 0 0 0 2px var(--ink); }
.lang:hover { background: var(--orange); }
.menu-btn { display: none; align-items: center; gap: 10px; height: 42px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--yellow); box-shadow: inset 0 0 0 2px var(--ink); color: var(--ink); font: 800 15px var(--display); cursor: pointer; }
.burger { display: grid; gap: 4px; }
.burger i { display: block; width: 18px; height: 2.5px; background: currentColor; border-radius: 2px; transition: transform .2s, opacity .2s; }
.menu-open .burger i:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.menu-open .burger i:nth-child(2) { opacity: 0; }
.menu-open .burger i:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ---------- Bausteine ---------- */
.sec { padding: clamp(80px, 9vw, 140px) var(--pad) 0; }
.sec-label { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font: 800 14px var(--display); text-transform: uppercase; letter-spacing: .1em; }
.sq { display: grid; place-items: center; width: 34px; height: 34px; background: var(--yellow); box-shadow: inset 0 0 0 2.5px var(--ink); font: 900 17px var(--display); }
.bi { font: italic 400 14px var(--text); text-transform: none; letter-spacing: 0; color: #59606b; padding-left: 12px; border-left: 1.5px solid #9aa1ab; }
.h2 { margin-top: 16px; font: 900 clamp(32px, 4.2vw, 58px)/1.04 var(--display); letter-spacing: -.02em; text-wrap: balance; }
.h2-xl { font-size: clamp(42px, 6.4vw, 92px); }
.lead { margin-top: 18px; max-width: 60ch; font-size: clamp(17px, 1.35vw, 19.5px); color: #2c313a; }
.btn { display: inline-flex; align-items: center; gap: 12px; padding: 16px 26px; border-radius: 14px; text-decoration: none; font: 800 17px/1.15 var(--display); transition: transform .15s, background .2s; }
.btn-primary { background: var(--orange); color: var(--ink); box-shadow: inset 0 0 0 2.5px var(--ink), 0 4px 0 var(--ink); }
.btn-primary:hover { transform: translateY(2px); box-shadow: inset 0 0 0 2.5px var(--ink), 0 2px 0 var(--ink); background: var(--yellow); }
.btn-ghost { background: #fff; box-shadow: inset 0 0 0 2.5px var(--ink); }
.btn-ghost:hover { background: var(--pale); }

/* ---------- Hero ---------- */
.hero { padding: 0; }
.cabin { position: relative; display: flex; justify-content: center; align-items: center; gap: clamp(28px, 6vw, 110px); margin-inline: clamp(0px, .7vw, 10px); padding: clamp(16px, 2.6vh, 28px) var(--pad) clamp(26px, 3.6vh, 38px); background: linear-gradient(180deg, #e4e8ec, #d2d8de 60%, #c6cdd5); box-shadow: inset 0 -6px 0 var(--yellow), inset 0 -10px 0 var(--ink); overflow: hidden; }
.cabin::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(33.33% - 1px), rgba(0,0,0,.07) calc(33.33% - 1px) 33.33%); pointer-events: none; }
.win { position: relative; width: clamp(110px, 10vw, 146px); aspect-ratio: 3 / 4.1; border-radius: 48% / 40%; background: #f2f3f5; padding: clamp(10px, 1.1vw, 15px); box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 4px #b4bcc6, inset 0 6px 12px rgba(0,0,0,.18), 0 2px 1px rgba(255,255,255,.7), 0 -1px 2px rgba(0,0,0,.15); }
.win-main { width: clamp(150px, 13.4vw, 194px); }
.win-in { width: 100%; height: 100%; border-radius: 46% / 38%; overflow: hidden; box-shadow: inset 0 0 0 3px #8e98a5; position: relative; }
.win-in img, .win-in svg { width: 100%; height: 100%; object-fit: cover; display: block; }
.win-main .win-in img { object-position: 62% 50%; }
.win-in::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 18px rgba(0,0,0,.35); background: linear-gradient(130deg, rgba(255,255,255,.35), transparent 40%); pointer-events: none; }
.shade { position: absolute; left: clamp(10px, 1.1vw, 15px); right: clamp(10px, 1.1vw, 15px); top: clamp(10px, 1.1vw, 15px); height: 22%; border-radius: 46% 46% 6px 6px / 70% 70% 6px 6px; background: linear-gradient(#eef0f2, #dde1e6); box-shadow: 0 3px 4px rgba(0,0,0,.18); }
.shade::after { content: ""; position: absolute; left: 50%; bottom: 5px; width: 26px; height: 5px; margin-left: -13px; border-radius: 3px; background: #9aa4b0; }
.win-main .shade { height: 14%; }
.cabin-tag { position: absolute; left: var(--pad); top: 18px; display: flex; align-items: center; gap: 8px; font: 800 13px var(--display); text-transform: uppercase; letter-spacing: .1em; color: #3a414c; }
.cabin-tag svg { width: 22px; height: 22px; }

.hero-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: clamp(28px, 5vw, 80px); padding: clamp(22px, 3.2vh, 38px) var(--pad) clamp(40px, 5vh, 60px); align-items: start; }
.kicker { display: flex; align-items: center; gap: 12px; font: 700 15px var(--display); }
.num { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--ink); color: #fff; font: 900 17px var(--display); }
.hero-title { margin-top: 14px; font: 900 clamp(38px, 4.6vw, 68px)/1.0 var(--display); letter-spacing: -.025em; max-width: 15em; text-wrap: balance; }
.hero-text { margin-top: 18px; max-width: 62ch; font-size: clamp(16.5px, 1.25vw, 18.5px); color: #2c313a; }
.ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.info-box { background: #fff; border-radius: 16px; padding: 22px 22px 18px; box-shadow: inset 0 0 0 3px var(--ink), 8px 8px 0 var(--yellow); margin-top: 8px; }
.ib-head { display: flex; align-items: center; gap: 10px; font: 800 14px var(--display); text-transform: uppercase; letter-spacing: .08em; }
.ib-head svg { width: 26px; height: 26px; color: var(--orange); }
.ib-hours { margin-top: 10px; font: 900 clamp(22px, 1.9vw, 27px)/1.12 var(--display); letter-spacing: -.01em; text-wrap: balance; }
.ib-row { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 2px dashed #c7ccd3; font-weight: 600; }
.ib-row svg { width: 20px; height: 20px; color: var(--navy); flex: none; }
.ib-row a { text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ---------- Panels (Leistungen + Ablauf) ---------- */
.sec-head { max-width: 820px; }
.panels { margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; background: var(--yellow); padding: 8px; border-radius: 22px; box-shadow: inset 0 0 0 2.5px var(--ink); }
.panel, .step { position: relative; background: #fff; border-radius: 14px; padding: 18px 18px 26px; box-shadow: inset 0 0 0 2px var(--ink); }
.pn { position: absolute; left: 12px; top: 12px; z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ink); color: #fff; font: 900 20px var(--display); box-shadow: 0 0 0 3px #fff; }
.ill { display: block; width: 100%; height: auto; border-radius: 8px; box-shadow: inset 0 0 0 2px var(--ink); }
.ill rect:first-child { stroke: var(--ink); stroke-width: 0; }
.panel h3, .step h3 { margin-top: 18px; font: 900 clamp(21px, 1.8vw, 25px)/1.15 var(--display); letter-spacing: -.01em; hyphens: auto; }
.panel p, .step p { margin-top: 8px; font-size: 16.5px; color: #2c313a; hyphens: auto; }

/* ---------- Schwerpunkt ---------- */
.focus-head { display: grid; grid-template-columns: auto 1fr; gap: clamp(20px, 3vw, 40px); align-items: start; max-width: 1000px; }
.big-warn { width: clamp(70px, 8vw, 120px); height: clamp(64px, 7.3vw, 110px); }
.cases { margin-top: clamp(44px, 5vw, 70px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 3px solid var(--ink); }
.case { position: relative; padding: 26px 26px 34px 0; border-bottom: 3px solid var(--ink); }
.case:not(:nth-child(3n+1)) { padding-left: 26px; border-left: 3px solid var(--ink); }
.dia { display: block; width: 100%; max-width: 260px; height: auto; background: var(--pale); border-radius: 10px; padding: 8px; }
.dia text { font: 900 15px var(--display); fill: var(--ink); text-anchor: middle; }
.cl { position: absolute; top: 34px; right: 26px; display: grid; place-items: center; width: 34px; height: 34px; background: var(--orange); border-radius: 8px; font: 900 17px var(--display); box-shadow: inset 0 0 0 2.5px var(--ink); }
.case:nth-child(3n) .cl { right: 0; }
.case h3 { margin-top: 18px; font: 900 clamp(20px, 1.7vw, 24px)/1.15 var(--display); hyphens: auto; }
.case p { margin-top: 8px; font-size: 16.5px; color: #2c313a; hyphens: auto; }

.signs { margin-top: clamp(60px, 7vw, 100px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.sign { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 18px; align-items: center; padding: 20px 24px; border-radius: 16px; background: linear-gradient(180deg, #2b3442, #1d242f); color: #fff; box-shadow: inset 0 0 0 3px #4a5566, inset 0 2px 0 rgba(255,255,255,.15), 0 6px 14px rgba(0,0,0,.18); }
.sg-ic { grid-row: 1 / 3; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #11161d; box-shadow: inset 0 0 0 2px #59657a; color: var(--yellow); }
.sg-ic svg { width: 30px; height: 30px; }
.sign:nth-child(2) .sg-ic svg { width: 18px; height: 40px; }
.sign b { font: 900 clamp(34px, 3.4vw, 48px)/1 var(--display); color: var(--yellow); white-space: nowrap; text-shadow: 0 0 14px rgba(255,196,0,.35); }
.sign span:last-child { font-size: 15.5px; line-height: 1.35; color: #dfe4ea; }

.route { margin-top: clamp(60px, 7vw, 100px); padding: clamp(22px, 3vw, 40px); border-radius: 22px; background: #f0f2f5; box-shadow: inset 0 0 0 3px var(--ink); }
.route-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 30px; }
.route-label { display: flex; align-items: center; gap: 10px; font: 900 18px var(--display); text-transform: uppercase; letter-spacing: .08em; }
.route-label svg { width: 28px; height: 28px; }
.route-codes { font: 800 clamp(16px, 1.8vw, 22px) var(--display); letter-spacing: .1em; }
.floor { display: grid; grid-template-columns: repeat(4, 1fr) auto; margin: 44px 0 10px; padding: 26px 20px; border-radius: 14px; background: #3a4350; }
.stop { position: relative; display: flex; align-items: center; }
.stop b { position: relative; z-index: 1; display: grid; place-items: center; width: 74px; height: 46px; border-radius: 8px; background: #2e9e5b; color: #fff; font: 900 18px var(--display); letter-spacing: .06em; box-shadow: inset 0 0 0 2px #fff, 0 0 18px rgba(46,158,91,.45); flex: none; }
.seg { flex: 1; height: 8px; margin: 0 6px; background: radial-gradient(circle, #ffd76a 2.6px, transparent 3.2px) 0 50% / 18px 8px repeat-x; position: relative; }
.seg::after { content: ""; position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%; background: #3a4350 no-repeat center / 22px; box-shadow: inset 0 0 0 2px #ffd76a; }
.seg-fly::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 13.5l8-1.3L14.5 4h2l-2 8.2 4.6-.7L21 9h1.5l-.8 3.6.8 3.4H21l-1.9-2.5-4.6-.7 2 8.2h-2L10 12.8l-8-1.3z' fill='%23ffd76a'/%3E%3C/svg%3E"); }
.seg-car::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 11l2-5h12l2 5h1v6h-2v2h-3v-2H8v2H5v-2H3v-6zm3.3-3L6 11h12l-1.3-3z' fill='%23ffd76a'/%3E%3C/svg%3E"); }
.reveal-on .route .seg { background-size: 18px 8px; clip-path: inset(0 100% 0 0); transition: clip-path 1.2s ease; }
.reveal-on .route.in .seg { clip-path: inset(0 0 0 0); }
.reveal-on .route.in .stop:nth-child(2) .seg { transition-delay: .3s; }
.reveal-on .route.in .stop:nth-child(3) .seg { transition-delay: .6s; }
.reveal-on .route.in .stop:nth-child(4) .seg { transition-delay: .9s; }
.route figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 30px; margin-top: 16px; font-weight: 600; font-family: var(--text), 'DejaVu Sans', sans-serif; }
.route-note { font-weight: 400; font-style: italic; color: #4b525d; }

/* Ablauf */
.steps { margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px; }
.step { box-shadow: inset 0 0 0 2.5px var(--ink); }
.step:not(:last-child)::after { content: ""; position: absolute; right: -30px; top: 30%; width: 26px; height: 26px; background: var(--orange); clip-path: polygon(0 20%, 55% 20%, 55% 0, 100% 50%, 55% 100%, 55% 80%, 0 80%); z-index: 2; }
.step .ill { box-shadow: none; }

/* ---------- Über uns ---------- */
.about { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 100px); align-items: center; }
.win-about { width: min(100%, 380px); justify-self: center; aspect-ratio: 3 / 4; padding: clamp(14px, 1.6vw, 22px); }
.win-about .win-in img { object-position: 50% 30%; }
.about-text { margin-top: 20px; font-size: clamp(17px, 1.35vw, 19px); max-width: 58ch; }
.checks { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
.checks li { display: flex; align-items: center; gap: 12px; font: 700 16.5px var(--display); }
.checks svg { width: 28px; height: 28px; color: var(--green); flex: none; }

/* ---------- Kontakt ---------- */
.contact { margin-top: clamp(80px, 9vw, 140px); padding-block: clamp(70px, 8vw, 120px); background: var(--yellow); box-shadow: inset 0 3px 0 var(--ink), inset 0 -3px 0 var(--ink); }
.sec-label-dark .sq { background: #fff; }
.sec-label-dark .bi { color: #3a3a2a; border-color: #3a3a2a; }
.contact .lead { color: var(--ink); }
.exits { margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.exits li { display: flex; gap: 16px; align-items: flex-start; background: #fff; border-radius: 16px; padding: 22px; box-shadow: inset 0 0 0 2.5px var(--ink); }
.ex-ic { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--ink); color: var(--yellow); flex: none; }
.ex-ic svg { width: 24px; height: 24px; }
.exits h3 { font: 800 13px var(--display); text-transform: uppercase; letter-spacing: .1em; color: #4b525d; }
.ex-v { margin-top: 6px; font: 900 clamp(19px, 1.7vw, 23px)/1.25 var(--display); }
.ex-v-sm { font-size: clamp(17px, 1.45vw, 20px); overflow-wrap: anywhere; }
.ex-v a { text-decoration-color: var(--orange); text-decoration-thickness: 3px; text-underline-offset: 4px; }
.ex-v a:hover { background: var(--yellow); }
.ex-s { margin-top: 4px; font-size: 14.5px; color: #4b525d; }
.exits .ex-cta { background: var(--ink); justify-content: center; align-items: center; }

/* ---------- Fuß ---------- */
.foot { background: var(--ink); color: #fff; border-radius: 0 0 clamp(0px, 2.4vw, 30px) clamp(0px, 2.4vw, 30px); padding: 40px var(--pad) 44px; box-shadow: inset 0 -10px 0 var(--yellow); }
.foot-in { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 40px; padding-bottom: 10px; }
.foot-logo img { width: 81px; height: auto; aspect-ratio: 1510 / 1300; }
.foot-copy { font-size: 14.5px; color: #d6dbe2; }
.foot-pocket { font-style: italic; color: var(--yellow); }
.foot-links { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-left: auto; }
.foot-links a { font: 700 15px var(--display); text-decoration: none; border-bottom: 3px solid var(--orange); padding-bottom: 2px; }
.foot-links a:hover { color: var(--yellow); }

/* ---------- Rechtsseiten ---------- */
.legal { padding: clamp(50px, 7vw, 100px) var(--pad) clamp(70px, 8vw, 120px); }
.legal-in { max-width: 920px; margin-inline: auto; display: grid; gap: clamp(30px, 4vw, 50px); }
.legal-side { padding-bottom: 6px; }
.legal-title { margin-top: 16px; font: 900 clamp(30px, 4.6vw, 60px)/1.04 var(--display); letter-spacing: -.02em; hyphens: auto; }
.back { display: inline-flex; margin-top: 22px; padding: 10px 16px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 2.5px var(--ink); font: 800 15px var(--display); text-decoration: none; }
.back:hover { background: var(--yellow); }
.legal-body { max-width: 70ch; background: #fff; border-radius: 18px; padding: clamp(24px, 4vw, 52px); box-shadow: inset 0 0 0 2.5px var(--ink), 10px 10px 0 var(--yellow); }
.legal-body h2 { position: relative; font: 900 clamp(19px, 1.9vw, 23px)/1.25 var(--display); margin: 1.9em 0 .55em; padding-left: 0; }
.legal-body h2:first-child { margin-top: 0; }
.legal-body h2::after { content: ""; display: block; width: 44px; height: 4px; margin-top: 8px; background: var(--orange); }
.legal-body p, .legal-body li { font-size: 16.5px; line-height: 1.7; }
.legal-body p + p { margin-top: .9em; }
.legal-body ul { margin: .8em 0; }
.legal-body li { position: relative; padding-left: 24px; margin-top: .35em; }
.legal-body li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 10px; height: 10px; border-radius: 50%; background: var(--navy); }
.legal-body a { text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal-body a:hover { background: var(--yellow); }
.legal-note { position: relative; padding: 14px 16px 14px 50px; border-radius: 12px; background: #fff6d6; box-shadow: inset 0 0 0 2px var(--ink); margin-bottom: 1.6em; }
.legal-note::before { content: ""; flex: none; width: 24px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 23 21.5H1z' fill='%23ffc400' stroke='%2316181d' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M12 9v6' stroke='%2316181d' stroke-width='2.6' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='18.2' r='1.5' fill='%2316181d'/%3E%3C/svg%3E") no-repeat center / contain; position: absolute; left: 16px; top: 16px; }
.legal-address { margin-top: 2em !important; padding: 16px 20px; border-radius: 12px; background: var(--pale); font-weight: 600; }

/* ---------- Responsiv ---------- */
@media (max-width: 1240px) {
  .card-id { display: none; }
  .nav a { padding: 8px 9px; }
}
@media (max-width: 1100px) {
  .phone span { display: none; }
  .phone { padding: 0; width: 42px; justify-content: center; }
  .panels { grid-template-columns: repeat(2, 1fr); }
  .cases { grid-template-columns: 1fr 1fr; }
  .case:not(:nth-child(3n+1)) { padding-left: 0; border-left: 0; }
  .case:nth-child(even) { padding-left: 26px; border-left: 3px solid var(--ink); }
  .case:nth-child(3n) .cl { right: 26px; }
  .case:nth-child(even) .cl { right: 0; }
  .steps { grid-template-columns: 1fr 1fr; }
  .step:nth-child(2)::after { display: none; }
  .exits { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  .menu-btn { display: inline-flex; }
  .tools { margin-left: auto; }
  .nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--card); padding: 16px var(--pad) 26px; box-shadow: 0 6px 0 var(--orange), 0 20px 30px rgba(0,0,0,.25); }
  .menu-open .nav { display: block; }
  .nav ul { flex-direction: column; gap: 4px; }
  .nav a { font-size: 22px; padding: 12px 6px; gap: 14px; }
  .n { width: 34px; height: 34px; font-size: 17px; }
  .hero-panel { grid-template-columns: 1fr; }
  .info-box { max-width: 420px; }
  .about { grid-template-columns: 1fr; }
  .signs { grid-template-columns: 1fr; max-width: 520px; }
}
@media (max-width: 640px) {
  body { font-size: 16.5px; padding: 0; }
  .card { border-radius: 0; box-shadow: none; }
  .top { border-radius: 0; box-shadow: 0 5px 0 var(--orange); }
  .top-in { padding: 10px 16px; gap: 10px; }
  .logo img { width: 54px; }
  .menu-btn .menu-label { display: none; }
  .menu-btn { width: 42px; padding: 0; justify-content: center; }
  .cabin { gap: 16px; padding-top: 44px; }
  .win-side:first-child { display: none; }
  .win { width: 118px; }
  .win-main { width: 150px; }
  .win.win-about { width: min(100%, 280px); }
  .cabin-tag { left: 16px; top: 14px; font-size: 11.5px; }
  .hero-title { font-size: clamp(34px, 9.6vw, 42px); }
  .ctas { flex-direction: column; align-items: stretch; }
  .btn { justify-content: center; }
  .panels, .cases, .steps, .exits { grid-template-columns: 1fr; }
  .case, .case:nth-child(even) { padding: 24px 0 30px; border-left: 0; }
  .cl, .case:nth-child(even) .cl, .case:nth-child(3n) .cl { right: 0; }
  .step::after { display: none !important; }
  .floor { grid-template-columns: 1fr; gap: 0; padding: 20px; justify-items: start; }
  .stop { flex-direction: column; align-items: center; }
  .seg { width: 8px; height: 56px; flex: none; margin: 6px 0; background: radial-gradient(circle, #ffd76a 2.6px, transparent 3.2px) 50% 0 / 8px 18px repeat-y; }
  .reveal-on .route .seg { clip-path: none; }
  .checks { grid-template-columns: 1fr; }
  .focus-head { grid-template-columns: 1fr; }
  .foot { border-radius: 0; }
  .foot-links { margin-left: 0; }
  .legal-body { box-shadow: inset 0 0 0 2.5px var(--ink), 6px 6px 0 var(--yellow); }
}
