/* ==========================================================================
   ZD „Vysočina" Želiv — main stylesheet  (v2, bohatší vizuál)
   ========================================================================== */

:root{
    --green-50:  #f2f7ec;
    --green-100: #dcecd0;
    --green-300: #8ab97a;
    --green-500: #4a8b4e;
    --green-700: #2f6b3c;
    --green-900: #1c3d23;
    --green-950: #0e2415;

    --earth-300: #d4b17c;
    --earth-500: #a88554;
    --earth-700: #5b4322;

    --beige:     #f7f1e3;
    --sand:      #eadfc2;

    --ink:       #16201a;
    --ink-soft:  #3b423b;
    --muted:     #6f7a70;

    --accent:    #f0a500;
    --accent-dk: #b97d00;
    --accent-gl: #ffd65a;

    --white:     #ffffff;
    --line:      #e3e7df;

    --shadow-sm: 0 2px 8px rgba(14,36,21,.06);
    --shadow-md: 0 14px 30px rgba(14,36,21,.12);
    --shadow-lg: 0 28px 60px rgba(14,36,21,.22);
    --shadow-glow: 0 0 0 1px rgba(255,255,255,.10), 0 20px 60px rgba(240,165,0,.18);

    --radius-sm: 8px;
    --radius:    14px;
    --radius-lg: 24px;

    --font-display: "Fraunces", "Manrope", "Inter", system-ui, serif;
    --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

    --transition: .35s cubic-bezier(.2,.7,.2,1);

    --container: 1240px;
    --container-narrow: 880px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
    margin:0; padding:0;
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--white);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    overflow-x:hidden;
}
img,svg{ max-width:100%; display:block; }
a{ color:var(--green-700); text-decoration:none; transition:color var(--transition); }
a:hover{ color:var(--green-900); }
h1,h2,h3,h4{
    font-family:var(--font-display);
    font-weight:700;
    letter-spacing:-.02em;
    color:var(--green-900);
    line-height:1.12;
    margin:0 0 .6em;
}
h1{ font-size:clamp(2.4rem, 5vw, 4.2rem); font-weight:800; }
h2{ font-size:clamp(1.8rem, 3.2vw, 2.8rem); }
h3{ font-size:clamp(1.2rem, 2vw, 1.6rem); }
p{ margin:0 0 1em; }

.wrap{ width:min(100% - clamp(2rem, 5vw, 5rem), var(--container)); margin-inline:auto; position:relative; }
.wrap--narrow{ width:min(100% - clamp(2rem, 5vw, 5rem), var(--container-narrow)); margin-inline:auto; position:relative; }

