/*
Theme Name: Chlubna
*/

/* =====================================================
   ZÁKLADNÍ LAYOUT – JEDNOTNÝ MODEL STRÁNKY
===================================================== */

.site-header,
.site-main,
.site-footer {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem;
}

.layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 2rem;
  align-items: stretch;
}

/* SIDEBAR – vždy stejný */
.sidebar {
  background: var(--paper-2);
  padding: 1.25rem;
  box-shadow:
    0 4px 12px rgba(0,0,0,.08),
    inset 0 0 0 1px rgba(0,0,0,.04);
}

/* CONTENT – vždy čitelný papír */
.content {
  background: var(--paper);
  padding: 2.5rem;

  width: 100%;
  max-width: none;
  box-sizing: border-box;

  box-shadow:
    0 4px 12px rgba(0,0,0,.08),
    inset 0 0 0 1px rgba(0,0,0,.04);
}



/* =====================================================
   ROOT / PROMĚNNÉ
===================================================== */

:root {
  --ink-blue: #3b73d8;
  --ink-red:  #d41a1a;
  --paper:   #fbf9f4;   /* NOVÝ: velmi světlý, skoro bílý */
  --paper-2: #efe7d8;   /* zůstává – sidebar / header */
  --ink-dark: #2b2b2b;
  --line-faint: rgba(0,0,0,.06);
}

/* =====================================================
   GLOBÁLNÍ TYPOGRAFIE A POZADÍ
===================================================== */

body {
  background:
    linear-gradient(to bottom, rgba(0,0,0,.03), rgba(0,0,0,0)),
    var(--paper);
  color: var(--ink-dark);
  font-family: "Literata", "Georgia", serif;
  line-height: 1.55;
}

h1, h2, h3 {
  font-family: "Literata", "Georgia", serif;
  font-weight: 500;
  color: var(--ink-blue);
  letter-spacing: .02em;
}

p, li {
  font-family: "Literata", "Georgia", serif;
}

a {
  color: var(--ink-red);
  text-decoration: none;
  border-bottom: 1px dotted rgba(212,26,26,.4);
}

a:hover {
  border-bottom-style: solid;
}

/* =====================================================
   PAPÍR / NOTOVÝ PODKLAD
===================================================== */

.paper {
  position: relative;
  background:
    repeating-linear-gradient(
      to bottom,
      transparent,
      transparent 22px,
      var(--line-faint) 23px
    ),
    var(--paper-2);

  padding: 1.5rem 2rem;
  border-radius: 2px;
  box-shadow:
    0 4px 12px rgba(0,0,0,.08),
    inset 0 0 0 1px rgba(0,0,0,.04);
}

.paper::before {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
  pointer-events: none;
}

/* =====================================================
   DETAIL OSOBY
===================================================== */

.osoba {
  position: relative;
}


.osoba-detail {
  position: relative;
  background:
    repeating-linear-gradient(
      to bottom,
      transparent,
      transparent 22px,
      var(--line-faint) 23px
    ),
    var(--paper);
  
  box-shadow:
    0 6px 18px rgba(0,0,0,.12),
    inset 0 0 0 1px rgba(0,0,0,.05);
}

.osoba-detail::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
}

.osoba-detail::after {
  content: "";
  display: block;
  clear: both;
}

/* TYPOGRAFIE DETAILU */

.osoba-detail h1 {
  font-size: 1.8rem;
  letter-spacing: .03em;
  margin-bottom: 1.5rem;
}

.osoba-detail h2 {
  font-size: 1.1rem;
  margin-top: 2.5rem;
  margin-bottom: .75rem;
}

.osoba-detail p,
.osoba-detail li {
  max-width: 65ch;
  line-height: 1.6;
  margin-bottom: 1rem;
  color: var(--ink-dark);
}

.osoba-detail a {
  color: var(--ink-red);
}



/* =========================================
   MEISTERSTÜCK TYPOGRAFIE – DETAIL OSOBY
========================================= */

