/* PORIEŠI.ME — PONUKY 2.0 §3 (zákazník: porovnanie ponúk, záchranná sieť, upozornenia).
   ───────────────────────────────────────────────────────────────────────────────────
   Načítava sa v index.html ZA style.css a profil-zakaznik.css. Nemení žiadne existujúce
   pravidlo — len dopĺňa triedy .pz-* a dve triedy .acc-bell* v hlavičke účtu.
   Farby výhradne z tokens.css, aby karta ostala čitateľná na svetlom aj tmavom podklade.
   Každé pravidlo je písané pre desktop aj mobil naraz; mobilné úpravy sú
   v @media(max-width:640px), prepnutie tabuľka ↔ karty v @media(min-width:900px). */

/* ═══════════════ §3.1 POROVNANIE PONÚK ═══════════════ */
.pz-cmp{margin-top:10px}

/* Do 900 px karty, nad 900 px tabuľka — prepína CSS, nie JS (otočenie telefónu nič neprekresľuje). */
.pz-tbl{display:none}
.pz-cards{display:grid; gap:10px}

/* ---- spoločné časti (karta aj riadok) ---- */
.pz-who{display:flex; align-items:center; gap:8px; min-width:0}
.pz-av{width:36px; height:36px; flex:none; font-size:1.1rem; overflow:hidden}
.pz-av .ico{width:20px; height:20px}
.pz-who-t{display:flex; flex-wrap:wrap; align-items:center; gap:2px 6px; min-width:0}
.pz-who-t b{line-height:1.25; word-break:break-word}
.pz-rate{display:inline-flex; align-items:center; gap:3px; white-space:nowrap}
.pz-rate .ico{width:14px; height:14px; color:var(--gold)}

.pz-price{font-family:var(--font); font-weight:800; font-size:1.2rem; line-height:1.15; white-space:nowrap}
.pz-price-w{display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:right; min-width:0}
.pz-type{font-size:.78rem; line-height:1.35; color:var(--muted)}
.pz-type b{color:var(--ink); font-weight:700}

.pz-msg{margin:8px 0 0; line-height:1.5; overflow-wrap:anywhere}
.pz-mil{margin:6px 0 0 18px; padding:0; color:var(--muted)}
.pz-mil li{margin:2px 0}

.pz-incl{list-style:none; margin:8px 0 0; padding:0; display:grid; gap:4px}
.pz-incl li{display:flex; align-items:flex-start; gap:6px; font-size:.8rem; line-height:1.4; color:var(--muted)}
.pz-incl li>span span:first-child{font-weight:700; color:var(--ink-soft)}
.pz-incl .ico{width:15px; height:15px; flex:none; margin-top:2px}
.pz-incl li.in .ico{color:var(--good)}
.pz-incl li.out .ico{color:var(--muted)}

.pz-meta{display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:8px; font-size:.8rem; color:var(--muted)}
.pz-meta>span{display:inline-flex; align-items:center; gap:5px; flex-wrap:wrap}
.pz-meta .ico{width:15px; height:15px; flex:none}
.pz-meta b{color:var(--ink)}
.pz-valid{font-weight:700; color:var(--ink)}

.pz-acts{gap:8px; margin-top:10px; flex-wrap:wrap; align-items:center}
.pz-acts .btn{min-height:44px}

/* odznaky porovnania — každý najviac raz a len medzi platnými ponukami */
.pz-badges{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.pz-badge{display:inline-flex; align-items:center; font-size:.7rem; font-weight:700; letter-spacing:.03em;
  padding:3px 9px; border-radius:var(--r-pill); border:1.5px solid currentColor; line-height:1.3}
.pz-badge.cheap{color:var(--good); background:var(--good-bg)}
.pz-badge.soon{color:var(--blue); background:var(--blue-bg)}
.pz-badge.rated{color:var(--gold); background:var(--gold-bg)}

/* vypršaná ponuka — sivá, bez akcií, ale stále čitateľná */
.pz-card.off,.pz-tbl tr.off{opacity:.62}
.pz-card.off .pz-price,.pz-tbl tr.off .pz-price{color:var(--muted); text-decoration:line-through}
.pz-b-exp{text-transform:none}

/* ---- mobilná karta ---- */
.pz-card{border:1.5px solid var(--line); border-radius:var(--r); padding:12px; background:var(--surface)}
.pz-card-top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}

