/* ================= Titulka: Kto sme + tri oddelene oblasti (30.9.2026) ================= */
.who { padding: clamp(48px, 7vw, 96px) 0 0; }
.who__in { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 36px clamp(32px, 6vw, 80px); align-items: center; }
.who__media { position: relative; z-index: 0; }
.who__media img { display: block; width: 100%; height: auto; border-radius: 28px; box-shadow: 0 24px 60px rgba(20, 71, 46, .16); }
.who__media::before { content: ''; position: absolute; left: -18px; top: -18px; width: 110px; height: 110px; background-image: radial-gradient(var(--g-soft) 2.2px, transparent 2.3px); background-size: 22px 22px; z-index: -1; }
.who__badge { position: absolute; right: -12px; bottom: 28px; background: var(--orange); color: #fff; border-radius: 16px; padding: 14px 20px; font-size: 14px; line-height: 1.3; box-shadow: 0 16px 34px rgba(224, 118, 47, .35); }
.who__badge b { display: block; font-family: var(--f-head); font-size: 18px; }
@media (max-width: 600px) { .who__badge { right: 12px; } }
.who__text .who__lead { font-size: 18px; line-height: 1.7; color: var(--ink); margin: 18px 0 16px; }
.who__text p { font-size: 16px; line-height: 1.75; color: var(--muted); }
.who__list { list-style: none; padding: 0; margin: 18px 0 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 10px 20px; }
.who__list li { position: relative; padding-left: 32px; font-weight: 600; color: var(--ink); font-size: 15.5px; }
.who__list li::before { content: '✓'; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--mint); color: var(--g); display: grid; place-items: center; font-size: 13px; font-weight: 800; }
.partners--inline { margin-top: clamp(40px, 5vw, 64px); }
.partners--inline h2 { font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

.pillars { padding: clamp(56px, 7vw, 104px) 0; }
.pillars__head { max-width: 62ch; margin-bottom: 36px; }
.pillars__head p { color: var(--muted); font-size: 16.5px; margin: 12px 0 0; }
.pillars__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 22px; }
.pillar { position: relative; overflow: hidden; border-radius: 26px; padding: 34px 30px 30px; color: #fff; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 18px 44px rgba(20, 71, 46, .16); transition: transform .3s; }
.pillar:hover { transform: translateY(-6px); }
.pillar--1 { background: var(--g-deep); }
.pillar--2 { background: var(--g); }
.pillar--3 { background: var(--orange-deep); }
.pillar::after { content: ''; position: absolute; right: -60px; top: -60px; width: 190px; height: 190px; border-radius: 50%; background: rgba(255, 255, 255, .08); pointer-events: none; }
.pillar__num { font-family: var(--f-head); font-weight: 800; font-size: 56px; line-height: 1; color: rgba(255, 255, 255, .3); }
.pillar__title { margin: 0; font-family: var(--f-head); font-weight: 700; font-size: 28px; line-height: 1.15; }
body .pillar__title a, body .pillar__title a:hover { color: #fff; }
.pillar__for { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .78); }
.pillar__text { margin: 0; font-size: 15.5px; line-height: 1.65; color: rgba(255, 255, 255, .92); }
.pillar__items { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body .pillar__items a { display: inline-block; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .24); color: #fff; border-radius: 999px; padding: 6px 14px; font-size: 13.5px; font-weight: 600; }
body .pillar__items a:hover { background: #fff; color: var(--g-deep); }
body .pillar__cta { margin-top: auto; align-self: flex-start; color: #fff; font-family: var(--f-head); font-weight: 700; font-size: 14.5px; letter-spacing: .06em; text-transform: uppercase; border-bottom: 2px solid rgba(255, 255, 255, .6); padding: 10px 0 4px; }
body .pillar__cta:hover { color: #fff; border-bottom-color: #fff; }
.pillars__more { margin-top: 28px; }

.block { padding: clamp(56px, 7vw, 100px) 0; }
.programs.block { border-top: 6px solid var(--g-deep); }
.block--courses { background: #fff; border-top: 6px solid var(--g); }
.block--firms { background: var(--sand); border-top: 6px solid var(--orange-deep); }
.block__label { display: inline-flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--g-deep); margin-bottom: 14px; }
.block__label b { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--g-deep); color: #fff; font-family: var(--f-head); letter-spacing: 0; font-size: 15px; }
.block__label--2 b { background: var(--g); }
.block__label--3 b { background: var(--orange-deep); }
.block__perks { margin-bottom: 26px; }
.block__perks .perk { background: #fff; }
.block__perks .perk:nth-child(even) { background: #fff; }
.courses__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 22px; }
body .course { display: flex; flex-direction: column; gap: 12px; background: var(--mint); border-radius: 22px; padding: 28px; color: var(--ink); transition: transform .3s, box-shadow .3s; }
body .course:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(20, 71, 46, .14); color: var(--ink); }
.course__tag { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--g); background: #fff; border-radius: 999px; padding: 5px 12px; }
.course__title { margin: 0; font-family: var(--f-head); font-weight: 700; font-size: 21px; line-height: 1.25; }
.course__text { margin: 0; font-size: 15px; line-height: 1.65; color: var(--muted); }
.course__meta { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--mint2); display: flex; align-items: baseline; gap: 12px; font-size: 14px; color: var(--muted); }
.course__meta b { font-family: var(--f-head); font-size: 20px; color: var(--g-deep); margin-left: auto; }
.block__all { margin: 34px 0 0; display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; }
body .link-dark { color: var(--g-deep); font-family: var(--f-head); font-weight: 600; }
.block--firms .program { background: #fff; }
.block--firms .program.program--orange { background: var(--orange-deep); }
.program--orange::after { background: rgba(255, 255, 255, .14); }
body .program--orange p { color: rgba(255, 255, 255, .92); }
body .program--orange a { color: var(--orange-deep); }

/* Homepage: 3 hlavne polozky + CTA v jednom rade */
.programs__grid--4 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .programs__grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .programs__grid--4 { grid-template-columns: repeat(4, 1fr); } .programs__grid--4 .program { padding: 28px 26px; } }
.pillars .partners--inline { margin-top: clamp(48px, 6vw, 80px); }
@media (max-width: 600px) { .partners__box { grid-template-columns: repeat(2, 1fr); gap: 20px; padding: 22px; } }

/* Partneri: siroke logo (ministerstvo) */
.partners__box a.partner--wide { max-width: 240px; }
.partners__box a.partner--wide img { max-width: 100%; }