.osoba,
.soubor {
  hyphens: auto;
  overflow-wrap: break-word;
}

.osoba p,
.osoba li,
.soubor p,
.soubor-li {
  text-align: justify;
  text-justify: inter-word;
  widows: 2;
  orphans: 2;
  text-indent: 1.5em;
  margin: 0;
}

.osoba p + p,
.soubor p + p {
  margin-top: 0;
}

.osoba p:nth-of-type(1),
.osoba p:nth-of-type(2),
.soubor p:nth-of-type(1),
.soubor p:nth-of-type(2) {
  text-indent: 0;
  margin-bottom: .25rem;
}

.osoba p:nth-of-type(3),
.soubor p:nth-of-type(3) {
  text-indent: 0;
  margin-top: 1rem;
  margin-bottom: 1.5rem;
}

.osoba p:nth-of-type(n+4),
.soubor p:nth-of-type(n+4) {
  text-indent: 1.5em;
}

.osoba-uvod,
.soubor-uvod {
  margin-top: 3rem;      /* silné oddělení od biografie */
  margin-bottom: 1.5rem; /* oddělení od seznamu */
}

/* =====================================================
   FOTKA OSOBY
===================================================== */

.osoba-foto {
  float: right;
  width: 200px;
  margin: 0 0 1.5rem 2rem;
}

.osoba-foto img {
  display: block;
  width: 100%;
  height: auto;

  filter:
    grayscale(100%)
    contrast(1.05)
    brightness(1.05)
    sepia(10%);

  background: var(--paper);
  padding: .4rem;
  border: 1px solid rgba(0,0,0,.15);
  box-shadow: 0 4px 10px rgba(0,0,0,.25);
}

/* =====================================================
   FOTKA SOUBORU
===================================================== */

.soubor-foto {
  float: right;
  width: 400px;              /* dvojnásobek */
  margin: 0 0 1.5rem 2.5rem; /* trochu větší odsazení */
}

.soubor-foto img {
  display: block;
  width: 100%;
  height: auto;

  filter:
    grayscale(100%)
    contrast(1.05)
    brightness(1.05)
    sepia(10%);

  background: var(--paper);
  padding: .5rem; /* lehce víc než osoba */
  border: 1px solid rgba(0,0,0,.15);
  box-shadow: 0 6px 14px rgba(0,0,0,.25);
}

/* =========================================
   VÝPIS PROVEDENÍ – TYPOGRAFIE
========================================= */

.osoba-skladba,
.soubor-skladba {
  margin-bottom: .75rem;
}

.osoba-skladba h3,
.soubor-skladba h3 {
  font-size: 1em;
  font-weight: normal;
  font-style: italic;
  margin: 1.2rem 0 .3rem;
}

.provedeni-radek {
  margin-left: 1.5rem;   /* odsazení vůči skladbě */
  margin-bottom: .35rem;
  line-height: 1.45;
}

.provedeni-meta {
  margin: 0;
}


.chl-footnote-ref a {
	text-decoration: none;
}

.chl-footnote-backref {
	margin-left: 0.5em;
	text-decoration: none;
	font-size: 0.9em;
}

.chl-footnote-backref:hover {
	text-decoration: underline;
}

/* =====================================================
   HLAVIČKA – OSVALD CHLUBNA
===================================================== */

.site-header {
  background: var(--paper-2);
  border-bottom: 1px solid var(--line-faint);
  padding: 2rem 1rem;
}

/* vnitřní layout hlavičky */
.header-inner {
  max-width: 1280px;
  margin: 0 auto;

  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 2.5rem;
  align-items: center;
}

/* =====================================================
   FOTOGRAFIE
===================================================== */

.header-portrait img {
  display: block;
  width: 100%;
  height: auto;

  filter:
    grayscale(100%)
    contrast(1.05)
    brightness(1.05)
    sepia(12%);

  background: var(--paper);
  padding: .5rem;
  border: 1px solid rgba(0,0,0,.15);
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
}

/* =====================================================
   PODPIS + LETOPOČTY – TYPOGRAFICKÉ ŘEŠENÍ
===================================================== */