/* ---- desktopová tabuľka ---- */
.pz-tbl th{text-align:left; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; font-weight:700;
  color:var(--muted); padding:0 12px 8px 0; border-bottom:1.5px solid var(--line); vertical-align:bottom}
.pz-tbl th:last-child,.pz-tbl td:last-child{padding-right:0}
.pz-tbl td{padding:12px 12px 12px 0; border-bottom:1px solid var(--line); vertical-align:top}
.pz-tbl tr:last-child td{border-bottom:0}
.pz-tbl .pz-c-who{width:24%; min-width:170px}
.pz-tbl .pz-c-price{width:24%}
.pz-tbl .pz-c-when{width:15%; white-space:nowrap}
.pz-tbl .pz-c-valid{width:14%}
.pz-tbl .pz-c-act{width:23%; min-width:180px}
.pz-tbl .pz-c-when b{display:block}
.pz-tbl .pz-c-when .small{display:block; margin-top:2px; white-space:normal}
.pz-tbl .pz-c-when .small .num{white-space:nowrap}
.pz-tbl .pz-price-w{align-items:flex-start; text-align:left}
/* v bunke sú cena a typ priamymi súrodencami — bez `block` by sa zliali do jedného riadku */
.pz-tbl .pz-price{display:block; font-size:1.05rem}
.pz-tbl .pz-type{display:block; margin-top:3px}
.pz-tbl .pz-msg{margin-top:6px; font-size:.78rem; line-height:1.4}
.pz-tbl .pz-acts{margin-top:0; flex-direction:column; align-items:stretch}
.pz-tbl .pz-acts .btn{width:100%; text-align:center}

/* ---- otvorenie ďalších miest (5/5 a nič neprijaté) ---- */
.pz-more{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:12px; padding:12px;
  border:1.5px dashed var(--line); border-radius:var(--r); background:var(--surface2)}
.pz-more p{margin:0; flex:1 1 220px; color:var(--muted)}
.pz-more .btn{flex:none}

/* ═══════════════ §3.2 ZÁCHRANNÁ SIEŤ ═══════════════ */
.pz-rs{margin-top:12px; display:grid; grid-template-columns:auto minmax(0,1fr); gap:4px 10px; align-items:start}
.pz-rs>.ico{width:20px; height:20px; margin-top:2px}
.pz-rs-h{grid-column:2; margin:0 0 8px; font-size:.88rem; line-height:1.5}
.pz-rs>p:last-child,.pz-rs-grid{grid-column:2}
.pz-rs-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:8px}
.pz-sg{display:flex; align-items:center; gap:10px; padding:10px; border-radius:var(--r);
  border:1.5px solid var(--line); background:var(--surface)}
.pz-sg-t{flex:1; min-width:0; display:flex; flex-direction:column; gap:1px}
.pz-sg-t b{font-size:.92rem; line-height:1.25; word-break:break-word; color:var(--ink)}
.pz-sg .btn{flex:none}
.pz-sg .btn:disabled{opacity:.6}

/* ═══════════════ §3.3 UZAVRETÝ DOPYT — „Zadať znova“ ═══════════════ */
.pz-again{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:10px}
.pz-again p{margin:0; flex:1 1 220px}
.pz-again .btn{flex:none}

/* ═══════════════ §3.4 UPOZORNENIA ═══════════════ */
/* zvonček v hlavičke účtu */
#moje-root .acc-bell{position:relative; flex:none; width:44px; height:44px; display:inline-flex;
  align-items:center; justify-content:center; border-radius:50%; cursor:pointer;
  border:1.5px solid var(--line); background:var(--surface); color:var(--ink);
  transition:border-color .15s ease,color .15s ease,background-color .15s ease}
