/* ============================================================
   STAGELAB — web podle nastavení systému návštěvníka (13. 10.)
   Martin: „Portál i web ať dokážou pracovat s nastavením OS
   uživatele na módy apod." Žádný ruční přepínač, řídí se OS.

   1) tmavý režim       prefers-color-scheme: dark
   2) méně pohybu       prefers-reduced-motion: reduce
   3) vyšší kontrast    prefers-contrast: more
   4) vynucené barvy    forced-colors: active (Windows kontrastní motivy)

   Načítá se jako POSLEDNÍ <link> v <head> každé veřejné stránky
   (rubriky kategorie-* včetně — automat rentman-auto.php hlavičku
   stránek nepřepisuje). Světlý vzhled mění jen oddíl 0 (kontrast AA).

   JAK TO FUNGUJE (tmavý režim):
   - Stránky stojí na proměnných --paper/--ink/--accent/--ink-soft/
     --line. V tmavém režimu se prohodí (papír = ink, text = papír).
   - „OSTROVY" = bloky, které už ve světlém vzhledu jsou tmavé
     (hero, reference, patička, modrý pás…) nebo bílé fotokarty
     (služby, rubriky rentálu, fotka v detailu položky, tiskový
     formulář). Dostanou zpět původní hodnoty proměnných, takže
     vypadají přesně jako dnes.
   - Barvy zapsané natvrdo (bílé karty, světlé nav, košík) mají
     níže vlastní přebití.
   - :where(:root:not(.tmava)) nepřidává specificitu → pravidlo
     přebije stejně zapsané pravidlo stránky (je později), ale
     :hover/:focus stránky dál platí. Styly, které vkládají skripty
     (detail.js, kosik.js) nebo <style> v <body>, jsou až za tímto
     souborem — tam je :root:not(.tmava) se specificitou navíc.
   - reference.html je celá tmavá už dnes → <html class="tmava">,
     tmavý režim ji vynechá (kromě zesílených textů patičky).

   Kontrast (WCAG 2.2 AA, spočteno vč. průhledností, nejhorší
   podklad = diagonální pruhy rentálu/týmu):
     text #F1F2EE na #0B1D2B 15,3:1 · ztlumený text .7 ≥7,1:1
     červená pro text #F06858 (lososová z loga) ≥4,7:1
     bílá na tlačítku #D91E32 5,0:1 · #0B1D2B na #F06858 5,6:1
     zelená potvrzení #5CC98B ≥7,1:1 · okraj polí .42 ≥3:1
   ============================================================ */

/* logo v navigaci: <picture> s tmavou variantou nesmí měnit rozvržení */
picture.logo-obal{display:contents;}


/* ---------- 0) KONTRAST AA I VE SVĚTLÉM VZHLEDU (13. 10., Martin schválil) ----------
   Bloky tmavé ve všech režimech (spočteno vůči skutečnému podkladu):
     čísla v detailu reference na úvodu: tmavý text na tmavém panelu 1,1:1 → 7,5:1,
       červená čísla #C41B2E 2,6:1 → #F06858 5,1:1 (jako na reference.html)
     „Jak rentál funguje" na /rental: ink na ink 1,0:1 → 15,3:1
     drobné texty patičky .4/.42/.52 → .62: 3,5:1 → 6,5:1
     „FOTO DOPLNÍME" na bílé .3 → .62: 1,95:1 → 5,0:1
     CTA „Nezávazná poptávka" na úvodu a „POPTÁVKA" v mobilním menu (16. 10.):
       tmavý text na #D91E32 3,41:1 → bílý 5,0:1 (dřív jen v tmavém režimu
       a při vyšším kontrastu); hover na světlé ploše tmavý text 15,3:1 */
