/*
Theme Name: Minimal
Theme URI: https://cisadesign.cz
Author: CÍSAŘ DESIGN
Author URI: https://cisadesign.cz
Description: Minimalistický, plně responzivní WordPress motiv s horizontálním vícepatrovým menu (až 3 úrovně), hamburger navigací pro mobilní zařízení, plnou podporou Gutenbergu a rozšířeným Customizerem (fonty, RGBA barvy, šířka stránky).
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: minimal-theme
*/

/* ==========================================================================
   0. Výchozí CSS proměnné (přepsány inline stylem z Customizeru)
   ========================================================================== */
:root {
    /* === Primární barvy === */
    --color-primary: rgba(191, 24, 25, 1);      /* hlavní červená */
    --color-secondary: rgba(107, 114, 128, 1);  /* neutrální šedá (ponecháno) */

    /* === Doplňkové barvy ladící s primární === */
    --color-primary-light: rgba(220, 70, 72, 1);   /* světlejší červená */
    --color-primary-dark: rgba(140, 18, 20, 1);    /* tmavší červená */
    --color-accent: rgba(255, 180, 0, 1);          /* decentní kontrastní akcent (zlatá) */
    --color-accent-soft: rgba(255, 180, 0, 0.15);  /* soft varianta pro pozadí */

    /* === Text a pozadí === */
    --color-text: rgba(0, 0, 0, 1);               /* černá */
    --color-background: rgba(255, 255, 255, 1);   /* bílá */
    --color-header-bg: rgba(255, 255, 255, 0.85); /* poloprůhledná bílá */
    --color-menu-link: rgba(0, 0, 0, 1);          /* černá */

    /* === Typografie === */
    --font-heading: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

    /* === Layout === */
    --container-width: 1600px;

    /* === Tlačítka === */
    --color-button-text: rgba(255, 255, 255, 1);
    --color-button-bg: rgba(191, 24, 25, 1);        /* primární červená */
    --color-button-bg-hover: rgba(140, 18, 20, 1);  /* tmavší červená */
    
    
}


/* ==========================================================================
   1. Reset
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

/* Browser margin/padding defaults vary wildly across elements and vendors.
   Start from zero - handle spacing intentionally via the design system. */
* {
  margin: 0;
  padding: 0;
}


/* Hidden means hidden: !important is warranted here. */
[hidden] {
  display: none !important;
}


/* Prevent adjustments of font size after orientation changes in iOS. */
html {
  -webkit-text-size-adjust: 100%; /* Safari, iOS Safari */
  text-size-adjust: 100%;         /* Chrome, Edge, Firefox Android */
}

/* Ensures the page occupies at least the full viewport.
   dvh accounts for mobile browser UI (address bar, navigation)
   and overrides the vh fallback in browsers that support it. */
body {
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
}

@supports (scrollbar-gutter: stable) {
  html {
    scrollbar-gutter: stable;
  }
}
/* overscroll-behavior only on modal, not html - would break pull-to-refresh on iOS */

/* Antialiased rendering looks better on high-DPI (retina) screens.
   On lower-DPI displays, subpixel antialiasing (the default) can be
   sharper, so this is slightly lossy on older monitors.
   Enable kerning and ligatures at small font-sizes by default. */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* A unitless line-height avoids inheritance math issues.
   The smaller default line-height for h-elements avoids excessive
   line-height when your design system (likely) applies larger fonts.
   WCAG recommends at least 1.5 for body copy. */
body {
  line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 {
  line-height: 1.1;
}

/* Prevents long URLs or unbreakable strings from blowing out their container. */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/* Smarter line-breaking:
   'pretty' avoids widows (lone words on the last line of a paragraph).
   'balance' distributes heading text more evenly across lines. 
   Harmless in browsers that don't support them. */
@supports (text-wrap: pretty) {
  p {
    text-wrap: pretty;
  }
}
@supports (text-wrap: balance) {
  h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
  }
}

/* Headings carry semantic meaning, not visual weight.
   h1–h6 sizing and boldness should come from your design system. */
h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}

/* Inline embedded content has a gap at the bottom caused by baseline alignment.
   Block display removes it; max-width prevents overflow.
   height: auto preserves aspect ratio when max-width constrains the width. */
img, picture, video, canvas, svg, embed, iframe, object, audio {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Exemption for SVG icons (Heroicons/Lucide/Phosphor, etc.) with explicit sizes:
   these should not be constrained. */
svg[width][height] {
  max-width: revert;
}

/* Strips visual chrome from buttons so they can be styled from scratch. */
button {
  background: none;
  border: none;
}

/* Form elements use OS-level fonts and ignore font inheritance by default. */
input, button, textarea, select {
  font: inherit;
}

/* Only strip appearance from text-like inputs - breaks date/select/checkbox on iOS */
input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="password"], textarea {
  -webkit-appearance: none;
  appearance: none;
}