#moje-root .acc-bell .ico{width:22px; height:22px}
#moje-root .acc-bell:hover{border-color:var(--accent); color:var(--accent-dark)}
#moje-root .acc-bell:focus-visible{outline:3px solid rgba(232,115,12,.35); outline-offset:2px}
#moje-root .acc-bell-n{position:absolute; top:-3px; right:-3px; min-width:20px; height:20px; padding:0 5px;
  display:inline-flex; align-items:center; justify-content:center; border-radius:var(--r-pill);
  background:var(--warn); color:#fff; font-size:.68rem; font-weight:800; line-height:1;
  border:2px solid var(--surface)}

.pz-nt-head{align-items:center; gap:10px; margin-bottom:6px}
.pz-nt-head h3{margin:0}
.pz-nt-list{list-style:none; margin:0; padding:0}
.pz-nt-i{border-top:1px solid var(--line)}
.pz-nt-i:first-child{border-top:0}
.pz-nt-b{display:flex; align-items:flex-start; gap:10px; width:100%; min-height:56px; padding:12px 4px;
  border:0; background:transparent; font:inherit; color:inherit; text-align:left; cursor:pointer; border-radius:var(--r-sm)}
.pz-nt-b:hover{background:var(--surface2)}
.pz-nt-b:focus-visible{outline:3px solid rgba(232,115,12,.35); outline-offset:-2px}
.pz-nt-ico{flex:none; width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:var(--surface2); color:var(--muted)}
.pz-nt-ico .ico{width:19px; height:19px}
.pz-nt-ico.t-offer,.pz-nt-ico.t-accepted{background:var(--good-bg); color:var(--good)}
.pz-nt-ico.t-invited,.pz-nt-ico.t-expanded{background:var(--blue-bg); color:var(--blue)}
.pz-nt-ico.t-decide,.pz-nt-ico.t-offer_expiring,.pz-nt-ico.t-closing_soon{background:var(--gold-bg); color:var(--gold)}
.pz-nt-t{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px}
.pz-nt-t b{line-height:1.35; overflow-wrap:anywhere}
.pz-nt-t .small{line-height:1.45; overflow-wrap:anywhere}
.pz-nt-at{margin-top:2px}
.pz-nt-dot{flex:none; width:9px; height:9px; margin-top:14px; border-radius:50%; background:var(--accent)}
.pz-nt-i.new .pz-nt-t b{color:var(--ink)}
.pz-nt-i:not(.new) .pz-nt-t b{font-weight:600; color:var(--muted)}
#moje-root .acc-empty>.ico{width:34px; height:34px; color:var(--n300); margin-bottom:4px}

/* ═══════════════ §3.5 SĽUB PODĽA DÁT ═══════════════ */
.pz-promise{display:grid; gap:4px}
.pz-promise-l{display:flex; align-items:center; flex-wrap:wrap; gap:4px 6px; font-weight:700}
.pz-promise-l .ico{width:17px; height:17px; flex:none}
.pz-promise-s{font-size:.85rem; opacity:.9}

.pz-tl{text-align:left; max-width:480px; margin:16px auto 0; padding:14px;
  border:1.5px solid var(--line); border-radius:var(--r); background:var(--surface2)}
