/* Assisi 2026 — průvodce. Bez externích zdrojů, mobile-first. */
:root {
  --kamen:      #faf4ef;   /* vápenec z Monte Subasio */
  --kamen-tmav: #efe2d8;
  --ruz:        #d9a89a;   /* růžový pruh fasád */
  --modr:       #17325b;   /* ultramarín fresek */
  --modr-svet:  #3a6099;
  --okr:        #a8762c;
  --zem:        #6d5445;
  --papir:      #fffdfb;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--kamen);
  color: var(--modr);
  font: 17px/1.65 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  overflow-wrap: break-word;
}
.wrap { max-width: 42rem; margin: 0 auto; padding: 0 1.15rem 4rem; }

/* --- typografie --- */
h1, h2, h3 { font-family: Georgia, "Iowan Old Style", "Times New Roman", serif; }
h1 { font-size: 2.1rem; line-height: 1.12; margin: .1rem 0 .3rem; font-weight: 600; }
h2 { font-size: 1.3rem; line-height: 1.25; margin: 2.4rem 0 .6rem; font-weight: 600; }
.it { font-style: italic; color: var(--zem); margin: 0 0 1.4rem; font-size: .97rem; }
.podtitul { font-size: 1.05rem; color: var(--modr-svet); margin: 0 0 1.6rem; }
p { margin: 0 0 1.05rem; }
a { color: var(--modr-svet); }
a:focus-visible, .zpet:focus-visible { outline: 3px solid var(--okr); outline-offset: 3px; }
em { color: var(--zem); }

/* --- hlavička s výškou --- */
.hlava { padding: 1.6rem 0 0; }
.vyska {
  font: 600 .78rem/1 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: .09em; text-transform: uppercase;
  color: var(--okr); display: block; margin-bottom: .55rem;
}

/* --- pruhovaný předěl, jako fasáda Santa Chiary --- */
.pruhy { height: 9px; border: 0; margin: 1.5rem 0 0;
  background: repeating-linear-gradient(
    to bottom, var(--ruz) 0 3px, var(--kamen) 3px 6px, var(--modr) 6px 9px); }

/* --- rychlý přehled --- */
.rychle { background: var(--papir); border: 1px solid var(--kamen-tmav);
  border-left: 4px solid var(--modr); padding: .95rem 1.1rem; margin: 0 0 1.8rem; }
/* Mezi řádky vede vodorovná linka. Odstup sloupců proto dělá padding uvnitř
   dt, ne column-gap — přes mezeru v gridu by se čára nekreslila a rozpadla by
   se na dva kusy. */
.rychle dl { margin: 0; display: grid; grid-template-columns: auto 1fr;
  gap: 0; }
.rychle dt { font: 600 .8rem/1.5 ui-monospace, "SF Mono", Menlo, monospace;
  text-transform: uppercase; letter-spacing: .04em; color: var(--zem);
  padding-right: .9rem; }
.rychle dd { margin: 0; }
.rychle dt, .rychle dd { border-top: 1px solid var(--kamen-tmav);
  padding-top: .45rem; padding-bottom: .45rem; }
/* První řádek linku nemá — ta by splynula s horním okrajem rámečku. */
.rychle dl > dt:first-child,
.rychle dl > dt:first-child + dd { border-top: 0; padding-top: 0; }
.pozor { margin: .9rem 0 0; padding-top: .8rem; border-top: 1px solid var(--kamen-tmav);
  font-size: .95rem; color: var(--okr); }
.pozor strong { color: var(--okr); }

/* --- horní lišta: značka vlevo (domů), menu vpravo --- */
.lista { position: relative; display: flex; align-items: baseline;
  justify-content: space-between; gap: 1rem; margin: .9rem 0 0;
  border-bottom: 1px solid var(--kamen-tmav); }
.znacka { font-family: Georgia, "Iowan Old Style", serif; font-size: 1.15rem;
  font-weight: 600; letter-spacing: .02em; padding: .5rem 0;
  color: var(--modr); text-decoration: none; }
a.znacka:hover, a.znacka:focus-visible { color: var(--modr-svet);
  text-decoration: underline; }

/* --- rozbalovací menu (bez JS, přes <details>) --- */
.menu { border-bottom: 0; }
.menu summary { list-style: none; cursor: pointer; padding: .55rem 0;
  font: 600 .8rem/1 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: .09em; text-transform: uppercase; color: var(--modr-svet); }
