/* ============================================================
   Közösségi ház – program aloldalak (kp- prefix)
   Egységes sablon a Szegleteink kártyák mögötti programoldalakhoz.
   Az akcentszín a szeglet szerint vált: baba-mama = zöld (alap),
   gyerek = teal (.page-hero--teal), családi = homok (.page-hero--sand).
   ============================================================ */

.page-hero { --accent: var(--green); --accent-dark: var(--green-dark); }
.page-hero--teal {
  --accent: var(--teal);
  --accent-dark: #2f7a7a;
  background: radial-gradient(circle at 30% 60%, #eef7f7 0%, #cfe8e8 55%, #a9d4d4 100%);
}
.page-hero--sand {
  --accent: var(--sand);
  --accent-dark: var(--sand-dark);
  background: radial-gradient(circle at 30% 60%, #faf6ec 0%, #eee0c0 55%, #ddc68e 100%);
}

/* ---------- Kompakt hero (helytakarékos változat) ---------- */
.page-hero--compact { padding: clamp(56px, 8vw, 84px) 0 clamp(16px, 2vw, 24px); }
.page-hero--compact .kp-hero-icon { width: 48px; height: 48px; margin-bottom: 12px; }
.page-hero--compact .kp-hero-icon svg { width: 24px; height: 24px; }
.page-hero--compact .page-hero-title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin-bottom: 12px; }
.page-hero--compact .page-hero-lead { margin-bottom: 22px; font-size: clamp(0.9rem, 1.1vw, 1rem); }

/* ============================================================
   Egységes aloldal-dizájn (.kp-redesign a <body>-n)
   A mondókázó torna / néptánc oldalakon kialakított megjelenés
   újrahasznosítható formában: kompakt hero dekor körökkel, kisebb
   szövegméretek, korall szekciócímek és tónusos "Részletek" kártya.

   FONTOS: a hero HÁTTÉRSZÍNÉT ez a blokk nem állítja – azt minden oldal
   a saját .page-hero / .page-hero--teal / .page-hero--sand osztálya adja,
   így minden aloldal megtartja a szegletje színét.
   ============================================================ */
.kp-redesign .kp-text p,
.kp-redesign .kp-fact dd,
.kp-redesign .kp-instructor p { font-size: 0.92em; }
.kp-redesign .page-hero-title { font-weight: 700; color: #444444; }
.kp-redesign .kp-fact dd { font-weight: normal; color: #444444; }
.kp-redesign .kp-text h3 { color: #444444; }
.kp-redesign .kp-text h2 { color: #ff8a70; margin-bottom: 18px; }
.kp-redesign .page-hero + .section { padding-top: clamp(24px, 4vw, 40px); }
.kp-redesign .kp-content-section { padding-bottom: clamp(16px, 3vw, 28px); }
.kp-redesign .page-hero--compact { padding-top: clamp(36px, 5vw, 54px); }
.kp-redesign .page-hero-actions { margin-top: 22px; }
.kp-redesign .kp-hero-icon { background: none; }
.kp-redesign .kp-hero-icon,
.kp-redesign .eyebrow { vertical-align: middle; }
/* A szöveg egy kicsit feljebb ül, mint az oldalsó kártya – ez adja a
   lépcsős elrendezést. Csak az első blokkban, a továbbiakban zavaró lenne.
   Csak akkor, ha a .kp-text a .kp-layout első eleme: ha .kp-group-title
   előzi meg (eloadasok.html), a -40px ráhúzná a szöveget a csoportcímre. */
.kp-redesign .page-hero + .section .kp-layout > .kp-text:first-child { margin-top: -40px; }
.kp-redesign .kp-layout + .kp-layout > .kp-text { margin-top: 0; }
/* A dekor körök nem lóghatnak ki a heróból. */
.kp-redesign .page-hero { overflow: hidden; }
.kp-redesign .page-hero::after {
  height: 260px;
  background: linear-gradient(to bottom,
    transparent 0%,
    color-mix(in srgb, var(--bg) 25%, transparent) 40%,
    color-mix(in srgb, var(--bg) 65%, transparent) 70%,
    var(--bg) 100%);
}
.kp-redesign .kp-hero-shapes {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.kp-redesign .kp-hero-shapes span {
  position: absolute;
  border-radius: 50%;
}
.kp-redesign .kp-hero-shapes span:nth-child(1) {
  top: -22%; left: -18%;
  width: clamp(180px, 26vw, 320px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.55);
}
.kp-redesign .kp-hero-shapes span:nth-child(2) {
  top: 8%; left: 62%;
  width: clamp(140px, 16vw, 220px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.55);
}
.kp-redesign .kp-hero-shapes span:nth-child(3) {
  top: 55%; left: 4%;
  width: clamp(90px, 10vw, 140px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.75);
}
.kp-redesign .kp-hero-shapes span:nth-child(4) {
  top: -8%; left: 80%;
  width: clamp(60px, 7vw, 100px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.4);
}
.kp-redesign .kp-hero-shapes span:nth-child(5) {
  top: 70%; left: 88%;
  width: clamp(160px, 20vw, 260px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.35);
}
.kp-redesign .kp-hero-shapes span:nth-child(6) {
  top: 30%; left: 26%;
  width: clamp(30px, 4vw, 48px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.7);
}
.kp-redesign .kp-hero-shapes span:nth-child(7) {
  top: 78%; left: 40%;
  width: clamp(40px, 5vw, 64px); aspect-ratio: 1 / 1;
  border: 2px solid rgba(255, 255, 255, 0.4);
}
/* "Részletek" infókártya: tónusos háttér, szorosabb sorok. */
.kp-redesign .kp-info-card {
  background: rgba(197, 171, 158, 0.4);
  padding: 20px 26px;
  margin-top: 15px;
}
.kp-redesign .kp-info-card h3 { margin-bottom: 12px; }
.kp-redesign .kp-facts { gap: 10px; }
.kp-redesign .kp-fact + .kp-fact { padding-top: 10px; }
.kp-redesign .kp-side .btn-primary { background: #6da9c1; color: #fff; }
.kp-redesign .kp-gallery-item img { width: 96%; }
/* Záró galéria a kártyapáros alatt. Ahol a galéria a lábléc-rámpa egy részét
   viszi (néptánc, zenés foglalkozás), ott az oldal saját id-s szabálya írja
   felül ezeket az értékeket. */
.kp-redesign .kp-gallery-section {
  padding-top: clamp(16px, 3vw, 28px);
  padding-bottom: clamp(24px, 3vw, 36px);
}

/* ---------- Mondókázó torna: kisebb alszövegek ---------- */
#page-mondokazo-torna .kp-text p,
#page-mondokazo-torna .kp-fact dd,
#page-mondokazo-torna .kp-instructor p { font-size: 0.92em; }
#page-mondokazo-torna .page-hero-title { font-weight: 700; }
#page-mondokazo-torna .kp-fact dd { font-weight: normal; }
#page-mondokazo-torna .page-hero + .section { padding-top: clamp(24px, 4vw, 40px); }
#page-mondokazo-torna .kp-content-section { padding-bottom: clamp(16px, 3vw, 28px); }
#page-mondokazo-torna .kp-gallery-section { padding-top: clamp(16px, 3vw, 28px); padding-bottom: clamp(24px, 3vw, 36px); }
#page-mondokazo-torna .kp-text { margin-top: -40px; }
#page-mondokazo-torna .page-hero--compact { padding-top: clamp(36px, 5vw, 54px); }
#page-mondokazo-torna .kp-hero-icon { background: none; }
#page-mondokazo-torna .kp-hero-icon,
#page-mondokazo-torna .eyebrow { vertical-align: middle; }
#page-mondokazo-torna .page-hero {
  background: radial-gradient(circle at 78% 45%, #faf6f3 0%, #e6d5cb 55%, #c5ab9e 100%);
  overflow: hidden;
}
#page-mondokazo-torna .page-hero::after {
  height: 260px;
  background: linear-gradient(to bottom,
    transparent 0%,
    color-mix(in srgb, var(--bg) 25%, transparent) 40%,
    color-mix(in srgb, var(--bg) 65%, transparent) 70%,
    var(--bg) 100%);
}
#page-mondokazo-torna .kp-hero-shapes {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
#page-mondokazo-torna .kp-hero-shapes span {
  position: absolute;
  border-radius: 50%;
}
#page-mondokazo-torna .kp-hero-shapes span:nth-child(1) {
  top: -22%; left: -18%;
  width: clamp(180px, 26vw, 320px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.55);
}
#page-mondokazo-torna .kp-hero-shapes span:nth-child(2) {
  top: 8%; left: 62%;
  width: clamp(140px, 16vw, 220px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.55);
}
#page-mondokazo-torna .kp-hero-shapes span:nth-child(3) {
  top: 55%; left: 4%;
  width: clamp(90px, 10vw, 140px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.75);
}
#page-mondokazo-torna .kp-hero-shapes span:nth-child(4) {
  top: -8%; left: 80%;
  width: clamp(60px, 7vw, 100px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.4);
}
#page-mondokazo-torna .kp-hero-shapes span:nth-child(5) {
  top: 70%; left: 88%;
  width: clamp(160px, 20vw, 260px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.35);
}
#page-mondokazo-torna .kp-hero-shapes span:nth-child(6) {
  top: 30%; left: 26%;
  width: clamp(30px, 4vw, 48px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.7);
}
#page-mondokazo-torna .kp-hero-shapes span:nth-child(7) {
  top: 78%; left: 40%;
  width: clamp(40px, 5vw, 64px); aspect-ratio: 1 / 1;
  border: 2px solid rgba(255, 255, 255, 0.4);
}
#page-mondokazo-torna .kp-info-card {
  background: rgba(197, 171, 158, 0.4);
  padding: 20px 26px;
  margin-top: 15px;
}
#page-mondokazo-torna .kp-info-card h3 { margin-bottom: 12px; }
#page-mondokazo-torna .kp-facts { gap: 10px; }
#page-mondokazo-torna .kp-fact + .kp-fact { padding-top: 10px; }
#page-mondokazo-torna .kp-side .btn-primary { background: #6da9c1; color: #fff; }
#page-mondokazo-torna .page-hero-title { color: #444444; }
#page-mondokazo-torna .kp-text h3,
#page-mondokazo-torna .kp-fact dd { color: #444444; }
#page-mondokazo-torna .kp-text h2 { color: #ff8a70; margin-bottom: 18px; }
/* A galéria a lábléc előtti utolsó szekció: a fehér→sötét rámpát a globális
   .footer-fade adja (lásd css/style.css), így az oszlopai a képek alá esnek. */