.pz-tl h3{margin:0 0 10px; font-size:var(--fs-h3)}
.pz-tl ol{list-style:none; margin:0 0 12px; padding:0; display:grid; gap:10px}
.pz-tl li{display:flex; align-items:flex-start; gap:10px}
.pz-tl-n{flex:none; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:var(--accent); color:#fff; font-size:.8rem; font-weight:800; line-height:1}
.pz-tl-t{display:flex; flex-direction:column; gap:1px; min-width:0}
.pz-tl-t b{line-height:1.35}
.pz-tl-t .small{line-height:1.45; overflow-wrap:anywhere}
.pz-tl .btn{width:100%}

/* ═══════════════ §3.6 PUSH V NASTAVENIACH ═══════════════ */
.pz-push-b{margin-top:4px}
.pz-push-n{margin:8px 0 0; line-height:1.5}

/* ═══════════════ DESKTOP ≥900 px — tabuľka namiesto kariet ═══════════════ */
@media (min-width:900px){
  .pz-cards{display:none}
  .pz-tbl{display:table; width:100%; border-collapse:collapse; table-layout:fixed; font-size:.88rem}
}

/* ═══════════════ MOBIL ≤640 px ═══════════════ */
@media (max-width:640px){
  .pz-card{padding:11px}
  /* Na 375 px je stĺpec s cenou taký úzky, že „pevná cena“ padá po slabikách —
     preto meno a cena pod sebou a typ ponuky vedľa ceny na plnú šírku. */
  .pz-card-top{flex-direction:column; align-items:stretch; gap:6px}
  .pz-price-w{flex-direction:row; flex-wrap:wrap; align-items:baseline; justify-content:flex-start;
    gap:4px 8px; text-align:left}
  .pz-price{font-size:1.15rem}
  .pz-acts{flex-direction:column; align-items:stretch}
  .pz-acts .btn{width:100%}
  .pz-acts>.small,.pz-acts>.badge{align-self:flex-start}
  /* v stĺpcovom flexe je flex-basis výška — bez resetu by odsek narástol na 220 px */
  .pz-more{flex-direction:column; align-items:stretch}
  .pz-more p,.pz-again p{flex:0 0 auto}
  .pz-more .btn{width:100%}
  .pz-rs{grid-template-columns:1fr}
  .pz-rs>.ico{display:none}
  .pz-rs-h,.pz-rs-grid,.pz-rs>p:last-child{grid-column:1}
  .pz-rs-grid{grid-template-columns:1fr}
  .pz-sg{flex-wrap:wrap}
  .pz-sg .btn{width:100%}
  .pz-again{flex-direction:column; align-items:stretch}
  .pz-again .btn{width:100%}
  .pz-nt-head{flex-direction:column; align-items:flex-start}
  .pz-nt-head .btn{width:100%}
  .pz-tl{padding:12px; margin-top:14px}
  .pz-nt-b{padding:12px 2px}
  #moje-root .acc-bell{width:44px; height:44px}
}

/* iPhone: bezpečná zóna pri spodných tlačidlách v porovnaní ponúk */
@supports (padding:max(0px)){
  @media (max-width:640px){
    .pz-cmp{padding-bottom:env(safe-area-inset-bottom)}
  }
}

/* Prístupnosť: nikto nemá „skákajúce“ rozhranie, keď si vypne animácie. */
@media (prefers-reduced-motion:reduce){
  .pz-nt-b,#moje-root .acc-bell{transition:none}
}

/* ═══════════════ BOD 3 — prijatie ponuky → zmluva o dielo → kontakty (triedy .bd-*) ═══════════════
   Rekapitulácia v okne, obrazovka „Objednané“, zmluva ako dokument (tlač), odstúpenie, karta zákazky.
   Desktop aj mobil naraz; mobilné úpravy v @media(max-width:640px), tlač v @media print. */

/* okno dostane fokus (B6) — rámik nekreslíme, fokus je viditeľný na prvkoch vo vnútri */
.modal:focus{outline:none}

/* ---- spoločné ---- */
.bd-acts{gap:8px; flex-wrap:wrap; align-items:center; margin-top:14px}
.bd-acts .btn{min-height:48px}
.bd-err{min-height:0; margin:4px 0 0; color:var(--warn); font-size:.82rem; font-weight:600; line-height:1.45}
.bd-err:empty{display:none}
[aria-invalid="true"]{border-color:var(--warn)!important; outline-color:var(--warn)}
.consent-box input[aria-invalid="true"]{outline:2px solid var(--warn); outline-offset:2px}
.bd-block{display:flex; align-items:flex-start; gap:8px}
.bd-block>.ico,.bd-neutral>.ico{width:18px; height:18px; flex:none; margin-top:2px}
/* neutrálny blok (súkromná osoba, § 642) — nie varovne oranžový, čitateľný bez tooltipu */
.bd-neutral{display:flex; align-items:flex-start; gap:8px; margin:10px 0; padding:12px 14px; border-radius:var(--r);
  background:var(--surface2); color:var(--ink); border:1px solid var(--line); font-size:.86rem; line-height:1.55}
.bd-dl{display:grid; grid-template-columns:minmax(120px,max-content) minmax(0,1fr); gap:6px 14px; margin:10px 0 0; font-size:.88rem}
.bd-dl>div{display:contents}
.bd-dl dt{color:var(--muted); font-weight:600}
.bd-dl dd{margin:0; color:var(--ink); overflow-wrap:anywhere}
.bd-who{display:flex; align-items:center; gap:10px; min-width:0}
.bd-av{width:44px; height:44px; font-size:1.3rem; overflow:hidden}
.bd-av .ico{width:22px; height:22px}
.bd-who-t{display:flex; flex-wrap:wrap; align-items:center; gap:2px 8px; min-width:0}
.bd-who-t b{overflow-wrap:anywhere}
.bd-who-t .small{flex-basis:100%}

/* ---- rekapitulácia (openAccept) ---- */
.bd-recap h3{padding-right:40px}
.bd-lead{margin:0 0 6px}
.bd-sec{padding:14px 0; border-top:1px solid var(--line)}
.bd-sec:first-of-type{border-top:0}
.bd-h{display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:.78rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted)}
.bd-h .ico{width:17px; height:17px; flex:none; color:var(--accent-dark)}
.bd-note{margin:8px 0 0}
.bd-what-t{margin:0; line-height:1.45; overflow-wrap:anywhere}
.bd-cat{color:var(--muted)}
.bd-desc{margin:6px 0 0; line-height:1.5; overflow-wrap:anywhere}
.bd-incl li>span span:first-child{white-space:nowrap}
.bd-price{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin:0}
.bd-price-h{font-size:1.5rem; font-weight:800; line-height:1.15; color:var(--ink)}
.bd-cap{margin:6px 0 0; padding:8px 12px; border-radius:var(--r-sm); background:var(--good-bg); color:var(--good); font-size:.9rem}
.bd-cap b{color:var(--good)}
.bd-lines{margin:8px 0 0; padding-left:18px; font-size:.86rem; line-height:1.5; color:var(--ink-soft)}
.bd-lines li{margin:3px 0}
.bd-pay{display:flex; align-items:flex-start; gap:8px; margin:10px 0 0; font-size:.88rem; font-weight:600; color:var(--ink)}
.bd-pay .ico{width:18px; height:18px; flex:none; margin-top:1px; color:var(--good)}
.bd-req{font-weight:400; color:var(--muted)}
.bd-hint{margin:4px 0 0}
.bd-addr-chips{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:8px}
.bd-info p{line-height:1.55}
.bd-cb{margin:10px 0 2px; cursor:pointer}
.bd-cb .small{line-height:1.55}
.bd-cb input:disabled+span{opacity:.6}
.bd-terms-a{margin:4px 0 0 30px}
.bd-urg{display:inline-flex; align-items:center; gap:4px; color:var(--ink)}
.bd-urg .ico{width:15px; height:15px; color:var(--accent-dark)}
/* lepiaci spodok okna: suma + jediné odosielacie tlačidlo */
/* okno má odsadenie 24px 16px (style.css) — záporné okraje ťahajú panel až k hrane okna */
.bd-foot{position:sticky; bottom:0; z-index:2; margin:6px -16px -24px; padding:12px 16px 16px;
  background:var(--surface); border-top:1.5px solid var(--line); border-radius:0 0 var(--r-lg) var(--r-lg);
  box-shadow:0 -8px 18px rgba(27,36,48,.07)}
