/* A szinvaltozok kulon fajlban: paletta.css */
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation:none!important;transition:none!important}
  }
  body{
    margin:0;
    overflow-x:clip;
    background:var(--paper);
    color:var(--ink);
    font-family:"Instrument Sans",-apple-system,"Segoe UI",Arial,sans-serif;
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:"Bricolage Grotesque","Instrument Sans",-apple-system,"Segoe UI",Arial,sans-serif;
    line-height:1.12;
    text-wrap:balance;
    margin:0;
    color:var(--head);
  }
  a{color:inherit}
  a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:4px}
  .wrap{max-width:1080px;margin:0 auto;padding:0 24px}
  .eyebrow{
    font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--brass-deep);
  }
  .tofill{
    background:var(--honey);border:1px dashed var(--brass);border-radius:6px;
    padding:0 6px;font-size:.9em;color:var(--brass-deep);white-space:nowrap;
  }

  /* ---------- nav ---------- */
  nav{
    position:sticky;top:0;z-index:50;
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{display:flex;align-items:center;gap:18px;padding:14px 24px;max-width:1080px;margin:0 auto}
  /* Az iskola neve nem zsugorodhat: ez az intezmeny azonossaga a lap tetejen.
     Korabban flex-ben zsugorodott, es a KRETA menupont + a tema-gomb utan a
     felirat "Nagyta..."-ra vagodott le - meg a legszelesebb kijelzon is, mert
     a nav igenye (1091px) tullepte a .nav-inner max-width erteket (1080px).
     Innentol a menusor adja at a helyet: a toresponton osszecsukodik. */
  .logo{display:flex;align-items:center;gap:10px;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:1.05rem;text-decoration:none;white-space:nowrap;color:var(--head);flex:none}
  .logo-mark{
    width:46px;height:46px;flex:none;
    background:var(--logo) center/contain no-repeat;
  }
  .logo-text{display:flex;flex-direction:column;line-height:1.15;white-space:nowrap}
  .logo-text > span{
    font-family:"Instrument Sans",-apple-system,"Segoe UI",Arial,sans-serif;
    font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--muted);
  }
  footer .logo-text{font-size:1.15rem}
  footer .logo-text > span{font-size:.76rem}
  .hero-logo{
    width:176px;height:176px;display:block;margin-bottom:18px;
    background:var(--logo) center/contain no-repeat;
  }
  @media (max-width:520px){.hero-logo{width:130px;height:130px}}
  footer .logo-mark{width:60px;height:60px}
  .nav-links{display:flex;gap:14px;margin-left:auto;font-size:.87rem;font-weight:500}
  .nav-links a{text-decoration:none;color:var(--muted)}
  .nav-links a:hover{color:var(--brass-deep)}
  .nav-cta{
    margin-left:8px;background:var(--cta-bg);color:var(--on-cta);
    padding:8px 16px;border-radius:999px;text-decoration:none;font-weight:600;font-size:.9rem;
    white-space:nowrap;border:0;font-family:inherit;cursor:pointer;
  }
  .nav-cta:hover{background:var(--cta-hover);color:var(--on-cta)}

  /* nappali / ejszakai kapcsolo */
  .tema-gomb{
    display:flex;align-items:center;justify-content:center;
    width:38px;height:38px;flex:none;padding:0;margin-left:8px;cursor:pointer;
    border:1.5px solid var(--line);border-radius:10px;
    background:none;color:var(--head);
    transition:border-color .18s ease,color .18s ease,background .18s ease;
  }
  .tema-gomb:hover{border-color:var(--brass);color:var(--brass-deep);background:var(--honey-soft)}
  .tema-gomb:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
  .tema-gomb svg{display:none}
  .tema-gomb[data-allapot="light"] .ikon-nap,
  .tema-gomb[data-allapot="dark"] .ikon-hold{display:block}

  .nav-toggle{
    display:none;background:none;border:1.5px solid var(--line);
    border-radius:10px;padding:8px 10px;cursor:pointer;color:var(--ink);
  }
  .nav-toggle svg{display:block}
  .mobile-menu{
    display:none;flex-direction:column;gap:2px;
    padding:8px 16px 16px;border-top:1px solid var(--line);
    background:var(--paper);
  }
  .mobile-menu a{
    text-decoration:none;font-weight:600;padding:12px 8px;
    border-radius:10px;color:var(--head);
  }
  .mobile-menu a:hover{background:var(--honey-soft);color:var(--brass-deep)}
  @media (max-width:1060px){
    .nav-links{display:none}
    .nav-toggle{display:block}
    .nav-cta{margin-left:0}
    /* a .nav-links tunt el, ami eddig jobbra tolta a gombokat -
       innentol a tema-gomb veszi at ezt a szerepet */
    .tema-gomb{margin-left:auto}
    /* alacsony képernyőn (pl. iPhone SE Safari) a menü alja is elérhető maradjon */
    .mobile-menu.open{display:flex;max-height:calc(100dvh - 75px);overflow-y:auto;overscroll-behavior:contain}
  }
  @media (max-width:760px){
    .hero-inner{padding:48px 24px 48px}
    .hero-facts{gap:20px 28px;margin-top:36px}
    .cta-band{padding:36px 26px!important}
  }
  /* Keskeny telefonon negy elem verseng a helyert: nev, tema-gomb,
     hamburger es a Beiratkozas. A tema-gomb hozzaadasa utan 360 px-en
     18 ponttal tullepte a sort, es a Beiratkozas a kepernyo szelehez
     tapadt. Innen minden meret szukebb, hogy a jobb oldali margo megmaradjon. */
  /* A menube kerulo valtozat: teljes szelessegu sor, felirattal.
     Alaphelyzetben rejtve - csak keskeny telefonon lep elo. */
  .tema-gomb-menu{
    display:none;width:auto;height:auto;justify-content:flex-start;gap:10px;
    margin:6px 0 0;padding:12px 10px;border-radius:10px;
    border:0;border-top:1px solid var(--line);
    font:inherit;font-size:.95rem;font-weight:600;color:var(--head);
  }
  .tema-gomb-menu:hover{background:var(--honey-soft);border-color:var(--line)}
  .tema-cimke{font-weight:600}

  @media (max-width:470px){
    .nav-inner{gap:8px;padding:12px 12px}
    .logo-mark{width:34px;height:34px}
    .logo{font-size:.92rem;gap:8px}
    /* Az alcim MARAD: a "Nagytarcsai" onmagaban mellekneev, nem mond semmit.
       A helyet ugy nyerjuk vissza, hogy a szinvalto a menube kerul. */
    .logo-text > span{font-size:.72rem;letter-spacing:.02em}
    .nav-cta{padding:8px 12px;font-size:.82rem;margin-left:0}
    .nav-toggle{padding:6px 8px;margin-left:auto}
    .nav-inner .tema-gomb{display:none}
    .tema-gomb-menu{display:flex}
  }

  /* ---------- hero ---------- */
  header.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
  .hero-inner{position:relative;padding:72px 24px 64px;max-width:1080px;margin:0 auto}
  .hero h1{
    font-size:clamp(2.4rem,6vw,4.2rem);
    font-weight:800;
    max-width:15ch;
    hyphens:auto;
  }
  @media (max-width:430px){.hero h1{font-size:2.05rem}}
  .hero h1 em{font-style:normal;color:var(--brass)}
  .hero p.lead{max-width:52ch;font-size:1.12rem;color:var(--muted);margin:20px 0 0}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
  .btn{
    display:inline-block;padding:13px 26px;border-radius:999px;text-decoration:none;
    font-weight:600;font-size:1rem;font-family:inherit;border:0;cursor:pointer;
  }
  .btn-primary{background:var(--cta-bg);color:var(--on-cta);box-shadow:var(--shadow)}
  .btn-primary:hover{background:var(--cta-hover);color:var(--on-cta)}
  .btn-ghost{border:1.5px solid var(--line);color:var(--ink)}
  .btn-ghost:hover{border-color:var(--brass)}
  .hero-facts{
    display:flex;gap:20px 48px;flex-wrap:wrap;
    margin-top:48px;padding-top:32px;border-top:1px solid var(--line);
  }
  .fact b{
    display:block;font-family:"Bricolage Grotesque",sans-serif;
    font-size:1.7rem;font-weight:700;color:var(--navy);
    font-variant-numeric:tabular-nums;
  }
  .fact span{font-size:.88rem;color:var(--muted)}
  .hero-social{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:38px}
  .hero-social .follow{
    font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:1.15rem;
    letter-spacing:.02em;color:var(--head);margin-right:4px;
  }
  .hero-social a{
    display:inline-flex;align-items:center;gap:11px;
    height:60px;padding:0 24px;border-radius:8px;
    color:#fff;text-decoration:none;
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:1.05rem;
    letter-spacing:.01em;
    box-shadow:0 8px 22px rgba(46,58,68,.26);
    transition:transform .15s ease, filter .15s ease;
  }
  .hero-social a:hover{transform:translateY(-2px);filter:brightness(1.08)}
  .hero-social svg{display:block;flex:none}
  .hero-social .fb{background:#1877F2}
  .hero-social .ig{background:linear-gradient(120deg,#F0552F 0%,#C63AA0 55%,#7A3BC8 100%)}
  @media (max-width:520px){
    .hero-social{gap:10px}
    .hero-social a{height:54px;padding:0 18px;font-size:.98rem;flex:1 1 100%;justify-content:center}
  }
  /* Nyitóképi sor a már itt tanuló diákoknak (Leggio) — szándékosan szerény,
     ne versenyezzen a Beiratkozom gombbal. Csak palettaváltozók; az app jele
     fix márkaszínű, mint a Facebook-gombé. */
  .hero-app{margin:22px 0 0}
  .hero-app a{
    display:inline-flex;align-items:center;gap:10px;max-width:100%;
    /* a keret adja a formát (a kitöltés a háttérrel azonos): --brass-deep mindenhol ≥ 5:1 */
    padding:7px 16px 7px 7px;border:1.5px solid var(--brass-deep);border-radius:999px;
    background:var(--paper);color:var(--ink);text-decoration:none;
    font-size:.95rem;line-height:1.35;
    transition:border-color .15s ease;
  }
  .hero-app a strong{color:var(--head)}
  .hero-app a:hover{border-color:var(--head)}
  .hero-app a:hover strong{text-decoration:underline;text-underline-offset:3px}
  /* a bordó jel sötét háttéren is elváljon */
  .hero-app svg{display:block;flex:none;border-radius:6px;box-shadow:0 0 0 1.5px var(--brass-deep)}
  .hero-app span{min-width:0}
  .hero-app .nyil{flex:none;color:var(--brass-deep);font-weight:700}
  @media (max-width:520px){
    .hero-app a{border-radius:14px;padding:9px 14px 9px 9px;width:100%}
  }

  /* ---------- sections ---------- */
  section{padding:72px 0}
  .sec-head{max-width:60ch;margin-bottom:40px}
  .sec-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;margin-top:8px}
  .sec-head p{color:var(--muted);margin:12px 0 0}

  /* futó szöveg */
  .marquee{
    overflow:hidden;border-bottom:1px solid var(--line);
    background:var(--honey);padding:14px 0;
  }
  .marquee-track{
    display:flex;width:max-content;white-space:nowrap;
    animation:marq 34s linear infinite;
  }
  .marquee span{
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;
    font-size:1.05rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--brass-deep);padding-right:.6em;
  }
  .marquee span::after{content:"♪";color:var(--brass);padding-left:.6em;font-weight:400}
  @keyframes marq{to{transform:translateX(-50%)}}

  /* tanszakok */
  #tanszakok{background:var(--honey-soft);border-block:1px solid var(--line)}
  .tsz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media (max-width:900px){.tsz-grid{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:520px){.tsz-grid{grid-template-columns:1fr}}
  .tsz{
    background:var(--paper);border:1px solid var(--line);border-radius:14px;
    padding:20px 20px 18px;display:flex;flex-direction:column;gap:6px;
    transition:transform .18s ease, border-color .18s ease;
    min-width:0;
  }
  /* 12 hangszerkártya pontosan 4 sort tölt ki, a szolfézs zárja teljes szélességben */
  .tsz-wide{grid-column:1 / -1}
  /* kiemelt együttes-kártya: a fúvószenekar nyitja a szekciót */
  .tsz-feature{
    grid-column:1 / -1;
    background:var(--navy-soft);
    border:1.5px solid var(--brass);
    padding:26px 28px 24px;
    gap:9px;
  }
  .tsz-feature:hover{transform:translateY(-3px);border-color:var(--brass-deep)}
  .tsz-feature .feature-tag{
    display:flex;align-items:center;gap:9px;
    font-family:"Bricolage Grotesque",sans-serif;
    font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:var(--brass-deep);
  }
  .tsz-feature .feature-tag svg{display:block;flex:none}
  .tsz-feature h3{font-size:1.5rem;font-weight:800}
  .tsz-feature .runtrack span{font-size:.97rem;color:var(--ink)}
  .tsz-feature .info-badge{top:24px;right:24px;border-color:var(--brass-deep);color:var(--brass-deep);opacity:.75}
  @media (max-width:520px){
    .tsz-feature{padding:22px 20px 20px}
    .tsz-feature h3{font-size:1.28rem}
  }
  .tsz:hover{transform:translateY(-3px);border-color:var(--brass)}
  .has-info{position:relative;cursor:help}
  .info-badge{
    position:absolute;top:14px;right:14px;
    width:21px;height:21px;border-radius:50%;
    border:1.5px solid var(--navy);color:var(--navy);
    display:flex;align-items:center;justify-content:center;
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:.72rem;
    opacity:.5;transition:opacity .18s ease;
  }
  .has-info:hover .info-badge,.info-open .info-badge{opacity:1}
  /* Egeres eszközön a buborék fél másodperc után MAGÁTÓL megjelenik, így az
     „i" jel fölösleges, és gombnak látszott, pedig nem az. Érintőképernyőn
     viszont nincs egér, ami előhozná — ott ez az egyetlen jel, hogy a kártyára
     koppintva van mögötte tartalom, ezért ott marad. */
  @media (hover:hover) and (pointer:fine){ .info-badge{display:none} }
  .tsz-info{
    position:absolute;top:calc(100% + 12px);left:0;
    width:min(560px,calc(100vw - 48px));
    background:var(--paper);border:1px solid var(--line);border-radius:14px;
    padding:20px 24px;font-size:.9rem;line-height:1.65;color:var(--ink);
    box-shadow:0 18px 44px rgba(46,58,68,.22);
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .22s ease,transform .22s ease,visibility .22s;
    z-index:30;white-space:normal;
  }
  .tsz-info::before{
    content:"";position:absolute;top:-7px;left:28px;
    width:12px;height:12px;background:var(--paper);
    border-left:1px solid var(--line);border-top:1px solid var(--line);
    transform:rotate(45deg);
  }
  .tsz-info b{
    display:block;font-family:"Bricolage Grotesque",sans-serif;
    font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:var(--navy);margin-bottom:8px;
  }
  .info-open{z-index:31}
  .info-open .tsz-info{opacity:1;visibility:visible;transform:none}
  @media (min-width:901px){
    .tsz:nth-child(3n) .tsz-info{left:auto;right:0}
    .tsz:nth-child(3n) .tsz-info::before{left:auto;right:28px}
  }
  @media (max-width:900px){
    .tsz:nth-child(2n) .tsz-info{left:auto;right:0}
    .tsz:nth-child(2n) .tsz-info::before{left:auto;right:28px}
  }
  /* keskeny kepernyon a panel pontosan a kartya szelessege legyen */
  @media (max-width:640px){
    .tsz-info,.tsz:nth-child(2n) .tsz-info,.tsz:nth-child(3n) .tsz-info{
      left:0;right:0;width:auto;
    }
    .tsz-info::before,.tsz:nth-child(2n) .tsz-info::before,.tsz:nth-child(3n) .tsz-info::before{
      left:28px;right:auto;
    }
  }
  .tsz .mark{
    font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:1.35rem;
    color:var(--brass);letter-spacing:.02em;
  }
  .tsz h3{font-size:1.08rem;font-weight:700}
  .runline{overflow:hidden;margin-top:2px;max-width:100%}
  .runtrack{display:flex;width:max-content;white-space:nowrap;animation:marq 18s linear infinite}
  .runtrack span{font-size:.88rem;color:var(--muted);padding-right:3em}
  .tsz:nth-child(2n) .runtrack{animation-duration:21s}
  .tsz:nth-child(3n) .runtrack{animation-duration:24s}
  .tsz:hover .runtrack{animation-play-state:paused}

  /* képzési út */
  .path{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:step}
  @media (max-width:760px){.path{grid-template-columns:1fr}}
  .step{
    position:relative;padding:24px 22px 22px;border:1px solid var(--line);border-radius:14px;
    background:var(--honey-soft);min-width:0;
  }
  .step::before{
    counter-increment:step;content:counter(step);
    display:inline-flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:50%;
    background:var(--navy);color:var(--paper);
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;
    margin-bottom:12px;
  }
  .step h3{font-size:1.1rem}
  .step .years{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}
  .step p{margin:8px 0 0;font-size:.92rem;color:var(--muted)}
  .path-note{margin-top:20px;font-size:.9rem;color:var(--muted);max-width:70ch}

  /* helyszín */
  #helyszin{background:var(--honey-soft);border-block:1px solid var(--line)}
  .loc{
    border:1px solid var(--line);border-radius:16px;background:var(--paper);
    padding:28px;min-width:0;display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;
  }
  .loc-tag{
    display:inline-block;font-family:"Bricolage Grotesque",sans-serif;
    font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:var(--navy);margin-bottom:8px;
  }
  .loc h3{font-size:1.4rem;font-weight:700}
  .loc p{margin:8px 0 0;font-size:.95rem;color:var(--muted)}
  .loc-contact{display:flex;flex-direction:column;gap:8px;font-size:.95rem;font-weight:600}
  .loc-contact a{color:var(--brass-deep);text-decoration:none}
  .loc-contact a:hover{text-decoration:underline}

  /* kis terkep a szekhelyhez — csak hozzajarulas utan tolt be */
  /* harom hasab szeles kepernyon: szoveg - elerhetoseg - terkep */
  .loc > div:first-child{flex:2 1 320px;min-width:0}
  .loc-contact{flex:1 1 190px}
  .terkep{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:8px}
  .terkep-keret{
    position:relative;width:100%;height:190px;overflow:hidden;
    border:1px solid var(--line);border-radius:12px;background:var(--honey-soft);
  }
  .terkep-keret iframe{width:100%;height:100%;border:0;display:block}
  .terkep-fedo{
    position:absolute;inset:0;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:6px;padding:18px;text-align:center;
  }
  .terkep-ikon{color:var(--brass-deep);line-height:0}
  .terkep-cim{margin:0;font-weight:600;font-size:.95rem;color:var(--head)}
  .terkep-info{margin:0;font-size:.78rem;color:var(--muted);max-width:30ch;line-height:1.45}
  .terkep-gomb{padding:8px 16px;font-size:.86rem;margin-top:4px}
  .terkep-link{font-size:.86rem;font-weight:600;color:var(--brass-deep);text-decoration:none}
  .terkep-link:hover{text-decoration:underline}
  @media (max-width:760px){.terkep-keret{height:210px}}

  /* hírek */
  .news{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media (max-width:760px){.news{grid-template-columns:1fr}}
  .news article{
    background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;
    display:flex;flex-direction:column;gap:10px;min-width:0;
  }
  .news time{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-deep)}
  .news h3{font-size:1.12rem;font-weight:700}
  .news p{margin:0;font-size:.9rem;color:var(--muted)}
  .news-note{margin-top:22px;font-size:.88rem;color:var(--muted)}

  /* közösségi gombok */
  #kozosseg{background:var(--honey-soft);border-block:1px solid var(--line)}
  .social-cta{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  @media (max-width:760px){.social-cta{grid-template-columns:1fr}}
  .social-panel{
    display:flex;align-items:center;gap:20px;min-width:0;
    padding:30px 32px;border-radius:16px;text-decoration:none;color:#fff;
    box-shadow:0 12px 30px rgba(46,58,68,.22);
    transition:transform .16s ease, filter .16s ease;
  }
  .social-panel:hover{transform:translateY(-3px);filter:brightness(1.07)}
  .social-panel.fb{background:#1877F2}
  .social-panel.ig{background:linear-gradient(120deg,#F0552F 0%,#C63AA0 55%,#7A3BC8 100%)}
  .social-panel .sp-icon{
    width:60px;height:60px;border-radius:12px;flex:none;
    background:rgba(255,255,255,.18);
    display:flex;align-items:center;justify-content:center;
  }
  .social-panel .sp-text{min-width:0}
  .social-panel .sp-text b{
    display:block;font-family:"Bricolage Grotesque",sans-serif;
    font-weight:800;font-size:1.3rem;line-height:1.2;overflow-wrap:anywhere;
  }
  .social-panel .sp-text span{display:block;font-size:.92rem;opacity:.9;margin-top:4px}
  .social-panel .sp-go{margin-left:auto;flex:none;font-size:1.5rem;font-weight:700;opacity:.85}
  .social-panel.soon{cursor:default}
  .social-panel.soon:hover{transform:none;filter:none}
  .sp-badge{
    display:inline-block;margin-top:7px;padding:3px 10px;border-radius:999px;
    background:rgba(255,255,255,.22);font-size:.76rem;font-weight:700;
    letter-spacing:.06em;text-transform:uppercase;
  }
  @media (max-width:520px){
    .social-panel{padding:24px 22px;gap:16px}
    .social-panel .sp-icon{width:52px;height:52px}
    .social-panel .sp-text b{font-size:1.15rem}
  }

  /* tanárok */
  .staff-lead{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}
  .staff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  @media (max-width:900px){
    .staff-lead{grid-template-columns:1fr}
    .staff-grid{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:520px){.staff-grid{grid-template-columns:1fr}}
  .person{
    border:1px solid var(--line);border-radius:14px;background:var(--paper);
    min-width:0;display:flex;align-items:center;gap:15px;padding:16px 18px;
    transition:border-color .18s ease, transform .18s ease;
  }
  .person:hover{border-color:var(--brass);transform:translateY(-2px)}
  .mono{
    width:50px;height:50px;border-radius:50%;flex:none;
    display:flex;align-items:center;justify-content:center;
    background:var(--navy-soft);color:var(--navy);
    border:1.5px solid transparent;
    font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
    font-size:.98rem;letter-spacing:.01em;
  }
  .person .who{min-width:0}
  .person h3{font-size:1rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
  .person p{margin:4px 0 0;font-size:.85rem;color:var(--muted)}
  .person .role{
    display:block;margin-bottom:3px;
    font-family:"Bricolage Grotesque",sans-serif;
    font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:var(--brass-deep);
  }
  .person.is-lead{background:var(--honey-soft);border-color:var(--line)}
  .person.is-lead .mono{
    background:var(--navy);color:var(--paper);
    border-color:var(--brass);width:54px;height:54px;font-size:1.05rem;
  }
  .person.is-lead h3{font-size:1.06rem}
  .person-mail{
    display:inline-block;margin-top:7px;font-size:.82rem;font-weight:600;
    color:var(--brass-deep);text-decoration:none;overflow-wrap:anywhere;
  }
  .person-mail:hover{text-decoration:underline}

  /* mobil előnézet */
  #mobilnezet{background:var(--honey-soft);border-block:1px solid var(--line)}
  .phone-wrap{display:flex;justify-content:center}
  .phone{
    width:392px;max-width:100%;
    border:10px solid var(--band-a);border-radius:40px;overflow:hidden;
    box-shadow:var(--shadow);background:var(--paper);position:relative;
  }
  .phone::before{
    content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);
    width:90px;height:16px;border-radius:999px;background:var(--band-a);z-index:2;
  }
  .phone iframe{width:100%;height:680px;border:0;display:block}

  /* beiratkozás */
  #beiratkozas .cta-band{
    background:linear-gradient(135deg,var(--band-a) 0%,var(--band-b) 100%);
    color:var(--on-band);
    border-radius:20px;padding:48px 40px;
    display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between;
    position:relative;overflow:hidden;
  }
  .cta-band h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;max-width:20ch;color:var(--on-band)}
  .cta-band p{color:var(--on-band-muted);margin:10px 0 0;max-width:44ch}
  .cta-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start;position:relative;z-index:1}
  .btn-accent{background:var(--accent-btn,#E7C87F);color:var(--on-accent,#1F262C);box-shadow:0 10px 24px rgba(0,0,0,.22)}
  .btn-accent:hover{background:var(--accent-hover,#D9B76A);color:var(--on-accent,#1F262C)}
  .btn-onband{
    border:1.5px solid rgba(255,255,255,.45);color:var(--on-band);background:none;
    font-family:inherit;cursor:pointer;text-align:left;
  }
  .btn-onband:hover{border-color:var(--on-band);background:rgba(255,255,255,.10)}
  .cta-note{font-size:.8rem;color:var(--on-band-muted)}

  /* ---------- naptárba tevés ----------
     Kis tálcába fogva, a hírkártya aljára igazítva. A margin-top:auto azért
     kell, mert a kártyák flex-oszlopok: eltérő szöveghossz mellett is egy
     vonalba kerül a naptársor mindhárom kártyán. */
  .naptar-sor{
    margin-top:auto;
    /* Szandekosan ket sorban: a hirkartyak harmas racsban allnak, egy sorba
       a cimke es a ket gomb nem fer be rendezetten - igy viszont mindig
       ugyanugy nez ki, nem a szoveghossztol fugg. */
    display:flex;flex-direction:column;align-items:stretch;gap:7px;
    padding:9px 11px;border-radius:11px;
    background:var(--honey-soft);border:1px solid var(--line);
  }
  .naptar-cimke{
    display:inline-flex;align-items:center;gap:6px;
    font-size:.74rem;font-weight:600;letter-spacing:.04em;
    text-transform:uppercase;color:var(--muted);
  }
  .naptar-cimke svg{width:14px;height:14px;flex:none;opacity:.8}
  .naptar-gombok{display:flex;gap:6px}
  .naptar-gomb{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    flex:1 1 0;min-width:0;
    padding:6px 11px;border-radius:9px;
    border:1px solid var(--line);background:var(--paper);
    font-size:.78rem;font-weight:600;line-height:1.2;white-space:nowrap;
    color:var(--ink);text-decoration:none;
    transition:border-color .16s ease,color .16s ease,background .16s ease,transform .16s ease;
  }
  .naptar-gomb svg{width:15px;height:15px;flex:none;opacity:.7}
  .naptar-gomb:hover{
    border-color:var(--brass);color:var(--brass-deep);
    background:var(--paper);transform:translateY(-1px);
  }
  .naptar-gomb:hover svg{opacity:1}
  .naptar-gomb:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
  /* Telefonon ugyanez az elrendezes marad (kiszamithato), de magasabb
     gombokkal: ujjal kell eltalalni oket, nem egerrel. */
  @media (max-width:760px){
    .naptar-gomb{padding:10px 12px;font-size:.82rem}
    .naptar-gomb svg{width:16px;height:16px}
  }

  /* korábbi, már lezajlott események */
  .hirek-mult{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}
  .mult-cim{
    font-family:"Bricolage Grotesque",sans-serif;font-size:1.05rem;font-weight:700;
    color:var(--muted);margin:0 0 16px;
  }
  .news-mult article{opacity:.78}
  .news-mult article:hover{opacity:1}
  .hir-fej{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}
  .hir-cimke{
    font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--muted);background:var(--honey);border:1px solid var(--line);
    border-radius:999px;padding:2px 9px;
  }

  /* KRÉTA — szülői belépés */
  .kreta-band{
    border:1.5px solid var(--line);border-radius:20px;background:var(--paper);
    padding:34px 36px;display:flex;flex-wrap:wrap;gap:28px;
    align-items:center;justify-content:space-between;box-shadow:var(--shadow);
  }
  .kreta-szoveg{flex:1 1 380px;min-width:0}
  /* A KRETA markajele kek, feher alapra tervezve. Mind a 13 palettan es
     sotet temaban is kifejezetten FEHER lapra tesszuk, halvany kerettel:
     igy szandekosnak latszik, es nem kell a logohoz hozzanyulni. */
  .kreta-belepes{
    display:flex;align-items:center;justify-content:center;
    background:#fff;border:1.5px solid var(--line);border-radius:14px;
    padding:18px 26px;text-decoration:none;
    transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
  }
  .kreta-belepes img{display:block;width:132px;height:auto}
  .kreta-belepes:hover{
    border-color:var(--brass);transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(0,0,0,.10);
  }
  .kreta-belepes:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
  .kreta-szoveg h2{
    font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
    font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--head);margin:6px 0 0;
  }
  .kreta-szoveg p{color:var(--muted);margin:12px 0 0;max-width:52ch}
  .kreta-figyelem{
    border-left:3px solid var(--brass);padding:2px 0 2px 14px;
    color:var(--ink)!important;font-size:.9rem;
  }
  .kreta-figyelem strong{color:var(--head)}
  .kreta-band code{
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;
    background:var(--honey-soft);border:1px solid var(--line);
    border-radius:5px;padding:1px 5px;
    /* keskeny kijelzon ne torjon ketfele: a cim egyben olvashato maradjon,
       eppen ez a lenyege - a szulo errol ismeri fel a valodi oldalt */
    white-space:nowrap;
  }
  .kreta-gombok{
    display:flex;flex-direction:column;gap:12px;
    align-items:stretch;flex:0 0 auto;min-width:0;
  }
  .kreta-gombok .btn{text-align:center;justify-content:center}
  /* Nem --faint: ez a sor mondja meg, hogy az e-kreta.hu cimre megy a gomb,
     vagyis biztonsagi tampont - olvashatonak kell lennie. A --faint vilagos
     temaban csak 2,1-2,7:1 kontraszttal fut, ami erre keves. */
  .kreta-megjegyzes{font-size:.78rem;color:var(--ink);text-align:center;max-width:24ch}
  @media (max-width:640px){
    .kreta-band{padding:26px 20px;gap:20px}
    .kreta-gombok{width:100%}
    .kreta-megjegyzes{max-width:none}
  }

  /* Leggio diák gyakorlóapp — a KRÉTA-sáv osztályaira épül (.kreta-band,
     .kreta-szoveg, .kreta-figyelem, .kreta-gombok, .kreta-megjegyzes), így a
     13 palettán és sötét módban ugyanúgy viselkedik. Közvetlenül a KRÉTA után
     a dupla szakaszköz helyett egy jár. */
  #kreta + #gyakorlo{padding-top:0}
  /* felső padding nincs, ezért horgonyra ugráskor a ragadós fejléc ne takarja a címet */
  #gyakorlo{scroll-margin-top:96px}
  @media (max-width:470px){#gyakorlo{scroll-margin-top:82px}}
  /* olvasandó szöveg: --ink (a --muted az alap palettán csak 3,7:1) — a KRÉTA-sávra is */
  .kreta-szoveg p{color:var(--ink)}
  .app-band .kreta-megjegyzes{align-self:center}
  .app-band .kreta-megjegyzes a{display:block;margin-top:4px}
  @media (max-width:800px){.app-band .kreta-gombok{width:100%}.app-band .kreta-megjegyzes{max-width:none}}
  .nowrap{white-space:nowrap}
  .app-lepesek{list-style:none;counter-reset:lep;margin:16px 0 0;padding:0;display:grid;gap:12px;max-width:56ch}
  .app-lepesek li{
    counter-increment:lep;position:relative;min-height:30px;
    padding-left:42px;color:var(--ink);font-size:.95rem;line-height:1.5;
  }
  .app-lepesek li::before{
    content:counter(lep);position:absolute;left:0;top:calc((1.5em - 30px) / 2);
    width:30px;height:30px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--navy);color:var(--paper);
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:.95rem;
  }
  .app-lepesek strong{color:var(--head)}
  .app-band .kreta-figyelem{margin-top:18px}
  /* Az app jele fix márkaszínű (bordó), ezért — a KRÉTA-jelhez hasonlóan —
     mindig FEHÉR lapon áll: sötét módban és a sötét palettákon is elválik. */
  .app-ikon{
    display:flex;flex-direction:column;align-items:center;gap:8px;
    background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:18px 26px;
  }
  .app-ikon svg{display:block}
  .app-ikon span{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:1.1rem;color:#7a1f2b;letter-spacing:.02em}
  .app-band .kreta-megjegyzes a{color:var(--brass-deep);font-weight:600}

  /* dokumentumok */
  #dokumentumok{background:var(--honey-soft);border-block:1px solid var(--line)}
  .doc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
  @media (max-width:760px){.doc-grid{grid-template-columns:1fr}}
  .doc-card{
    border:1px solid var(--line);border-radius:16px;background:var(--paper);
    padding:22px;display:flex;gap:16px;align-items:flex-start;min-width:0;
  }
  .doc-dl{
    margin-top:14px;padding:9px 17px;font-size:.87rem;font-weight:600;border-radius:999px;
    border:1.5px solid var(--line);background:none;color:var(--ink);
    font-family:inherit;cursor:pointer;
  }
  a.doc-dl{display:inline-block;text-decoration:none}
  .doc-dl:hover{border-color:var(--brass);color:var(--brass-deep)}
  .doc-icon{
    width:42px;height:52px;flex:none;border-radius:6px 10px 6px 6px;
    background:var(--navy-soft);border:1.5px solid var(--line);
    display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:.6rem;
    letter-spacing:.06em;color:var(--navy);
  }
  .doc-body{min-width:0;flex:1}
  .doc-card h3{font-size:1.02rem;font-weight:700;line-height:1.3}
  .doc-card p{margin:7px 0 0;font-size:.87rem;color:var(--muted)}
  .doc-meta{margin-top:10px;font-size:.78rem;color:var(--faint)}

  /* nyitott állások */
  .job-empty{
    border:1.5px dashed var(--line);border-radius:18px;background:var(--honey-soft);
    padding:44px 32px;text-align:center;
  }
  .job-empty .big{
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:1.25rem;
    display:block;margin-bottom:10px;color:var(--head);
  }
  .job-empty p{margin:0 auto;max-width:58ch;color:var(--muted);font-size:.94rem}
  .job-empty .btn{margin-top:22px}

  /* jogi rész */
  #jogi{background:var(--paper);border-top:1px solid var(--line)}
  .legal{display:flex;flex-direction:column;gap:12px}
  .legal details{
    border:1px solid var(--line);border-radius:14px;background:var(--honey-soft);
    overflow:hidden;
  }
  .legal summary{
    cursor:pointer;list-style:none;padding:18px 22px;
    font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:1.05rem;
    display:flex;align-items:center;gap:12px;color:var(--head);
  }
  .legal summary::-webkit-details-marker{display:none}
  .legal summary::before{
    content:"+";color:var(--brass);font-size:1.3rem;line-height:1;flex:none;
    width:22px;text-align:center;
  }
  .legal details[open] summary::before{content:"−"}
  .legal summary:focus-visible{outline:3px solid var(--brass);outline-offset:-3px}
  .legal .doc{
    padding:4px 22px 26px;border-top:1px solid var(--line);
    background:var(--paper);font-size:.92rem;line-height:1.65;
  }
  .legal .doc h4{font-size:1rem;font-weight:700;margin:26px 0 8px}
  .legal .doc h4:first-of-type{margin-top:20px}
  .legal .doc p{margin:0 0 10px;max-width:78ch}
  .legal .doc ul{margin:0 0 12px;padding-left:20px;max-width:78ch}
  .legal .doc li{margin-bottom:6px}
  .legal .doc a{color:var(--brass-deep)}
  .legal .doc .meta{font-size:.85rem;color:var(--muted)}
  .table-wrap{overflow-x:auto;margin:0 0 14px}
  .legal table{border-collapse:collapse;width:100%;min-width:560px;font-size:.86rem}
  .legal th,.legal td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
  .legal th{background:var(--honey-soft);font-weight:600;color:var(--head)}
  .legal td{color:var(--muted)}
  .legal-note{font-size:.85rem;color:var(--muted);max-width:70ch;margin-top:20px}

  /* beiratkozás felugró ablak */
  dialog#beiratModal{
    border:1px solid var(--line);border-radius:18px;padding:0;
    background:var(--paper);color:var(--ink);
    max-width:min(520px,calc(100vw - 32px));width:100%;
    box-shadow:0 30px 70px rgba(46,58,68,.35);
  }
  dialog#beiratModal::backdrop{background:rgba(20,26,32,.62);backdrop-filter:blur(3px)}
  .modal-in{padding:34px 34px 28px;text-align:center}
  .modal-badge{
    width:62px;height:62px;border-radius:50%;margin:0 auto 18px;
    background:var(--honey);color:var(--brass-deep);
    display:flex;align-items:center;justify-content:center;
  }
  .modal-in h3{font-size:1.4rem;font-weight:700;margin:0 0 12px}
  .modal-in p{margin:0 0 10px;color:var(--muted);font-size:.97rem;line-height:1.6}
  .modal-in p.strong{color:var(--ink);font-weight:600}
  .modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}
  .modal-actions .btn{padding:11px 22px;font-size:.94rem;cursor:pointer;font-family:inherit}

  /* kapcsolat / footer */
  footer{border-top:1px solid var(--line);padding:56px 0 40px;background:var(--honey-soft)}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
  @media (max-width:760px){.foot-grid{grid-template-columns:1fr}}
  footer h3{font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep);margin:0 0 14px}
  footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.94rem;overflow-wrap:anywhere}
  footer a{text-decoration:none;color:var(--muted)}
  footer a:hover{color:var(--brass-deep)}
  .foot-brand p{color:var(--muted);font-size:.94rem;max-width:38ch;margin:12px 0 0}
  .social{display:flex;gap:10px;margin-top:18px}
  .social a{
    width:44px;height:44px;border-radius:9px;border:0;
    display:flex;align-items:center;justify-content:center;color:#fff;
    box-shadow:0 5px 14px rgba(46,58,68,.22);
    transition:transform .15s ease, filter .15s ease;
  }
  .social a:hover{transform:translateY(-2px);filter:brightness(1.08);color:#fff}
  .social a.fb{background:#1877F2}
  .social a.ig{background:linear-gradient(120deg,#F0552F 0%,#C63AA0 55%,#7A3BC8 100%)}
  /* KRÉTA: a saját kékjén a hivatalos fehér logó — a szóvédjegy miatt szélesebb csempe */
  .social a.kreta{background:#30A8CA;width:auto;padding:0 13px}
  .social a.kreta img{display:block;width:50px;height:auto}
  /* Leggio diák app: a saját bordóján a krém jel és a név (fehér a bordón 10:1 fölött) */
  .social a.leggio{
    background:#7a1f2b;width:auto;padding:0 13px 0 8px;gap:6px;
    font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:.95rem;
    text-decoration:none;letter-spacing:.02em;
    /* sötét láblécen is elváljon: a gyűrű világosban sötét, sötétben világos */
    box-shadow:0 0 0 1.5px var(--brass-deep),0 5px 14px rgba(46,58,68,.22);
  }
  .social svg{display:block}
  .foot-legal{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:36px;font-size:.9rem;font-weight:600}
  .foot-legal a,.linkish{
    color:var(--brass-deep);text-decoration:none;
    background:none;border:0;padding:0;font:inherit;cursor:pointer;
  }
  .foot-legal a:hover,.linkish:hover{text-decoration:underline;color:var(--brass-deep)}
  .fenntarto{
    display:flex;align-items:center;gap:24px;flex-wrap:wrap;
    margin-top:38px;padding-top:30px;border-top:1px solid var(--line);
  }
  .tk-plate{
    background:#FFFFFF;border:1px solid var(--line);border-radius:12px;
    padding:14px 18px;flex:none;line-height:0;display:block;
  }
  .tk-plate img{width:186px;height:auto;display:block}
  .tk-info{min-width:0}
  .tk-label{
    display:block;margin-bottom:5px;font-size:.74rem;font-weight:600;
    letter-spacing:.13em;text-transform:uppercase;color:var(--brass-deep);
  }
  .tk-info h3{font-size:1.08rem;font-weight:700;margin:0;letter-spacing:normal;text-transform:none;color:var(--head)}
  .tk-info h3 a{color:var(--head);text-decoration:none}
  .tk-info h3 a:hover{color:var(--brass-deep);text-decoration:underline}
  .tk-info p{margin:7px 0 0;font-size:.9rem;color:var(--muted);line-height:1.55}
  .tk-info p a{color:var(--muted);text-decoration:none}
  .tk-info p a:hover{color:var(--brass-deep)}
  @media (max-width:520px){.tk-plate img{width:150px}}

  /* tervezői kredit */
  .foot-credit{
    display:flex;align-items:center;justify-content:flex-end;gap:10px;
    margin-top:26px;padding-top:20px;border-top:1px solid var(--line);
  }
  .credit-label{font-size:.76rem;letter-spacing:.1em;text-transform:lowercase;color:var(--muted)}
  .fp-lockup{
    display:inline-flex;align-items:center;gap:7px;color:var(--head);
    text-decoration:none;border-radius:6px;padding:4px 6px;margin:-4px -6px;
    transition:opacity .15s ease, transform .15s ease;
  }
  .fp-lockup:hover{opacity:.78;transform:translateY(-1px)}
  footer a.fp-lockup:hover{color:var(--head)}
  .fp-mark{width:34px;height:auto;display:block;flex:none}
  .fp-mark rect{fill:var(--fp-red)}
  .fp-mark .s1{opacity:.38}
  .fp-mark .s2{opacity:.58}
  .fp-mark .s3{opacity:.78}
  .fp-word{
    font-family:"Archivo",-apple-system,"Segoe UI",Arial,sans-serif;
    font-size:1rem;letter-spacing:-.015em;line-height:1;
    display:inline-flex;align-items:baseline;
  }
  .fp-word i{font-style:normal}
  .fp-word i:nth-child(1){font-weight:300}
  .fp-word i:nth-child(2){font-weight:350}
  .fp-word i:nth-child(3){font-weight:400}
  .fp-word i:nth-child(4){font-weight:450}
  .fp-word i:nth-child(5){font-weight:500}
  .fp-word i:nth-child(6){font-weight:560}
  .fp-word i:nth-child(7){font-weight:620}
  .fp-word i:nth-child(8){font-weight:690}
  .fp-word i:nth-child(9){font-weight:760}
  .fp-word i:nth-child(10){font-weight:840}
  @media (max-width:520px){.foot-credit{justify-content:flex-start}}

  .foot-bottom{
    margin-top:44px;padding-top:20px;border-top:1px solid var(--line);
    display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
    font-size:.82rem;color:var(--muted);
  }