/* ---------- Néptánc: a mondokazo-torna oldal dizájnja ---------- */
#page-neptanc .kp-text p,
#page-neptanc .kp-fact dd { font-size: 0.92em; }
#page-neptanc .page-hero-title { font-weight: 700; }
#page-neptanc .kp-fact dd { font-weight: normal; }
#page-neptanc .page-hero + .section { padding-top: clamp(24px, 4vw, 40px); }
#page-neptanc .kp-content-section { padding-bottom: clamp(16px, 3vw, 28px); }
#page-neptanc .kp-gallery-section { padding-top: clamp(16px, 3vw, 28px); padding-bottom: clamp(24px, 3vw, 36px); }
#page-neptanc section.kp-content-section:first-of-type .kp-text { margin-top: -40px; }
#page-neptanc .page-hero--compact { padding-top: clamp(36px, 5vw, 54px); }
#page-neptanc .kp-hero-icon { background: none; }
#page-neptanc .kp-hero-icon,
#page-neptanc .eyebrow { vertical-align: middle; }
#page-neptanc .page-hero {
  background: radial-gradient(circle at 78% 45%, #faf6f3 0%, #e6d5cb 55%, #c5ab9e 100%);
  overflow: hidden;
}
#page-neptanc .page-hero::after {
  height: 260px;
  background: linear-gradient(to bottom,
    transparent 0%,
    color-mix(in srgb, var(--bg) 25%, transparent) 40%,
    color-mix(in srgb, var(--bg) 65%, transparent) 70%,
    var(--bg) 100%);
}
#page-neptanc .kp-hero-shapes {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
#page-neptanc .kp-hero-shapes span {
  position: absolute;
  border-radius: 50%;
}
#page-neptanc .kp-hero-shapes span:nth-child(1) {
  top: -22%; left: -18%;
  width: clamp(180px, 26vw, 320px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.55);
}
#page-neptanc .kp-hero-shapes span:nth-child(2) {
  top: 8%; left: 62%;
  width: clamp(140px, 16vw, 220px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.55);
}
#page-neptanc .kp-hero-shapes span:nth-child(3) {
  top: 55%; left: 4%;
  width: clamp(90px, 10vw, 140px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.75);
}
#page-neptanc .kp-hero-shapes span:nth-child(4) {
  top: -8%; left: 80%;
  width: clamp(60px, 7vw, 100px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.4);
}
#page-neptanc .kp-hero-shapes span:nth-child(5) {
  top: 70%; left: 88%;
  width: clamp(160px, 20vw, 260px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.35);
}
#page-neptanc .kp-hero-shapes span:nth-child(6) {
  top: 30%; left: 26%;
  width: clamp(30px, 4vw, 48px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.7);
}
#page-neptanc .kp-hero-shapes span:nth-child(7) {
  top: 78%; left: 40%;
  width: clamp(40px, 5vw, 64px); aspect-ratio: 1 / 1;
  border: 2px solid rgba(255, 255, 255, 0.4);
}
#page-neptanc .kp-info-card {
  background: rgba(197, 171, 158, 0.4);
  padding: 20px 26px;
  margin-top: 15px;
}
#page-neptanc .kp-info-card h3 { margin-bottom: 12px; }
#page-neptanc .kp-facts { gap: 10px; }
#page-neptanc .kp-fact + .kp-fact { padding-top: 10px; }
#page-neptanc .page-hero-title { color: #444444; }
#page-neptanc .kp-text h3,
#page-neptanc .kp-fact dd { color: #444444; }
#page-neptanc .kp-text h2 { color: #ff8a70; margin-bottom: 18px; }
#page-neptanc .page-hero-actions { margin-top: 22px; }
#page-neptanc .kp-gallery-item img { width: 96%; }
/* A lábléc felé vezető rámpa két szekción oszlik el (érdeklődés + galéria),
   így hosszabb és lágyabb az átmenet anélkül, hogy üres helyet foglalna. */