.bd-foot-sum{margin:0; font-size:.9rem; line-height:1.45}
.bd-foot-sum b{font-size:1.05rem; color:var(--ink)}
.bd-foot .bd-acts{margin-top:10px}
.bd-go{flex:1 1 280px}
/* cookie lišta (position:fixed, z-index:1200 v style.css) sedí presne na lepiacom spodku okna a prekryla by
   „Objednávka s povinnosťou platby“ aj „Potvrdiť odstúpenie od zmluvy“. Kým je okno otvorené (core.js pridá
   body.modal-open), lištu skryjeme; po zatvorení okna sa vráti, súhlas teda ostáva stále dostupný. */
body.modal-open .cookie-bar{display:none}

/* ---- obrazovka „Objednané“ (B2) ---- */
.bd-done{text-align:left}
.bd-done-ico{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--good-bg); color:var(--good); margin-bottom:8px}
.bd-done-ico .ico{width:30px; height:30px}
.bd-done-h{font-size:clamp(1.25rem,3.6vw,1.6rem); line-height:1.3; margin:0 0 6px; overflow-wrap:anywhere}
/* meno majstra je v samostatnom uzle za dvojbodkou — v žiadnom jazyku ho neskloňujeme */
.bd-done-sub{margin:0 0 6px; font-size:1.02rem; line-height:1.45; overflow-wrap:anywhere}
.bd-done-sub b{color:var(--ink)}
.bd-done-l{margin:0 0 4px}
.bd-contact{margin:14px 0; padding:14px; border:1.5px solid var(--line); border-radius:var(--r); background:var(--surface2)}
.bd-contact-l{display:flex; align-items:center; gap:6px; margin:8px 0 0; overflow-wrap:anywhere}
.bd-contact-l .ico{width:16px; height:16px; flex:none; color:var(--muted)}
.bd-contact .bd-acts{margin-top:10px}
.bd-mailnote{display:flex; align-items:flex-start; gap:8px}
.bd-mailnote .ico{width:18px; height:18px; flex:none; margin-top:1px}
.bd-tl{max-width:none; margin:14px 0 0}
.bd-tl li.on .pz-tl-n{background:var(--good)}
.bd-tl .pz-tl-n .ico{width:15px; height:15px}
.bd-done-acts{display:grid; gap:8px; margin-top:16px}
.bd-done-acts>.btn{width:100%}
.bd-done-acts .bd-acts{margin-top:0}
.bd-done-acts .bd-acts .btn{flex:1 1 200px}