/* Anything interactive should signal clickability.
   'button' attribute targets [type="button"], [type="submit"], etc. */
button,
[role="button"],
label,
summary,
select {
  cursor: pointer;
}

/* Inherit color by default so links don't always appear in browser-default blue.
   Text-decoration is intentionally left as underlined for accessibility. */
a {
  color: inherit;
}

/* Removes bullets/numbers.
   list markers should be an explicit choice, not a default. */
ul, ol {
  list-style: none;
}

/* Tables default to separated borders with spacing between cells.
   For any custom table design, you'll want to collapse the borders. */
table {
  border-collapse: collapse;
}

/* Browsers apply bold to <th> elements.
   Boldness in tables should be controlled by your design system. */
th {
  font-weight: inherit;
}

/* Fieldsets have a surprise border and padding that most UIs don't want. */
fieldset {
  border: none;
  padding: 0;
}

/* More of a normalization, but these are inconsistently styled in some browsers. */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub { bottom: -0.25em; }
sup { top: -0.5em; }

/* Ensures monospace elements render at the same size as surrounding text. */
pre, code, kbd, samp {
  font-family: monospace;
  font-size: inherit;
}

/* Browser-generated quotation marks are rarely wanted in a design system. */
blockquote,
q {
  quotes: none;
}
blockquote::before,
blockquote::after,
q::before,
q::after {
  content: none;
}

/* Creates an explicit stacking context on the app root.
   Prevents z-index bleed from portals, modals, or tooltips
   from leaking out unexpectedly. */
#root {
  isolation: isolate;
}



html { 
  -webkit-text-size-adjust: 100%; 
  scroll-behavior: smooth; 
  overflow-x: hidden; 
}
body {
  overflow-x: hidden;
}
@supports (overflow-x: clip) {
  html, body {
    overflow-x: clip;
  }
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-text);
    background-color: var(--color-background);
}

img, svg, video, picture, iframe { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0; padding: 0; list-style: none; }

a { color: inherit; text-decoration: none; }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    line-height: 1.25;
    font-weight: 600;
    letter-spacing: -0.01em;
    margin: 0 0 0.6em;
}

p { margin: 0 0 1.4em; }

:where(.entry-content, .wp-block-group, .wp-block-column, .uagb-column__inner-wrap) p:last-child {
  margin-bottom: 0;
}

button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }

button { cursor: pointer; background: none; border: 0; padding: 0; }



.screen-reader-text {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0; overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

h1 { font-size: clamp(2rem, 1.6rem + 1.5vw, 2.75rem); }
h2 { font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); }
h3 { font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.625rem); }
h4 { font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem); }
h5 { font-size: 1.125rem; }
h6 { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

.has-text-align-left   { text-align:left }
.has-text-align-center { text-align:center }
.has-text-align-right  { text-align:right }
.has-text-align-justify{ text-align:justify }

.alignleft  { float:left; margin-right:1.5em }
.alignright { float:right; margin-left:1.5em }
.aligncenter{ display:block; margin:0 auto; clear:both }
.alignwide  { max-width:var(--container-width); margin:0 auto }
.alignfull  { max-width:100vw; width:100vw; margin-left:calc(50% - 50vw) }




/* ==========================================================================
   2. Layout
   ========================================================================== */
.container {
    width: 100%;
    max-width: var(--container-width);
    margin-left: auto;
    margin-right: auto;
  /*  padding-left: 1.25rem;
    padding-right: 1.25rem; */
}

/* ==========================================================================
   3. Hlavička a navigace
   ========================================================================== */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: var(--color-header-bg);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    transform: translateZ(0); /* Safari sticky + backdrop-filter fix */
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.site-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 72px;
}

.site-branding { display: flex; flex-direction: column; justify-content: center; gap: 0.15rem; }
.site-title { font-size: 1.25rem; margin: 0; }
.site-title a { font-weight: 700; }
.site-description { margin: 0; font-size: 0.85rem; color: var(--color-secondary); }
.custom-logo-link img { max-height: 40px; height: 40px;width: auto; }

/* Hamburger tlačítko (jen mobil) */
.menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
   /* margin-right: 14px; */
}

.menu-toggle-bars,
.menu-toggle-bars::before,
.menu-toggle-bars::after {
    display: block;
    width: 20px;
    height: 2px;
    background-color: var(--color-text);
    transition: transform 0.2s ease, opacity 0.2s ease, background-color 0.2s ease;
}

.menu-toggle-bars { position: relative; }
.menu-toggle-bars::before,
.menu-toggle-bars::after { content: ''; position: absolute; left: 0; }
.menu-toggle-bars::before { top: -6px; }
.menu-toggle-bars::after { top: 6px; }