.menu summary::-webkit-details-marker { display: none; }
.menu summary::after { content: " \25be"; }
.menu[open] summary::after { content: " \25b4"; }
.menu summary:focus-visible { outline: 3px solid var(--okr); outline-offset: 3px; }
/* Rozbalený seznam je dropdown přes celou šířku lišty — kdyby zůstal uvnitř
   flexové položky, byl by úzký jako samotný nápis MENU. */
/* Položek je přes patnáct, takže se rozbalený seznam na telefon nevejde —
   proto se scrolluje sám v sobě místo toho, aby přetekl pod okraj obrazovky.
   overscroll-behavior brání tomu, aby se po dojetí na konec začala posouvat
   stránka pod menu. */
.menu ul { list-style: none; margin: 0; padding: .1rem 1rem .6rem;
  position: absolute; left: 0; right: 0; top: 100%; z-index: 20;
  max-height: min(75vh, 34rem); overflow-y: auto; overscroll-behavior: contain;
  background: var(--papir); border: 1px solid var(--kamen-tmav);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .1); }
.menu li { margin: 0; }
.menu a { display: block; padding: .5rem 0; text-decoration: none;
  border-top: 1px solid var(--kamen-tmav); }
.menu a[aria-current="page"] { color: var(--zem); font-weight: 600; }
.menu a[aria-current="page"]::after { content: " \2022"; color: var(--okr); }
.menu .skup { padding: .8rem 0 .1rem; border-top: 1px solid var(--kamen-tmav);
  font: 600 .72rem/1 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: .1em; text-transform: uppercase; color: var(--zem); }
.menu .skup + li a { border-top: 0; }

/* --- časová osa Františkova života --- */
.zivot { list-style: none; margin: 0; padding: 0; }
.zivot li { display: grid; grid-template-columns: 5.6rem 1fr; gap: 1rem;
  padding: .8rem 0; border-top: 1px solid var(--kamen-tmav); align-items: baseline; }
.zivot .rok { font: 600 .82rem/1.5 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--okr); text-align: right; }
.zivot p { margin: 0; }
.zivot .kam { display: block; margin-top: .3rem; font-size: .88rem; }

/* --- žebříček míst na indexu, číslovaný podle významnosti --- */
.osa { list-style: none; margin: 0; padding: 0; }
.osa li { position: relative; margin: 0 0 .15rem; }
.osa a { display: grid; grid-template-columns: 2.3rem 1fr; align-items: baseline;
  gap: 1rem; padding: .62rem 0; text-decoration: none; color: inherit; }
.osa a:hover .nazev, .osa a:focus-visible .nazev { text-decoration: underline; }
.osa .poradi { font: 600 1.15rem/1.3 ui-monospace, "SF Mono", Menlo, monospace;
  font-variant-numeric: tabular-nums; color: var(--okr); text-align: right; }
.osa .nazev { font-family: Georgia, "Iowan Old Style", serif; font-size: 1.12rem;
  display: block; line-height: 1.25; }
.osa .co { font-size: .88rem; color: var(--zem); display: block; }
.osa .m { font: 600 .74rem/1.8 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: .07em; color: var(--zem); display: block; }

/* --- seznam toalet: stejná mřížka jako .osa, ale bez odkazu na podstránku --- */
.osa.wc li { display: grid; grid-template-columns: 2.3rem 1fr; gap: 1rem;
  padding: .62rem 0; align-items: baseline; }
.osa.wc .app-mini { grid-column: 2; margin: .1rem 0 0; }

/* --- rozcestník na konci indexu --- */
.rozc { list-style: none; margin: 0; padding: 0; }
.rozc a { display: block; padding: .7rem 0; text-decoration: none; color: inherit;
  border-top: 1px solid var(--kamen-tmav); }
.rozc strong { color: var(--modr-svet); font-weight: 600; }
.rozc a:hover strong, .rozc a:focus-visible strong { text-decoration: underline; }
.rozc span { display: block; font-size: .88rem; color: var(--zem); }

/* --- tabulka toalet v památkách: název vlevo, ano/ne zarovnané vpravo --- */
.wc-pam dl { grid-template-columns: 1fr auto; }
.wc-pam dd { text-align: right; white-space: nowrap; }

/* --- seznam s dlouhými popisy: na mobilu pod sebe, jinak se popis vytlačí
       do úzkého pruhu vedle dlouhého názvu --- */
