/* ══════════════════════════════════════════════════════════════
   eMPe foto – frontend styly
   Doplňuje Tailwind (CDN). Linkováno z doctype.php.
   ══════════════════════════════════════════════════════════════ */

:root {
  /* Výška fixed hlavičky – odsazení kotev a horní okraj podstránek */
  --header-h: 77px;
}

html { scroll-behavior: smooth; }

/* Cíl kotvy (#portfolio, #kontakt, …) nesmí skončit pod fixed hlavičkou */
main[id], section[id], footer[id] {
  scroll-margin-top: calc(var(--header-h) + 1rem);
}

:focus-visible {
  outline: 3px solid #e5bd74;
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 8px;
  z-index: 9999;
  background: #d3a24c;
  color: #000;
  padding: 0.5rem 1rem;
  font-weight: 700;
  border-radius: 0.25rem;
}
.skip-link:focus { left: 8px; }

/* ── Hlavička ──────────────────────────────────────────────────
   Nad hero průhledná, po odscrollování podbarvená.
   Řešeno CSS (ne Tailwind třídami) – CDN build negeneruje třídy,
   které nejsou ve výchozím HTML, takže JS toggle by nefungoval. */
#site-header {
  border-bottom: 1px solid transparent;
  transition: background-color .3s ease, border-color .3s ease;
}
#site-header.header-solid {
  background-color: rgba(10, 10, 10, .9);
  backdrop-filter: blur(8px);
  border-bottom-color: #242424;
}
/* Čitelnost navigace nad světlou fotkou */
#site-header[data-transparent]:not(.header-solid)::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(0,0,0,.55), transparent);
}

/* ── Hamburger ─────────────────────────────────────────────────
   Viditelný na všech rozlišeních (dle designu). Tři gold pruhy,
   při otevřeném menu se překlopí do křížku. */
.menu-toggle > span {
  display: block;
  width: 2rem;
  height: 3px;
  background: #d3a24c;
  transition: transform .25s ease, opacity .2s ease;
}
.menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ── Odkazy ────────────────────────────────────────────────────
   Předloha má globální zlatý hover. Odkazy s vlastní barvou
   (Tailwind utility text-*) si ji drží – jinak by např. černý
   text na zlatém tlačítku při hoveru zmizel. */
a { color: inherit; }
a:not([class*="text-"]):hover { color: #e5bd74; }

/* ── Omezení pohybu (WCAG 2.3.3) ──────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .menu-toggle > span { transition: none; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  /* Zvětšení dlaždice při hoveru je čistě dekorativní */
  .group:hover img { transform: none !important; }
}

/* ── Komponentní styly z designu ───────────────────────────── */
.rule { display: flex; align-items: center; gap: .75rem; }
@media (min-width: 640px) { .rule { gap: 1.25rem; } }
.rule::before, .rule::after { content: ''; height: 1px; flex: 1 1 0%; min-width: 1.5rem; }
/* Dlouhý nadpis se na úzkém displeji zalomí a zůstane na střed
   (bez min-width:0 by ho flex nezmenšil pod šířku obsahu a přetekl by viewport) */
.rule > span { min-width: 0; text-align: center; }
/* Čáry se do stran ztrácejí */
.rule::before { background: linear-gradient(to right, transparent, rgba(211,162,76,0.5)); }
.rule::after  { background: linear-gradient(to left,  transparent, rgba(211,162,76,0.5)); }

/* Placeholder pro chybějící fotku */
.ph { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #262626; }
.ph::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 8px, transparent 8px 16px); }
.ph > span { position: relative; z-index: 10; font-family: ui-monospace, monospace; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.4); padding: 0 .75rem; text-align: center; }

/* ── Hero slider ───────────────────────────────────────────────
   Slidy leží přes sebe v jedné buňce mřížky (ne absolutně), takže
   výšku sekce určuje nejvyšší z nich – fotka končí kousek pod
   tlačítky a při přepnutí slidu nic neposkakuje.
   Neaktivní jsou visibility:hidden – tím vypadnou i z tab pořadí
   a ze čtečky. Aktivní stav přepíná JS, proto obyčejné CSS
   (Tailwind CDN by třídy použité jen v JS nevygeneroval). */
#hero { display: grid; }
.hero-slide { position: relative; grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .6s ease; }
.hero-slide.is-active { opacity: 1; visibility: visible; }