/* Az utolsó csoportszekció szorosan a kártyákhoz zár. */
#page-neptanc .kp-content-section--flush { padding-bottom: 0; }
#page-neptanc .kp-inquiry-section {
  padding-top: clamp(28px, 4vw, 44px);
  padding-bottom: clamp(28px, 4vw, 44px);
  background: linear-gradient(to bottom,
    var(--bg) 0%,
    color-mix(in srgb, #333333 5%, var(--bg)) 35%,
    color-mix(in srgb, #333333 15%, var(--bg)) 70%,
    color-mix(in srgb, #333333 28%, var(--bg)) 100%);
}
#page-neptanc .kp-gallery-section {
  padding-top: 12px;
  padding-bottom: clamp(28px, 4vw, 44px);
  background: linear-gradient(to bottom,
    color-mix(in srgb, #333333 28%, var(--bg)) 0%,
    color-mix(in srgb, #333333 44%, var(--bg)) 35%,
    color-mix(in srgb, #333333 61%, var(--bg)) 70%,
    color-mix(in srgb, #333333 78%, var(--bg)) 100%);
}
/* A kártyapáros közös stílusa a .kp-inquiry-card alapblokk után található. */

/* ---------- LEGO klub: a mondokazo-torna oldal dizájnja ---------- */
#page-lego-klub .kp-text p,
#page-lego-klub .kp-fact dd,
#page-lego-klub .kp-instructor p { font-size: 0.92em; }
#page-lego-klub .page-hero-title { font-weight: 700; }
#page-lego-klub .kp-fact dd { font-weight: normal; }
#page-lego-klub .page-hero + .section { padding-top: clamp(24px, 4vw, 40px); }
#page-lego-klub .kp-content-section { padding-bottom: clamp(16px, 3vw, 28px); }
#page-lego-klub .kp-gallery-section { padding-top: clamp(16px, 3vw, 28px); padding-bottom: clamp(24px, 3vw, 36px); }
#page-lego-klub .kp-text { margin-top: -40px; }
#page-lego-klub .page-hero--compact { padding-top: clamp(36px, 5vw, 54px); }
#page-lego-klub .kp-hero-icon { background: none; }
#page-lego-klub .kp-hero-icon,
#page-lego-klub .eyebrow { vertical-align: middle; }
#page-lego-klub .page-hero {
  background: radial-gradient(circle at 30% 60%, #eef7f7 0%, #cfe8e8 55%, #a9d4d4 100%);
  overflow: hidden;
}
#page-lego-klub .page-hero::after {
  height: 260px;
  background: linear-gradient(to bottom,
    transparent 0%,
    color-mix(in srgb, var(--bg) 25%, transparent) 40%,
    color-mix(in srgb, var(--bg) 65%, transparent) 70%,
    var(--bg) 100%);
}
#page-lego-klub .kp-hero-shapes {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
#page-lego-klub .kp-hero-shapes span {
  position: absolute;
  border-radius: 50%;
}
#page-lego-klub .kp-hero-shapes span:nth-child(1) {
  top: -22%; left: -18%;
  width: clamp(180px, 26vw, 320px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.55);
}
#page-lego-klub .kp-hero-shapes span:nth-child(2) {
  top: 8%; left: 62%;
  width: clamp(140px, 16vw, 220px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.55);
}
#page-lego-klub .kp-hero-shapes span:nth-child(3) {
  top: 55%; left: 4%;
  width: clamp(90px, 10vw, 140px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.75);
}
#page-lego-klub .kp-hero-shapes span:nth-child(4) {
  top: -8%; left: 80%;
  width: clamp(60px, 7vw, 100px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.4);
}
#page-lego-klub .kp-hero-shapes span:nth-child(5) {
  top: 70%; left: 88%;
  width: clamp(160px, 20vw, 260px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.35);
}
#page-lego-klub .kp-hero-shapes span:nth-child(6) {
  top: 30%; left: 26%;
  width: clamp(30px, 4vw, 48px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.7);
}
#page-lego-klub .kp-hero-shapes span:nth-child(7) {
  top: 78%; left: 40%;
  width: clamp(40px, 5vw, 64px); aspect-ratio: 1 / 1;
  border: 2px solid rgba(255, 255, 255, 0.4);
}
#page-lego-klub .kp-info-card {
  background: rgba(197, 171, 158, 0.4);
  padding: 20px 26px;
  margin-top: 15px;
}
#page-lego-klub .kp-info-card h3 { margin-bottom: 12px; }
#page-lego-klub .kp-facts { gap: 10px; }
#page-lego-klub .kp-fact + .kp-fact { padding-top: 10px; }
#page-lego-klub .kp-side .btn-primary { background: #6da9c1; color: #fff; }
#page-lego-klub .page-hero-title { color: #444444; }
#page-lego-klub .kp-text h3,
#page-lego-klub .kp-fact dd { color: #444444; }
#page-lego-klub .kp-text h2 { color: #ff8a70; margin-bottom: 18px; }
#page-lego-klub .kp-gallery-item img { width: 96%; }