/* V jednosloupcovém režimu stojí dd pod svým dt, takže linka patří jen nad
   dt — mezi dvojice, ne doprostřed jedné. */
.popis dl { grid-template-columns: 1fr; }
.popis dt { padding-top: .7rem; padding-right: 0; }
.popis dd { border-top: 0; padding-top: .1rem; padding-bottom: .7rem; }
.popis dl > dt:first-child { padding-top: 0; }
.popis dl > dt:first-child + dd { padding-top: .1rem; }
.popis dl > dd:last-child { padding-bottom: 0; }
@media (min-width: 34rem) {
  /* Ve dvou sloupcích jsou dt a dd vedle sebe — linka jde přes oba. */
  .popis dl { grid-template-columns: 9.5rem 1fr; }
  .popis dt { padding-right: .9rem; padding-top: .45rem;
    padding-bottom: .45rem; }
  .popis dd { border-top: 1px solid var(--kamen-tmav);
    padding-top: .45rem; padding-bottom: .45rem; }
  .popis dl > dt:first-child,
  .popis dl > dt:first-child + dd { border-top: 0; padding-top: 0; }
  .popis dl > dd:last-child { padding-bottom: .45rem; }
}

/* --- seznam jídel s fotkami --- */
.menu-jidel { list-style: none; margin: 0; padding: 0; }
.menu-jidel li { margin: 0 0 1.9rem; padding-top: 1.1rem;
  border-top: 1px solid var(--kamen-tmav); }
.menu-jidel h3 { font-size: 1.15rem; margin: 0 0 .6rem; font-weight: 600; }
.menu-jidel p { margin: 0; }
.foto-jidlo { margin: 0 0 .8rem; }
.foto-jidlo img { width: 100%; height: auto; display: block; }
.foto-jidlo figcaption { margin-top: .4rem; font-size: .78rem; color: var(--zem); }

/* --- role přestupního uzlu --- */
.role { font: 600 .78rem/1 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: .08em; text-transform: uppercase; color: var(--okr);
  margin: -.35rem 0 .9rem; }

/* --- obrázky --- */
.foto { margin: 0 0 1.7rem; }
.foto img { width: 100%; height: auto; display: block; border: 0; }
.foto figcaption { margin-top: .45rem; font-size: .78rem; }
figure { margin: 2rem 0; }
figure img { width: 100%; height: auto; display: block;
  border: 1px solid var(--kamen-tmav); background: var(--papir); }
.uvod img { max-width: 15rem; margin: 0 auto; }
figcaption { font-size: .84rem; line-height: 1.5; color: var(--zem);
  margin-top: .6rem; }

.mapa { position: relative; margin: .55rem 0 1.1rem; height: var(--v, 220px);
  border: 1px solid var(--kamen-tmav); background: var(--papir); }
.mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.osa .mapa { margin: .1rem 0 1.5rem; }
.osa .app-mini { clear: both; }
.pod-mapou { font-size: .82rem; color: var(--zem); margin: -.7rem 0 1.6rem; }
.app-mini { margin: -1.15rem 0 1.7rem; font-size: .87rem; line-height: 2; }
.osa .app-mini a { display: inline; padding: 0; gap: 0; }
.app-mini a { white-space: nowrap; text-decoration: none;
  border-bottom: 1px solid var(--kamen-tmav); padding-bottom: 1px; }
.app-mini a + a { margin-left: 1.15rem; }
.app-mini a:hover, .app-mini a:focus-visible { border-bottom-color: var(--okr); }
h2.vse { margin-bottom: .5rem; }

.appky { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 .8rem; }
/* Navigace je doplněk k tlačítkům pod mapou, ne hlavní akce — proto vždy
   sekundární vzhled, i když je na stránce sama. */
.app { display: inline-block; padding: .62rem 1rem; text-decoration: none;
  background: transparent; color: var(--modr-svet); font-size: .93rem;
  border: 1px solid var(--kamen-tmav); }
.app:hover, .app:focus-visible { border-color: var(--okr); }
.webmapa { font-size: .9rem; margin: 0; }

/* --- tlačítka pod každou mapou: do aplikace (geo:) a na web --- */
.mapa-app { margin: -.75rem 0 1.4rem; text-align: right; font-size: .86rem;
  display: flex; gap: .5rem; justify-content: flex-end; flex-wrap: wrap; }
