/* Huť Šindelová — druhý redakční a pohybový průchod.
   Pouze veřejná prezentační vrstva. Obsah i ovládání fungují bez animací. */
:root {
  --motion-fast: 180ms;
  --motion-ui: 320ms;
  --motion-reveal: 640ms;
  --motion-image: 900ms;
  --ease-out: cubic-bezier(.19, 1, .22, 1);
}

/* Fotografie a velký titul zůstávají hlavním motivem. */
.hero-photo { filter: saturate(.82) brightness(.92); }
.hero-shade {
  background: linear-gradient(90deg,rgba(17,25,18,.64),rgba(17,25,18,.24) 55%,rgba(17,25,18,.1)),
              linear-gradient(0deg,rgba(17,25,18,.72),transparent 52%,rgba(17,25,18,.16));
}
.hero-lead { font-size: 15px; line-height: 1.8; max-width: 370px; }
.quick-nav { font-size: 13px; }
.quick-nav a:focus-visible::after { transform: scaleX(1); }
.button, .btn, .text-link, .content-read { transition-timing-function: var(--ease-out); }
.button:active, .btn:active { transform: translateY(1px); }
.editorial-nav a:focus-visible { color: var(--rust); padding-left: 10px; }
.partner:focus-within img { filter: none; }

/* Text není vedle velkých titulků zmenšený na popisku. */
.rich-copy { font-size: 16px; line-height: 1.85; max-width: 70ch; }
.story-copy .rich-copy, .visit-copy .rich-copy { margin-top: 22px; }
.intro-copy .rich-copy { margin-top: 24px; }
.story-details summary { font-size: 14px; min-height: 54px; }
.story-details details p { font-size: 15px; line-height: 1.8; }
.intro-facts span, .place-label span { font-size: 12px; line-height: 1.7; }
.place-label span { color: #5c6158; }
.intro-photo figcaption, .story-photo figcaption, .prose-aside figcaption { font-size: 12px; line-height: 1.7; }
.transformation-photo figcaption > span:last-child { font-size: 13px; line-height: 1.7; }
.prose-body { max-width: 72ch; min-width: 0; }
.content-prose { font-size: 16px; line-height: 1.85; }
.content-prose p { margin-bottom: 1.45em; }
.content-prose h2 { line-height: 1.15; margin-top: 1.55em; margin-bottom: .65em; }
.content-prose h3 { line-height: 1.25; margin-top: 1.4em; }
.content-prose ul, .content-prose ol { margin-block: 1.25em; }
.content-prose li + li { margin-top: .55em; }
.content-article .content-prose { max-width: 72ch; }
.page-heading, .content-heading { position: relative; }
.page-heading::after {
  content: ''; display: block; width: 74px; height: 2px;
  background: var(--rust); margin-top: 34px;
}
.page-heading { padding-bottom: 34px; }
.content-heading h1, .page-heading h1 { text-wrap: balance; }
.contact-details span { font-size: 12px; line-height: 1.6; }
.contact-details p, .contact-grid > div > p { font-size: 14px; line-height: 1.8; }
.contact-details a { text-underline-offset: 5px; }

/* Časová osa: jedna průběžná jemná linka, nezávislá na čitelnosti textu. */
.timeline { column-gap: 0; }
.timeline-item { padding-right: 25px; }
.timeline-item h3 { font-size: 14px; line-height: 1.6; }
.timeline-item p { font-size: 14px; line-height: 1.8; max-width: 30ch; }
.timeline-item .text-link { font-size: 12px; min-height: 44px; }
.timeline-item::after {
  content: ''; position: absolute; left: 0; right: 0; height: 1px;
  top: calc(clamp(38px,4.3vw,66px) * 1.2 + 28px);
  background: var(--rust); transform: scaleX(0); transform-origin: left;
  transition: transform 650ms var(--ease-out) var(--step-delay,0ms);
}
.timeline-item:last-child::after { right: 20%; }
.timeline-item:nth-child(2) { --step-delay: 70ms; }
.timeline-item:nth-child(3) { --step-delay: 140ms; }
.timeline-item:nth-child(4) { --step-delay: 210ms; }
.timeline-item:nth-child(n+5) { --step-delay: 240ms; }
.timeline.is-revealed .timeline-item::after { transform: scaleX(1); }
.timeline.is-revealed .timeline-dot { background: var(--rust); box-shadow: 0 0 0 5px var(--paper-dark); }
.timeline-dot { transition: background-color var(--motion-ui), box-shadow var(--motion-ui); }
.timeline-item.reveal-enter { animation: none; }

/* Důstojné, vyrovnané partnerské pole místo neúplné poslední řady. */
.partner-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.partner { min-height: 184px; padding: 30px; }
.partner img { width: 170px; max-width: 100%; max-height: 72px; }
.partner h3, .partner:has(img) h3 { font-size: 13px; line-height: 1.6; }
.partner p, .partner-group { font-size: 12px; line-height: 1.7; }
.partner a { gap: 14px; }
.news-card > p { font-size: 15px; line-height: 1.8; }
.news-meta { font-size: 12px; }
.news-card .text-link { min-height: 44px; }

/* Celá galerie a čtení článků mají stejnou redakční péči jako titulka. */
.content-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 52px 38px; }
.content-gallery-grid .content-card { display: flex; flex-direction: column; border-bottom: 1px solid var(--line); padding-bottom: 25px; }
.content-gallery-grid .content-card__body { display: flex; flex-direction: column; flex: 1; padding-top: 24px; }
.content-gallery-grid .content-card__image { aspect-ratio: 1.55; }
.content-gallery-grid .content-card h2 { font-size: clamp(32px,3.1vw,46px); line-height: 1.12; margin-block: 14px 16px; }
.content-gallery-grid .content-card p { margin-bottom: 25px; }
.content-gallery-grid .content-read { margin-top: auto; align-self: flex-start; padding-block: 13px; }
.content-card p { font-size: 15px; line-height: 1.8; }
.content-tag { font-size: 11px; letter-spacing: .08em; }
.content-meta, .content-card .content-meta { font-size: 12px; }
.content-read { font-size: 13px; }
.content-search input, .content-search select, .content-search button { font-size: 14px; min-height: 48px; }
.content-search button { padding-inline: 22px; }
.content-categories a { min-height: 44px; font-size: 13px; }
.content-photo-grid { gap: 35px 25px; }
.content-photo-grid > a { position: relative; }
.content-photo-grid > a > span { font-size: 12px; line-height: 1.65; margin-top: 13px; }
.content-photo-grid > a::after {
  content: '↗'; position: absolute; top: 10px; right: 10px; display: grid; place-items: center;
  width: 32px; height: 32px; background: var(--paper); color: var(--ink); font-size: 18px;
  opacity: 0; transform: translateY(4px); pointer-events: none;
  transition: opacity var(--motion-fast),transform var(--motion-ui) var(--ease-out);
}
.content-photo-grid > a:hover::after, .content-photo-grid > a:focus-visible::after { opacity: 1; transform: none; }
.content-photo-grid > a:hover img { transform: none; filter: brightness(.94); }
.gallery-credits { font-size: 13px; line-height: 1.8; }
.archive-note { font-size: 14px; line-height: 1.8; }

