/*
Theme Name: Knihovna Bělov
Theme URI: https://belov.cz
Author: Obecní knihovna Bělov
Description: Vlastní šablona pro web Obecní knihovny Bělov. Editorský vzhled se serifovými nadpisy, krémovým pozadím a červeným akcentem. Obálky knih se načítají z ObalkyKnih.cz a Google Books.
Version: 1.10.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: knihovna-belov
*/

:root{
  --cream:#faf6f0;
  --cream-dark:#f3ece1;
  --ink:#1d1d1b;
  --grey:#6b6b68;
  --red:#c0392b;
  --red-dark:#9c2d22;
  --dark:#211f1d;
  --line:#e2dacd;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Source Sans 3',sans-serif;color:var(--ink);background:#fff;line-height:1.6}
h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:600;line-height:1.2}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.label{font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--red);font-weight:600}
.btn{display:inline-block;border:1px solid var(--ink);padding:.7em 1.8em;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;transition:.25s;background:none;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--ink);color:#fff}
.btn.red{background:var(--red);border-color:var(--red);color:#fff}
.btn.red:hover{background:var(--red-dark)}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;clip:auto;z-index:1000;background:var(--ink);color:#fff;padding:.7em 1.2em;font-size:.85rem;border-radius:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--red);outline-offset:2px}
main#obsah:focus{outline:none}

/* TOP BAR */
.topbar{background:var(--dark);color:#cfc9c0;font-size:.8rem;padding:.45em 0}
.topbar .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5em}
.topbar strong{color:#fff;font-weight:600}
.topbar .open-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7bc47f;margin-right:.5em}
.topbar .open-dot.closed{background:#b0a89c}

/* HEADER */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:14px}
.brand .owl{width:46px;height:46px}
.brand .custom-logo{width:46px;height:46px;object-fit:contain}
.brand-name{font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.brand-name span{display:block;font-size:.66rem;font-weight:400;letter-spacing:.12em;color:var(--grey)}
.main-nav ul{display:flex;list-style:none;gap:30px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}
.main-nav a{padding-bottom:4px;border-bottom:2px solid transparent;transition:.2s}
.main-nav a:hover,.main-nav .current-menu-item>a,.main-nav .current_page_item>a{color:var(--red);border-color:var(--red)}
.burger{display:none;font-size:1.5rem;background:none;border:none;cursor:pointer;line-height:1;padding:.2em .4em}

/* HERO */
.hero{background:var(--cream);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding-top:72px;padding-bottom:72px}
.hero h1{font-size:clamp(2.2rem,5vw,3.4rem);margin:.4em 0 .5em}
.hero h1 em{font-style:italic;color:var(--red)}
.hero p.lead{font-size:1.05rem;color:var(--grey);max-width:42ch;margin-bottom:2em}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.hero-visual{position:relative}
.hero-visual .photo{aspect-ratio:4/4.6;background:linear-gradient(160deg,#d9c9b2,#b49a78 60%,#8a7256);display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Playfair Display',serif;font-size:.95rem;text-align:center;padding:2em;overflow:hidden}
.hero-visual .photo img{width:100%;height:100%;object-fit:cover}
.hours-card{position:absolute;bottom:-28px;left:-28px;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.12);padding:26px 30px;min-width:230px}
.hours-card h4{font-size:1rem;margin-bottom:.6em}
.hours-card table{font-size:.88rem;border-collapse:collapse;width:100%}
.hours-card td{padding:.18em 0;color:var(--grey)}
.hours-card td:last-child{text-align:right;color:var(--ink);font-weight:600}
.hours-card .note{font-size:.75rem;color:var(--grey);margin-top:.8em;border-top:1px solid var(--line);padding-top:.7em}

/* SECTIONS */
.section{padding:80px 0}
.sec-head{text-align:center;max-width:560px;margin:0 auto 56px}
.sec-head h2{font-size:2rem;margin:.35em 0 .4em}
.sec-head p{color:var(--grey)}
.center{text-align:center;margin-top:44px}

/* AKTUALITY — karty */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.card{background:#fff}
.card .thumb{aspect-ratio:16/10;background:var(--cream-dark);display:flex;align-items:center;justify-content:center;color:#a8987f;font-family:'Playfair Display',serif;font-size:.85rem;text-align:center;overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .meta{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin:1.2em 0 .4em}
.card h3{font-size:1.15rem;margin-bottom:.4em}
.card h3 a:hover{color:var(--red)}
.card p{font-size:.92rem;color:var(--grey)}
.card a.more{display:inline-block;margin-top:.9em;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:2px}
.card a.more:hover{color:var(--red);border-color:var(--red)}

/* AKCE — řádkový výpis */
.events{background:var(--cream)}
.event-row{display:grid;grid-template-columns:150px 1fr auto;gap:24px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line)}
.event-row:first-of-type{border-top:1px solid var(--line)}
.event-date{font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--grey)}
.event-date strong{display:block;font-family:'Playfair Display',serif;font-size:1.5rem;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:600}
.event-row h3{font-size:1.25rem}
.event-row h3 a:hover{color:var(--red)}
.event-row .place{font-size:.85rem;color:var(--grey);margin-top:.2em}
.events-empty{text-align:center;color:var(--grey);padding:1.5em 0}

/* KNIHY CTA */
.books-cta{text-align:center}
.books-cta .lead{color:var(--grey);max-width:54ch;margin:0 auto 2em}

/* POPULÁRNÍ KNIHY */
.popular{background:var(--cream)}
.pop-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:28px}
.pop-book{text-align:center}
.pop-cover{aspect-ratio:2/3;background:var(--cream-dark);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.12);transition:.25s;margin-bottom:1em}
.pop-book:hover .pop-cover{transform:translateY(-5px);box-shadow:0 16px 32px rgba(0,0,0,.18)}
.pop-cover img{width:100%;height:100%;object-fit:cover}
.pop-cover .ph{font-family:'Playfair Display',serif;font-size:.8rem;color:#a8987f;padding:1em;text-align:center}
.pop-book h3{font-size:.98rem;margin-bottom:.15em}
.pop-book .author{font-size:.82rem;color:var(--grey)}
.pop-book .pop-desc{font-size:.78rem;color:var(--grey);margin-top:.4em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pop-grid-vypis{grid-template-columns:repeat(5,1fr);gap:40px 26px}
.pop-grid-vypis .pop-book{text-align:left}
.pop-credit{text-align:center;font-size:.75rem;color:var(--grey);margin-top:40px}
.pop-credit a{border-bottom:1px solid var(--line)}
.pop-credit a:hover{color:var(--red);border-color:var(--red)}
.kniha-detail{display:grid;grid-template-columns:1fr 2fr;gap:44px;align-items:start}
.kniha-obal .pop-cover{margin-bottom:0}
.kniha-detail:hover .pop-cover{transform:none;box-shadow:0 10px 24px rgba(0,0,0,.12)}
.kniha-text{text-align:left}
.kniha-text h1{font-size:clamp(1.6rem,3.5vw,2.3rem)}
.kniha-text .single-autor{font-family:'Playfair Display',serif;font-style:italic;font-size:1.15rem;color:var(--grey);margin:.4em 0 1.4em}
.kniha-text .entry-content{max-width:none;margin:0;text-align:left}
.kniha-text .pop-credit{text-align:left;margin-top:20px}
.kniha-nav{display:flex;justify-content:space-between;gap:24px;margin-top:48px;border-top:1px solid var(--line);padding-top:24px}
.kniha-nav-next{margin-left:auto}
.kniha-nav a{display:flex;flex-direction:column;gap:.25em;color:var(--ink);max-width:22ch}
.kniha-nav a:hover{color:var(--red)}
.kniha-nav-next a{text-align:right;align-items:flex-end}
.kniha-nav .kniha-nav-popis{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.kniha-nav .kniha-nav-titul{font-family:'Playfair Display',serif;font-size:1.02rem;line-height:1.3}
.foto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.foto-card{display:block}
.foto-card .foto-thumb{display:block;aspect-ratio:4/3;background:var(--cream-dark);overflow:hidden}
.foto-card .foto-thumb img{width:100%;height:100%;object-fit:cover;transition:.3s}
.foto-card:hover .foto-thumb img{transform:scale(1.04)}
.foto-card .foto-thumb .ph{display:flex;align-items:center;justify-content:center;height:100%;color:#a8987f;font-family:'Playfair Display',serif;padding:1em;text-align:center}
.foto-card .foto-meta{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin:.9em 0 .3em}
.foto-card .foto-title{display:block;font-family:'Playfair Display',serif;font-size:1.15rem}
.foto-card:hover .foto-title{color:var(--red)}
.foto-intro{max-width:760px;margin:0 auto 44px;color:var(--grey)}
.foto-intro>*+*{margin-top:1em}

/* Detail fotogalerie — mřížka náhledů (zachová orientaci) + lightbox */
.entry-content.galerie-text{max-width:none;margin:0 0 80px}
.galerie-text,.galerie-text *{text-align:left!important}
.galerie-grid{column-count:5;column-gap:12px;opacity:0;transition:opacity .6s ease}
.galerie-box.is-ready .galerie-grid{opacity:1}
.galerie-thumb{display:block;width:100%;margin:0 0 12px;padding:0;border:0;background:var(--cream-dark);cursor:pointer;break-inside:avoid;line-height:0;overflow:hidden;border-radius:2px}
.galerie-thumb img{width:100%;height:auto;transition:transform .3s ease}
.galerie-thumb:hover img,.galerie-thumb:focus-visible img{transform:scale(1.04)}
.galerie-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;min-height:200px}
.galerie-box.is-ready .galerie-loader{display:none}
.galerie-loader span{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:kb-spin .8s linear infinite}
@keyframes kb-spin{to{transform:rotate(360deg)}}
.galerie-box{position:relative}
.galerie-box.is-collapsed{max-height:360px;overflow:hidden}
.galerie-fade{position:absolute;left:0;right:0;bottom:0;height:130px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff);pointer-events:none}
.galerie-box:not(.is-collapsed) .galerie-fade{display:none}
.galerie-more{display:flex;align-items:center;gap:.6em;margin:20px auto 0}
.galerie-more-sip{display:inline-block;transition:transform .25s ease;font-size:.9em}
.galerie-more[aria-expanded="true"] .galerie-more-sip{transform:rotate(180deg)}

.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(20,18,16,.94);display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden}
.lightbox[hidden]{display:none}
.lb-stage{margin:0;max-width:92vw;text-align:center}
.lb-img{display:block;margin:0 auto 12px;max-width:92vw;max-height:80vh;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 50px rgba(0,0,0,.5);user-select:none;-webkit-user-drag:none;cursor:grab;touch-action:pan-y;opacity:0;transition:opacity .3s ease,transform .35s ease}
.lb-img.is-ready{opacity:1}
.lb-caption{color:#e7e2da;font-size:.85rem;text-align:center;max-width:60ch}
.lb-counter{position:absolute;top:20px;left:24px;z-index:2;color:#cfc9c0;font-size:.8rem;letter-spacing:.12em}
.lb-close,.lb-prev,.lb-next{position:absolute;z-index:2;background:rgba(0,0,0,.45);color:#fff;border:0;cursor:pointer;line-height:1;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.2s}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:var(--red)}
.lb-close{top:16px;right:24px;font-size:1.4rem}
.lb-prev{left:16px;top:50%;transform:translateY(-50%);font-size:2.2rem}
.lb-next{right:16px;top:50%;transform:translateY(-50%);font-size:2.2rem}

/* O KNIHOVNĚ pás */
.about{background:var(--dark);color:#d8d2c8}
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.about h2{color:#fff;font-size:2rem;margin:.35em 0 .6em}
.about p{margin-bottom:1em;font-weight:300}
.about .facts{display:flex;gap:40px;margin-top:1.8em}
.about .fact strong{display:block;font-family:'Playfair Display',serif;font-size:2rem;color:#fff}
.about .fact span{font-size:.8rem;letter-spacing:.15em;text-transform:uppercase}
.about .photo{aspect-ratio:4/3;background:linear-gradient(150deg,#5c4f41,#3b332b);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;text-align:center;padding:2em;color:#bfb5a4;overflow:hidden}
.about .photo img{width:100%;height:100%;object-fit:cover}
.about .btn{border-color:#d8d2c8;color:#d8d2c8;margin-top:1em}
.about .btn:hover{background:#d8d2c8;color:var(--dark)}

/* CITÁT */
.quote{background:var(--cream);text-align:center}
.quote blockquote{font-family:'Playfair Display',serif;font-style:italic;font-size:1.6rem;max-width:34ch;margin:0 auto .8em}
.quote cite{font-style:normal;font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.quote .qmark{font-family:'Playfair Display',serif;font-size:4rem;color:var(--red);line-height:1}
.quote-rotace{position:relative;min-height:9em}
.quote-item{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s ease;pointer-events:none}
.quote-item.is-active{opacity:1;visibility:visible;position:relative;pointer-events:auto}
.quote .center{margin-top:24px}
@media(prefers-reduced-motion:reduce){.quote-item{transition:none}.galerie-thumb:not(.is-loaded){animation:none}.galerie-thumb img,.lb-img{transition:none}}

/* VNITŘNÍ STRÁNKY */
.page-head{background:var(--cream);padding:56px 0}
.page-head h1{font-size:clamp(1.8rem,4vw,2.6rem)}
.page-head .meta{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:.5em}
.page-head .single-autor{font-family:'Playfair Display',serif;font-style:italic;font-size:1.15rem;color:var(--grey);margin-top:.4em}
.content-area{padding:56px 0}
.entry-content{max-width:720px;margin:0 auto}
.entry-content>*+*{margin-top:1.1em}
.entry-content h2{font-size:1.6rem;margin-top:1.6em}
.entry-content h3{font-size:1.25rem;margin-top:1.4em}
.entry-content a{color:var(--red);border-bottom:1px solid var(--line)}
.entry-content a:hover{border-color:var(--red)}
.entry-content ul,.entry-content ol{padding-left:1.4em}
.entry-content img{margin:1.5em auto}
.entry-content .wp-block-gallery img,.entry-content .gallery img{margin:0}
.clanek-layout{display:grid;grid-template-columns:1fr 2fr;grid-template-areas:"foto main" "posledni main";gap:0 48px;align-items:start}
.clanek-foto{grid-area:foto}
.clanek-foto img{width:100%;height:auto;display:block;border-radius:2px}
.clanek-main{grid-area:main}
.clanek-main .entry-content.clanek{max-width:none;margin:0;text-align:left}
.clanek-posledni{grid-area:posledni;margin-top:30px}
.clanek-posledni h2{font-size:1.05rem;margin-bottom:.5em}
.clanek-posledni ul{list-style:none;padding:0;margin:0}
.clanek-posledni li{padding:.6em 0;border-bottom:1px solid var(--line)}
.clanek-posledni li a{display:block;font-family:'Playfair Display',serif;font-size:.96rem;line-height:1.3}
.clanek-posledni li a:hover{color:var(--red)}
.clanek-posledni .datum{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);margin-top:.25em}
.entry-content blockquote{border-left:3px solid var(--red);padding-left:1.2em;font-style:italic;color:var(--grey)}
.entry-content .wp-caption-text{font-size:.8rem;color:var(--grey);text-align:center}
.akce-info{background:var(--cream);padding:1.2em 1.5em;margin-bottom:2em;font-size:.95rem;max-width:720px;margin-left:auto;margin-right:auto}
.akce-info span{display:inline-block;margin-right:1.6em}
.akce-info strong{font-weight:600}
.citaty{max-width:980px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:40px 48px}
.citat{border-left:3px solid var(--red);padding-left:1.4em}
.citat blockquote{font-family:'Playfair Display',serif;font-size:1.3rem;font-style:italic;line-height:1.45;color:var(--ink)}
.citat blockquote p{margin:0 0 .4em}
.citat figcaption{margin-top:.5em;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.filtr{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}
.filtr-chip{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;padding:.55em 1.3em;border:1px solid var(--line);color:var(--grey);transition:.2s}
.filtr-chip:hover{border-color:var(--ink);color:var(--ink)}
.filtr-chip.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.pagination{text-align:center;margin-top:44px;font-size:.85rem;letter-spacing:.1em}
.pagination ul{list-style:none;display:inline-flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}
.pagination li{margin:0}
.pagination a.page-numbers,.pagination span.page-numbers{display:inline-block;padding:.4em .9em;border:1px solid var(--line)}
.pagination span.page-numbers.dots{border-color:transparent}
.pagination span.page-numbers.current,.pagination a.page-numbers:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* FOOTER */
.site-footer{background:var(--dark);color:#a9a298;font-size:.9rem;font-weight:300}
.foot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;padding:64px 0 48px}
.site-footer h4{color:#fff;font-family:'Playfair Display',serif;font-size:1.05rem;margin-bottom:1em}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:.5em}
.site-footer a:hover{color:#fff}
.site-footer .open-line{display:flex;justify-content:space-between;border-bottom:1px dotted #4a453f;padding:.3em 0}
.site-footer .foot-note{font-size:.78rem;margin-top:.8em}
.foot-bottom{border-top:1px solid #3a3631;padding:1.4em 0;font-size:.78rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5em}
.foot-bottom .foot-admin{color:#a9a298}
.foot-bottom .foot-admin a{color:#a9a298;border-bottom:1px solid #4a453f}
.foot-bottom .foot-admin a:hover{color:#fff;border-color:#fff}

/* MOBILE */
@media(max-width:840px){
  .main-nav ul{display:none}
  .main-nav.open ul{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 14px 30px rgba(0,0,0,.08)}
  .main-nav.open li{border-top:1px solid var(--line)}
  .main-nav.open a{display:block;padding:14px 24px;border-bottom:none}
  .main-nav.open a:hover{background:var(--cream)}
  .burger{display:block}
  .section{padding:56px 0}
  .sec-head{margin-bottom:36px}
  .sec-head h2{font-size:1.6rem}
  .topbar .wrap{justify-content:center;text-align:center}
  .topbar .contact{display:none}
  .hero .wrap{grid-template-columns:1fr;padding-top:48px;padding-bottom:56px}
  .hero-visual .photo{aspect-ratio:4/3}
  .hours-card{position:static;margin-top:20px;box-shadow:0 10px 26px rgba(0,0,0,.1)}
  .cards{grid-template-columns:1fr}
  .citaty{grid-template-columns:1fr;gap:32px}
  .kniha-detail{grid-template-columns:1fr;gap:24px}
  .kniha-obal{max-width:180px}
  .clanek-layout{grid-template-columns:1fr;grid-template-areas:"foto" "main" "posledni"}
  .clanek-posledni{margin-top:36px}
  .foto-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .galerie-grid{column-count:3;column-gap:8px}
  .galerie-thumb{margin-bottom:8px}
  .lb-img{max-height:74vh}
  .event-row{grid-template-columns:1fr;gap:8px;justify-items:start}
  .pop-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .about .wrap{grid-template-columns:1fr}
  .about .facts{flex-wrap:wrap;gap:24px}
  .quote blockquote{font-size:1.25rem}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px;padding:48px 0 36px}
  .foot-bottom{justify-content:center;text-align:center}
}
@media(max-width:480px){
  .foot-grid{grid-template-columns:1fr}
}
