/*
Theme Name: Kovárna 2026
Theme URI: https://kovarna-prostejov.cz/
Author: Restaurace Na Kovárně
Description: Šablona pro objednávkovou část webu Restaurace Na Kovárně. Světlá, rychlá, postavená kolem pluginu kovarna-objednavky. Prezentační část webu je statická a tuto šablonu nepoužívá.
Version: 1.12.1
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kovarna-2026
Update URI: false
Tags: restaurant, light, custom-menu, accessibility-ready
*/

/* ==================================================================
   1. Písma. Hostujeme si je sami, do Googlu nechodí žádný požadavek.
   ================================================================== */

@font-face {
    font-family: "Archivo";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("assets/fonts/archivo-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
        U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Archivo";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("assets/fonts/archivo-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
        U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
        U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Fraunces";
    font-style: normal;
    font-weight: 700 900;
    font-display: swap;
    src: url("assets/fonts/fraunces-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
        U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Fraunces";
    font-style: normal;
    font-weight: 700 900;
    font-display: swap;
    src: url("assets/fonts/fraunces-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
        U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
        U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==================================================================
   2. Barvy a rozměry. Převzato z návrhu Nový web/Prezentace/zdroj/objednavka.html.
   ================================================================== */

:root {
    /* Vzhled „Jantar a med“ (varianta C), stejný jako úvodní stránka
       (Pavel, 16. 10. 2026): teplé medové světlo a opálená prkna salonku. */
    --paper: #f7ecdd;
    --card: #fffaf2;
    --sunk: #f1e2cc;
    --ink: #24170d;
    --ink-2: #4a3524;
    /* Šedé texty jsou tmavší, než byly v návrhu: původní #8b7c6f a #a99c90
       měly na bílé jen 4,0:1 a 2,7:1, pod hranicí čitelnosti WCAG AA (4,5:1).
       Kontrola 8. 10. 2026, Pavel: „text na tlačítku je špatně čitelný“. */
    --muted: #6a5440;
    --faint: #715b47;
    --line: #e6d3b8;
    --line-2: #d6c0a0;
    /* Oranžová o odstín sytější: bílý text na ní i ona sama jako text
       na papíře mají aspoň 4,5:1. Původní #c8481a dávala 4,1:1 na podbarvení. */
    --ember: #a9531a;
    --ember-hot: #b85e1c;
    --ember-soft: #fbebda;
    --brass: #8a5a12;
    /* opálené dřevo (hlavička, patička) a text na něm */
    --wood: #2a1709;
    --wood-text: #f4eadc;
    --wood-muted: #dcccb8;
    --wood-brass: #e0bf7c;
    --green: #3e7a3a;
    --green-soft: #eef5ec;
    --red: #b3261e;
    --red-soft: #fdeceb;

    --r: 12px;
    --r-lg: 16px;
    --sirka: 1080px;
    /* Stejna vyska jako lista prezentacni casti, aby znak mohl mit taky
       52 bodu a mel kolem sebe stejne mista. Odvozuji se od toho i odsazeni
       lepiciho kosiku a skoky na kotvy v jidelnim listku. */
    --hlavicka: 72px;

    --f-disp: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
    --f-ui: "Archivo", "Segoe UI", system-ui, -apple-system, sans-serif;
}

/* ==================================================================
   3. Základ
   ================================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--f-ui);
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: -0.005em;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    height: auto;
}

/* Atribut hidden musí schovat vždycky, i prvek s vlastním display (formuláře
   účtu, hláška o chybě). Bez toho ho display:flex přebije. */
[hidden] {
    display: none !important;
}

a {
    color: var(--ember);
    text-underline-offset: 2px;
}

a:hover {
    color: var(--ember-hot);
}

:focus-visible {
    outline: 2px solid var(--ember);
    outline-offset: 2px;
    border-radius: 5px;
}

h1,
h2,
h3,
h4 {
    margin: 0 0 0.5em;
    font-family: var(--f-disp);
    font-weight: 900;
    letter-spacing: -0.025em;
    line-height: 1.1;
    text-wrap: balance;
}

h1 {
    font-size: clamp(1.65rem, 4.6vw, 2.35rem);
}

h2 {
    font-size: clamp(1.25rem, 3vw, 1.6rem);
}

h3 {
    font-size: 1.05rem;
    font-weight: 700;
    font-family: var(--f-ui);
    letter-spacing: -0.015em;
}

p {
    margin: 0 0 1em;
}

.kov-wrap {
    width: 100%;
    max-width: var(--sirka);
    margin-inline: auto;
    padding-inline: 18px;
}

.kov-skryte-vizualne {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.kov-skip {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 200;
    background: var(--ink);
    color: #fff;
    padding: 12px 18px;
    border-radius: 0 0 var(--r) 0;
    font-weight: 700;
    text-decoration: none;
}

.kov-skip:focus {
    left: 0;
}

/* ==================================================================
   4. Hlavička
   ================================================================== */

.kov-hlavicka {
    position: sticky;
    top: 0;
    z-index: 50;
    /* Opálené dřevo jako na úvodní stránce, textura z fotky salonku
       (Nový web/Prezentace/tools-textura-drevo-foto.py). */
    background-color: var(--wood);
    background-image: linear-gradient(180deg, rgba(30, 16, 6, 0.42), rgba(30, 16, 6, 0.62)), url("assets/drevo-opalene.webp");
    background-size: auto, 1200px auto;
    background-position: center;
    color: var(--wood-text);
}

.kov-hlavicka .kov-znacka {
    color: var(--wood-text);
}

.kov-hlavicka .kov-znacka b i {
    color: var(--wood-muted);
}

.kov-hlavicka .kov-znacka .kov-podnadpis {
    color: var(--wood-brass);
}

.kov-hlavicka .kov-znacka .kov-podnadpis em {
    color: #fff;
}

.kov-hlavicka .kov-zpet {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 230, 200, 0.3);
    color: var(--wood-text);
}

.kov-hlavicka .kov-prihlasit:hover,
.kov-hlavicka .kov-zpet:hover {
    border-color: var(--wood-brass);
    color: #fff;
}

.kov-hlavicka :focus-visible {
    outline-color: var(--wood-brass);
}

.kov-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: var(--hlavicka);
}

.kov-znacka {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--ink);
    margin-right: auto;
    /* Aby se značka dala v úzké liště zmenšit. Bez min-width drží flexbox
       prvku jeho přirozenou šířku a stránka se místo toho posune do strany. */
    min-width: 0;
}

/* Poslední pojistka pro šířky, na které se nedá myslet dopředu. Když se
   text opravdu nevejde, radši ho useknout tečkami než nechat celou stránku
   ujíždět do strany. Znak a tlačítko si drží svoje. */
.kov-znacka > span {
    min-width: 0;
    overflow: hidden;
}

.kov-znacka b,
.kov-znacka .kov-podnadpis {
    overflow: hidden;
    text-overflow: ellipsis;
}

.kov-znacka img {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    object-fit: contain;
}

/* Velikost názvu vybral Pavel 4. 9. 2026 ze srovnání šesti variant
   (Nový web/Prezentace/zdroj/varianty-hlavicky.html): sazba varianty 1, velikost
   písma z varianty 2. Musí být stejná na obou částech webu. */
.kov-znacka b {
    font-family: var(--f-disp);
    font-weight: 900;
    font-size: 1.3rem;
    letter-spacing: -0.03em;
    display: block;
    line-height: 1;
    white-space: nowrap;
}

.kov-znacka b i {
    font-style: normal;
    font-family: var(--f-ui);
    font-weight: 600;
    font-size: 0.6em;
    color: var(--muted);
    letter-spacing: -0.005em;
}

.kov-znacka .kov-podnadpis {
    display: block;
    font-size: 0.63rem;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    color: var(--brass);
    font-weight: 700;
    margin-top: 5px;
    white-space: nowrap;
}

/* "objednávky" je jediné slovo, které říká, na které části webu host je.
   Proto se barevně odděluje od zbytku podnadpisu. */
.kov-znacka .kov-podnadpis em {
    font-style: normal;
    color: var(--ember);
    font-weight: 800;
}

.kov-zpet {
    /* Nesmi se lamat na dva radky a nesmi se scvrknout. Na uzkem telefonu
       se misto uvolni tim, ze se ze znacky schova trojslovi. */
    white-space: nowrap;
    flex: 0 0 auto;
}

.kov-zpet svg {
    flex: 0 0 auto;
}

.kov-zpet-kratky {
    display: none;
}

/* Stejna hranice i stejne velikosti jako na prezentacni casti.
   Jediny rozdil je podnadpis: nese o slovo vic ("objednavky"), tak je
   o kousek drobnejsi, aby se na uzkem telefonu vesel vedle tlacitka. */
@media (max-width: 400px) {
    .kov-znacka img {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
    }
    .kov-znacka b {
        font-size: 1.13rem;
    }
    .kov-znacka b i {
        display: none;
    }
    .kov-znacka .kov-podnadpis {
        font-size: 0.56rem;
        letter-spacing: 0.14em;
    }
    .kov-zpet {
        padding-inline: 13px;
    }
}

/* Pod 480 body ustupuje popisek tlačítka, ne značka. */
@media (max-width: 480px) {
    .kov-zpet-dlouhy {
        display: none;
    }
    .kov-zpet-kratky {
        display: inline;
    }
}

/* Nejužší telefony, které se ještě prodávají. Zůstane samotná šipka,
   plné znění drží aria-label pro odečítače obrazovky. */
@media (max-width: 360px) {
    .kov-znacka {
        gap: 8px;
    }
    .kov-zpet-kratky {
        display: none;
    }
    .kov-zpet {
        padding-inline: 11px;
    }
}

/*
 * Trojsloví se schová dřív než všechno ostatní.
 *
 * Změřeno v prohlížeči: značka s celým trojslovím plus tlačítko na hlavní
 * stránku potřebují 553 bodů. Bez trojsloví 345. Mezi čtyřmi sty a pěti sty
 * osmdesáti body se to tedy nevejde a stránka se začne posouvat do strany,
 * i když jednotlivé prvky vypadají v pořádku.
 *
 * Zůstane slovo "objednávky", tedy to jediné, co na téhle části webu hostovi
 * něco říká. Trojsloví má vedle sebe domovská stránka.
 */
@media (max-width: 580px) {
    .kov-trio {
        display: none;
    }
}

.kov-kdo {
    display: none;
    align-items: center;
    gap: 9px;
    padding: 6px 12px 6px 7px;
    border-radius: 999px;
    border: 1px solid var(--line-2);
    background: var(--card);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ink);
    text-decoration: none;
}

.kov-kdo .kov-av {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--ember);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 0.72rem;
    font-weight: 700;
}

