:root {
    --brand: #2e8b57;
    --brand-dark: #256f46;
    --brand-soft: #eef7f1;
    --text: #1f2522;
    --muted: #66706b;
    --border: #e4ebe6;
    --bg: #f7faf8;
    --shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
    --radius: 18px;
}

html { scroll-behavior: smooth; }
body { font-family: Arial, Helvetica, sans-serif; color: var(--text); background: var(--bg); }
a { transition: color .2s ease, background-color .2s ease, transform .2s ease; }
.text-brand { color: var(--brand) !important; }
.bg-brand { background-color: var(--brand) !important; }
.btn-brand { background: var(--brand); color:#fff; border:none; border-radius:12px; padding:.85rem 1.5rem; font-weight:700; }
.btn-brand:hover { background: var(--brand-dark); color:#fff; }
.btn-outline-brand { border:2px solid var(--brand); color:var(--brand); border-radius:12px; padding:.85rem 1.5rem; font-weight:700; background:transparent; }
.btn-outline-brand:hover { background:var(--brand); color:#fff; }
.section-padding { padding:5rem 0; }
.section-title { font-size:clamp(2rem, 4vw, 3rem); font-weight:800; line-height:1.15; margin-bottom:1rem; }
.section-subtitle { color:var(--muted); font-size:1.1rem; max-width:760px; margin:0 auto; }
.site-navbar { background:rgba(255,255,255,.96); backdrop-filter:blur(10px); border-bottom:1px solid rgba(0,0,0,.06); }
.navbar-brand-custom { display:inline-flex; align-items:center; line-height:1; }
.navbar-logo { height:56px; width:auto; display:block; }
.footer-logo { height:46px; width:auto; display:block; max-width:100%; object-fit:contain; }
.navbar-nav .nav-link { font-weight:700; color:var(--text); margin-left:.75rem; margin-right:.75rem; position:relative; }
.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active { color:var(--brand); }
.hero{
    display:flex;
    align-items:center;
    min-height:360px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    color:#fff;
}
.hero-badge { display:inline-block; padding:.55rem 1rem; border:1px solid rgba(255,255,255,.35); border-radius:999px; background:rgba(255,255,255,.1); font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; margin-bottom:1.2rem; }
.hero h1 { font-size:clamp(2.3rem, 5vw, 4.5rem); font-weight:800; line-height:1.08; margin-bottom:1.2rem; }
.hero p { font-size:1.2rem; max-width:820px; margin:0 auto; color:rgba(255,255,255,.92); }
.soft-section { background:linear-gradient(180deg, #f9fcfa 0%, #edf7f0 100%); }
.card-clean { border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); background:#fff; }
.issue-row, .program-row { display:flex; align-items:center; }
.issue-icon, .program-icon { width:72px; min-width:72px; height:72px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; background:var(--brand-soft); color:var(--brand); font-size:1.5rem; flex-shrink:0; margin-right:1rem; }
.issue-content, .program-content { flex:1; }
.issue-card { height:100%; padding:1.5rem; transition:transform .2s ease; }
.person-card { overflow:hidden; }
.person-image-wrap { background:linear-gradient(180deg, #eef7ef 0%, #dbeee2 100%); min-height:100%; display:flex; align-items:center; justify-content:center; padding:2rem; }
.person-image { width:150px; object-fit:cover; border:4px solid #fff; box-shadow:0 10px 25px rgba(0,0,0,.12); }
.person-content { padding:2rem; }
.person-role { color:var(--brand); text-transform:uppercase; font-weight:700; letter-spacing:.06em; font-size:.85rem; margin-bottom:.5rem; }
.program-list-wrap { max-width:920px; margin:0 auto; }
.program-item { padding:1.5rem; margin-bottom:1rem; transition:transform .2s ease; }
.program-item:last-child { margin-bottom:0; }
.program-item h3 { margin-bottom:.35rem; font-size:1.35rem; font-weight:800; }
.program-item p { margin-bottom:0; color:var(--muted); }
.news-card { overflow:hidden; height:100%; }
.news-image { height:210px; background-size:cover; background-position:center; }
.news-content { padding:1.5rem; }
.news-date { color:var(--brand); font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.5rem; }
.contact-box { max-width:820px; margin:0 auto; padding:2rem; }
.footer { background:#1d2721; color:rgba(255,255,255,.88); padding:2rem 0; }
.modal-content { border-radius:18px; border:1px solid var(--border); }
.modal-header { border-bottom:1px solid var(--border); }
.modal-body { color:var(--muted); line-height:1.7; }

@media (max-width: 991.98px) {
    .navbar-nav .nav-link { margin-left:0; margin-right:0; }
    .person-image-wrap { min-height:260px; }
    .hero { min-height: 460px; }
}

@media (max-width: 575.98px) {
    .issue-icon, .program-icon { width:64px; min-width:64px; height:64px; margin-right:.85rem; }
}
.hero-title{
    display:inline-block; /* celek zůstane vycentrovaný */
    text-align:left;
}

.hero-title div{
    display:grid;
    grid-template-columns: 1.1em auto; /* fixní sloupec pro P L U S */
    align-items:baseline;
    line-height:1.05;
}

.first-letter{
    color:var(--brand);
    font-weight:800;
    text-align: right;
}
/* ---------------- HERO ---------------- */



.hero-content{
    display:grid;
    grid-template-columns:minmax(300px,430px) auto;
    gap:4rem;
    align-items:center;
    justify-content:center;
    max-width:1100px;
    margin:auto;
}

.hero-side-text{
    max-width:430px;
    text-align:left;
}

.hero-badge{
    display:inline-block;
    padding:.55rem 1rem;
    border:1px solid rgba(255,255,255,.35);
    border-radius:999px;
    background:rgba(255,255,255,.12);
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:1.5rem;
}

.hero-side-text p{
    margin:0;
    font-size:1.2rem;
    line-height:1.7;
    color:rgba(255,255,255,.92);
}

.hero-title{
    margin:0;
    display:inline-block;
    text-align:left;
    font-size:clamp(2.6rem,6vw,5rem);
    font-weight:800;
    line-height:1.04;
}

.hero-title div{
    display:grid;
    grid-template-columns:1.1em auto;
    align-items:baseline;
}

.first-letter{
    color:var(--brand);
    font-weight:800;
}


/* ------------ TABLET ------------ */

@media (max-width:991px){

    .hero{
        min-height:500px;
    }

    .hero-content{
        grid-template-columns:1fr;
        gap:2rem;
        text-align:center;
    }

    .hero-title{
        order:1;
        margin:auto;
    }

    .hero-side-text{
        order:2;
        margin:auto;
        text-align:center;
    }

    .hero-side-text p{
        margin:auto;
    }

}


/* ------------ MOBILE ------------ */

@media (max-width:576px){

    .hero{
        min-height:460px;
    }

    .hero-title{
        font-size:clamp(2rem,12vw,3.4rem);
    }

    .hero-title div{
        grid-template-columns:1em auto;
    }

    .hero-badge{
        font-size:.72rem;
        padding:.5rem .8rem;
    }

    .hero-side-text p{
        font-size:1rem;
    }

}

/***page **/
.page a:not(.btn){
    color: #2e8b57;
}
.program-template {
    padding-top: 1rem;
}
.program-template h1 {
    color: var(--brand);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: .5rem;
    font-size: 2rem;
}
.program-detail-hero{
    background:linear-gradient(180deg, #eef7f1 0%, #ffffff 100%);
    padding:5rem 0 3rem;
}

.program-back-link{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    color:var(--brand);
    font-weight:700;
    text-decoration:none;
    margin-bottom:2rem;
}

.program-back-link:hover{
    color:var(--brand-dark);
}

.program-detail-heading{
    max-width:850px;
}

.program-detail-heading h1{
    font-size:clamp(2.4rem, 5vw, 4.2rem);
    font-weight:800;
    line-height:1.05;
    margin-bottom:1rem;
    color:var(--text);
}

.program-detail-heading p{
    font-size:1.2rem;
    line-height:1.7;
    color:var(--muted);
    max-width:760px;
}

.program-detail-section{
    padding:3rem 0 5rem;
    background:#fff;
}

.program-detail-wrap{
    max-width:980px;
    margin:0 auto;
}

.program-detail-card{
    position:relative;
    display:grid;
    grid-template-columns:180px 1fr;
    gap:2rem;
    padding:2rem;
    margin-bottom:1.25rem;
    border:1px solid var(--border);
    border-radius:var(--radius);
    background:#fff;
    box-shadow:var(--shadow);
}

.program-detail-status{
    align-self:start;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    min-height:46px;
    padding:.6rem 1rem;
    border-radius:999px;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    background:var(--brand-soft);
    color:var(--brand);
    text-align:center;
}

.program-detail-status.splneno{
    background:#eaf7ee;
    color:#247a43;
}

.program-detail-status.plneni{
    background:#fff5df;
    color:#9a6900;
}

.program-detail-status.castecne-splneno{
    background:#eef3ff;
    color:#315aa8;
}

.program-detail-content h2{
    font-size:1.45rem;
    font-weight:800;
    margin-bottom:.75rem;
}

.program-detail-promise{
    color:var(--text);
    font-size:1.05rem;
    line-height:1.7;
    margin-bottom:1rem;
}

.program-detail-fulfillment{
    background:#f7faf8;
    border-left:4px solid var(--brand);
    padding:1rem 1.2rem;
    border-radius:12px;
    color:var(--muted);
    line-height:1.7;
}

.program-detail-fulfillment strong{
    color:var(--text);
}

@media (max-width:767.98px){
    .program-detail-card{
        grid-template-columns:1fr;
        gap:1rem;
        padding:1.4rem;
    }

    .program-detail-status{
        justify-content:flex-start;
        width:fit-content;
    }

    .program-detail-hero{
        padding:3.5rem 0 2rem;
    }
}
.program-link-card{
    display:block;
    color:inherit;
    text-decoration:none;
}

.program-link-card:hover .program-icon{
    background:var(--brand);
    color:#fff;
}

.program-arrow{
    margin-left:auto;
    color:var(--muted);
    font-size:2.5rem;
    display:flex;
    align-items:center;
    transition:.2s ease;
}

.program-link-card:hover .program-arrow{
    color:var(--brand);
    transform:translateX(4px);
}

@media (max-width:575.98px){
    .program-arrow{
        display:none;
    }
}
/* =====================================
PROGRAM DETAIL TEMPLATES (GUTENBERG)
===================================== */

.wp-block-post-content{
    max-width:980px;
    margin:0 auto;
    padding:3rem 1rem 5rem;
}

/* top intro */

.program-kicker{
    color:var(--brand);
    font-weight:800;
    font-size:.8rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:.5rem;
}

.program-page-title{
    font-size:clamp(2.6rem,5vw,4.4rem);
    line-height:1.05;
    font-weight:800;
    margin-bottom:1rem;
}

.program-lead{
    font-size:1.2rem;
    line-height:1.75;
    color:var(--muted);
    max-width:780px;
    margin-bottom:3rem;
}


/* cards */

.program-card{
    background:#fff;
    border:1px solid var(--border);
    border-radius:22px;
    box-shadow:0 12px 30px rgba(0,0,0,.06);
    padding:2rem;
    margin-bottom:1.5rem;
    transition:.2s ease;
}

.program-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 38px rgba(0,0,0,.08);
}

.program-card h2{
    font-size:1.55rem;
    font-weight:800;
    line-height:1.2;
    margin-top:.8rem;
    margin-bottom:1rem;
}

.program-card p{
    line-height:1.75;
    margin-bottom:0;
}


/* status pills */

.status-splneno,
.status-plneni,
.status-castecne{
    display:inline-flex;
    align-items:center;
    padding:.5rem .95rem;
    border-radius:999px;
    font-size:.74rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-bottom:.85rem;
}

.status-splneno{
    background:#e8f7ed;
    color:#237844;
}

.status-plneni{
    background:#fff4d8;
    color:#9c6800;
}

.status-castecne{
    background:#edf2ff;
    color:#3557a7;
}


/* fulfillment quote */

.program-fulfillment{
    margin-top:1.35rem;
    border-radius:14px;
    padding:1.1rem 1.35rem;
    border-left:5px solid var(--brand);
    background:#f7faf8;
}

.program-fulfillment p{
    margin:0 0 .6rem;
    color:var(--muted);
    line-height:1.75;
    font-style:normal;
    font-size:1.05rem;
    font-weight:400;
}

.program-fulfillment p:last-child{
    margin-bottom:0;
}

.program-fulfillment strong{
    display:inline-block;
    padding:.4rem .8rem;
    border-radius:999px;
    margin-right:.45rem;
    margin-bottom:.35rem;
    font-size:.74rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

/* SPLNĚNO */
.program-fulfillment:has(strong){
    border-left-color:var(--brand);
}

.program-fulfillment strong{
    background:#e8f7ed;
    color:#237844;
}

/* PLNĚNÍ */
.program-fulfillment:has(strong:first-child){
    background:#f7faf8;
}

/* barvy podle textu */
.program-fulfillment p:has(strong){
    font-size:1.05rem;
}

/* konkrétní statusy přes obsah */
.program-fulfillment{
    margin-top:1.35rem;
    border-radius:14px;
    padding:1.1rem 1.35rem;
    background:#f7faf8;
    border-left:5px solid var(--brand);
}

.program-fulfillment p{
    margin:0 0 .65rem;
    color:var(--muted);
    line-height:1.75;
    font-style:normal;
    font-size:1.05rem;
    font-weight:400;
}

.program-fulfillment p:last-child{
    margin-bottom:0;
}

.program-fulfillment strong{
    display:inline-block;
    padding:.42rem .85rem;
    border-radius:999px;
    margin-right:.45rem;
    margin-bottom:.35rem;
    font-size:.74rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

/* splněno */
.program-fulfillment.status-done{
    border-left-color:#2e8b57;
    background:#f3fbf6;
}

.program-fulfillment.status-done strong{
    background:#e8f7ed;
    color:#237844;
}

/* plnění */
.program-fulfillment.status-progress{
    border-left-color:#d99a00;
    background:#fffaf0;
}

.program-fulfillment.status-progress strong{
    background:#fff4d8;
    color:#9c6800;
}

/* částečně splněno */
.program-fulfillment.status-partial{
    border-left-color:#4c6fd8;
    background:#f5f7ff;
}

.program-fulfillment.status-partial strong{
    background:#edf2ff;
    color:#3557a7;
}
.program-fulfillment.status-failed{
    border-left-color:#c94a4a;
    background:#fff5f5;
}

.program-fulfillment.status-failed strong{
    background:#fde2e2;
    color:#a63636;
}

.program-fulfillment.status-neutral{
    border-left-color:#8b96a3;
    background:#f7f8fa;
}

.program-fulfillment.status-neutral strong{
    background:#eceff3;
    color:#5d6670;
}
.program-fulfillment.status-mostly{
    border-left-color:#6d8f2d;
    background:#f6faee;
}

.program-fulfillment.status-mostly strong{
    background:#e7f2cf;
    color:#5f7b21;
}

/* default gutenberg spacing fix */

.wp-block-group.program-card{
    margin-top:0;
}

.program-card .wp-block-heading{
    margin-bottom:1rem;
}

.program-card .wp-block-quote{
    margin-top:1.2rem;
}


/* optional timeline line effect */

.program-card{
    position:relative;
    padding-left:2.4rem;
}

.program-card:before{
    content:"";
    position:absolute;
    left:1rem;
    top:2rem;
    bottom:2rem;
    width:3px;
    border-radius:4px;
    background:var(--brand-soft);
}

.program-card:after{
    content:"";
    position:absolute;
    left:.74rem;
    top:2rem;
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--brand);
}


/* responsive */

@media(max-width:991px){

    .program-page-title{
        font-size:clamp(2.2rem,7vw,3.4rem);
    }

    .program-lead{
        font-size:1.1rem;
    }

}

@media(max-width:768px){

    .wp-block-post-content{
        padding:2rem 1rem 4rem;
    }

    .program-card{
        padding:1.35rem 1.35rem 1.35rem 1.8rem;
    }

    .program-card:before{
        left:.55rem;
    }

    .program-card:after{
        left:.28rem;
    }

    .program-card h2{
        font-size:1.3rem;
    }

    .program-lead{
        font-size:1rem;
    }

}

/*asd*/
.success-wrap{
    overflow:hidden;
    max-width:950px;
    margin:auto;
}

.success-toggle{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:1.5rem 2rem;
    background:#fff;
    border:0;
    font-weight:800;
    font-size:1.2rem;
    text-align:left;
}

.success-toggle i{
    font-size:1.2rem;
    color:var(--brand);
}

.success-intro{
    padding:0 2rem 2rem;
    color:var(--muted);
    font-size:1.1rem;
    line-height:1.8;
}

.success-timeline{
    padding:0 2rem 2rem;
    display:grid;
    gap:1rem;
}

.success-item{
    display:flex;
    gap:1rem;
    align-items:flex-start;
    background:#fff;
    border:1px solid var(--border);
    padding:1.2rem 1.4rem;
    border-radius:18px;
    box-shadow:0 8px 20px rgba(0,0,0,.04);
}

.success-item span{
    width:42px;
    height:42px;
    min-width:42px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    background:var(--brand-soft);
    color:var(--brand);
}

.success-item:hover{
    transform:translateY(-3px);
    transition:.2s ease;
}

@media(max-width:768px){

    .success-toggle{
        padding:1.2rem;
        font-size:1rem;
    }

    .success-intro,
    .success-timeline{
        padding:0 1.2rem 1.5rem;
    }

    .success-item{
        padding:1rem;
    }
}
.success-compact{
    max-width:880px;
    margin:auto;
    overflow:hidden;
}

.success-compact-toggle{
    width:100%;
    border:0;
    background:#fff;
    padding:1.1rem 1.4rem;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-weight:800;
    font-size:clamp(1rem,2vw,1.2rem);
    text-align:left;
}

.success-compact-toggle i{
    color:var(--brand);
    font-size:1rem;
}

.success-compact-body{
    padding:0 1.4rem 1.4rem;
}

.success-compact-intro{
    margin:.3rem 0 1rem;
    font-size:1rem;
    line-height:1.55;
    color:var(--muted);
}

.success-grid{
    display:flex;
    flex-direction:column;
    gap:.55rem; /* malé mezery */
}

.success-mini{
    display:grid;
    grid-template-columns:34px 1fr;
    gap:.8rem;
    align-items:flex-start;
    padding:.8rem 1rem;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
    box-shadow:0 3px 10px rgba(0,0,0,.03);
    transition:.2s ease;
}

.success-mini:hover{
    transform:translateY(-2px);
}

.success-mini span{
    width:30px;
    height:30px;
    min-width:30px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--brand-soft);
    color:var(--brand);
    font-weight:800;
    font-size:.8rem;
    margin-top:2px;
}

.success-mini p{
    margin:0;
    font-size:.98rem;
    line-height:1.45;
}

@media(max-width:768px){

    .success-compact{
        max-width:100%;
    }

    .success-compact-toggle{
        padding:1rem;
        font-size:1rem;
    }

    .success-compact-body{
        padding:0 1rem 1rem;
    }

    .success-grid{
        gap:.45rem;
    }

    .success-mini{
        padding:.7rem .85rem;
        grid-template-columns:28px 1fr;
        gap:.65rem;
    }

    .success-mini span{
        width:26px;
        height:26px;
        font-size:.72rem;
    }

    .success-mini p{
        font-size:.92rem;
        line-height:1.4;
    }

}
.success-list-wrap{
    max-width:850px;
    margin:auto;
    padding:0 1.5rem 1.5rem;
}

.success-compact-intro{
    margin:0 0 1.5rem;
    font-size:1.08rem;
    line-height:1.75;
    color:var(--muted);
    padding-left:1.2rem;
    border-left:4px solid var(--brand);
}

.success-list{
    list-style:none;
    padding:0;
    margin:0;
    position:relative;
}

.success-list:before{
    content:"";
    position:absolute;
    left:18px;
    top:0;
    bottom:0;
    width:2px;
    background:linear-gradient(
            to bottom,
            var(--brand),
            rgba(46,139,87,.15)
    );
}

.success-list li{
    position:relative;
    padding:0 0 1.25rem 4rem;
    margin-bottom:.65rem;
    line-height:1.6;
    font-size:1.02rem;
}

.success-list li:last-child{
    margin-bottom:0;
    padding-bottom:0;
}

.success-list li:before{
    content:counter(item);
    counter-increment:item;
    position:absolute;
    left:0;
    top:0;
    width:38px;
    height:38px;
    border-radius:50%;
    background:#fff;
    border:2px solid var(--brand);
    color:var(--brand);
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    font-size:.82rem;
    box-shadow:0 4px 12px rgba(0,0,0,.06);
}

.success-list{
    counter-reset:item;
}

.success-list li strong{
    color:var(--brand);
}

@media(max-width:768px){

    .success-list-wrap{
        padding:0 1rem 1rem;
    }

    .success-compact-intro{
        font-size:1rem;
        line-height:1.6;
        padding-left:1rem;
    }

    .success-list:before{
        left:14px;
    }

    .success-list li{
        padding-left:3rem;
        font-size:.95rem;
        padding-bottom:1rem;
    }

    .success-list li:before{
        width:30px;
        height:30px;
        font-size:.72rem;
        left:0;
    }

}

/*referendum*/
.referendum-banner{
    display:block;
    position:relative;
}

.referendum-banner img{
    height: 520px;
    display: block;
    transition: transform .45s ease;
    margin: auto;
}

.referendum-banner:hover img{
    transform:scale(1.02);
}

.referendum-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    padding:3rem;
}

.referendum-content{
    color:#fff;
    max-width:650px;
}

.referendum-badge{
    display:inline-block;
    padding:.55rem 1rem;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    backdrop-filter:blur(6px);
    font-weight:700;
    margin-bottom:1rem;
}

.referendum-content h3{
    font-size:clamp(2rem,4vw,3.4rem);
    font-weight:800;
    line-height:1.1;
    margin-bottom:1rem;
    color:#fff;
}

.referendum-link{
    display:inline-flex;
    gap:.6rem;
    align-items:center;
    font-weight:700;
    font-size:1.05rem;
}

.referendum-link i{
    transition:.2s;
}

.referendum-banner:hover .referendum-link i{
    transform:translateX(5px);
}

@media(max-width:768px){

    .referendum-banner img{
        width: 100%;
        object-fit: contain;
        height: auto;
    }

    .referendum-overlay{
        padding:1.5rem;
    }

    .referendum-content h3{
        font-size:2rem;
    }
    .section-padding {
        padding: 1rem 0;
    }
}