/* ---------- Zenés foglalkozás: a néptánc oldal dizájnja ----------
   Eltérés: a hero megtartja a gyerek szeglet teal színét, és a záró
   galéria kétképes, egyedi "fotópáros" elrendezést kap. */
#page-zenes-foglalkozas .kp-text p,
#page-zenes-foglalkozas .kp-fact dd,
#page-zenes-foglalkozas .kp-instructor p { font-size: 0.92em; }
#page-zenes-foglalkozas .page-hero-title { font-weight: 700; color: #444444; }
#page-zenes-foglalkozas .kp-fact dd { font-weight: normal; }
#page-zenes-foglalkozas .page-hero + .section { padding-top: clamp(24px, 4vw, 40px); }
#page-zenes-foglalkozas .kp-text { margin-top: -40px; }
#page-zenes-foglalkozas .page-hero--compact { padding-top: clamp(36px, 5vw, 54px); }
#page-zenes-foglalkozas .page-hero-actions { margin-top: 22px; }
#page-zenes-foglalkozas .kp-hero-icon { background: none; }
#page-zenes-foglalkozas .kp-hero-icon,
#page-zenes-foglalkozas .eyebrow { vertical-align: middle; }
/* A háttér marad a .page-hero--teal színe; csak a körök kivágásához kell. */
#page-zenes-foglalkozas .page-hero { overflow: hidden; }
#page-zenes-foglalkozas .page-hero::after {
  height: 260px;
  background: linear-gradient(to bottom,
    transparent 0%,
    color-mix(in srgb, var(--bg) 25%, transparent) 40%,
    color-mix(in srgb, var(--bg) 65%, transparent) 70%,
    var(--bg) 100%);
}
#page-zenes-foglalkozas .kp-hero-shapes {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
#page-zenes-foglalkozas .kp-hero-shapes span {
  position: absolute;
  border-radius: 50%;
}
#page-zenes-foglalkozas .kp-hero-shapes span:nth-child(1) {
  top: -22%; left: -18%;
  width: clamp(180px, 26vw, 320px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.55);
}
#page-zenes-foglalkozas .kp-hero-shapes span:nth-child(2) {
  top: 8%; left: 62%;
  width: clamp(140px, 16vw, 220px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.55);
}
#page-zenes-foglalkozas .kp-hero-shapes span:nth-child(3) {
  top: 55%; left: 4%;
  width: clamp(90px, 10vw, 140px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.75);
}
#page-zenes-foglalkozas .kp-hero-shapes span:nth-child(4) {
  top: -8%; left: 80%;
  width: clamp(60px, 7vw, 100px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.4);
}
#page-zenes-foglalkozas .kp-hero-shapes span:nth-child(5) {
  top: 70%; left: 88%;
  width: clamp(160px, 20vw, 260px); aspect-ratio: 1 / 1;
  border: 3px solid rgba(255, 255, 255, 0.35);
}
#page-zenes-foglalkozas .kp-hero-shapes span:nth-child(6) {
  top: 30%; left: 26%;
  width: clamp(30px, 4vw, 48px); aspect-ratio: 1 / 1;
  background: rgba(255, 255, 255, 0.7);
}
#page-zenes-foglalkozas .kp-hero-shapes span:nth-child(7) {
  top: 78%; left: 40%;
  width: clamp(40px, 5vw, 64px); aspect-ratio: 1 / 1;
  border: 2px solid rgba(255, 255, 255, 0.4);
}
#page-zenes-foglalkozas .kp-info-card {
  background: rgba(197, 171, 158, 0.4);
  padding: 20px 26px;
  margin-top: 15px;
}
#page-zenes-foglalkozas .kp-info-card h3 { margin-bottom: 12px; }
#page-zenes-foglalkozas .kp-facts { gap: 10px; }
#page-zenes-foglalkozas .kp-fact + .kp-fact { padding-top: 10px; }
#page-zenes-foglalkozas .kp-side .btn-primary { background: #6da9c1; color: #fff; }
#page-zenes-foglalkozas .kp-text h3,
#page-zenes-foglalkozas .kp-fact dd { color: #444444; }
#page-zenes-foglalkozas .kp-text h2 { color: #ff8a70; margin-bottom: 18px; }
#page-zenes-foglalkozas .kp-gallery-item img { width: 96%; }
/* A lábléc felé vezető rámpa két szekción oszlik el (érdeklődés + galéria),
   ugyanúgy, mint a néptánc oldalon. */