.header-title {
  position: relative;
  display: inline-block;
}

/* podpis */
.header-signature {
  display: block;
  max-width: 460px;
  width: 100%;
  opacity: .9;
}

/* letopočty – pod smyčkou jména */
.header-years {
  position: absolute;

  /* HRAJEME SI TADY */
  left: 22%;            /* posun pod jméno */
  bottom: 36%;          /* výška pod smyčkou */

  transform: translateX(-50%);

  font-family: "IBM Plex Mono", monospace;
  font-size: .85rem;
  letter-spacing: .25em;
  color: rgba(0,0,0,.65);
  white-space: nowrap;
}


/* =====================================================
   HLAVNÍ NAVIGACE
===================================================== */

.site-nav {
  max-width: 1280px;
  margin: 0 auto 2.5rem;
  padding: .75rem 1rem 0;

  border-bottom: 1px solid var(--line-faint);
}

/* seznam */
.nav-list {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}

/* položka */
.nav-list li {
  margin: 0;
}

/* odkaz */
.nav-list a {
  font-family: "IBM Plex Mono", monospace;
  font-size: .9rem;
  letter-spacing: .12em;
  text-transform: uppercase;

  color: var(--ink-blue);
  border-bottom: none;
  padding-bottom: .15rem;
}

/* hover */
.nav-list a:hover {
  color: var(--ink-red);
  border-bottom: 1px solid var(--ink-red);
}

/* aktivní položka */
.nav-list .current-menu-item > a,
.nav-list .current_page_item > a {
  color: var(--ink-red);
  border-bottom: 1px solid var(--ink-red);
}

/* =====================================================
   AKTUÁLNÍ OSOBA V SIDEBARU
===================================================== */

.abc-list li.is-current > a {
  color: var(--ink-red);
  font-weight: 600;
}

.abc-list li.is-current {
  position: relative;
}

/* =====================================================
   FOOTER
===================================================== */

.site-footer {
  margin-top: 2rem;
  padding: 2rem 1rem;
}

.footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  background: var(--paper-2);
  padding: 1.25rem 2rem;
  text-align: center;

  box-shadow:
    0 -1px 0 var(--line-faint),
    0 -6px 18px rgba(0,0,0,.08);
}

/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 768px) {

  .layout {
    grid-template-columns: 1fr;
  }

  .sidebar {
    order: 1;
  }

  .content {
    order: 2;
    max-width: none;
    padding: 1.5rem;
  }

  .header-inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .header-portrait {
    max-width: 220px;
    margin: 0 auto 1.5rem;
  }

  .header-signature {
    margin-left: auto;
    margin-right: auto;
  }

    .header-years {
    left: 50%;
    bottom: 18%;
  }

    .osoba-foto {
    float: none;
    width: 100%;
    max-width: 240px;
    margin: 0 auto 1.5rem auto;
  }

  .osoba-foto img {
    margin: 0 auto;
    box-shadow: 0 3px 6px rgba(0,0,0,.2);
  }

}
  
/* =====================================================
   SIDEBAR – OSOBY & SOUBORY (SJEDNOCENO)
===================================================== */

.osoby-nav,
.soubory-nav,
.provedeni-nav,
.bibliografie-nav {
  border-left: 2px solid var(--line-faint);
  padding: .75rem 0 .75rem 1.25rem;
}

.osoby-nav h2,
.soubory-nav h2,
.provedeni-nav h2 {
  margin-top: 0;
}

/* KOMPAKTNÍ ABC ŘÁDKA */
.osoby-nav .abc-group,
.soubory-nav .abc-group {
  display: block;
  margin: 0 0 .35rem 0;
}

/* tlačítko písmena */
.osoby-nav .abc-toggle,
.soubory-nav .abc-toggle {
  background: none;
  border: none;
  font-family: "IBM Plex Mono", monospace;
  font-size: .9rem;
  letter-spacing: .1em;
  color: var(--ink-blue);
  cursor: pointer;
  padding: .15rem .35rem;
}