/* Jméno vede na Můj účet (16. 10. 2026). */
.kov-kdo .kov-kdo-odkaz {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: inherit;
    text-decoration: none;
}
.kov-kdo .kov-kdo-odkaz:hover .kov-kdo-jmeno,
.kov-kdo .kov-kdo-odkaz:focus-visible .kov-kdo-jmeno {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.kov-kdo .kov-odhlasit {
    font-weight: 500;
    color: var(--ink-2, var(--ink));
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (min-width: 640px) {
    .kov-kdo {
        display: flex;
    }
}

/* ==================================================================
   5. Tlačítka. Platí i pro tlačítka, která vypisuje plugin.
   ================================================================== */

.kov-btn,
.kovarna-objednavka .button,
.kovarna-denni-menu .button,
.kovarna-jidelni-listek .button,
.kovarna-pizza .button,
.kovarna-rezervace .button,
button.kov-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 11px;
    border: 1px solid var(--line-2);
    background: var(--card);
    color: var(--ink);
    cursor: pointer;
    font-family: var(--f-ui);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.2;
    text-decoration: none;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s, border-color 0.15s;
}

.kov-btn:active,
.kovarna-objednavka .button:active {
    transform: translateY(1px);
}

.kov-btn:hover,
.kovarna-objednavka .button:hover,
.kovarna-denni-menu .button:hover {
    border-color: var(--ink-2);
    color: var(--ink);
}

.kov-btn-primar,
.kovarna-objednavka .button-primary,
.kovarna-denni-menu .button-primary,
.kovarna-jidelni-listek .button-primary,
.kovarna-pizza .button-primary,
.kovarna-rezervace .button-primary {
    background: linear-gradient(175deg, var(--ember-hot), var(--ember));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 6px 18px -6px rgba(169, 83, 26, 0.6);
}

.kov-btn-primar:hover,
.kovarna-objednavka .button-primary:hover,
.kovarna-denni-menu .button-primary:hover,
.kovarna-jidelni-listek .button-primary:hover,
.kovarna-pizza .button-primary:hover,
.kovarna-rezervace .button-primary:hover {
    color: #fff;
    border-color: transparent;
    box-shadow: 0 10px 24px -6px rgba(169, 83, 26, 0.72);
}

.kovarna-objednavka .button[disabled],
.kovarna-objednavka .button-primary[disabled] {
    background: var(--line-2);
    color: #fff;
    box-shadow: none;
    cursor: not-allowed;
}

.kovarna-objednavka .button-large,
.kovarna-denni-menu .button-large {
    padding: 14px 24px;
    font-size: 1rem;
}

.kovarna-objednavka .button-small,
.kovarna-denni-menu .button-small {
    padding: 9px 14px;
    font-size: 0.85rem;
    border-radius: 9px;
}

.kov-btn-mala {
    padding: 9px 14px;
    font-size: 0.85rem;
    border-radius: 9px;
}

/* ==================================================================
   6. Obsah stránky
   ================================================================== */

.kov-obsah {
    padding: 22px 0 44px;
    min-height: 55vh;
}

.kov-stranka {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: clamp(20px, 4vw, 34px);
}

.kov-stranka > *:last-child {
    margin-bottom: 0;
}

/* Stránka s objednávkou stojí na vlastních kartách, obal by dělal rámeček v rámečku. */
.kov-stranka-holy {
    background: none;
    border: 0;
    padding: 0;
}

.kov-nadpis-stranky {
    margin-bottom: 18px;
}

/* Nadpis stránky se zkratkou pluginu, která vlastní h1 nemá (WEB-12).
   Menší než nadpis běžné stránky, ať objednávka nezačíná o kus níž. */
.kov-h1-stranky {
    font-family: var(--f-disp);
    font-weight: 900;
    font-size: clamp(1.5rem, 4.2vw, 2.1rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 14px;
}

.kov-nadpis-stranky .kov-eyebrow {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--brass);
    display: block;
    margin-bottom: 6px;
}

.kov-stranka ul,
.kov-stranka ol {
    padding-left: 1.3em;
}

.kov-stranka li {
    margin-bottom: 0.4em;
}

.kov-stranka table {
    width: 100%;
    border-collapse: collapse;
}

.kov-stranka th,
.kov-stranka td {
    text-align: left;
    padding: 9px 10px;
    border-bottom: 1px solid var(--line);
}

/* ==================================================================
   7. Patička
   ================================================================== */

/* Opálené dřevo jako na úvodní stránce (Jiří, 15. 10. 2026), textura
   z Nový web/Prezentace/tools-textura-drevo.py, přes ni tmavý závoj. */
.kov-paticka {
    background-color: var(--wood);
    background-image: linear-gradient(180deg, rgba(22, 12, 5, 0.7), rgba(22, 12, 5, 0.82)), url("assets/drevo-opalene.webp");
    background-size: auto, 1200px auto;
    background-position: center;
    color: #e2d6c8;
    padding: 34px 0 26px;
    font-size: 0.875rem;
}

.kov-paticka-mrizka {
    display: grid;
    gap: 22px;
}

@media (min-width: 720px) {
    .kov-paticka-mrizka {
        grid-template-columns: 1.4fr 1fr 1fr;
        gap: 34px;
    }
}

.kov-paticka h2 {
    font-family: var(--f-ui);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #b9a794;
    margin: 0 0 10px;
}

.kov-paticka a {
    color: #f2e7da;
    text-decoration: none;
}

/* Větší plocha pro prst (Pavel 18. 10. 2026): neviditelný okraj a záporný
   okraj, takže se nic neposune, jen se na odkaz líp trefí. */
.kov-paticka a {
    display: inline-block;
    padding: 9px 0;
    margin: -9px 0;
}

.kov-paticka li {
    margin-bottom: 10px;
}

.kov-paticka a:hover {
    color: #ffb88f;
    text-decoration: underline;
}

.kov-paticka ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.kov-paticka li {
    margin-bottom: 6px;
}

.kov-paticka p {
    margin: 0 0 6px;
}

/* Kam rozvážíme a za kolik: rozbalovací seznam obcí (17. 10. 2026). */
.kov-obce {
    margin: 4px 0 10px;
}

.kov-obce summary {
    cursor: pointer;
    padding: 10px 0;
    color: #f2e7da;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kov-obce summary:hover {
    color: #ffb88f;
}

.kov-obce[open] summary {
    margin-bottom: 8px;
}

.kov-paticka .kov-obce ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11.5em, 1fr));
    column-gap: 18px;
    margin: 0 0 6px;
    font-size: 0.9em;
}