.menu-toggle[aria-expanded="true"] .menu-toggle-bars { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars::before { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars::after { transform: translateY(-6px) rotate(-45deg); }

/* ==========================================================================
   3b. Desktopové menu (od 768px) — samostatná struktura, nesdílí žádný
   selektor s mobilním panelem (viz sekce 4), takže se nemůžou navzájem
   rozbít. Otevírání řídí výhradně JS třída .submenu-open (hover i klik).
   ========================================================================== */
.main-navigation { display: none; }

@media (min-width: 1025px) {
    .main-navigation { display: block; }
    

    .primary-menu { display: flex; align-items: center; gap: 0.25rem; }

    /* Rodič s podmenu - JEDEN vizuální prvek místo dvou vedle sebe */
    .primary-menu li { 
        position: relative; 
        display: inline-flex; 
        align-items: center;
        border-radius: 6px;
        transition: background-color 0.15s ease;
    }

    /* Celá položka (odkaz + šipka) má společný hover */
    .primary-menu li:hover,
    .primary-menu li.submenu-open,
    .primary-menu li:focus-within {
        background-color: rgba(0, 0, 0, 0.04);
    }

    .primary-menu .menu-link {
        display: inline-flex;
        align-items: center;
        flex: 1 1 auto;
        min-width: 0;
        padding: 0.6rem 0.2rem 0.6rem 0.9rem; /* menší mezera vpravo pro šipku */
        font-size: 0.95rem;
        border-radius: 6px 0 0 6px;
        color: var(--color-menu-link);
        transition: color 0.15s ease;
        background: transparent !important;
    }

    .primary-menu li:hover > .menu-link,
    .primary-menu li.submenu-open > .menu-link,
    .primary-menu .menu-link:hover,
    .primary-menu .menu-link:focus-visible {
        color: var(--color-primary);
        background: transparent !important;
    }

 /*   .primary-menu li[class*="current-menu-item"] > .menu-link,
    .primary-menu li[class*="current_page_item"] > .menu-link {
        color: var(--color-primary);
        font-weight: 600;
    }
*/
    /* Zobáček je teď SOUČÁSTÍ rodiče - vizuálně uvnitř stejného bloku */
    .submenu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 100%;
        min-height: 36px;
        flex-shrink: 0;
        margin-left: 0;
        padding-right: 0.6rem;
        padding-left: 2px;
        border-radius: 0 6px 6px 0;
        color: var(--color-secondary);
        background: transparent !important;
        cursor: pointer;
    }

    /* Šipka - součástí rodiče, ne oddělené tlačítko */
    .submenu-toggle-icon {
        width: 7px;
        height: 7px;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(45deg);
        transition: transform 0.2s ease, color 0.15s ease;
        margin-top: -2px; /* optické centrování */
    }

    .primary-menu li:hover .submenu-toggle,
    .primary-menu li.submenu-open .submenu-toggle {
        color: var(--color-primary);
        background: transparent !important;
    }

    .primary-menu li.submenu-open > .submenu-toggle .submenu-toggle-icon { 
        transform: rotate(225deg);
        margin-top: 2px;
    }

    /* Pokud položka nemá podmenu, ať má odkaz plný radius */
    .primary-menu li:not(.menu-item-has-children) .menu-link {
        border-radius: 6px;
        padding-right: 0.9rem;
    }

    .sub-menu {
        position: absolute;
        top: calc(100% + 8px);
        left: 0;
        min-width: 220px;
        background-color: var(--color-background);
        border: 1px solid rgba(0, 0, 0, 0.08);
        border-radius: 10px;
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
        padding: 0.4rem;
        z-index: 10;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-4px);
        transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s 0.15s;
    }

    li.submenu-open > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        transition: opacity 0.15s ease, transform 0.15s ease;
    }

    .sub-menu li { display: flex; align-items: center; }

    .sub-menu .menu-link {
        flex: 1 1 auto;
        min-width: 0;
        padding: 0.55rem 0.7rem;
        border-radius: 6px;
        font-size: 0.9rem;
        color: var(--color-menu-link);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .sub-menu .menu-link:hover,
    .sub-menu .menu-link:focus-visible {
        background-color: rgba(0, 0, 0, 0.04);
        color: var(--color-primary);
    }

    /* 3. úroveň se otevírá vpravo od 2. úrovně. .flip-left přidává JS podle
       skutečně naměřeného přetečení viewportu (getBoundingClientRect),
       ne podle odhadu pozice v seznamu. */
    .sub-menu.depth-2 { top: -0.4rem; left: calc(100% + 6px); }
    .sub-menu.flip-left { left: auto; right: 0; }
    .sub-menu.depth-2.flip-left { left: auto; right: calc(100% + 6px); }
}