/* aktivní skupina */
.osoby-nav .abc-group.open,
.soubory-nav .abc-group.open {
  display: block;
  margin-bottom: 1rem;
}

.osoby-nav .abc-group.open .abc-toggle,
.soubory-nav .abc-group.open .abc-toggle {
  text-decoration: underline;
}

/* seznam položek */
.osoby-nav .abc-list,
.soubory-nav .abc-list {
  list-style: none;
  margin: .5rem 0 1rem;
  padding-left: 0;
  display: none;
}

.osoby-nav .abc-group.open .abc-list,
.soubory-nav .abc-group.open .abc-list {
  display: block;
}

.osoby-nav .abc-list li,
.soubory-nav .abc-list li {
  margin: .25rem 0;
}

/* aktuální položka */
.osoby-nav .abc-list li.is-current > a,
.soubory-nav .abc-list li.is-current > a {
  color: var(--ink-red);
  font-weight: 600;
}

.osoby-nav .abc-group.is-current .abc-toggle,
.soubory-nav .abc-group.is-current .abc-toggle {
  color: var(--ink-red);
  font-weight: 600;
}

/* vyhledávání */
.osoby-search,
.soubory-search {
  width: 100%;
  padding: .4rem .5rem;
  margin-bottom: .75rem;
  font-family: "IBM Plex Mono", monospace;
  font-size: .85rem;
  background: var(--paper);
  border: 1px solid rgba(0,0,0,.15);
}

.osoby-search::placeholder,
.soubory-search::placeholder {
  color: rgba(0,0,0,.4);
  font-style: italic;
}

/* alias pod hlavním názvem */
.osoba-variant-note,
.soubor-alias-arrow {
  display: block;
  margin-left: 1.2em;
  font-size: 0.85em;
  opacity: 0.75;
}

/* =====================================================
   SIDEBAR – PROVEDENÍ
===================================================== */

/* základní seznam */
.provedeni-nav details {
  margin: 0 0 .35rem 0;
}

.provedeni-nav summary {
  cursor: pointer;
  font-family: "IBM Plex Mono", monospace;
  font-size: .9rem;
  letter-spacing: .05em;
  color: var(--ink-blue);
  padding: .15rem .35rem;
}

.provedeni-nav details[open] summary {
  text-decoration: underline;
}

/* seznam položek */
.provedeni-nav ul {
  list-style: none;
  margin: .5rem 0 1rem;
  padding-left: 0;
}

.provedeni-nav li {
  margin: .25rem 0;
}

/* aktuální položka */
.provedeni-nav li.is-current > a {
  color: var(--ink-red);
  font-weight: 600;
}

/* aktuální rok */
.provedeni-nav details[open] summary {
  color: var(--ink-red);
  font-weight: 600;
}

/* =====================================================
   JEDINÝ SKUTEČNÝ FIX PŘETÉKÁNÍ (FINÁLNÍ)
===================================================== */

@media (max-width: 768px) {

  /* odkazy MUSÍ zůstat inline */
  .osoba-detail a,
  .chl-literature a {
    display: inline;
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: none;
  }

  /* literatura se nikdy nejustifikuje */
  .chl-literature,
  .chl-literature li {
    text-align: left;
  }

  /* text nesmí mít pevnou typografickou šířku */
  .osoba-detail p,
  .osoba-detail li {
    max-width: 100%;
  }

  /* pojistka proti legacy obsahu */
  .osoba-detail {
    overflow-x: hidden;
  }
}

/* =====================================================
   LITERATURA – ZÁKAZ JUSTIFY (KRITICKÉ)
===================================================== */

.chl-literature,
.chl-literature p,
.chl-literature li {
  text-align: left !important;
  text-indent: 0 !important;
}

.chl-literature a {
  word-break: break-all;
  overflow-wrap: anywhere;
}


.chl-biblio-results {
	position: absolute;
	z-index: 100000; /* víc než admin menu */
	background: #fff;
	border: 1px solid #ccd0d4;
	margin-top: 2px;
	max-height: 240px;
	overflow-y: auto;
}

