/* v1-8 integrations layer (all pages, staging + production): consent banner, form status states, upload note.
   Uses the frozen design tokens only; no change to existing components. */
.f-note{margin:2px 0 4px;font-size:14px;line-height:1.45;opacity:.8}
.f-msg.is-err{padding:10px 14px;border-radius:12px;background:#B3261E;color:#fff;line-height:1.45}
.f-msg.is-ok{padding:10px 14px;border-radius:12px;background:var(--bm-yellow);color:var(--bm-ink)}
.f-msg.is-info{opacity:.9}
/* MOS Behavior reads data-cta-id from the click TARGET: let the CTA element itself receive the click */
[data-cta-id] *{pointer-events:none}
button[type=submit][aria-busy=true]{opacity:.7;cursor:progress}
.f [aria-invalid=true]{border-color:#D90429}
/* consent banner — bottom sheet, non-modal; reject and accept with equal weight */
.bmc{position:fixed;left:16px;right:16px;bottom:16px;z-index:250;display:flex;justify-content:center;pointer-events:none}
.bmc[hidden]{display:none}
.bmc__in{pointer-events:auto;width:100%;max-width:980px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 28px;align-items:center;padding:20px 24px;border-radius:var(--r-sm);background:#fff;color:var(--text);border:1px solid var(--line);box-shadow:0 18px 50px rgba(6,20,63,.28);font-family:var(--font)}
.bmc__txt h2{margin:0 0 6px;font-size:17px;line-height:1.3;color:var(--bm-ink)}
.bmc__txt p{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
.bmc__txt a{color:var(--bm-blue);text-decoration:underline;text-underline-offset:3px}
.bmc__prefs{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:14px;color:var(--text)}
.bmc__prefs[hidden]{display:none}
.bmc__prefs label{display:flex;align-items:center;gap:8px;min-height:32px}
.bmc__prefs input{width:18px;height:18px;accent-color:var(--bm-navy)}
.bmc__btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.bmc__b{min-height:44px;padding:0 18px;border-radius:var(--pill);border:1.5px solid var(--bm-ink);background:#fff;color:var(--bm-ink);font:600 15px/1 var(--font);cursor:pointer}
.bmc__b[hidden]{display:none}
.bmc__b--y{background:var(--bm-yellow);border-color:var(--bm-yellow)}
.bmc__b:hover{background:var(--bm-tint)}.bmc__b--y:hover{background:var(--bm-yellow-h)}
.bmc__b:focus-visible,.bmc-open:focus-visible{outline:3px solid var(--bm-blue);outline-offset:2px}
.bmc-open{background:none;border:0;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bmc-open:hover{color:var(--bm-yellow)}
@media (max-width:760px){
  .bmc{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom))}
  .bmc__in{grid-template-columns:1fr;padding:16px;gap:12px}
  .bmc__btns{justify-content:stretch}.bmc__b{flex:1 1 auto}
  .bmc__b--y{order:-1;flex-basis:100%}
}
/* v1-8 routing: Szolgáltatások menu */
/* one continuous services list; on desktop shown in two columns (column-major, still ONE semantic <ul>) */
@media (min-width:1101px){ .hdr__nav .sub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(6,auto);grid-auto-flow:column;column-gap:6px;min-width:500px} }
.sub a[aria-current=page]{background:var(--bm-tint);color:var(--bm-navy);font-weight:600}
.sub a{padding-top:7px;padding-bottom:7px}
.mnav .sub a[aria-current=page]{background:rgba(255,255,255,.08);color:#fff}
form[data-bm-lead] .f-note{color:rgba(255,255,255,.8);opacity:1}
/* v1-9 UI hotfix (owner 2026-10-08): desktop „Szolgáltatások” dropdown hover/focus — text stays navy, the row gives the
   feedback (existing light-blue tint). Overrides the over-hero header rule `.v-base .hdr--over .hdr__nav a:hover{yellow}`
   inside the white dropdown only; equal specificity, later in the cascade. Current item on hover: one step darker tint. */
@media (min-width:1101px){
  .hdr .hdr__nav .sub a[aria-current=page]{color:var(--bm-navy);background:var(--bm-tint)}   /* current item: navy on the light-blue active tint (no yellow text in the light dropdown) */
  .hdr .hdr__nav .sub a:hover,.hdr .hdr__nav .sub a:focus-visible{color:var(--bm-navy);background:var(--bm-tint)}
  .hdr .hdr__nav .sub a[aria-current=page]:hover,.hdr .hdr__nav .sub a[aria-current=page]:focus-visible{background:var(--bm-tint-2)}
}
/* DE localisation (2026-10-09): native HU | DE switch. Desktop: header right, next to the CTA (base.css .lang rules);
   ≤1080px the header-right block is hidden, so a second placement sits in the header bar next to the menu button.
   Exactly one placement is rendered per viewport. Current language: frozen .lang a.is-on colour + underline. */
.lang--switch{align-items:center;gap:2px;opacity:1}
.lang--switch a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:0 4px;border-radius:6px;opacity:.82}
.lang--switch a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.lang--switch a.is-on{opacity:1;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.lang--switch a:focus-visible{outline:3px solid var(--bm-blue);outline-offset:2px;opacity:1}
.lang--bar{display:none}
@media (max-width:1080px){
  .lang--bar{display:flex;flex-shrink:0;margin-left:auto;font-size:15px}
  .lang--bar a{min-width:44px;min-height:44px}
  .lang--bar + .burger{margin-left:4px;flex-shrink:0}
}
@media (max-width:360px){ .lang--bar a{min-width:40px} .lang--bar + .burger{margin-left:0} }
/* the switch adds ~70px to the desktop header: keep labels and the CTA on one line in the narrowest desktop band */
@media (min-width:1081px){ .hdr__nav>ul>li>a,.hdr__right .btn{white-space:nowrap} }
@media (min-width:1081px) and (max-width:1280px){ .hdr__in{gap:16px} .hdr__nav>ul{gap:20px} .hdr__right{gap:10px} }
/* DE privacy notice: translation notice above the body */
.doc__note{padding:14px 18px;border-radius:12px;background:var(--bm-tint);color:var(--bm-ink);font-size:15px;line-height:1.5}