#page-zenes-foglalkozas .kp-content-section--flush { padding-bottom: 0; }
#page-zenes-foglalkozas .kp-inquiry-section {
  padding-top: clamp(28px, 4vw, 44px);
  padding-bottom: clamp(28px, 4vw, 44px);
  background: linear-gradient(to bottom,
    var(--bg) 0%,
    color-mix(in srgb, #333333 5%, var(--bg)) 35%,
    color-mix(in srgb, #333333 15%, var(--bg)) 70%,
    color-mix(in srgb, #333333 28%, var(--bg)) 100%);
}
#page-zenes-foglalkozas .kp-gallery-section {
  padding-top: clamp(20px, 3vw, 32px);
  padding-bottom: clamp(28px, 4vw, 44px);
  background: linear-gradient(to bottom,
    color-mix(in srgb, #333333 28%, var(--bg)) 0%,
    color-mix(in srgb, #333333 44%, var(--bg)) 35%,
    color-mix(in srgb, #333333 61%, var(--bg)) 70%,
    color-mix(in srgb, #333333 78%, var(--bg)) 100%);
}

/* Kétképes galéria: ugyanaz a képmegjelenés, mint a négyképes galériákban,
   csak két oszlopban és középre zárva. Mivel csak két fotó van, a sor
   szélesebb lehet, mint a négyoszlopos rács – így a képek nagyobbak.
   A .kp-gallery kettős osztályzása szándékos: az alapblokk 4→2 oszlopos
   médiaszabálya lejjebb áll a fájlban, ezért nagyobb súly kell nála. */
.kp-gallery.kp-gallery--duo {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 880px;
  margin-inline: auto;
}

/* Egyképes galéria: a fotó középre kerül, és nem a négyoszlopos rács egy
   negyedére zsugorodik. */
.kp-gallery.kp-gallery--solo {
  grid-template-columns: minmax(0, 1fr);
  max-width: 520px;
  margin-inline: auto;
}
/* Álló tájolású fotónál a magasság szabja meg a méretet – így a kép a
   képernyőre fér, a szélesség pedig ehhez igazodik. */
.kp-gallery--solo .kp-gallery-item img {
  width: auto;
  max-width: 100%;
  max-height: min(52vh, 420px);
}

/* ---------- Terembérlés: 10 fotós montázs ----------
   A fotók három tájolási csoportba esnek: 3 álló (1×2 cella), 4 db 4:3-as
   (1×1) és 3 db 16:9-es (2×1). Ez pontosan 6+4+6 = 16 cella, azaz egy teljesen
   kitöltött 4×4-es rács. Az álló képek nem külön sorban állnak, hanem a fekvők
   közé ékelődnek – ettől lesz montázs hatású a blokk.
   A cellák kiosztása kézzel rögzített, hogy a mozaik ne csúszhasson szét:

     ┌────┬────┬────┬────┐
     │ 1  │ 4  │ 5  │ 2  │   1,2,3 = álló   (1 oszlop × 2 sor)
     │    ├────┴────┤    │   4–7   = 4:3    (1 × 1)
     │    │    8    │    │   8–10  = 16:9   (2 × 1)
     ├────┼────┼────┴────┤
     │ 6  │ 3  │    9    │
     ├────┤    ├─────────┤
     │ 7  │    │   10    │
     └────┴────┴─────────┘                                        */
#page-terembereles .kp-gallery {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(4, clamp(140px, 16vw, 215px));
}
#page-terembereles .kp-gallery-item { height: 100%; }
#page-terembereles .kp-gallery-item img { width: 100%; height: 100%; object-fit: cover; }

#page-terembereles .kp-gallery-item:nth-child(1)  { grid-column: 1;        grid-row: 1 / span 2; }
#page-terembereles .kp-gallery-item:nth-child(2)  { grid-column: 4;        grid-row: 1 / span 2; }
#page-terembereles .kp-gallery-item:nth-child(3)  { grid-column: 2;        grid-row: 3 / span 2; }
#page-terembereles .kp-gallery-item:nth-child(4)  { grid-column: 2;        grid-row: 1; }
#page-terembereles .kp-gallery-item:nth-child(5)  { grid-column: 3;        grid-row: 1; }
#page-terembereles .kp-gallery-item:nth-child(6)  { grid-column: 1;        grid-row: 3; }
#page-terembereles .kp-gallery-item:nth-child(7)  { grid-column: 1;        grid-row: 4; }
#page-terembereles .kp-gallery-item:nth-child(8)  { grid-column: 2 / span 2; grid-row: 2; }
#page-terembereles .kp-gallery-item:nth-child(9)  { grid-column: 3 / span 2; grid-row: 3; }
#page-terembereles .kp-gallery-item:nth-child(10) { grid-column: 3 / span 2; grid-row: 4; }

/* Keskeny kijelzőn a mozaik feloldódik: két oszlop, a képek a saját
   képarányukban, rögzített cellaméret nélkül. */
@media (max-width: 780px) {
  #page-terembereles .kp-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }
  #page-terembereles .kp-gallery-item { height: auto; }
  #page-terembereles .kp-gallery-item img { height: auto; aspect-ratio: 4 / 3; }
  #page-terembereles .kp-gallery-item:nth-child(n) { grid-column: auto; grid-row: auto; }
  #page-terembereles .kp-gallery-item:nth-child(-n+3) img { aspect-ratio: 3 / 4; }
}

/* ---------- Közösségi programok: 5 fotós montázs ----------
   Ugyanaz a kitöltött mozaik elv, mint a terembérlésnél, csak mind az öt fotó
   fekvő tájolású, ezért egy 6 oszlopos, kétsoros rács adja ki a kiosztást:
   a felső sorban a Szülők Iskolája két nagyobb képe (3-3 oszlop), alatta a
   három gyaloglós fotó (2-2 oszlop). A cellák így hézag nélkül záródnak.

     ┌─────────┬─────────┐
     │    1    │    2    │   1,2 = Szülők Iskolája (3 oszlop)
     ├──────┬──┴──┬──────┤
     │  3   │  4  │  5   │   3–5 = Mozduljunk ki együtt! (2 oszlop)
     └──────┴─────┴──────┘                                        */
#page-eloadasok .kp-gallery {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: clamp(180px, 21vw, 285px) clamp(140px, 16vw, 215px);
}
#page-eloadasok .kp-gallery-item { height: 100%; }
#page-eloadasok .kp-gallery-item img { width: 100%; height: 100%; object-fit: cover; }

#page-eloadasok .kp-gallery-item:nth-child(1) { grid-column: 1 / span 3; grid-row: 1; }
#page-eloadasok .kp-gallery-item:nth-child(2) { grid-column: 4 / span 3; grid-row: 1; }
#page-eloadasok .kp-gallery-item:nth-child(3) { grid-column: 1 / span 2; grid-row: 2; }
#page-eloadasok .kp-gallery-item:nth-child(4) { grid-column: 3 / span 2; grid-row: 2; }
#page-eloadasok .kp-gallery-item:nth-child(5) { grid-column: 5 / span 2; grid-row: 2; }

/* Keskeny kijelzőn a mozaik feloldódik: két oszlop azonos 4:3-as csempékkel,
   az ötödik (páratlan) fotó teljes szélességben zárja a sort. */
@media (max-width: 780px) {
  #page-eloadasok .kp-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }
  #page-eloadasok .kp-gallery-item { height: auto; }
  #page-eloadasok .kp-gallery-item img { height: auto; aspect-ratio: 4 / 3; }
  #page-eloadasok .kp-gallery-item:nth-child(n) { grid-column: auto; grid-row: auto; }
  #page-eloadasok .kp-gallery-item:nth-child(5)  { grid-column: 1 / span 2; }
  #page-eloadasok .kp-gallery-item:nth-child(5) img { aspect-ratio: 16 / 9; }
}

/* Hatképes galéria: 3×2-es rács, hogy mindkét sor tele legyen (a négyoszlopos
   alaprács 4+2-t adna, üres hellyel a második sorban). */
.kp-gallery.kp-gallery--trio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) {
  .kp-gallery.kp-gallery--trio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Zenebölcsi: záró galéria a kártyapáros alatt ----------
   Ugyanaz a négyképes rács, mint a LEGO klub oldalon; a lábléc felé vezető
   rámpát itt a galéria viszi (.footer-fade), mert az az utolsó szekció. */
#page-zenebolcsi .kp-gallery-section {
  padding-top: clamp(16px, 3vw, 28px);
  padding-bottom: clamp(24px, 3vw, 36px);
}
#page-zenebolcsi .kp-gallery-item img { width: 96%; }

/* ---------- Énekek, ölbéli játékok: záró galéria a kártyapáros alatt ----------
   Csak két fotó van, ezért a .kp-gallery--duo középre zárt párosát használja. */
#page-enekek-olbeli-jatekok .kp-gallery-section {
  padding-top: clamp(16px, 3vw, 28px);
  padding-bottom: clamp(24px, 3vw, 36px);
}
#page-enekek-olbeli-jatekok .kp-gallery-item img { width: 96%; }

/* ---------- Rapai Zsolt: házigazda-bemutatkozó ----------
   A .kp-redesign sablonra épül. Egyetlen eltérése az oldalsáv tetején álló
   portré-kártya, ami az infókártya "testvére" (ugyanaz a fehér lap + felső
   akcentcsík), és a záró galéria egységes csempéi (vegyes tájolású fotók). */
#page-rapai-zsolt .rz-portrait {
  background: var(--white);
  border-radius: var(--radius);
  padding: 14px 14px 18px;
  box-shadow: var(--shadow-sm);
  border-top: 4px solid var(--accent);
  text-align: center;
}
#page-rapai-zsolt .rz-portrait img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-sm);
}
#page-rapai-zsolt .rz-portrait figcaption {
  margin-top: 12px;
  font-family: "Baloo Bhai 2", sans-serif;
  font-weight: 700;
  color: #444444;
}
#page-rapai-zsolt .rz-portrait figcaption small {
  display: block;
  margin-top: 2px;
  font-family: "Open Sans", sans-serif;
  font-weight: 400;
  font-size: 0.85rem;
  color: var(--muted);
}
/* A három fotó tájolása vegyes, ezért azonos arányú csempékbe vágjuk őket. */
#page-rapai-zsolt .kp-gallery-item img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
/* Szűk kijelzőn a hármas rács egy oszlopra vált – így a fotók nem aprózódnak el. */
@media (max-width: 620px) {
  #page-rapai-zsolt .kp-gallery.kp-gallery--trio { grid-template-columns: minmax(0, 1fr); }
}
/* A .kp-redesign lépcsős elrendezése (-40px) a hero alá húzza az első címsort.
   Két hasábnál ez a kívánt hatás, egy hasábban viszont a hero fade-rámpája
   rátakar a h2-re (390px-en ~16px). Ott, ahol a .kp-layout amúgy is egy
   oszlopra vált, nincs mihez lépcsőzni – ezért visszaállítjuk.

   Ez a szabály korábban CSAK a #page-rapai-zsolt oldalra vonatkozott, a hiba
   viszont MINDEN olyan lapon jelentkezett, ahol a -40px él: kapcsolat,
   terembérlés, mondókázó torna, néptánc, LEGO klub, zenés foglalkozás… –
   telefonon mindegyiken félbevágva jelent meg az első címsor. A .kp-layout
   ugyanennél a 960px-es határnál vált egy oszlopra (lásd lentebb), így a
   lépcsőzés visszavonása pontosan akkor történik, amikor értelmét veszti. */