section.block{ padding:clamp(3.5rem, 8vw, 7rem) 0; position:relative; }
section.block--tight{ padding:clamp(2rem, 4vw, 3rem) 0; }
/* Sekce hned za page-hero má menší horní padding — vizuálně navazuje */
section.page-hero + section.block{ padding-top:clamp(2rem, 4vw, 3rem); }
section.block--beige{
    position:relative; overflow:hidden;
    background:
        radial-gradient(ellipse at 100% 0%, rgba(74,139,78,.10) 0%, transparent 55%),
        radial-gradient(ellipse at 0% 100%, rgba(240,165,0,.10) 0%, transparent 55%),
        linear-gradient(180deg, var(--beige) 0%, #fcf7e9 100%);
}
section.block--beige::before{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
    background-image:url('/assets/img/hero-wheat.jpg');
    background-size:cover; background-position:center 40%;
    opacity:.07;
    mix-blend-mode:multiply;
}
section.block--beige > .wrap{ position:relative; z-index:1; }
section.block--green{
    position:relative; overflow:hidden;
    background:
        radial-gradient(ellipse at 0% 0%, rgba(74,139,78,.18) 0%, transparent 55%),
        radial-gradient(ellipse at 100% 100%, rgba(240,165,0,.10) 0%, transparent 55%),
        var(--green-50);
}
section.block--green::before{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
    background-image:url('/assets/img/hero-wheat.jpg');
    background-size:cover; background-position:center 60%;
    opacity:.06;
    mix-blend-mode:multiply;
}
section.block--green > .wrap{ position:relative; z-index:1; }
section.block--dark{
    background:
        radial-gradient(ellipse at 80% 20%, rgba(240,165,0,.15) 0%, transparent 50%),
        radial-gradient(ellipse at 0% 80%, rgba(74,139,78,.2) 0%, transparent 50%),
        linear-gradient(135deg, var(--green-950) 0%, var(--green-900) 60%, #133019 100%);
    color:#e4ebe0;
}
section.block--dark h2, section.block--dark h3{ color:var(--white); }
section.block--photo{
    position:relative;
    color:#fff;
    background:#0b1c10;
    overflow:hidden;
}
section.block--photo::before{
    content:"";
    position:absolute; inset:0;
    background-image:url('/assets/img/hero-wheat.jpg');
    background-size:cover; background-position:center;
    filter:brightness(.55) saturate(.9);
    transform:scale(1.05);
}
section.block--photo::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(135deg, rgba(14,36,21,.80) 0%, rgba(28,61,35,.65) 50%, rgba(47,107,60,.50) 100%);
}
section.block--photo > .wrap{ position:relative; z-index:2; }
section.block--photo h2, section.block--photo h3{ color:var(--white); }

/* Diagonal / wave dividers between sections */
.divider-wave{
    position:relative; height:80px; margin-top:-80px; pointer-events:none;
}
.divider-wave svg{ width:100%; height:100%; display:block; }

/* ---------------- Header ---------------- */

.site-header{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,.78);
    backdrop-filter:saturate(160%) blur(14px);
    -webkit-backdrop-filter:saturate(160%) blur(14px);
    border-bottom:1px solid transparent;
    transition:box-shadow var(--transition), border-color var(--transition), padding var(--transition), background var(--transition);
}
.site-header.is-scrolled{
    background:rgba(255,255,255,.94);
    border-color:var(--line);
    box-shadow:var(--shadow-sm);
}
.site-header__inner{
    display:flex; align-items:center; gap:1.2rem;
    padding:.85rem 0;
    transition:padding var(--transition);
}
.site-header.is-scrolled .site-header__inner{ padding:.45rem 0; }
.brand{
    display:flex; align-items:center;
    flex-shrink:0;
    transition:opacity var(--transition);
}
.brand:hover{ opacity:.85; }
.brand__logo{
    height:64px; width:auto;
    display:block;
    transition:height var(--transition);
}
.site-header.is-scrolled .brand__logo{ height:48px; }
@media (max-width:640px){ .brand__logo{ height:52px; } .site-header.is-scrolled .brand__logo{ height:42px; } }

.nav{ margin-left:auto; }
.nav__toggle{
    display:none;
    background:none; border:0; padding:.5rem; cursor:pointer;
    color:var(--green-900);
}
.nav__list{
    list-style:none; margin:0; padding:0;
    display:flex; gap:.15rem; align-items:center;
}
.nav__list > li > a{
    display:inline-flex; align-items:center; gap:.35rem;
    padding:.55rem .8rem;
    font-weight:600; font-size:.92rem;
    color:var(--ink-soft); border-radius:999px;
    position:relative;
    transition:color var(--transition), background var(--transition);
}
.nav__list > li > a:hover,
.nav__list > li:hover > a{ color:var(--green-900); background:rgba(47,107,60,.08); }
.nav__list > li > a.is-active{ color:var(--green-900); background:rgba(47,107,60,.1); }
.nav__list > li > a.is-active::after{
    content:""; position:absolute; left:50%; transform:translateX(-50%); bottom:-.15rem;
    width:18px; height:2px; background:var(--accent); border-radius:2px;
}
.nav__submenu-wrap > a::after{
    content:""; width:.5em; height:.5em;
    border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
    transform:rotate(45deg); margin-top:-3px; opacity:.6;
    transition:transform var(--transition);
}
.nav__submenu-wrap:hover > a::after{ transform:rotate(225deg); margin-top:2px; }

.nav__cta{
    margin-left:.5rem;
    background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dk) 100%);
    color:#1a1100 !important;
    padding:.58rem 1.1rem; border-radius:999px;
    font-weight:700; letter-spacing:.01em;
    box-shadow:0 4px 14px rgba(240,165,0,.35);
    transition:transform var(--transition), box-shadow var(--transition);
}
.nav__cta:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(240,165,0,.5);
    background:linear-gradient(135deg, var(--accent-gl) 0%, var(--accent) 100%);
}