.kov-paticka .kov-obce li {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin: 0;
    padding: 3px 0;
    border-bottom: 1px solid rgba(242, 231, 218, 0.12);
}

.kov-obce li span:last-child {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.kov-paticka-znacka b {
    font-family: var(--f-disp);
    font-weight: 900;
    font-size: 1.15rem;
    color: #fff;
    display: block;
    margin-bottom: 6px;
}

.kov-paticka-spodek {
    margin-top: 26px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #9c8b7a;
    font-size: 0.8125rem;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    justify-content: space-between;
}

.kov-paticka-spodek a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kov-paticka-pravni {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
}

.kov-paticka-pravni a {
    padding: 11px 0;
    margin: -5px 0;
}

/* ==================================================================
   8. Pruh zkušebního provozu
   ================================================================== */

.kov-zkusebni {
    background: #2a211b;
    color: #eadfd2;
    font-size: 0.875rem;
    padding: 11px 0;
}

.kov-zkusebni b {
    color: #ffb88f;
}

/* ==================================================================
   9. Přihlašovací obrazovka WordPressu, jen drobné sladění
   ================================================================== */

body.login {
    background: var(--paper);
}

/* Přihlásit se v hlavičce (18. 10. 2026). Na telefonu jen ikona, 44 px na prst. */
.kov-hlavicka .kov-prihlasit {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 230, 200, 0.3);
    color: var(--wood-text);
    white-space: nowrap;
    flex: 0 0 auto;
    min-height: 44px;
    min-width: 44px;
    justify-content: center;
}

@media (max-width: 560px) {
    .kov-prihlasit-text {
        display: none;
    }
}