@media (max-width: 960px) {
  .kp-redesign .page-hero + .section .kp-layout > .kp-text:first-child,
  #page-rapai-zsolt .page-hero + .section .kp-layout > .kp-text,
  #page-mondokazo-torna .kp-text,
  #page-neptanc section.kp-content-section:first-of-type .kp-text,
  #page-lego-klub .kp-text,
  #page-zenes-foglalkozas .kp-text {
    margin-top: 0;
  }
}

.kp-hero-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 22%, #fff);
  color: var(--accent-dark);
  margin-bottom: 18px;
}
.kp-hero-icon svg { width: 32px; height: 32px; }

/* ---------- Akcent-öröklés a tartalmi szekciókhoz ---------- */
.kp-accent-green  { --accent: var(--green); --accent-dark: var(--green-dark); }
.kp-accent-teal   { --accent: var(--teal);  --accent-dark: #2f7a7a; }
.kp-accent-sand   { --accent: var(--sand);  --accent-dark: var(--sand-dark); }
.kp-accent-purple { --accent: #937fc1; --accent-dark: #6f5aa0; }

/* ---------- Szöveg + infókártya elrendezés ---------- */
.kp-layout {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  column-gap: clamp(28px, 4vw, 56px);
  row-gap: 4px;
  align-items: start;
}
.kp-layout + .kp-layout { margin-top: clamp(24px, 3vw, 40px); }
@media (max-width: 960px) {
  .kp-layout { grid-template-columns: 1fr; }
}

.kp-group-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "Baloo Bhai 2", sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-dark);
  margin-bottom: 4px;
  grid-column: 1 / -1;
}