:where(:root) :is(.foot-note, .foot-label, .foot-ic){color:rgba(241,242,238,0.62);}   /* i reference.html */
:where(:root:not(.tmava)) .rdd-cisla{color:rgba(241,242,238,0.7);border-top-color:rgba(241,242,238,0.16);}
:where(:root:not(.tmava)) .rdd-cisla b{color:#F06858;}
:where(:root:not(.tmava)) .pas-modry .sec-title{color:#F1F2EE;}
:where(:root:not(.tmava)) .prod-img .noimg{color:rgba(22,24,27,0.62);text-align:center;}   /* EN text se na úzké kartě zalomí */
:where(:root:not(.tmava)) :is(.hero-actions .btn-primary, .mobile-menu .btn-accent){color:#fff;}
:where(:root:not(.tmava)) .hero-actions .btn-primary:hover{color:#0B1D2B;}
:where(:root:not(.tmava)) .mobile-menu .btn-accent:hover{color:var(--paper);}
/* jen světlý vzhled (tmavý režim má červenou #F06858 a tmavý text na tlačítku):
     ceny v kartách, štítky sekcí na stránkách technika-na-* a „ERROR — 404“:
       #D91E32 na papíře 4,47:1 → #C41B2E 5,3:1 (značková červená, o odstín tmavší)
     „← Zpět" tmavý text na #D91E32 3,4:1 → bílý 5,0:1; hover zesvětlení 4,1:1 → výplň #B8172A 6,6:1
     košík (styly vkládá kosik.js): počet na tlačítku a „přidáno“ #F1F2EE na #D91E32 4,47:1 → bílý 5,0:1,
       součet #D91E32 4,47:1 → #C41B2E 5,3:1, „✕“ .4 2,5:1 → .62 4,8:1 */
@media print, (prefers-color-scheme: light){
  :where(:root:not(.tmava)) :is(.prod-price, .stitek, .kod){color:#C41B2E;}
  :root:not(.tmava) .btn-zpet{color:#fff;}                   /* styl tlačítka je v <body> rubriky */
  :root:not(.tmava) .btn-zpet:hover{filter:none;background:#B8172A;}
  :root:not(.tmava) :is(.sk-fab-n, .sk-add.sk-done){color:#fff;}
  :root:not(.tmava) .sk-total b{color:#C41B2E;}
  :root:not(.tmava) .sk-rm{color:rgba(22,24,27,0.62);}
  :root:not(.tmava) .sk-rm:hover{color:#C41B2E;}
}


/* ---------- 1) TMAVÝ REŽIM ---------- */
/* jen obrazovka — tisk zůstává vždy světlý */
@media screen and (prefers-color-scheme: dark){

  :root:not(.tmava){
    color-scheme:dark;
    --paper:#0B1D2B;
    --ink:#F1F2EE;
    --accent:#F06858;                    /* světlejší červená pro text na tmavém */
    --ink-soft:rgba(241,242,238,0.7);
    --line:rgba(241,242,238,0.16);
    --plocha:#132634;                    /* karty místo průsvitné bílé */
    --vstup:#162B3B;                     /* pole formulářů */
  }
  :root.tmava{color-scheme:dark;}

  /* OSTROVY — tmavé už ve světlém vzhledu: zpět původní proměnné */
  :root:not(.tmava) :is(#paticka, .hero, .refs, .pas-modry, section.cta:not(#kontakt)){
    --paper:#F1F2EE; --ink:#0B1D2B; --accent:#D91E32;
    --ink-soft:rgba(22,24,27,0.62); --line:rgba(22,24,27,0.12);
  }
  /* tmavé karty referencí na stránkách typů akcí — okraj musí být vidět */
  :root:not(.tmava) .ref-card{
    --paper:#F1F2EE; --ink:#0B1D2B; --accent:#D91E32;
    --ink-soft:rgba(22,24,27,0.62); --line:rgba(241,242,238,0.16);
  }
  /* OSTROVY — bílé fotokarty a tiskový formulář: zpět původní proměnné i text */
  :root:not(.tmava) :is(.service-card, .sd-text .service-code, .cat, .pd-main, .formular){
    --paper:#F1F2EE; --ink:#0B1D2B; --accent:#D91E32;
    --ink-soft:rgba(22,24,27,0.62); --line:rgba(22,24,27,0.12);
    color:var(--ink);
  }

  /* dekorace pozadí (korunka, diagonální pruhy) jemněji — drží kontrast textu */
  :where(:root:not(.tmava)) body::after{opacity:0.5;}

  /* navigace a patičky */
  :where(:root:not(.tmava)) nav{background:rgba(11,29,43,0.9);}
  :where(:root:not(.tmava)) footer{background-color:#0B1D2B;}   /* odstoupení: tmavá patička bez id */
  :root:not(.tmava) .lang-btn.active{color:var(--paper);}

  /* plochy, které jsou ve světlém vzhledu bílé nebo průsvitně bílé */
  :where(:root:not(.tmava)) :is(.tech-body, .sd-inner, .team-card, .team-hero, .cd-inner,
    .step, .card, .duraz, .clovek, .firma, .kit){background:var(--plocha);}
  :where(:root:not(.tmava)) .cat-detail .cd-inner{background:var(--plocha);}
  :where(:root:not(.tmava)) div.cta:not(.wrap){background:var(--plocha);}       /* časté dotazy */
  :where(:root:not(.tmava)) .ct:hover{background:var(--plocha);}
  :where(:root:not(.tmava)) .dalsi a{background:var(--plocha);}
  :where(:root:not(.tmava)) .dalsi a:hover{background:var(--vstup);}
  :where(:root:not(.tmava)) .prod{background:var(--paper);}                       /* fotka položky zůstává na bílé */
  /* položka bez fotky: bílá plocha by na tmavé stránce svítila → tmavá plocha,
     „FOTO DOPLNÍME" ztlumeně světle 7,4:1 (16. 10.). Obě pravidla jen spolu:
     bez :has() (Safari < 15.4, Firefox < 121) by světlý text zůstal na bílé (1,2:1),
     tam platí tmavý text z oddílu 0 */
  @supports selector(:has(a)){
    :where(:root:not(.tmava)) .prod-img:has(.noimg){background:var(--plocha);}
    :where(:root:not(.tmava)) .prod-img .noimg{color:var(--ink-soft);}
  }

  /* formuláře a vyhledávání */
  :where(:root:not(.tmava)) :is(.form input, .form textarea){background:var(--vstup);border-color:rgba(241,242,238,0.42);}
  :where(:root:not(.tmava)) .nav-search{background:var(--vstup);}
  :where(:root:not(.tmava)) .search-radek .nav-search{border-color:var(--ink);background:var(--vstup);box-shadow:none;}
  :where(:root:not(.tmava)) .search-radek .nav-search svg{color:var(--ink);}
  :where(:root:not(.tmava)) :is(.nav-search input, .search-radek .nav-search input)::placeholder{color:rgba(241,242,238,0.6);}
  :where(:root:not(.tmava)) .form-status.ok{color:#5CC98B;background:transparent;}
  :where(:root:not(.tmava)) .form-status.err{color:var(--accent);background:transparent;}

  /* texty a čáry zapsané natvrdo tmavě (rentál, tým, kontakt, rubriky) */
  :where(:root:not(.tmava)) :is(.head .tag, .cta.wrap .tag){color:var(--ink-soft);}   /* rentál, tým: natvrdo tmavé */
  :where(:root:not(.tmava)) :is(.lead, .form label, .form-gdpr){color:var(--ink-soft);}
  :where(:root:not(.tmava)) .note{color:var(--ink-soft);border-color:rgba(241,242,238,0.3);}
  :where(:root:not(.tmava)) :is(.team-role, .team-contact b, .clovek .role, .clovek .spoj b){color:var(--accent);}
  :where(:root:not(.tmava)) .radek .hod a{border-bottom-color:rgba(241,242,238,0.4);}
  :where(:root:not(.tmava)) .clovek .spoj a{border-bottom-color:rgba(241,242,238,0.35);}
  :where(:root:not(.tmava)) .content a{border-bottom-color:rgba(240,104,88,0.6);}
  :where(:root:not(.tmava)) .prod-stock{color:#5CC98B;}

  /* tlačítka s červenou výplní: výplň zůstává značková #D91E32 + bílý text */
  :where(:root:not(.tmava)) .btn-accent{background:#D91E32;border-color:#D91E32;}
  :where(:root:not(.tmava)) .form-submit .btn{background:#D91E32;color:#fff;}
  :where(:root:not(.tmava)) .form-submit .btn:hover{background:var(--ink);color:var(--paper);}
  :where(:root:not(.tmava)) .btn-primary:hover{color:#0B1D2B;}
  :where(:root:not(.tmava)) .cat-detail{--cat:#D91E32;}

  /* detail položky (styly vkládá detail.js) */
  :root:not(.tmava) .pd-inner{background:var(--plocha);}
  :root:not(.tmava) .pd-add:hover{background:#D91E32;border-color:#D91E32;color:#fff;}
  :root:not(.tmava) .pd-add.done{border-color:#5CC98B;color:#5CC98B;background:none;}

  /* košík / poptávka (styly vkládá kosik.js) */
  :root:not(.tmava) .sk-add{border-color:rgba(241,242,238,0.3);color:#F1F2EE;}
  :root:not(.tmava) .sk-add:hover{border-color:#F06858;color:#F06858;}
  :root:not(.tmava) .sk-add.sk-done{background:#D91E32;border-color:#D91E32;color:#fff;}
  :root:not(.tmava) .sk-fab-n{color:#fff;}   /* #F1F2EE na červené jen 4,47:1 */
  :root:not(.tmava) .sk-fab{background:#F1F2EE;box-shadow:0 10px 28px rgba(0,0,0,0.45);}
  :root:not(.tmava) .sk-fab svg{color:#0B1D2B;}
  :root:not(.tmava) .sk-fab:hover{background:#D91E32;}
  :root:not(.tmava) .sk-fab:hover svg{color:#fff;}
  :root:not(.tmava) .sk-dim{background:rgba(0,0,0,0.55);}
  :root:not(.tmava) .sk-panel{background:#0B1D2B;color:#F1F2EE;border-left:1px solid rgba(241,242,238,0.16);box-shadow:-16px 0 44px rgba(0,0,0,0.5);}
  :root:not(.tmava) :is(.sk-head, .sk-it){border-bottom-color:rgba(241,242,238,0.16);}
  :root:not(.tmava) .sk-foot{border-top-color:rgba(241,242,238,0.16);}
  :root:not(.tmava) .sk-x{background:#F1F2EE;color:#0B1D2B;}
  :root:not(.tmava) .sk-x:hover{background:#D91E32;color:#fff;}
  :root:not(.tmava) :is(.sk-empty, .sk-it-p, .sk-gdpr){color:rgba(241,242,238,0.7);}
  :root:not(.tmava) .sk-q button{border-color:rgba(241,242,238,0.3);color:#F1F2EE;}
  :root:not(.tmava) .sk-q button:hover{border-color:#F06858;color:#F06858;}
  :root:not(.tmava) .sk-rm{color:rgba(241,242,238,0.6);}
  :root:not(.tmava) .sk-rm:hover{color:#F06858;}
  :root:not(.tmava) .sk-total b{color:#F06858;}
  :root:not(.tmava) .sk-vycistit{border-color:rgba(241,242,238,0.3);color:rgba(241,242,238,0.7);}
  :root:not(.tmava) .sk-vycistit:hover{border-color:#F06858;color:#F06858;}
  :root:not(.tmava) :is(.sk-form input, .sk-form textarea){background:#162B3B;border-color:rgba(241,242,238,0.42);color:#F1F2EE;}
  /* zástupný text je jediný popisek polí; výchozí #757575 má na tmavém poli jen 3,2:1 → 5,6:1 */
  :root:not(.tmava) :is(.sk-form input, .sk-form textarea)::placeholder{color:rgba(241,242,238,0.6);opacity:1;}
  :root:not(.tmava) :is(.sk-form input, .sk-form textarea):focus{border-color:#F06858;}
  :root:not(.tmava) .sk-send:hover{background:#F1F2EE;color:#0B1D2B;}
  :root:not(.tmava) .sk-msg.ok{color:#5CC98B;}
  :root:not(.tmava) .sk-msg.err{color:#F06858;}
}


/* ---------- 2) MÉNĚ POHYBU ---------- */
/* Přechody se nevypínají úplně (0,01 ms), aby dál chodila událost
   transitionend — detail položky v rubrikách na ni čeká. */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto !important;}
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    transition-delay:0s !important;
    scroll-behavior:auto !important;
  }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*){animation:none !important;}
}


/* ---------- 3) VYŠŠÍ KONTRAST ---------- */
@media (prefers-contrast: more){
  :root:not(.tmava){
    --ink-soft:rgba(11,29,43,0.88);          /* 11:1 na papíře (dřív 4,8:1) */
    --line:rgba(11,29,43,0.6);
  }
  /* ztlumené texty zapsané natvrdo */
  :where(:root:not(.tmava)) :is(.head .tag, .cta.wrap .tag){color:var(--ink-soft);}   /* rentál, tým: natvrdo tmavé */
  :where(:root:not(.tmava)) :is(.lead, .form label, .form-gdpr, .note){color:var(--ink-soft);}
  :where(:root:not(.tmava)) .note{border-color:var(--line);}
  /* průsvitné lišty neprůhledné */
  :where(:root:not(.tmava)) nav{background:var(--paper);backdrop-filter:none;}
  /* tmavé bloky: ztlumený světlý text silněji */
  :where(:root) :is(.foot-note, .foot-label, .foot-ic, .foot-col){color:rgba(241,242,238,0.9);}   /* i reference.html */
  :where(:root:not(.tmava)) :is(.hero .tag, .hero p, .refs .tag, .quote p, .quote .q-author, .ref-card p,
    .ref-cisla, .rd-place, .rd-text p, .hero .perex, section.cta .perex, .kontakt-radek, .pas-modry .step p){color:rgba(241,242,238,0.92);}
  :where(:root:not(.tmava)) .rdd-cisla{color:rgba(241,242,238,0.9);border-top-color:rgba(241,242,238,0.3);}
  :where(:root:not(.tmava)) .rdd-cisla b{color:#F06858;}
}
@media (prefers-contrast: more) and (prefers-color-scheme: light){
  :root:not(.tmava){--accent:#B8172A;}          /* ceny a kódy 4,47:1 → 5,8:1, bílá na výplni 6,6:1 */
  :where(:root:not(.tmava)) :is(.prod-price, .stitek, .kod){color:var(--accent);}   /* tmavší než #C41B2E z oddílu 0 */
  :where(:root:not(.tmava)) .btn-primary:hover{color:#fff;}
  :root:not(.tmava) .sk-fab-n{color:#fff;}
}
@media screen and (prefers-contrast: more) and (prefers-color-scheme: dark){
  :root:not(.tmava){
    --ink-soft:rgba(241,242,238,0.9);
    --line:rgba(241,242,238,0.5);
  }
  :where(:root:not(.tmava)) body::after{opacity:0.25;}
}


/* ---------- 4) VYNUCENÉ BARVY (Windows kontrastní motivy) ---------- */
@media (forced-colors: active){
  /* dekorativní vodoznak a pruhy pryč */
  body::before, body::after{display:none;}
  /* fotky techniky (často průhledné PNG černé techniky) potřebují bílý podklad */
  .prod-img, .ct-img, .pd-main, .pd-thumb, .pd-lb-thumb, .pd-lb-stage img{forced-color-adjust:none;background:#fff;}
  /* aktivní jazyk a ikona menu jsou jen barevná plocha → systémové barvy */
  .lang-btn.active{forced-color-adjust:none;background:Highlight;color:HighlightText;}
  .menu-toggle span{forced-color-adjust:none;background:CanvasText;}
  /* tlačítka bez rámečku by splynula s textem */
  .btn, .btn-zpet, .tisk, .pd-add, .sk-add, .sk-send, .sk-fab, .sk-x, .sk-fab-n,
  .sd-close, .rd-close, .cd-close, .pd-close, .service-code, .cat-code, .service-hint, .cat-hint, .ref-hint{border:1px solid;}
  /* bílé (invertované) logo v patičce na světlém motivu zmizí → původní barvy */
  @media (prefers-color-scheme: light){
    .logo-full--light, .logo-fullw, .tmava .logo-full{filter:none;}
  }
}