/* zvýraznenie novej zákazky v Účte (2 s) */
#moje-root .acc-book{border-radius:var(--r-lg); transition:box-shadow .3s ease}
#moje-root .acc-book.bd-hl{box-shadow:0 0 0 3px var(--accent),0 0 0 8px rgba(232,115,12,.18)}

/* ---- karta zákazky ---- */
.bd-book .spread{align-items:flex-start; gap:6px 12px}
.bd-book-price{text-align:right; white-space:nowrap}
.bd-book-t{margin:4px 0 0; overflow-wrap:anywhere}
.bd-book-meta{display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:6px}
.bd-book-meta>span{display:inline-flex; align-items:center; gap:5px; flex-wrap:wrap; min-width:0; overflow-wrap:anywhere}
.bd-book-meta .ico{width:15px; height:15px; flex:none}
.bd-book-st{margin-top:8px}
.bd-wd-line{display:flex; align-items:flex-start; gap:6px; margin:8px 0 0; line-height:1.5}
.bd-wd-line>.ico{width:16px; height:16px; flex:none; margin-top:2px}

/* ---- odstúpenie (A6) ---- */
.bd-lbl{font-size:var(--fs-small); font-weight:600; margin:14px 0 6px}
.bd-ro{margin:0; padding:12px 14px; border-radius:var(--r); background:var(--surface2); border:1px dashed var(--line);
  font-size:.88rem; line-height:1.5; overflow-wrap:anywhere}
.bd-pre{white-space:pre-wrap; overflow-wrap:anywhere; margin:6px 0 0; padding:12px 14px; max-height:260px; overflow:auto;
  border-radius:var(--r); background:var(--surface2); border:1px solid var(--line); font:.8rem/1.55 var(--font); color:var(--ink)}
.modal h3 .ico{width:22px; height:22px; color:var(--good); vertical-align:-4px}

/* ---- profil majstra: žiadosť o termín (A9) ---- */
.bd-slot-note{margin:10px 0 0; line-height:1.5}

/* ---- zmluva ako dokument (B4) ---- */
.bd-doc{margin:10px 0 0; padding:18px 20px; border:1.5px solid var(--line); border-radius:var(--r); background:var(--surface);
  font-size:.86rem; line-height:1.6; color:var(--ink); overflow-wrap:anywhere}