.nav__submenu-wrap{ position:relative; }
.nav__submenu{
    position:absolute; top:100%; left:0; min-width:260px;
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(12px);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow-md);
    padding:.4rem; margin:.6rem 0 0; list-style:none;
    opacity:0; visibility:hidden; transform:translateY(10px);
    transition:opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.nav__submenu-wrap:hover > .nav__submenu,
.nav__submenu-wrap:focus-within > .nav__submenu{
    opacity:1; visibility:visible; transform:translateY(0);
}
.nav__submenu a{
    display:flex; align-items:center; gap:.5rem;
    padding:.55rem .75rem;
    color:var(--ink-soft); border-radius:10px;
    font-size:.92rem; font-weight:500;
}
.nav__submenu a:hover{ background:var(--green-50); color:var(--green-900); }

@media (max-width: 1100px){
    .nav__toggle{ display:inline-flex; margin-left:auto; }
    .nav__list{
        position:fixed; inset:62px 0 auto 0;
        flex-direction:column; align-items:stretch; gap:0;
        background:rgba(255,255,255,.98); backdrop-filter:blur(20px);
        border-top:1px solid var(--line);
        box-shadow:var(--shadow-lg);
        padding:.75rem 1rem 1.25rem;
        transform:translateY(-110%); opacity:0; pointer-events:none;
        transition:transform .4s ease, opacity .25s ease;
        max-height:calc(100vh - 62px); overflow:auto;
    }
    .nav.is-open .nav__list{ transform:translateY(0); opacity:1; pointer-events:auto; }
    .nav__list > li{ width:100%; }
    .nav__list > li > a{ display:block; padding:.95rem .6rem; border-bottom:1px solid var(--line); border-radius:0; }
    .nav__list > li > a.is-active::after{ display:none; }
    .nav__list > li > a.is-active{ color:var(--accent-dk); background:transparent; }
    .nav__cta{
        margin:.9rem 0 0; text-align:center; display:block;
    }
    .nav__submenu{
        position:static; opacity:1; visibility:visible; transform:none;
        box-shadow:none; border:0; background:transparent; padding:0 0 0 .75rem; margin:0;
    }
    .nav__submenu a{ padding:.55rem .3rem; }
    .nav__submenu-wrap > a::after{ float:right; margin-top:.5em; }
}

/* ---------------- Buttons ---------------- */

.btn{
    display:inline-flex; align-items:center; gap:.55rem;
    padding:.95rem 1.5rem; border-radius:999px;
    font-weight:700; font-family:var(--font-body); letter-spacing:.01em;
    border:0; cursor:pointer; font-size:.98rem;
    transition:transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition);
    text-decoration:none; white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn--primary{
    background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dk) 100%);
    color:#1a1100;
    box-shadow:0 6px 20px rgba(240,165,0,.35);
}
.btn--primary:hover{
    box-shadow:0 12px 28px rgba(240,165,0,.5);
    background:linear-gradient(135deg, var(--accent-gl) 0%, var(--accent) 100%);
    color:#1a1100;
}
.btn--dark{ background:var(--green-900); color:var(--white); }
.btn--dark:hover{ background:var(--green-700); color:var(--white); box-shadow:var(--shadow-md); }
.btn--ghost{
    background:rgba(255,255,255,.08); color:#fff;
    backdrop-filter:blur(8px);
    box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35);
}
.btn--ghost:hover{ background:rgba(255,255,255,.16); box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6); color:#fff; }
.btn--ghost-dark{
    background:transparent; color:var(--green-900);
    box-shadow:inset 0 0 0 1.5px var(--green-700);
}
.btn--ghost-dark:hover{ background:var(--green-900); color:var(--white); box-shadow:inset 0 0 0 1.5px var(--green-900); }
.btn--sm{ padding:.55rem 1rem; font-size:.88rem; }

/* ---------------- HERO ---------------- */