.chl-biblio-results li {
	padding: 6px 10px;
	cursor: pointer;
}

.chl-biblio-results li:hover {
	background: #f0f0f1;
}


/* =====================================================
   FOOTER – OPTICKÉ NAPOJENÍ NA OBSAH
===================================================== */

.site-main {
  padding-bottom: 2rem; /* místo velké mezery */
}

.site-footer {
  margin-top: 1.5rem; /* zmenšení mezery */
}

.site-footer .footer-inner {
  max-width: var(--layout-width); /* stejná šířka jako header */
  margin: 0 auto;
  background: var(--paper-2);
  padding: 1rem 2rem;
  box-shadow:
    0 -1px 0 var(--line-faint),
    0 -6px 18px rgba(0,0,0,.08);
}


/* =====================================================
   MOBIL: ZRUŠENÍ TYPografické ŠÍŘKY
===================================================== */

@media (max-width: 768px) {

  .osoba-detail p,
  .osoba-detail li {
    max-width: 100%;
  }

}

@media (max-width: 768px) {

  .osoba-foto {
    float: none !important;
    margin: 0 auto 1.5rem auto;
    max-width: 240px;
  }

  .osoba-detail p,
  .osoba-detail li {
    max-width: 100%;
  }

  .osoby-nav {
    overflow-x: hidden;
  }

}

.osoba-detail {
  overflow: hidden;
}

@media (max-width: 900px) {
  .soubor-foto {
    float: none;
    width: 100%;
    margin: 0 0 1.5rem 0;
  }
}


.home-sidebar .paper-card {
  background: var(--paper);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.75rem;

  box-shadow:
    0 6px 18px rgba(0,0,0,.12),
    inset 0 0 0 1px rgba(0,0,0,.05);
}

.home-sidebar .paper-card h3 {
  margin-top: 0;
  padding-bottom: .5rem;
  margin-bottom: 1rem;
}

.chlubna-card ul {
  margin: .75rem 0 0 1.2rem;
  padding-left: 0;
}

.chlubna-card li {
  margin-bottom: .35rem;
  line-height: 1.4;
}

.home-sidebar .paper-card ul {
  margin: .75rem 0 0 0;
  padding-left: 0;
}

.home-sidebar .paper-card li {
  margin-bottom: .35rem;
  line-height: 1.4;
}

.home-sidebar .vyroci-card h4 {
  margin: 1rem 0 .4rem;
  font-size: .9rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.home-sidebar .vyroci-list {
  list-style: none;
  margin: 0;
  padding: 0;          /* ← klíčové */
}

.home-sidebar .vyroci-list li {
  margin: 0 0 1rem 0;  /* bez levého odsazení */
  padding: 0;
  line-height: 1.35;
}

.home-sidebar .vyroci-list li strong {
  display: inline;
}

.home-sidebar .vyroci-char {
  margin-top: .25rem;
  margin-left: 0;      /* ← žádné odsazení */
  font-size: .9rem;
  opacity: .8;
}

.home-sidebar .vyroci-list li.is-round {
  font-weight: 600;
  color: var(--ink-red);
}

.home-sidebar .vyroci-age {
  font-size: .85rem;
  opacity: .7;
  font-weight: normal;
}

/* =========================================
   SIDEBAR – VÝROČÍ BEZ TYPOGRAFICKÉHO ODSAZENÍ
========================================= */

.home-sidebar,
.home-sidebar * {
  text-indent: 0 !important;
}

.misto-header {
    margin-bottom: 30px;
}

.misto-city {
    font-size: 1.1rem;
    margin-top: 5px;
}

.misto-address {
    color: #555;
}

.misto-types {
    margin-top: 10px;
    font-style: italic;
    color: #666;
}

.misto-events {
    margin-top: 15px;
}

.misto-event {
    margin-bottom: 4px;
}

.misto-media {
    display: flex;
    gap: 20px;
    margin: 30px 0;
}

.misto-map,
.misto-image {
    flex: 1;
}

.misto-map iframe {
    width: 100%;
    height: 260px;
    border: 0;
}

.misto-image img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;

    filter:
        grayscale(100%)
        contrast(1.05)
        brightness(1.05)
        sepia(10%);

    background: var(--paper);
    padding: .4rem;
    border: 1px solid rgba(0,0,0,.15);
    box-shadow: 0 4px 10px rgba(0,0,0,.25);
}