.bd-doc-head{text-align:center; padding-bottom:10px; border-bottom:1px solid var(--line); margin-bottom:6px}
.bd-doc-op{margin:0; font-size:.72rem; color:var(--muted)}
.bd-doc-t{margin:8px 0 2px; font-size:1.1rem; letter-spacing:.02em}
.bd-doc-sub{margin:0; font-size:.78rem; color:var(--muted)}
.bd-doc-s{margin-top:12px}
.bd-doc-s h4{margin:0 0 4px; font-size:.9rem}
.bd-doc-s p{margin:0 0 6px}
.bd-doc-foot{margin-top:14px; padding-top:10px; border-top:1px solid var(--line); font-size:.74rem; color:var(--muted)}
.bd-doc-foot p{margin:0 0 4px}
.bd-hash{display:block; margin:0 0 6px; font-size:.72rem; word-break:break-all; color:var(--ink)}
.bd-verify{display:flex; align-items:flex-start; gap:6px; margin:10px 0 0}
.bd-verify .ico{width:16px; height:16px; flex:none; margin-top:2px}
.bd-verify.ok{color:var(--good)}
.bd-verify.bad,.bd-mailmsg.bad{color:var(--warn)}
.bd-mailmsg{margin:8px 0 0; line-height:1.5}
.bd-mailmsg:empty{display:none}

/* ═══════════════ BOD 3 — MOBIL ≤640 px ═══════════════ */
@media (max-width:640px){
  .bd-dl{grid-template-columns:1fr; gap:0}
  .bd-dl dt{margin-top:8px; font-size:.78rem}
  .bd-price-h{font-size:1.35rem}
  .bd-foot{padding:12px 16px calc(14px + env(safe-area-inset-bottom))}
  .bd-acts{flex-direction:column; align-items:stretch}
  .bd-acts .btn{width:100%}
  .bd-go{flex:0 0 auto}
  .bd-terms-a{margin-left:0}
  /* odkazy, ktoré sa naozaj klikajú prstom (podmienky, telefón, e-mail), majú 44 px */
  .bd-terms-a a,.bd-contact-l a,.bd-book-meta a{display:inline-flex; align-items:center; min-height:44px}
  /* súhlas je dotykový cieľ — celý riadok (políčko aj text) musí mať aspoň 48 px */
  .bd-cb{min-height:48px; padding:4px 0; align-items:center}
  .bd-addr-chips .chip{min-height:44px}
  .bd-book .spread{flex-direction:column}
  .bd-book-price{text-align:left; white-space:normal}
  .bd-doc{padding:14px 12px}
  .bd-contact{padding:12px}
  .bd-done-acts .bd-acts .btn{flex:0 0 auto}
}

/* ═══════════════ BOD 3 — TLAČ: len zmluva (bdPrint pridá body.bd-print) ═══════════════ */
@media print{
  @page{margin:16mm 14mm}
  body.bd-print{background:#fff!important}
  body.bd-print>*:not(#modal-bg){display:none!important}
  body.bd-print #modal-bg{position:static!important; display:block!important; padding:0!important; background:none!important; overflow:visible!important}
  body.bd-print .modal{max-width:none!important; width:auto!important; padding:0!important; margin:0!important; box-shadow:none!important; border-radius:0!important}
  body.bd-print .modal .x,body.bd-print .bd-noprint{display:none!important}
  body.bd-print .bd-doc{border:0; padding:0; margin:0; font-size:10.5pt; line-height:1.5; color:#000; background:#fff}
  body.bd-print .bd-doc-s h4{break-after:avoid; page-break-after:avoid}
  body.bd-print .bd-doc-s p{orphans:3; widows:3}
  body.bd-print .bd-doc-op,body.bd-print .bd-doc-sub,body.bd-print .bd-doc-foot,body.bd-print .bd-hash{color:#000}
}

@media (prefers-reduced-motion:reduce){
  #moje-root .acc-book{transition:none}
}

/* PARTIA (021): pred tlačidlom „Objednávka s povinnosťou platby“ musí byť vidieť,
   že partia NIE JE zmluvnou stranou — zhotoviteľom je Poskytovateľ, ktorý ponuku
   podal (OP čl. 4.4, vzor zmluvy čl. 3.2, § 5 ods. 1 písm. b) zák. 108/2024). */
.bd-crew{display:flex; align-items:flex-start; gap:8px; margin:8px 0 0}
.bd-crew .ico{width:1.1em; height:1.1em; flex:none; margin-top:2px; color:var(--blue)}