.mapa-app a { display: inline-block; padding: .4rem .8rem; text-decoration: none;
  color: var(--modr-svet); background: var(--papir);
  border: 1px solid var(--kamen-tmav); }
.mapa-app a.hlavni { background: var(--modr); color: var(--kamen);
  border-color: var(--modr); font-weight: 600; }
.mapa-app a:hover, .mapa-app a:focus-visible { border-color: var(--okr); }
.osa .mapa-app { margin: -1.3rem 0 .55rem; }

/* --- tabulka otevíracích dob --- */
/* Obal se scrolluje sám, aby se stránka nikdy nerozjela do šířky. */
.tab-obal { overflow-x: auto; margin: 0 0 1.6rem;
  border: 1px solid var(--kamen-tmav); background: var(--papir); }
.tab { border-collapse: collapse; width: 100%; font-size: .87rem; }
.tab th, .tab td { text-align: left; vertical-align: top;
  padding: .5rem .6rem; border-top: 1px solid var(--kamen-tmav); }
.tab thead th { border-top: 0; background: var(--kamen-tmav);
  font: 600 .72rem/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: .05em; text-transform: uppercase; color: var(--zem); }
/* Název místa zůstává vidět i při posunu tabulky do stran — bez toho by
   u tabulky otevíracích dob nebylo poznat, ke kterému místu sloupec patří. */
.tab tbody th { font-weight: 600; min-width: 7.5rem;
  position: sticky; left: 0; background: var(--papir); }
.tab thead th:first-child { position: sticky; left: 0; z-index: 1; }
.tab tbody th a { text-decoration: none; }
.tab tbody th a:hover, .tab tbody th a:focus-visible { text-decoration: underline; }
/* Poznámka pod řádkem místa — patří k němu, proto bez vlastní horní linky. */
.tab .pozn td { border-top: 0; padding-top: 0; font-size: .82rem;
  color: var(--okr); }
/* Tabulka dob má tři textové sloupce — bez zúžení by na mobilu přetekla.
   Pevná šířka místo min-width nechá text zalomit tam, kde je potřeba. */
.tab.doby { font-size: .82rem; }
.tab.doby th, .tab.doby td { padding: .45rem .5rem; }
.tab.doby tbody th { min-width: 6.2rem; }
.tab.doby td { width: 38%; }

/* --- Chvalozpěv: originál a překlad vedle sebe, na mobilu pod sebou --- */
.cantico { margin: 0 0 1.8rem; }
.sloka { padding: 1rem 0; border-top: 1px solid var(--kamen-tmav); }
.sloka p { margin: 0; }
.sloka .orig { font-family: Georgia, "Iowan Old Style", serif; font-style: italic;
  line-height: 1.55; }
.sloka .prek { margin-top: .7rem; font-size: .94rem; color: var(--zem);
  line-height: 1.55; }
@media (min-width: 40rem) {
  .sloka { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; }
  .sloka .prek { margin-top: 0; }
}

/* --- seznam scén Giottova cyklu: mřížka jako .osa, ale bez odkazů --- */
.osa.cyklus li { display: grid; grid-template-columns: 2.3rem 1fr; gap: 1rem;
  padding: .5rem 0; align-items: baseline;
  border-top: 1px solid var(--kamen-tmav); }
.osa.cyklus .nazev { font-size: 1rem; }

/* --- odkazy dole --- */
.dalsi { margin-top: 2.6rem; padding-top: 1.2rem; border-top: 1px solid var(--kamen-tmav); }
.zpet { display: inline-block; margin: 1.8rem 0 0; font-size: .93rem;
  text-decoration: none; color: var(--modr-svet); }
.zpet::before { content: "\2190\00a0"; }
footer { margin-top: 2.6rem; padding-top: 1.1rem; border-top: 1px solid var(--kamen-tmav);
  font-size: .84rem; color: var(--zem); }

/* --- tmavý režim --- */
@media (prefers-color-scheme: dark) {
  :root {
    --kamen:      #141b28;
    --kamen-tmav: #26303f;
    --papir:      #1b2331;
    --modr:       #e6ecf5;
    --modr-svet:  #9dbbe4;
    --okr:        #dda94e;
    --zem:        #a9b6c8;
    --ruz:        #8d5f56;
  }
}
@media (min-width: 40rem) {
  h1 { font-size: 2.5rem; }
  .wrap { padding-top: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}