.hero{
    position:relative; overflow:hidden;
    min-height:clamp(340px, 55vh, 520px);
    display:flex; align-items:center; justify-content:center;
    padding-inline:clamp(1.5rem, 5vw, 5rem);
    color:var(--white);
    isolation:isolate;
    margin-top:-1px;
}
.hero__bg{
    position:absolute; inset:-10% -5% -20%;
    background-image:url('/assets/img/hero-wheat.jpg');
    background-size:cover; background-position:center 60%;
    will-change:transform;
    z-index:0;
    transform:scale(1.08);
}
.hero__overlay{
    position:absolute; inset:0;
    z-index:1;
    background:
        radial-gradient(ellipse at 25% 40%, rgba(240,165,0,.22) 0%, transparent 45%),
        linear-gradient(135deg, rgba(14,36,21,.78) 0%, rgba(28,61,35,.55) 50%, rgba(14,36,21,.75) 100%);
}
.hero__overlay::after{
    content:"";
    position:absolute; inset:0;
    background:
        radial-gradient(circle at 80% 90%, rgba(138,185,122,.3) 0%, transparent 40%),
        linear-gradient(to top, rgba(14,36,21,.65) 0%, transparent 40%);
}
.hero__noise{
    position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.4; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
/* Dekorativní světelný blob v pozadí heroa */
.hero::after{
    content:"";
    position:absolute; z-index:2; pointer-events:none;
    right:-10%; top:20%;
    width:min(60vw, 560px); aspect-ratio:1;
    background:radial-gradient(circle at 30% 30%, rgba(240,165,0,.32) 0%, rgba(240,165,0,.10) 30%, transparent 60%);
    filter:blur(30px);
    transform:translate3d(calc(var(--mx, 0) * 40px), calc(var(--my, 0) * 40px), 0);
    transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
@media (max-width:640px){ .hero::after{ right:-30%; top:auto; bottom:-10%; width:90vw; filter:blur(40px); } }
.hero__inner{ position:relative; z-index:3; width:100%; max-width:var(--container); padding:clamp(1.5rem, 4vw, 3rem) 0 clamp(2rem, 4vw, 3.5rem); }
.hero__eyebrow{
    display:inline-flex; align-items:center; gap:.6rem;
    padding:.5rem 1.1rem;
    background:rgba(255,255,255,.1);
    backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.2);
    border-radius:999px;
    font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
    color:rgba(255,255,255,.92);
    margin-bottom:1.6rem;
}
.hero__eyebrow::before{
    content:""; width:8px; height:8px; border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 0 3px rgba(240,165,0,.25);
    animation:pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.2); opacity:.7; } }