.kp-text h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 16px; }
.kp-text p { color: var(--muted); }
.kp-text p + p { margin-top: 14px; }
.kp-text h3 { font-size: 1.05rem; margin: 22px 0 10px; color: var(--ink); }
.kp-text ul { margin: 6px 0 18px; list-style: none; }
.kp-text li {
  position: relative;
  padding-left: 28px;
  color: var(--muted);
  margin-bottom: 8px;
}
.kp-text li::before {
  content: "✓";
  position: absolute;
  left: 0; top: 1px;
  width: 20px; height: 20px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 16%, #fff);
  color: var(--accent-dark);
  font-size: 0.7rem;
  font-weight: 700;
}

/* ---------- Oldalsáv: infókártya + oktató ---------- */
.kp-side { display: flex; flex-direction: column; gap: 20px; }

.kp-info-card {
  background: var(--white);
  border-radius: var(--radius);
  padding: 28px 26px;
  box-shadow: var(--shadow-sm);
  border-top: 4px solid var(--accent);
}
.kp-info-card h3 {
  font-size: 1.05rem;
  margin-bottom: 18px;
  color: var(--ink);
}
.kp-facts { display: flex; flex-direction: column; gap: 14px; }
.kp-fact + .kp-fact { padding-top: 14px; border-top: 1px solid var(--hairline); }
.kp-fact dt {
  font-family: "Baloo Bhai 2", sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  margin-bottom: 3px;
}
.kp-fact dd { color: var(--ink); font-weight: 600; }