/* Stejná kresba pece uzavírá příběh, bez univerzální dekorativní hvězdy. */
.cta-mark { display: inline-flex; margin-bottom: 22px; color: #10160f; }
.cta-mark svg { width: 48px; height: 61px; }
.closing-cta .rich-copy { margin-inline: auto; }
.closing-cta .rich-copy p { font-size: 16px; line-height: 1.8; }
.site-footer nav a, .footer-contact > a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding-block: 8px;
  font-size: 13px;
  line-height: 1.7;
}
.footer-contact p { font-size: 12px; line-height: 1.8; }
.footer-bottom { font-size: 11px; }

/* Nativní menu lze zavřít i bez JavaScriptu. */
body:not(.js-enabled) .menu-close { display: none; }
body:not(.js-enabled) .site-menu[open] > summary {
  position: fixed; top: 40px; right: var(--gutter); z-index: 102;
  color: var(--ink); background: var(--paper); padding-inline: 12px;
}
body:not(.js-enabled) .site-menu[open] > summary .menu-word { font-size: 0; }
body:not(.js-enabled) .site-menu[open] > summary .menu-word::before { content: 'Zavřít'; font-size: 12px; }
body:not(.js-enabled) .site-menu[open] .menu-top { padding-right: 130px; }

/* Aktivní kapitola: skutečné odkazy generované ze stejných CMS sekcí. */
.chapter-nav { display: none; }
@media (min-width:1360px) and (min-height:700px) {
  .chapter-nav { position: fixed; z-index: 35; right: 12px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; }
  .chapter-nav.is-enhanced { opacity: 0; visibility: hidden; transition: opacity var(--motion-ui),visibility var(--motion-ui); }
  .chapter-nav.is-enhanced.is-visible { opacity: 1; visibility: visible; }
  .chapter-nav a { position: relative; width: 40px; height: 34px; display: grid; place-items: center; }
  .chapter-nav .chapter-number { display: grid; place-items: center; width: 6px; height: 6px; border: 1px solid var(--rust); border-radius: 50%; background: var(--paper); color: transparent; font: 10px/1 var(--sans); transition: width var(--motion-fast),height var(--motion-fast),color var(--motion-fast); }
  .chapter-nav .chapter-label { position: absolute; right: 44px; white-space: nowrap; color: var(--ink); background: var(--paper); border: 1px solid var(--line); padding: 7px 11px; font-size: 11px; opacity: 0; transform: translateX(5px); pointer-events: none; transition: opacity var(--motion-fast),transform var(--motion-ui); }
  .chapter-nav a.is-active .chapter-number, .chapter-nav a:hover .chapter-number, .chapter-nav a:focus-visible .chapter-number { width: 27px; height: 27px; color: var(--ink); }
  .chapter-nav a:hover .chapter-label, .chapter-nav a:focus-visible .chapter-label { opacity: 1; transform: none; }
  .menu-open .chapter-nav, .lightbox-open .chapter-nav { visibility: hidden; opacity: 0; }
}