.hero h1{
    color:var(--white);
    font-size:clamp(2.5rem, 5.6vw, 5rem);
    max-width:22ch;
    margin-bottom:1.25rem;
    font-weight:700;
    letter-spacing:-.025em;
    text-shadow:0 4px 40px rgba(0,0,0,.3);
}
.hero h1 em{
    font-style:normal;
    background:linear-gradient(120deg, var(--accent-gl) 0%, var(--accent) 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.hero__lead{
    font-size:clamp(1.05rem, 1.4vw, 1.3rem);
    max-width:56ch;
    color:rgba(255,255,255,.92);
    margin-bottom:2.2rem;
    line-height:1.55;
    font-weight:400;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; }

.hero__stats{
    position:absolute; right:2rem; bottom:2rem; z-index:4;
    display:grid; grid-template-columns:auto auto auto; gap:0;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,.18);
    padding:1.1rem 1.4rem; border-radius:var(--radius-lg);
    color:#fff;
    box-shadow:var(--shadow-glow);
}
.hero__stats > div{ padding:0 1.1rem; border-right:1px solid rgba(255,255,255,.15); text-align:center; }
.hero__stats > div:last-child{ border-right:0; }
.hero__stats strong{ display:block; font-family:var(--font-display); font-size:1.6rem; font-weight:800; letter-spacing:-.02em; }
.hero__stats span{ font-size:.75rem; color:rgba(255,255,255,.75); text-transform:uppercase; letter-spacing:.08em; }
@media (max-width:880px){ .hero__stats{ position:static; margin-top:2.5rem; max-width:fit-content; } }
@media (max-width:640px){
    .hero{ min-height:clamp(380px, 65vh, 560px); }
    .hero__inner{ padding:2rem 0 3.5rem; }
    .hero__eyebrow{ font-size:.68rem; padding:.4rem .85rem; margin-bottom:1rem; }
    .hero h1{ font-size:clamp(1.9rem, 8vw, 2.7rem); max-width:100%; margin-bottom:1rem; }
    .hero__lead{ font-size:1rem; margin-bottom:1.6rem; }
    .hero__actions{ width:100%; }
    .hero__actions .btn{ flex:1; justify-content:center; min-width:0; }
    .hero__stats{
        grid-template-columns:1fr; gap:.2rem;
        width:calc(100% - 2.5rem); max-width:100%;
        margin:2rem auto 0; padding:.8rem 1rem;
    }
    .hero__stats > div{
        padding:.7rem 1rem;
        border-right:0; border-bottom:1px solid rgba(255,255,255,.15);
        display:flex; align-items:baseline; justify-content:space-between; gap:1rem; text-align:left;
    }
    .hero__stats > div:last-child{ border-bottom:0; }
    .hero__stats strong{ font-size:1.25rem; }
    .hero__stats span{ font-size:.7rem; }
    .hero__scroll{ display:none; }
}

.hero__scroll{
    position:absolute; left:50%; bottom:1.5rem; transform:translateX(-50%); z-index:4;
    color:rgba(255,255,255,.6); font-size:.75rem; letter-spacing:.2em; text-transform:uppercase;
    display:flex; flex-direction:column; align-items:center; gap:.5rem;
    pointer-events:none;
}
.hero__scroll::after{
    content:""; width:1px; height:32px;
    background:linear-gradient(to bottom, rgba(255,255,255,.6), transparent);
    animation:scrolldown 2s ease-in-out infinite;
}
@keyframes scrolldown{ 0%{ transform:scaleY(0); transform-origin:top; } 50%{ transform:scaleY(1); } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* ---------------- Section heads ---------------- */

.section-head{ max-width:720px; margin-bottom:2.5rem; }
.section-head--centered{ margin-inline:auto; text-align:center; }
.section-head__eyebrow{
    display:inline-flex; align-items:center; gap:.6rem;
    padding:.35rem .9rem;
    background:rgba(47,107,60,.08);
    color:var(--green-700);
    font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.14em;
    border-radius:999px; margin-bottom:1rem;
    box-shadow:inset 0 0 0 1px rgba(47,107,60,.15);
}
.section-head__eyebrow::before{
    content:""; width:6px; height:6px; border-radius:50%; background:var(--accent);
}
.section-head__lead{ font-size:1.1rem; color:var(--ink-soft); margin:0; line-height:1.6; }

section.block--dark .section-head__eyebrow{
    background:rgba(255,255,255,.1); color:var(--accent-gl);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);
}
section.block--dark .section-head__lead{ color:rgba(255,255,255,.85); }

/* ---------------- Cards grid ---------------- */

.grid{ display:grid; gap:1.5rem; }
.grid--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.grid--2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
@media (max-width:1024px){ .grid--3{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){ .grid--3, .grid--2{ grid-template-columns:1fr; } }

.card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:1.8rem;
    transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    display:flex; flex-direction:column; gap:.8rem;
    position:relative; overflow:hidden;
}
.card::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(135deg, rgba(240,165,0,0) 0%, rgba(240,165,0,.06) 100%);
    opacity:0; transition:opacity var(--transition);
    pointer-events:none;
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(138,185,122,.5); }
.card:hover::before{ opacity:1; }
.card__eyebrow{
    font-size:.72rem; text-transform:uppercase; letter-spacing:.12em;
    color:var(--earth-500); font-weight:700;
}
.card__title{ font-family:var(--font-display); font-size:1.35rem; margin:0; color:var(--green-900); font-weight:700; }
.card__text{ color:var(--ink-soft); font-size:.95rem; flex:1; margin:0; line-height:1.55; }
.card__link{
    font-weight:700; color:var(--green-700); margin-top:.5rem;
    display:inline-flex; align-items:center; gap:.35rem;
    text-transform:uppercase; font-size:.8rem; letter-spacing:.1em;
}
.card__link::after{ content:"→"; transition:transform var(--transition); font-size:1rem; letter-spacing:0; }
.card__link:hover::after{ transform:translateX(5px); }
.card__thumb{
    margin:-1.8rem -1.8rem 0; aspect-ratio:16/10; overflow:hidden;
    border-radius:var(--radius-lg) var(--radius-lg) 0 0; background:var(--green-100); position:relative;
}
.card__thumb::after{
    content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(14,36,21,.35), transparent 50%);
}
.card__thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.card:hover .card__thumb img{ transform:scale(1.08); }