/* ==========================================================================
   4. Mobilní panel (do 767px) — samostatná plochá struktura (button/div
   podle data-toggle/id), žádné <ul>/<li>, žádné sdílené selektory
   s desktopovým menu výše.
   ========================================================================== */
@media (max-width: 1024.98px) {
    .menu-toggle { display: inline-flex; }
   /* .site-branding { margin-left: 20px; } */
}

.mobile-overlay {
    display: none;
    position: fixed;
    top: 72px; right: 0; bottom: 0; left: 0;
    inset: 72px 0 0 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 90;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.mobile-overlay.visible { display: block; opacity: 1; }

.mobile-panel {
    position: fixed;
    top: 72px;
    right: 0;
    bottom: 0;
    width: min(340px, 88vw);
    background-color: var(--color-background);
    border-left: 1px solid rgba(0, 0, 0, 0.08);
    z-index: 95;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform 0.25s ease;
    padding: 0.75rem;
}
.mobile-panel.open { transform: translateX(0); }

@media (min-width: 1025px) {
    .mobile-overlay,
    .mobile-panel {
        display: none !important;
    }
}

.m-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 0.6rem;
    border-radius: 6px;
    color: var(--color-menu-link);
    font-size: 0.95rem;
    text-align: left;
    background: none;
    border: none;
    font-family: inherit;
}
.m-item:hover,
.m-item.active { color: var(--color-primary); background-color: rgba(0, 0, 0, 0.05); }

.m-item .m-arrow { width: 16px; height: 16px; flex-shrink: 0; opacity: 0.5; transition: transform 0.2s ease; }
.m-item.active .m-arrow { opacity: 1; transform: rotate(90deg); }

.m-sub { overflow: hidden; max-height: 0; transition: max-height 0.25s ease; }
.m-sub.open { max-height: 2000px; }
.m-sub .m-item { padding-left: 1.5rem; font-size: 0.9rem; }
.m-sub .m-sub .m-item { padding-left: 2.25rem; font-size: 0.87rem; }

/* ==========================================================================
   5. Obsah
   ========================================================================== */
/*.site-main { padding: 40px 0 0 0; }*/
.front-page-content { padding: 0px 0 0 0; }
.page-header { margin-bottom: 2rem; }
.page-title { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); }
.archive-description { color: var(--color-secondary); margin-top: 0.5rem; }

.entry-header { margin-bottom: 1.5rem; }
.entry-title { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem); }
.entry-title a:hover { color: var(--color-primary); }

.entry-meta, .entry-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    font-size: 0.85rem;
    color: var(--color-secondary);
}

.entry-thumbnail { margin: 1.25rem 0; border-radius: 10px; overflow: hidden; }

.entry-content > * + * { margin-top: 1.4em; }