.kp-inquiry-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #c5ab9e;
  border-radius: var(--radius);
  padding: 20px 24px;
  box-shadow: var(--shadow-sm);
  grid-column: 1 / -1;
  max-width: 480px;
  margin-inline: auto;
}
.kp-inquiry-card__logo {
  width: 56px; height: 56px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  object-fit: cover;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.kp-inquiry-card dt {
  font-family: "Baloo Bhai 2", sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 3px;
}
.kp-inquiry-card dd { font-weight: 700; }
.kp-inquiry-card dd a { color: var(--sand-dark); }
.kp-inquiry-card dd a:hover { text-decoration: underline; }

/* ============================================================
   Kártyapáros a lábléc előtt (Közösségi ház aloldalak)
   Balra a zöld "vissza" gomb, jobbra a kék érdeklődés kártya.
   A szabályok az alapblokk UTÁN állnak, hogy felülírják azt.
   ============================================================ */
.kp-inquiry-row {
  display: flex;
  justify-content: space-between;
  align-items: stretch; /* a két kártya egyforma magas lesz */
  flex-wrap: wrap;
  gap: 16px;
}
.kp-inquiry-card--sm {
  /* Mindkét kártya pontosan a saját szövegéhez igazodik – se szélesebb.
     A magasságukat a sor align-items: stretch tartja egyformán. */
  flex: 0 0 auto;
  width: max-content;
  max-width: 100%;
  padding: 12px 16px;
  gap: 10px;
  margin-inline: 0;
  background: #6da9c1;
}
/* Az egész kártya kattintható link, ezért teljes egészében reagál a hoverre.
   A --link csak a viselkedést adja; a színt és a nyíl irányát a --back /
   --forward módosító. */
.kp-inquiry-card--link {
  color: #152e38;
  transition: background .22s var(--ease), transform .22s var(--ease), box-shadow .22s var(--ease);
}
.kp-inquiry-card--link:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(44, 40, 37, 0.22);
}
/* Balra mutató "vissza a Közösségi ház oldalra" kártya – zöld. */
.kp-inquiry-card--back { background: #8eaa7a; }
.kp-inquiry-card--back:hover { background: #7c9968; }
.kp-inquiry-card--back:hover .kp-inquiry-card__icon { transform: translateX(-4px); }
/* Jobbra mutató "Jelentkezés" kártya – a --sm alap kékjét viszi tovább. */
.kp-inquiry-card--forward:hover { background: #5b95ac; }
.kp-inquiry-card--forward:hover .kp-inquiry-card__icon { transform: translateX(4px); }
/* A kék/zöld háttéren az alap arany/szürke szövegszín olvashatatlan lenne. */
.kp-inquiry-card--sm dt,
.kp-inquiry-card--sm dd a,
.kp-inquiry-card__text a { color: #152e38; }
/* Az e-mail cím sosem törik két sorba – a kártya szélessége igazodik hozzá. */
.kp-inquiry-card--sm dd,
.kp-inquiry-card__text { white-space: nowrap; }
/* A bal kártya nyíl-ikonja: nincs saját háttere, a kártya zöldje látszik mögötte. */
.kp-inquiry-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #152e38;
  transition: transform .22s var(--ease);
}
.kp-inquiry-card__icon svg { width: 26px; height: 26px; }
.kp-inquiry-card__text { font-size: 0.88rem; font-weight: 700; }
.kp-inquiry-card__text a:hover { text-decoration: underline; }
.kp-inquiry-card--sm .kp-inquiry-card__logo { width: 40px; height: 40px; }
.kp-inquiry-card--sm dt { font-size: 0.66rem; }
.kp-inquiry-card--sm dd { font-size: 0.88rem; }
/* Keskeny kijelzőn a két kártya egymás alá csúszik (flex-wrap), középre zárva.
   A szélességük tartalomhoz igazodik, ezért nem nyúlnak teljes szélességre. */
@media (max-width: 760px) {
  .kp-inquiry-row { justify-content: center; }
}

/* A kártyasor a lábléc előtti utolsó szekció; a fehér→sötét rámpát a globális
   .footer-fade adja. A néptánc oldalon ez a rámpa két szekción oszlik el
   (lásd a #page-neptanc blokkot), mert ott a galéria zárja az oldalt. */
.kp-inquiry-section {
  padding-top: clamp(28px, 4vw, 44px);
  padding-bottom: clamp(28px, 4vw, 44px);
}

.kp-instructor {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--white);
  border-radius: var(--radius-sm);
  padding: 14px;
  box-shadow: var(--shadow-sm);
}
.kp-instructor img,
.kp-instructor-avatar {
  width: 56px; height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.kp-instructor img.kp-instructor-square {
  border-radius: var(--radius-sm);
}
.kp-instructor-avatar {
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--accent) 18%, #fff);
  color: var(--accent-dark);
}
.kp-instructor-avatar svg { width: 26px; height: 26px; }
.kp-instructor h4 { font-size: 1rem; margin-bottom: 2px; }
.kp-instructor h4 a { color: var(--green-dark); }
.kp-instructor h4 a:hover { text-decoration: underline; }
.kp-instructor p { color: var(--muted); font-size: 0.9rem; }

.kp-instructor-row { display: flex; flex-direction: column; gap: 12px; }

.kp-contact-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: color-mix(in srgb, var(--accent) 14%, #fff);
  color: var(--accent-dark);
  border-radius: 999px;
  padding: 10px 20px;
  font-weight: 700;
  font-size: 0.92rem;
  transition: background 0.15s ease;
}
.kp-contact-badge:hover { background: color-mix(in srgb, var(--accent) 26%, #fff); }
.kp-contact-badge__icon { display: flex; flex-shrink: 0; }
.kp-contact-badge__icon svg { width: 17px; height: 17px; }

.kp-note {
  background: var(--bg-alt);
  border-radius: var(--radius-sm);
  padding: 16px 18px;
  color: var(--muted);
  font-size: 0.92rem;
  font-style: italic;
}

.kp-text a,
.kp-fact a,
.kp-note a {
  color: var(--green-dark);
  font-weight: 700;
}
.kp-text a:hover,
.kp-fact a:hover,
.kp-note a:hover { text-decoration: underline; }

/* ---------- Fotógaléria (program aloldalak) ---------- */
.kp-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(14px, 2vw, 24px);
}
.kp-gallery-item {
  display: flex;
  align-items: center;
  justify-content: center;
}
.kp-gallery-item img {
  width: 80%;
  height: auto;
  display: block;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  cursor: zoom-in;
  transition: transform 0.25s ease;
}
.kp-gallery-item:hover img { transform: scale(1.05); }
@media (max-width: 760px) {
  .kp-gallery { grid-template-columns: repeat(2, 1fr); }
}

/* A lightbox stílusai a style.css-be kerültek, mert a js/main.js minden
   oldalon felépíti őket, ahol galéria van (lásd .ft-gallery is). */

/* ---------- Placeholder oldalak (Családi rendezvények, Terembérlés, Előadások) ---------- */
.kp-placeholder {
  background: var(--white);
  border-radius: var(--radius);
  padding: clamp(40px, 6vw, 64px) clamp(24px, 5vw, 56px);
  text-align: center;
  box-shadow: var(--shadow-sm);
  border: 2px dashed color-mix(in srgb, var(--accent) 45%, var(--hairline));
  max-width: 720px;
  margin-inline: auto;
}
.kp-placeholder svg {
  width: 44px; height: 44px;
  color: var(--accent-dark);
  margin-bottom: 16px;
}
.kp-placeholder h3 { margin-bottom: 10px; }
.kp-placeholder p { color: var(--muted); }

/* ---------- Záró CTA / kapcsolat sáv ---------- */
.kp-cta {
  background: linear-gradient(135deg, var(--green-dark) 0%, var(--teal) 100%);
  padding: clamp(48px, 7vw, 90px) 0;
}
.kp-cta-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
}
.kp-cta-panel {
  background: var(--white);
  border-radius: var(--radius);
  padding: clamp(32px, 5vw, 56px) clamp(26px, 4vw, 48px);
}
.kp-cta-panel h2 { font-size: clamp(1.4rem, 2.6vw, 1.8rem); margin-bottom: 14px; }
.kp-cta-panel p { color: var(--muted); margin-bottom: 24px; line-height: 1.8; }
@media (max-width: 960px) {
  .kp-cta-inner { grid-template-columns: 1fr; }
}

.kp-divider {
  border: 0;
  border-top: 1px solid var(--hairline);
  margin: clamp(40px, 6vw, 64px) 0;
}

/* ---------- Kompakt heró: a fix fejléc alatti biztonsági sáv (mobil) ----------
   A fejléc (logó bal fent, hamburger jobb fent) position:fixed, és a lap
   tetején ~76px magas sávot foglal. A kompakt heró felső paddingja telefonon
   ennél KISEBB volt (36–56px), így a heró első sorai BEcsúsztak alá:
   az Aktualitások oldalon a középre zárt "Események és aktuális dolgok"
   felirat mindkét vége a logó és a hamburger alatt tűnt el, a 320px-es
   telefonokon pedig a legtöbb programoldal "…szeglet" feliratára is ez történt.

   A szabály a fájl végén áll, és tételesen felsorolja az oldal-azonosítós
   felülírásokat is – különben azok (#page-… = nagyobb specificitás) továbbra is
   visszahoznák a 36px-et. A --header-h a fejléc magassága a style.css-ből. */
@media (max-width: 600px) {
  .page-hero--compact,
  .kp-redesign .page-hero--compact,
  #page-mondokazo-torna .page-hero--compact,
  #page-neptanc .page-hero--compact,
  #page-lego-klub .page-hero--compact,
  #page-zenes-foglalkozas .page-hero--compact {
    padding-top: calc(var(--header-h) + 10px);
  }
}