.card--icon{ text-align:left; }
.card__icon{
    width:60px; height:60px; border-radius:16px;
    background:linear-gradient(135deg, var(--green-100) 0%, var(--green-300) 100%);
    display:grid; place-items:center; color:var(--green-900);
    margin-bottom:.5rem;
    box-shadow:inset 0 0 0 1px rgba(47,107,60,.15);
    transition:background var(--transition), color var(--transition), transform var(--transition);
}
.card:hover .card__icon{
    background:linear-gradient(135deg, var(--accent-gl) 0%, var(--accent) 100%);
    color:#1a1100;
    transform:rotate(-5deg) scale(1.05);
}
.card__icon svg{ width:30px; height:30px; }

/* Glassmorphism card variant */
.card--glass{
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.14);
    backdrop-filter:blur(16px);
    color:#fff;
}
.card--glass .card__title{ color:#fff; }
.card--glass .card__text{ color:rgba(255,255,255,.82); }
.card--glass .card__eyebrow{ color:var(--accent-gl); }
.card--glass:hover{ background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.25); }

/* ---------------- Counters ---------------- */

.counters{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1rem; }
@media (max-width:768px){ .counters{ grid-template-columns:repeat(2,1fr); gap:1.5rem; } }
.counter{
    text-align:center; padding:1.5rem 1rem;
    background:rgba(255,255,255,.04);
    border-radius:var(--radius);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(4px);
}
section.block--photo .counter{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12); }
.counter__value{
    font-family:var(--font-display); font-weight:800;
    font-size:clamp(2.5rem, 4.5vw, 3.75rem);
    line-height:1;
    background:linear-gradient(120deg, var(--accent-gl) 0%, var(--accent) 70%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
    letter-spacing:-.03em;
}
.counter__value.counter__value--solid{
    background:none; -webkit-text-fill-color:initial; color:var(--green-900);
}
.counter__label{
    color:rgba(255,255,255,.75);
    font-size:.85rem; text-transform:uppercase; letter-spacing:.08em;
    margin-top:.5rem; font-weight:500;
}
section.block:not(.block--dark):not(.block--photo) .counter__label{ color:var(--muted); }
section.block:not(.block--dark):not(.block--photo) .counter{ background:var(--green-50); border-color:rgba(47,107,60,.1); }

/* ---------------- Prose ---------------- */

.prose{ font-size:1.05rem; color:var(--ink-soft); line-height:1.75; }
.prose h2{ margin-top:2.2rem; }
.prose h3{ margin-top:1.8rem; }
.prose ul, .prose ol{ padding-left:1.3rem; }
.prose li{ margin-bottom:.5rem; }
.prose a{ text-decoration:underline; text-underline-offset:3px; }

/* ---------------- Documents ---------------- */

.docs{ display:grid; gap:.8rem; }
.doc{
    display:flex; gap:1rem; align-items:center;
    padding:1.1rem 1.3rem;
    background:var(--white);
    border:1px solid var(--line); border-radius:var(--radius);
    transition:background var(--transition), border-color var(--transition), transform var(--transition);
}
.doc:hover{ background:var(--green-50); border-color:var(--green-300); transform:translateX(4px); }
.doc__icon{
    flex:0 0 auto; width:48px; height:48px;
    background:linear-gradient(135deg, var(--earth-500), var(--earth-700));
    color:#fff; border-radius:10px; display:grid; place-items:center;
    font-weight:800; font-size:.72rem; letter-spacing:.04em;
}
.doc__body{ flex:1; min-width:0; }
.doc__title{ font-weight:700; color:var(--green-900); margin:0 0 .2rem; font-size:1rem; }
.doc__meta{ color:var(--muted); font-size:.85rem; display:flex; gap:.8rem; flex-wrap:wrap; }
.doc__dl{ flex:0 0 auto; color:var(--green-700); font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; }

/* ---------------- People ---------------- */

.persons{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.1rem; margin-bottom:2.5rem; }
@media (max-width:900px){ .persons{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .persons{ grid-template-columns:1fr; } }
.person{
    padding:1.2rem 1.2rem 1.3rem; border:1px solid var(--line); border-radius:var(--radius);
    background:var(--white);
    transition:transform var(--transition), box-shadow var(--transition);
}
.person:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.person__photo{
    width:64px; height:64px; border-radius:50%;
    background:linear-gradient(135deg, var(--green-100), var(--green-300));
    display:grid; place-items:center;
    font-family:var(--font-display); font-weight:800; font-size:1.1rem;
    color:var(--green-900);
    margin-bottom:.8rem;
    box-shadow:inset 0 0 0 3px rgba(255,255,255,.4);
}
.person__photo img{ width:100%; height:100%; object-fit:cover; border-radius:50%; }
.person__name{ margin:0 0 .15rem; font-size:1.02rem; color:var(--green-900); line-height:1.25; }
.person__role{ color:var(--earth-500); font-weight:600; font-size:.82rem; line-height:1.35; }

/* ---------------- Forms ---------------- */

.form{ display:grid; gap:1.1rem; max-width:640px; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:640px){ .form__row{ grid-template-columns:1fr; } }
.form label{ font-weight:600; color:var(--green-900); font-size:.92rem; display:block; margin-bottom:.4rem; }
.form input, .form textarea, .form select{
    width:100%; padding:.8rem 1rem;
    border:1px solid var(--line); border-radius:12px;
    font-family:inherit; font-size:1rem; color:var(--ink);
    background:var(--white); transition:border-color var(--transition), box-shadow var(--transition);
}
.form input:focus, .form textarea:focus, .form select:focus{
    outline:none; border-color:var(--green-500);
    box-shadow:0 0 0 4px rgba(74,139,78,.15);
}
.form textarea{ min-height:160px; resize:vertical; }
.form .honeypot{ position:absolute; left:-9000px; top:-9000px; width:1px; height:1px; overflow:hidden; }

.form__msg{ padding:1rem 1.2rem; border-radius:12px; font-size:.95rem; }
.form__msg--ok{ background:var(--green-50); color:var(--green-900); border:1px solid var(--green-300); }
.form__msg--err{ background:#fde8e8; color:#8a1a1a; border:1px solid #f3b5b5; }

/* ---------------- Footer ---------------- */

.site-footer{
    background:
        radial-gradient(ellipse at 80% 0%, rgba(240,165,0,.12) 0%, transparent 40%),
        linear-gradient(180deg, var(--green-900) 0%, var(--green-950) 100%);
    color:#c8d1c3; padding:5rem 0 2rem;
    position:relative;
}
.site-footer::before{
    content:""; position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(to right, transparent, rgba(240,165,0,.4), transparent);
}
.site-footer h4{ color:var(--white); font-family:var(--font-display); font-size:1.05rem; margin:0 0 1.2rem; letter-spacing:-.01em; }
.footer-logo{
    width:220px; height:auto; display:block;
    filter:brightness(1.6) saturate(.9);
    opacity:.95;
}
.site-footer a{ color:#c8d1c3; transition:color var(--transition); }
.site-footer a:hover{ color:var(--accent); }
.footer-grid{
    display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem;
}
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:540px){ .footer-grid{ grid-template-columns:1fr; } }
.site-footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:.5rem; font-size:.95rem; }
.site-footer__meta{
    margin-top:3.5rem; padding-top:1.8rem; border-top:1px solid rgba(255,255,255,.08);
    display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between;
    color:#8aa083; font-size:.85rem;
}
.site-footer__meta a{ color:#8aa083; text-decoration:underline; text-underline-offset:3px; }

/* ---------------- Crumbs ---------------- */

.crumbs{ display:flex; flex-wrap:wrap; gap:.5rem; font-size:.86rem; color:var(--muted); margin-bottom:1.5rem; }
.crumbs a{ color:var(--muted); }
.crumbs a:hover{ color:var(--green-700); }
.crumbs span[aria-current]{ color:var(--green-900); font-weight:600; }
.crumbs .sep{ opacity:.5; }

/* ---------------- Reveal ---------------- */

.reveal{ opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible{ opacity:1; transform:none; }
.reveal--delay1{ transition-delay:.08s; }
.reveal--delay2{ transition-delay:.16s; }
.reveal--delay3{ transition-delay:.24s; }

/* ---------------- Utility ---------------- */

.lead{ font-size:1.15rem; color:var(--ink-soft); line-height:1.6; }
.text-muted{ color:var(--muted); }
.visually-hidden{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.empty-state{
    padding:2.5rem; border:1px dashed var(--line); border-radius:var(--radius);
    color:var(--muted); text-align:center; background:rgba(255,255,255,.4);
}

/* ---------------- Page hero (sekundární, menší) ---------------- */

.page-hero{
    position:relative; overflow:hidden;
    padding:clamp(1rem, 3vw, 2rem) 0 clamp(1.5rem, 3vw, 2.5rem);
    color:#fff;
    background:
        radial-gradient(ellipse at 0% 100%, rgba(240,165,0,.18) 0%, transparent 50%),
        linear-gradient(135deg, var(--green-950) 0%, var(--green-900) 60%, var(--green-700) 120%);
    margin-top:-1px;
}
.page-hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:url('/assets/img/hero-wheat.jpg');
    background-size:cover; background-position:center 35%;
    opacity:.18;
    filter:saturate(.8);
}
.page-hero > *{ position:relative; z-index:1; }
.page-hero h1{ color:var(--white); margin-bottom:.5rem; }
.page-hero .crumbs{ color:rgba(255,255,255,.6); margin-bottom:1.5rem; }
.page-hero .crumbs a{ color:rgba(255,255,255,.65); }
.page-hero .crumbs a:hover{ color:#fff; }
.page-hero .crumbs span[aria-current]{ color:#fff; }
.page-hero .lead{ color:rgba(255,255,255,.85); max-width:60ch; }

/* ---------------- Project/dotace meta badges ---------------- */

.meta-row{
    list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:.6rem;
    margin:0 0 1.5rem;
}
.meta-row li{
    padding:.45rem .9rem;
    background:var(--green-50); border-radius:999px;
    font-size:.85rem; color:var(--ink-soft);
    border:1px solid rgba(47,107,60,.1);
}
.meta-row li strong{ color:var(--green-900); margin-right:.3rem; }

/* ---------------- EU publicity ---------------- */

.eu-badge{
    display:inline-flex; align-items:center; gap:.45rem;
    padding:.35rem .75rem;
    background:rgba(0,51,153,.14);
    border:1px solid rgba(255,204,0,.4);
    border-radius:999px;
    font-size:.78rem; font-weight:700; color:#fff; letter-spacing:.04em;
    text-transform:uppercase;
}
.eu-badge--muted{
    background:rgba(255,255,255,.1);
    border-color:rgba(255,255,255,.2);
}
.eu-badge img{ border-radius:3px; }

.eu-publicity{
    display:flex; gap:1.5rem; align-items:center;
    margin-top:2.5rem; padding:1.5rem 1.8rem;
    background:linear-gradient(135deg, rgba(0,51,153,.06) 0%, rgba(255,204,0,.05) 100%);
    border:1px solid rgba(0,51,153,.15);
    border-radius:var(--radius);
}
.eu-publicity__flag{ flex:0 0 auto; }
.eu-publicity__flag img{
    width:80px; height:auto; border-radius:4px;
    box-shadow:0 2px 8px rgba(0,51,153,.2);
}
.eu-publicity__text{ flex:1; font-size:.95rem; color:var(--ink-soft); line-height:1.5; }
.eu-publicity__text strong{ color:var(--green-900); display:block; }
@media (max-width:560px){
    .eu-publicity{ flex-direction:column; text-align:center; gap:1rem; padding:1.5rem; }
}

.eu-publicity-banner{
    margin:2rem 0; padding:0;
    border:1px solid var(--line); border-radius:var(--radius);
    overflow:hidden; background:var(--white);
}
.eu-publicity-banner figcaption{
    padding:.6rem 1rem; background:var(--green-50);
    font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-weight:600;
    border-bottom:1px solid var(--line);
}
.eu-publicity-banner img{ width:100%; height:auto; display:block; }

.card__thumb--eu{
    display:grid; place-items:center;
    background:linear-gradient(135deg, #003399 0%, #001a66 100%);
}