.entry-content a, .front-page-content a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.post-list > article + article {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* Výchozí šířka obsahu + podpora Gutenberg zarovnání (alignwide / alignfull) */
.entry-content > *,
.front-page-content > * {
    max-width: var(--container-width);
    margin-left: auto;
    margin-right: auto;
}

.entry-content > .alignwide,
.front-page-content > .alignwide {
    max-width: min(calc(var(--container-width) + 8rem), 100%);
}

.entry-content > .alignfull,
.front-page-content > .alignfull {
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.entry-content > .alignleft { float: left; margin-right: 1.5rem; max-width: 50%; }
.entry-content > .alignright { float: right; margin-left: 1.5rem; max-width: 50%; }

/* Doladění základních Gutenberg bloků dle barev motivu */
.wp-block-button__link {
    background-color: var(--color-button-bg);
    color: var(--color-button-text) !important;
    border-radius: 30px;
    text-decoration: none !important;
    transition: background-color 250ms ease-in-out, transform 150ms ease !important;
}
.wp-block-button__link:hover {
    background-color: var(--color-button-bg-hover) !important;
    transform: translateY(-1px);
}
.wp-block-quote { border-left: 3px solid var(--color-primary); padding-left: 1.2rem; }
.wp-block-separator { border-color: rgba(0, 0, 0, 0.1); }

/* ==========================================================================
   6. Stránkování, formuláře, komentáře
   ========================================================================== */
.pagination, .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2.5rem; }

.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.6rem;
    border-radius: 6px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    font-size: 0.9rem;
    transition: border-color 0.15s ease, color 0.15s ease;
}
.page-numbers.current { background-color: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.page-numbers:hover:not(.current) { border-color: var(--color-primary); color: var(--color-primary); }

.search-form { display: flex; gap: 0.5rem; }
.search-form input[type="search"] {
    flex: 1;
    padding: 0.6rem 0.8rem;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    background-color: var(--color-background);
}
.search-form button,
button[type="submit"],
input[type="submit"] {
    padding: 0.6rem 1.1rem;
    background-color: var(--color-primary);
    border-radius: 6px;
    font-weight: 600;
    transition: opacity 0.15s ease;
    color: var(--color-button-text);
}
.search-form button:hover, button[type="submit"]:hover, input[type="submit"]:hover { opacity: 0.9; }

.error-404 { padding: 4rem 0; text-align: center; }
.error-404 .search-form { max-width: 420px; margin: 2rem auto 0; }

.comments-area { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(0, 0, 0, 0.08); }
.comments-title { margin-bottom: 1.5rem; }
.comment-list { list-style: none; }
.comment-list > li + li,
.comment-list .children > li { margin-top: 1.5rem; }
.comment-list .children { list-style: none; padding-left: 1.5rem; margin-top: 1.5rem; }
.comment-content > * + * { margin-top: 1em; }
.comment-respond { margin-top: 2rem; }
.comment-form input:not([type="submit"]), .comment-form textarea {
    display: block;
    width: 100%;
    padding: 0.6rem 0.8rem;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    margin-top: 0.3rem;
    background-color: var(--color-background);
}
.comment-form p { margin-bottom: 1rem; }

/* ==========================================================================
   7. Patička
   ========================================================================== */
.site-footer {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    padding: 3rem 0;
    margin-top: 4rem;
    font-size: 0.9rem;
    color: var(--color-background);
    background-color: var(--color-text);
}
.home .site-footer {margin-top: 0;}
.footer-widgets {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
    margin-bottom: 2rem;
}

.footer-widget-title { font-size: 1rem; margin-bottom: 0.75rem; color: var(--color-text); }

.site-info {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
   /* padding-top: 1.5rem; */
}

.footer-menu { display: flex; flex-wrap: wrap; gap: 1rem; }
.footer-menu a:hover { color: var(--color-primary); }
.site-info p { margin: 0 }


/* ==========================================================================
   8. WooCommerce - přebírá styly z theme
   ========================================================================== */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce a.added_to_cart,
.woocommerce .cart .button,
.woocommerce .cart input.button {
    background-color: var(--color-button-bg);
    color: var(--color-button-text) !important;
    border-radius: 30px;
    font-weight: 600;
    padding: 0.7rem 1.2rem;
    border: 0;
    line-height: 1.5;
    transition: background-color 250ms ease-in-out, transform 150ms ease !important;
    text-decoration: none !important;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background-color: var(--color-button-bg-hover) !important;
    color: var(--color-button-text) !important;
    transform: translateY(-1px);
}

/* Ceny a odkazy v primární barvě */
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--color-primary);
    font-weight: 600;
}

.woocommerce-message,
.woocommerce-info {
    border-top-color: var(--color-primary);
}
.woocommerce-message::before,
.woocommerce-info::before {
    color: var(--color-primary);
}

/* Inputy jako zbytek webu */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .quantity .qty {
    padding: 0.6rem 0.8rem;
    border: 1px solid rgba(0,0,0,0.15);
    border-radius: 6px;
    background-color: var(--color-background);
    color: var(--color-text);
    font-family: var(--font-body);
}

/* Košík / pokladna - ať sedí do .container */
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce .woocommerce-billing-fields,
.woocommerce .woocommerce-shipping-fields {
    max-width: 100%;
}




/* overlay + modal base */
/* overlay + modal base - SAFARI FIX */
.pi-modal-backdrop {
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    inset: 0;
    background: rgba(0,0,0,0.45);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    display: flex;
    justify-content: flex-end;
    z-index: 99999;
    opacity: 0;
    transition: opacity .25s ease;
    touch-action: manipulation;
}

.pi-modal {
    width: 33%;
    max-width: 480px;
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    background: #fff;
    box-shadow: -8px 0 30px rgba(0,0,0,.25);
    transform: translateX(100%);
    -webkit-transform: translateX(100%);
    transition: transform .35s ease;
    will-change: transform;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 20px 0 0 20px
}

/* opened state */
.pi-modal-backdrop.pi-modal-opened { opacity: 1; }
.pi-modal.pi-modal-opened { 
    transform: translateX(0); 
    -webkit-transform: translateX(0);
}