@media (max-width: 900px) {
    .misto-media {
        flex-direction: column;
    }
}

.single-provedeni .program-main-line {
    font-size: 0.95rem;
    line-height: 1.45;
    font-weight: bolder;
    margin-top: .5rem;
}
.program-solo-line {
    margin-left: 1.8em;
    font-size: 0.95em;
}

.program-ensemble-line {
    margin-left: 1.8em;
    font-size: 0.95em;
}

.vyroci-program {
    margin-top: 6px;
    margin-left: 20px;
    font-size: 0.95em;
}

.vyroci-program li {
    margin: 2px 0;
}

.premiere-label-small {
    margin-left: 6px;
    font-size: 0.75em;
    font-weight: 600;
    text-transform: uppercase;
    color: #b40000;
}

.skladba-opus {
    font-style: normal;
    color: #000;
}

.osoba-meta {
    margin-left: 1.2em;
}

.osoba-nazev {
    margin-left: 2.4em;
}

.skladba-meta {
    margin-left: 1.2em;
}

.skladba-interpreti {
    margin-left: 3.6em;
}

.osoba-nazev-provedeni,
.skladba-nazev-provedeni {
    margin-left: 2.4em;
}

.skladba-provedeni-item {
    margin-bottom: 2em;
}

.program-sub-item {
    padding-left: 1.2em;
}

.program-main-text {
    font-weight: 700;   /* autor + skladba tučně */
}

.program-note-text {
    font-weight: 400;   /* poznámka normální */
}

.timeline {
  position: relative;
  margin-top: 2rem;
}

.timeline-item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.timeline-date {
  font-family: "IBM Plex Mono", monospace;
  font-size: .9rem;
  letter-spacing: .05em;
  color: var(--ink-blue);
}

.timeline-content a {
  font-weight: 600;
}

/* ======================================
   ČASOVÁ OSA – VERTIKÁLNÍ
====================================== */

.timeline-vertical {
  position: relative;
  margin: 3rem 0;
  padding-left: 2rem;
}

.timeline-vertical::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--ink-blue);
  opacity: .2;
}

.timeline-entry {
  position: relative;
  margin-bottom: 2rem;
}

.timeline-marker {
  position: absolute;
  left: -2px;
  top: 4px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--paper);
  border: 2px solid var(--ink-blue);
}

.timeline-body {
  padding-left: 2rem;
}

.timeline-date {
  font-family: "IBM Plex Mono", monospace;
  font-size: .85rem;
  letter-spacing: .08em;
  color: var(--ink-blue);
  margin-bottom: .3rem;
}

.timeline-title a {
  font-weight: 600;
  border-bottom: none;
}

.timeline-title a:hover {
  border-bottom: 1px solid var(--ink-red);
}

/* běžné provedení */
.timeline-entry.timeline-provedeni .timeline-marker {
  border-color: var(--ink-blue);
  background: var(--paper);
}

/* premiéra */
.timeline-entry.timeline-premiera .timeline-marker {
  border-color: var(--ink-red);
  background: var(--ink-red);
}

/* koncertní premiéra */
.timeline-entry.timeline-koncertni-premiera .timeline-marker {
  border-color: darkred;
  background: darkred;
}

/* rozhlasová premiéra */
.timeline-entry.timeline-rozhlasova-premiera .timeline-marker {
  border-color: purple;
  background: purple;
}

/* rozhlasové provedení */
.timeline-entry.timeline-rozhlasove-provedeni .timeline-marker {
  border-color: #555;
  background: #555;
}