/* Rozdílné typy nástupu, plně čitelný základ a žádné nekonečné dekorace. */
@keyframes hero-type { from { opacity: 1; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes menu-enter { from { opacity: .92; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes appear { from { opacity: .75; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes image-frame { from { transform: translateY(12px); } to { transform: none; } }
@keyframes image-settle { from { transform: scale(1.035); } to { transform: scale(1); } }
.motion-ready .hero-title { animation-duration: 780ms; animation-timing-function: var(--ease-out); }
.motion-ready .hero-lead { animation-duration: 650ms; animation-delay: 80ms; animation-timing-function: var(--ease-out); }
.motion-ready .reveal-enter { animation: appear var(--motion-reveal) var(--ease-out) var(--reveal-delay,0ms) both; }
.motion-ready .timeline-item.reveal-enter { animation: none; }
.motion-ready .image-reveal.reveal-enter { animation: image-frame var(--motion-reveal) var(--ease-out) both; }
.motion-ready .image-reveal.reveal-enter img { animation: image-settle var(--motion-image) var(--ease-out) both; }
.motion-ready .partner.reveal-enter { animation-duration: 460ms; }

/* Stav galerie je skutečná zpětná vazba, ne dekorativní loader celé stránky. */
.photo-lightbox figure { position: relative; }
.photo-lightbox figure img { transition: opacity var(--motion-fast); }
.photo-lightbox.is-loading figure img { opacity: .35; }
.photo-lightbox.is-error figure img { opacity: 0; }
.lightbox-status { position: absolute; top: 50%; left: 5%; right: 5%; transform: translateY(-50%); text-align: center; color: var(--paper); font-size: 14px; line-height: 1.7; pointer-events: none; }
.lightbox-status:empty { display: none; }
.photo-lightbox.is-error .lightbox-status { padding: 22px; border: 1px solid #68735e; background: #222820; }
.photo-lightbox figcaption { font-size: 13px; line-height: 1.6; margin-top: 15px; }
.lightbox-top, .lightbox-top button, .lightbox-bottom, .lightbox-bottom select { font-size: 12px; }
.lightbox-bottom select { min-height: 44px; }

@media (min-width:1000px) {
  .prose-aside { position: sticky; top: 135px; align-self: start; }
  .prose-aside figure img { max-height: min(54vh,520px); object-fit: contain; }
}
@media (max-width:1099px) {
  .timeline { display: block; margin-top: 50px; }
  .timeline-item { display: grid; grid-template-columns: 140px minmax(0,1fr); column-gap: 40px; padding: 0 0 38px; }
  .timeline-item .timeline-year { grid-column: 1; grid-row: 1/4; font-size: 48px; }
  .timeline-item h3, .timeline-item p, .timeline-item .text-link { grid-column: 2; }
  .timeline-item h3 { margin-top: 7px; margin-bottom: 9px; }
  .timeline-item p { max-width: 62ch; }
  .timeline-dot { position: absolute; left: 154px; top: 16px; margin: 0; }
  .timeline-item::before, .timeline-item::after, .timeline-item:nth-child(3)::before, .timeline-item:last-child::before, .timeline-item:last-child::after { left: 158px; right: auto; top: 20px; bottom: -20px; height: auto; width: 1px; transform-origin: top; }
  .timeline-item:last-child::before, .timeline-item:last-child::after { bottom: 30px; }
  .timeline-item::after { transform: scaleY(0); }
  .timeline.is-revealed .timeline-item::after { transform: scaleY(1); }
  .timeline-item .text-link { justify-self: start; }
  .content-gallery-grid { gap: 38px 26px; }
}
@media (max-width:767px) {
  .hero-lead { font-size: 14px; max-width: 330px; }
  .hero .actions { display: grid; grid-template-columns: minmax(0,240px); gap: 12px; }
  .hero .button { width: 100%; min-width: 0; min-height: 54px; justify-content: space-between; font-size: 12px; padding: 15px 21px; }
  .hero-content { bottom: 112px; }
  .rich-copy, .story-details details p { font-size: 15px; line-height: 1.85; }
  .intro-copy .lead, .story-copy .lead, .visit-copy .lead { font-size: 18px; line-height: 1.7; }
  .section-heading .lead { font-size: 16px; }
  .intro-photo figcaption, .story-photo figcaption, .transformation-photo figcaption > span:last-child { font-size: 12px; }
  .content-prose { font-size: 16px; line-height: 1.85; }
  .prose-body { max-width: none; }
  .prose-layout { gap: 30px; }
  .page-heading { padding-bottom: 30px; }
  .page-heading::after { margin-top: 28px; width: 55px; }
  .timeline { margin-top: 38px; }
  .timeline-item { display: block; padding: 0 0 33px 32px; }
  .timeline-item .timeline-year { font-size: 48px; line-height: 1; margin-bottom: 15px; }
  .timeline-item h3 { font-size: 15px; margin: 0 0 9px; }
  .timeline-item p { font-size: 14px; line-height: 1.85; max-width: 60ch; }
  .timeline-dot { left: 0; top: 15px; }
  .timeline-item::before, .timeline-item::after, .timeline-item:nth-child(3)::before, .timeline-item:nth-child(2n)::before, .timeline-item:last-child::before, .timeline-item:last-child::after { left: 4px; right: auto; top: 20px; bottom: -20px; }
  .timeline-item:last-child::before, .timeline-item:last-child::after { bottom: 30px; }
  .partner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .partner { padding: 24px 15px; min-height: 160px; }
  .partner img { width: 140px; max-height: 60px; }
  .partner h3, .partner:has(img) h3 { font-size: 12px; }
  .partner p, .partner-group { font-size: 11px; }
  .content-gallery-grid { grid-template-columns: 1fr; gap: 40px; }
  .content-gallery-grid .content-card h2 { font-size: 36px; }
  .content-gallery-grid .content-card__body { padding-top: 20px; }
  .content-gallery-grid .content-card__image { aspect-ratio: 1.5; }
  .content-gallery-grid .content-read { width: 100%; }
  .content-card p, .news-card > p { font-size: 15px; }
  .content-photo-grid { gap: 28px 16px; }
  .content-photo-grid > a > span { font-size: 12px; }
  .content-meta, .content-card .content-meta, .gallery-credits { font-size: 12px; }
  .content-search input, .content-search select { font-size: 16px; }
  .archive-note { font-size: 14px; }
  .closing-cta .rich-copy p { font-size: 15px; }
  .closing-cta .button { font-size: 12px; min-height: 48px; }
  .cta-mark { margin-bottom: 20px; }
  .cta-mark svg { width: 38px; height: 49px; }
  .site-footer nav a, .footer-contact > a { font-size: 13px; }
  .footer-bottom { font-size: 11px; }
  body:not(.js-enabled) .site-menu[open] > summary { top: 20px; }
  .photo-lightbox figcaption { font-size: 12px; }
  .lightbox-bottom { font-size: 11px; }
}
@media (max-width:374px) {
  .hero-lead { font-size: 13px; }
  .hero .button { font-size: 12px; }
  .timeline-item .timeline-year { font-size: 44px; }
  .partner { padding-inline: 12px; }
  .content-gallery-grid .content-card h2 { font-size: 33px; }
  .content-photo-grid { gap: 25px 13px; }
  .content-photo-grid > a > span { font-size: 11px; }
  .lightbox-bottom > div { gap: 9px; }
}
@media (hover:none) { .content-photo-grid > a::after { opacity: 1; transform: none; } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .hero-title, .hero-lead, .reveal-enter, .image-reveal img, .timeline-item::after, .menu-panel { animation: none !important; transform: none !important; }
  .hero-image { transform: none !important; will-change: auto; }
  .timeline.is-revealed .timeline-item::after { transform: none; }
  .chapter-nav, .chapter-nav *, .photo-lightbox figure img { transition: none !important; }
}
@media print {
  .chapter-nav { display: none !important; }
  .prose-aside { position: static; }
  .hero-photo { filter: none; }
}