/* header - už jen křížek */
.pi-modal-header {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-shrink: 0;
}
.pi-modal-close {
    background:transparent;
    border:0;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    padding:4px 8px;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* content - iOS scroll fix */
.pi-modal-content {
    padding:0px 40px;
    padding-bottom: calc(20px + env(safe-area-inset-bottom));
    overflow-y:auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    height: calc(100vh - 68px);
    height: calc(100svh - 68px);
    height: calc(100dvh - 68px);
}

.prednasejici-foto {
    width: 100%;
   /* aspect-ratio: 3 / 4; */
    object-fit: cover;
    object-position: top center;
    display: block;
    height: auto;
    border-radius: 20px;
}
.prednasejici-pozice { /* padding-top: 12px;*/ text-transform: uppercase;color: var(--color-secondary);font-size: small;}
.wp-block-uagb-post-carousel .prednasejici-pozice{margin-top: -12px;}
.prednasejici-jmeno { margin-top: 20px; margin-bottom: 0}
.prednasejici-content { margin-top: 20px; }


.pi-modal-content svg {max-height: 40px !important; width: auto; ; max-width: auto}

/* prevent body scroll when modal open */
html.pi-modal-open { overflow: hidden; }
html.pi-modal-open body {
    overflow: hidden;
    overscroll-behavior: none;
}

/* mobile - bottom sheet */
@media (max-width:1025px) {
    .pi-modal-backdrop { 
        justify-content:center; 
        align-items:flex-end; 
    }
    .pi-modal { 
        width:100%; 
        max-width:100%; 
        height:auto; 
        max-height:90vh;
        max-height:90svh;
        max-height:90dvh;
        transform: translateY(100%); 
        -webkit-transform: translateY(100%);
        border-radius:12px 12px 0 0; 
    }
    .pi-modal.pi-modal-opened { 
        transform: translateY(0); 
        -webkit-transform: translateY(0);
    }
    .pi-modal-content { 
        height:auto; 
        max-height: calc(90vh - 68px);
        max-height: calc(90svh - 68px);
        max-height: calc(90dvh - 68px);
    }
}

/* loader / error */
.prednasejici-loader { padding:40px; text-align:center; font-weight:600; }
.prednasejici-error { padding:20px; color:#900; }



.uagb-post-grid .uagb-post__image img, .uagb-post__inner-wrap { border-radius: 20px;}

/* mezery mezi slidami – horizontální gap */
.uagb-post__items .slick-slide {
    padding: 0 10px;
}

.uagb-post__items .uagb-post__title {
    padding: 0;
}

/* samotná karta přednášejícího */
.uagb-post-grid:not(.is-grid) .uagb-post__inner-wrap {
    border-radius: 20px;
    overflow: hidden;
    background-clip: padding-box !important;
}


/* Kontejner obrázku nastavíme na poměr 3:4 */
.uagb-post-grid .uagb-post__image {
    aspect-ratio: 3 / 4;/**/
    width: 100%;
    overflow: hidden;
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* Zrušíme Spectra ratio inherit */
.uagb-post-grid .uagb-post__image a.uagb-image-ratio-inherit {
    height: 100% !important;
    width: 100% !important;
    display: block;
}

/* Obrázek vyplní celý prostor */
.uagb-post-grid .uagb-post__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.uagb-post__items .uagb-post__text {margin: 0 20px !important}

.uagb-post__inner-wrap {box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06) !important;}
.uagb-post__inner-wrap:hover {box-shadow: 0 4px 12px rgba(0, 0, 0, 0.0) !important;}


/* Fallback pro Safari 14 a starší bez aspect-ratio */
@supports not (aspect-ratio: 3 / 4) {
  .uagb-post-grid .uagb-post__image {
    position: relative;
    padding-top: 133.33%;
  }
  .uagb-post-grid .uagb-post__image img {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    inset: 0;
  }
}

/* Obrázek se vyplní celý prostor */
.uagb-post-grid .uagb-post__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.spectra-image-gallery * {
    border-radius: 20px;
}



/* cílené selektory pro Spectra (UAGB), Gutenberg button block a WooCommerce */
/* Plynulý hover pro VŠECHNA tlačítka */


/* CTA tlačítka - pouze primární akce, ne UI ovládací prvky */
.wp-block-button__link,
.wp-element-button,
.uagb-button__link,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .cart .button,
.woocommerce .cart input.button,
.woocommerce #place_order,
.woocommerce a.button.checkout,
.woocommerce a.button.wc-forward.checkout,
.woocommerce .woocommerce-Button,
.koupit,
.search-form button[type="submit"],
.wp-block-search__button {
  transition: background-color 250ms ease-in-out, transform 150ms ease !important;
  text-decoration: none !important;
}

/* UI tlačítka - reset, nesmí mít CTA hover */
.menu-toggle,
.submenu-toggle,
.pi-modal-close,
.slick-arrow,
.slick-prev,
.slick-next,
.uagb-post-grid .slick-arrow,
.pswp__button,
button.close,
button.components-button {
  transition: background-color 150ms ease, color 150ms ease, opacity 150ms ease !important;
  text-decoration: none !important;
}


/* YouTube video vložené přes Gutenberg - 20px radius */
.wp-block-embed-youtube,
.wp-block-embed.is-type-video {
  border-radius: 20px;
  overflow: hidden;
  isolation: isolate; /* fix pro Safari */
}

.wp-block-embed-youtube .wp-block-embed__wrapper,
.wp-block-embed.is-type-video .wp-block-embed__wrapper {
  border-radius: 20px;
  overflow: hidden;
}

.wp-block-embed-youtube iframe,
.wp-block-embed.is-type-video iframe {
  border-radius: 20px;
  display: block;
  width: 100%;
}


.koupit {
  background-color: var(--color-button-bg);
  color: var(--color-button-text) !important;
  border-radius: 30px !important;
  text-decoration: none !important;
  transition: background-color 250ms ease-in-out, transform 150ms ease !important;
}
.koupit a{
    color: var(--color-button-text) !important;
    text-decoration: none !important;
}
.koupit:hover{
    background-color: var(--color-button-bg-hover) !important;
    transform: translateY(-1px);
}




/* ==========================================================================
   SJEDNOCENÝ HOVER - POUZE PRO CTA TLAČÍTKA - Minimal
   ========================================================================== */
.wp-block-button__link:hover,
.wp-element-button:hover,
.uagb-button__link:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .cart .button:hover,
.woocommerce .cart input.button:hover,
.woocommerce #place_order:hover,
.woocommerce a.button.checkout:hover,
.woocommerce a.button.wc-forward.checkout:hover,
.woocommerce .woocommerce-Button:hover,
.woocommerce a.added_to_cart:hover,
.koupit:hover,
.search-form button[type="submit"]:hover,
.wp-block-search__button:hover {
  background-color: var(--color-button-bg-hover) !important;
  background: var(--color-button-bg-hover) !important;
  color: var(--color-button-text) !important;
  opacity: 1 !important;
  transform: translateY(-1px);
  text-decoration: none !important;
}

.wp-block-button__link:active,
.wp-element-button:active,
.woocommerce a.button:active,
.woocommerce button.button:active,
.koupit:active {
  transform: translateY(0) !important;
}

/* ==========================================================================
   UI PRVKY - VÝJIMKY - nesmí dostat červený CTA hover
   ========================================================================== */
/* Hamburger */
.menu-toggle:hover,
.menu-toggle:active {
  background: transparent !important;
  background-color: transparent !important;
  transform: none !important;
}

/* Šipka submenu - zobáček */
.submenu-toggle:hover,
.submenu-toggle:active {
  background: transparent !important;
  background-color: rgba(0,0,0,0.04) !important; /* původní hover ze šablony */
  color: var(--color-primary) !important;
  transform: none !important;
}
.submenu-toggle:hover .submenu-toggle-icon {
  color: var(--color-primary) !important;
}

/* Modal zavírání */
.pi-modal-close:hover {
  background: transparent !important;
  color: var(--color-text) !important;
  transform: none !important;
  opacity: 0.7 !important;
}

/* Carousel navigace - Slick / UAGB */
.slick-arrow:hover,
.slick-prev:hover,
.slick-next:hover,
.uagb-post-grid .slick-arrow:hover,
.uagb-post__arrow:hover {
  background: rgba(255,255,255,0.9) !important;
  background-color: rgba(255,255,255,0.9) !important;
  color: var(--color-text) !important;
  transform: translateY(-50%) !important; /* slick má translateY(-50%) pro centrování */
  box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
}

/* PhotoSwipe, WordPress admin, Gutenberg UI */
.pswp__button:hover,
button.components-button:hover,
button.close:hover {
  background: transparent !important;
  transform: none !important;
}

/* Zobáček submenu - pokud existuje pseudo-element */
.sub-menu::before {
  content: none !important; /* pokud by ho přidával plugin, vypnout ať neblbne s transform */
}



/* Mobilní panel - tam zůstává toggle odděleně, ale také jako součást řádku */
@media (max-width: 767.98px) {
    .mobile-panel .menu-item-has-children {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }
    .mobile-panel .menu-item-has-children .menu-link {
        flex: 1 1 auto;
    }
    .mobile-panel .submenu-toggle {
        width: 44px;
        height: 44px;
        display: inline-flex !important;
    }
    .wp-block-uagb-container {
    max-width: calc(100% - 0px) !important;
        margin: auto !important;
      /*  padding: 20px !important;*/
} 
    .container {
 /*   max-width: calc(100% - 40px) !important;*/
        margin: auto !important;
        padding: 20px !important;
} 
}


/* === GHOST BUTTON - UAGB === */
.ghost-button .wp-block-button__link,
.ghost-button .uagb-buttons-repeater {
  background: transparent !important;
  background-color: transparent !important;
  border: 1.5px solid var(--color-secondary) !important;
  color: var(--color-secondary) !important;
}

.ghost-button .uagb-button__link {
  color: inherit !important;
}

/* Hover */
.ghost-button .wp-block-button__link:hover,
.ghost-button .uagb-buttons-repeater:hover {
  background: var(--color-secondary) !important;
  background-color: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
  color: var(--color-button-text) !important;
}
.ghost-button .uagb-button__link:hover {
  background: transparent !important;
}



/* partneri */

.sponsors-logos,
.sponsors-logos .uagb-container__inner-wrap,
.sponsors-logos .uagb-container-inner-blocks-wrap,
.sponsors-logos > div {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  row-gap: 32px !important;
  column-gap: 48px !important;
}
.sponsors-logos .wp-block-uagb-image,
.sponsors-logos .uagb-image__figure {
  width: 190px!important;
  height: 80px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.sponsors-logos img {
  max-width: 100%!important;
  object-fit: contain!important;
}

/* Ruční velikosti - přidej jako další CSS třídu k Image bloku */
.sponsors-logos .logo-xs img { max-height: 22px!important; max-width: 90px!important; }
.sponsors-logos .logo-s  img { max-height: 28px!important; max-width: 110px!important; }
.sponsors-logos .logo-m  img { max-height: 34px!important; max-width: 125px!important; }
.sponsors-logos .logo-l  img { max-height: 42px!important; max-width: 135px!important; }
.sponsors-logos .logo-xl img { max-height: 52px!important; max-width: 150px!important; }

/* když chceš XL i jako čtverec - generální partner */
.sponsors-logos .logo-boxed-xl img {
  max-height: 80px!important;
  max-width: 80px!important;
}

/* Plné čtverce jako woodpasta */
.sponsors-logos .logo-boxed img {
  max-height: 64px!important;
  max-width: 64px!important;
}
.sponsors-logos a img {opacity: 0.75;transition: transform 0.2s ease, opacity 0.2s ease;}
.sponsors-logos a img:hover {opacity: 1;}




.webdesign {text-align:center;background-color: var(--color-text);color: var(--color-background) !important;font-size: 12px;}
.webdesign .container {border-top: 1px solid rgba(255,255,255,0.25); margin: auto;padding: 20px;}
.webdesign img {height: 12px; width: 22px; margin-left: 2px; margin-bottom: -2px;display: inline-block}
.webdesign a {text-decoration: none;opacity: 0.6;}
.webdesign a:hover {opacity: 1 !important;text-decoration: none !important;color: var(--color-background) !important;}
.webdesign span {visibility: hidden;}



.container, .uagb-container-inner-blocks-wrap {padding-left: 40px;padding-right:40px}
@media (max-width: 1024.98px) { 
    .container, .uagb-container-inner-blocks-wrap {padding-left: 20px;padding-right:20px}
    }

.italic {font-style: italic; opacity: 0.75}
.italic .uagb-timeline__events-inner-new {font-style: italic;background-color: var(--color-primary-light) !important;font-weight: 400 !important}
.italic .uagb-timeline__heading {font-weight: 400 !important}
.italic .uagb-timeline__day-left .uagb-timeline__arrow:after,
.italic .uagb-timeline__day-right .uagb-timeline__arrow:after {border-right-color: var(--color-primary-light) !important;border-left-color: var(--color-primary-light) !important;}


.wp-block-uagb-blockquote.uagb-blockquote__skin-quotation blockquote.uagb-blockquote{margin-bottom: 2rem;}
.uagb-block-7048a413 .uagb-blockquote__content {margin-bottom: 0;}
.wp-block-uagb-blockquote.uagb-blockquote__align-left .uagb-blockquote__author-wrap, .wp-block-uagb-blockquote.uagb-blockquote__align-right .uagb-blockquote__author-wrap.uagb-blockquote__author-at-right {
    justify-content: flex-end !important;
    -webkit-box-pack: flex-end !important;
    -ms-flex-pack: flex-end !important;
    -webkit-justify-content: flex-end !important;
    -moz-box-pack: flex-end !important;
    text-align: right;
}
.wp-block-uagb-blockquote cite.uagb-blockquote__author {
    text-align: right;
}

.wp-block-uagb-container.uagb-is-root-container.alignfull > .uagb-container-inner-blocks-wrap {
        padding: 20px;
}

@media only screen and (max-width: 767px) {
.wp-block-uagb-container.uagb-is-root-container.alignfull > .uagb-container-inner-blocks-wrap {
        padding: 20px 0;
}
    }



/* zabrání 0x0 boxu před načtením */
.uagb-image-gallery--masonry.uagb-image-gallery__image img,
.uagb-image-gallery__image img {
  width: 100%;
  height: auto;
  display: block;
}
img[loading="lazy"] { height:auto; }
.uagb-image-gallery__image img {
  width:100%;
  height:auto;
  display:block;
}

.spectra-image-gallery__media--masonry img {
  width:100%;
  height:auto;
  display:block;
}