/* Tečka je malá, ale kliknutelná plocha musí mít alespoň 24 px (WCAG 2.5.8) */
.hero-dot { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border: 0; background: transparent; }
.hero-dot::before {
  content: '';
  width: .625rem; height: .625rem;
  border: 1px solid rgba(255,255,255,.6);
  transition: background-color .2s ease, border-color .2s ease;
}
.hero-dot:hover::before { border-color: #e5bd74; }
.hero-dot[aria-current="true"]::before { background: #d3a24c; border-color: #d3a24c; }

/* ── Prohlížeč galerie na stránce kategorie ────────────────────
   Aktivní stav přepíná JS, proto obyčejné CSS (Tailwind CDN by
   třídy použité jen v JS nevygeneroval). */
.gal-tile { border: 1px solid rgba(211,162,76,0.6); }
.gal-tile:hover, .gal-tile.is-active { border-color: #d3a24c; }
.gal-tile.is-active { background: rgba(211,162,76,0.08); }

/* Rám velké fotky. Fotka je object-contain, takže u jiného poměru stran zbývá
   volné místo – to má zůstat čisté, bez proužkovaného vzoru z .ph. */
.stage-frame { position: relative; display: block; overflow: hidden; }

/* Pás náhledů se posouvá šipkami, tahem a JS centrováním – nativní posuvník
   je tu jen vizuální šum, proto ho skrýváme (scroll zůstává funkční). */
#stage-thumbs-wrap { scrollbar-width: none; -ms-overflow-style: none; cursor: grab; }
#stage-thumbs-wrap::-webkit-scrollbar { width: 0; height: 0; }
/* Tah myší obsluhuje gallery-stage.js – během tahu se nesmí vybírat text */
#stage-thumbs-wrap.is-dragging { cursor: grabbing; user-select: none; }

.stage-thumb { flex: 0 0 calc((100% - 1.5rem) / 3); aspect-ratio: 4 / 3; border: 2px solid transparent; }
.stage-thumb.is-active { border-color: #d3a24c; }
.stage-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 640px) {
  .stage-thumb { flex-basis: calc((100% - 3rem) / 5); }
}

/* Popis galerie je HTML z TinyMCE – poslední odstavec nesmí tlačit prohlížeč dolů */
#stage-desc > :last-child { margin-bottom: 0; }

/* Popisek placeholderu do pravého dolního rohu (hero) */
.ph-corner > span { position: absolute; bottom: .75rem; right: 1rem; left: auto; }

/* Placeholder na světlém pozadí (partneři) */
.ph-light { background: #d4d4d4; }
.ph-light::before { background-image: repeating-linear-gradient(135deg, rgba(0,0,0,.06) 0 8px, transparent 8px 16px); }
.ph-light > span { color: rgba(0,0,0,.4); }

.tile-label { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(to top, rgba(0,0,0,.85), transparent); padding: 3rem 1rem 1rem; text-align: center; font-size: .875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #fff; }

/* ── Obsah z wysiwyg editoru (TinyMCE) ─────────────────────── */
.wysiwyg-content p { margin-bottom: 1rem; }
.wysiwyg-content ul { list-style: none; padding-left: 0; margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.75rem; }
.wysiwyg-content ul li {
  display: block; position: relative;
  background: #111; border: 1px solid #222; border-radius: 0.75rem;
  padding: 0.5rem 0.5rem 0.5rem 2.25rem;
}
.wysiwyg-content ul li::before {
  content: '';
  display: block; position: absolute; left: 0.5rem; top: 0.6rem;
  min-width: 1.25rem; width: 1.25rem; height: 1.25rem;
  background-repeat: no-repeat; background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23d3a24c' stroke-width='2.5' viewBox='0 0 24 24'%3E%3Cpath d='M5 13l4 4L19 7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.wysiwyg-content ul li strong {
  display: block; color: #fff; font-size: 1.05rem; margin-bottom: 0.25rem;
}
/* TinyMCE balí obsah <li> do <p> – jeho spodní margin dělal uvnitř karty prázdné místo */
.wysiwyg-content li > :last-child { margin-bottom: 0; }
/* Média v obsahu – nikdy širší než textový sloupec (768 px), na střed */
.wysiwyg-content img,
.wysiwyg-content video,
.wysiwyg-content iframe,
.wysiwyg-content embed,
.wysiwyg-content object {
  display: block;
  max-width: min(100%, 768px);
  margin-left: auto;
  margin-right: auto;
}
.wysiwyg-content img,
.wysiwyg-content video { height: auto; }
.wysiwyg-content video { width: 100%; }
.wysiwyg-content table { max-width: 100%; }
/* Vložená videa (YouTube, Vimeo…) – vždy responzivní 16:9 bez ohledu na width/height v HTML */
.wysiwyg-content iframe {
  /* !important kvůli embed kódům vloženým i s inline stylem width/height */
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  border: 0;
}
