/* FA-01: shared frontend foundation. Tailwind utilities are emitted by the build command. */
:root{--fa-ink:#23252b;--fa-paper:#f4f0eb;--fa-paper-gradient:linear-gradient(115deg,#f7f4ef 0%,#f2eee8 55%,#eee9e0 100%);--fa-white:#fff;--fa-bronze:#ad846b;--fa-muted:#62676e;--fa-border:#ddd7d0;--fa-container:1200px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body.academy-body{margin:0;background:var(--fa-paper-gradient);color:var(--fa-ink);font:400 16px/1.65 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.academy-body img{max-width:100%;height:auto}
.academy-body a{color:inherit;text-decoration:none}
.academy-body a:focus-visible{outline:3px solid var(--fa-bronze);outline-offset:5px}
.academy-container{width:min(calc(100% - 40px),var(--fa-container));margin-inline:auto}
.academy-skip{position:absolute;left:12px;top:-100px;background:var(--fa-white);padding:12px 16px;z-index:99}
.academy-skip:focus{top:12px}
.academy-header{background:var(--fa-white);border-bottom:1px solid var(--fa-border)}
.academy-header-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:90px}
.academy-brand{display:inline-flex;align-items:center;flex-shrink:0}
.academy-brand img{display:block;width:48px;height:auto}
.academy-navigation{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(14px,2.4vw,36px);font-size:.9rem;font-weight:550}
.academy-navigation a:hover,.academy-footer a:hover{color:var(--fa-bronze)}
.academy-languages{display:flex;gap:9px;align-items:center;font-size:.78rem;font-weight:650;letter-spacing:.08em;white-space:nowrap}
.academy-languages span{color:#bbb}
.academy-main{min-height:55vh}
.academy-intro{min-height:570px;display:flex;align-items:center;padding:88px 0;background:radial-gradient(ellipse 53% 72% at 83% 48%,rgba(181,141,84,.25),transparent 78%),radial-gradient(ellipse 62% 95% at 3% 8%,rgba(255,255,255,.88),transparent 76%),linear-gradient(115deg,#f7f4ef 0%,#f2eee8 55%,#eee9e0 100%)}
.academy-intro-inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:center;gap:clamp(32px,5vw,96px)}
.academy-eyebrow{font-size:.76rem;letter-spacing:.24em;font-weight:700;color:var(--fa-bronze);margin:0 0 24px}
.academy-intro h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.98rem,3.78vw,3.42rem);font-weight:400;line-height:1.1;letter-spacing:-.025em;margin:0 0 28px}
/* Shared heading scale */
.academy-body h1,.academy-body h2,.academy-body h3,.academy-body h4,.academy-body h5,.academy-body h6{line-height:1.2;letter-spacing:-.018em}
.academy-body h1{font-size:clamp(1.98rem,3.78vw,3.42rem)}
.academy-body h2{font-size:clamp(1.62rem,2.7vw,2.43rem)}
.academy-body h3{font-size:clamp(1.45rem,2.2vw,2rem);font-weight: 600}
.academy-body h4{font-size:1.2rem; font-weight: 600}
.academy-body h4:hover {text-decoration: underline;}
.academy-body h5{font-size:1.125rem}
.academy-body h6{font-size:1rem}
.academy-description{max-width:630px;color:var(--fa-muted);font-size:clamp(1.05rem,1.6vw,1.2rem)}
.academy-description p{margin:0 0 1rem}
.academy-cta{display:inline-flex;gap:20px;align-items:center;padding:14px 23px;margin-top:30px;background:var(--fa-ink);color:var(--fa-white)!important;font-size:.85rem;letter-spacing:.015em}
.academy-cta:hover{background:#454650}
.academy-intro-mark{display:flex;justify-content:center;align-items:center;min-height:300px}
.academy-intro-mark img{width:min(100%,440px);height:auto;object-fit:contain}
.academy-footer{background:var(--fa-ink);color:var(--fa-white);padding:36px 0}
.academy-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}
.academy-footer-brand img{display:block;width:96px;height:auto}
.academy-footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:15px 25px;font-size:.84rem}
.academy-placeholder{min-height:0}
@media(max-width:850px){.academy-header-inner{flex-wrap:wrap;padding:14px 0;gap:14px}.academy-navigation{order:3;flex-basis:100%;justify-content:flex-start;gap:12px 24px;padding-bottom:8px}.academy-intro{padding:70px 0;min-height:0}.academy-intro-inner{grid-template-columns:1fr}.academy-intro-mark{min-height:0;justify-content:flex-start}.academy-intro-mark img{max-width:300px}.academy-footer-inner{align-items:flex-start;flex-direction:column}.academy-footer-links{justify-content:flex-start}}
@media(max-width:480px){.academy-container{width:min(calc(100% - 32px),var(--fa-container))}.academy-header-inner{min-height:72px}.academy-brand img{
        width:48px;}.academy-navigation{font-size:.78rem;gap:8px 17px}.academy-intro{padding:54px 0}.academy-intro-mark img{max-width:230px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* FA-02: Academy introduction section */
.academy-about{background:var(--fa-white);scroll-margin-top:2rem}
.academy-about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:430px}
.academy-about-visual{position:relative;min-height:430px;overflow:hidden;background:#ddd7d0}
.academy-about-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.academy-about-content{display:flex;align-items:center;padding:clamp(40px,6vw,96px)}
.academy-about-copy{max-width:590px}
.academy-about h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0 0 26px;color:var(--fa-ink)}
.academy-about-description{color:var(--fa-muted);font-size:1.03rem;line-height:1.8}
.academy-about-description p{margin:0 0 1.1rem}
.academy-about-description p:last-child{margin-bottom:0}
@media(max-width:850px){.academy-about-grid{grid-template-columns:1fr}.academy-about-visual{min-height:330px}.academy-about-content{padding:44px max(20px,calc((100vw - var(--fa-container))/2))}}
@media(max-width:480px){.academy-about-visual{min-height:230px}.academy-about-content{padding:36px 16px}}

/* FA-03: education and services */
.academy-services{background:var(--fa-paper-art),var(--fa-paper-gradient);padding:clamp(64px,8vw,112px) 0;scroll-margin-top:2rem}
.academy-services-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,90px);align-items:end;margin-bottom:42px}
.academy-services-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0}
.academy-services-lead{color:var(--fa-muted);line-height:1.8;margin:0;max-width:540px}
.academy-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.academy-service-card{background:linear-gradient(145deg,#ffffff 8%,#faf8f5 58%,#f5f0e9 100%);padding:clamp(26px,3vw,43px);min-height:270px;border:1px solid var(--fa-border);display:flex;flex-direction:column;align-items:flex-start;transition:border-color .2s ease,transform .2s ease}
.academy-service-card:hover{border-color:var(--fa-bronze);transform:translateY(-3px)}
.academy-service-image{height:72px;display:flex;align-items:center;margin-bottom:25px}
.academy-service-image img{max-width:70px;max-height:70px;width:auto;height:auto;object-fit:contain}
.academy-service-card h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(1.3rem,1.8vw,1.7rem);margin:0 0 14px;overflow-wrap:anywhere}
.academy-service-description{color:var(--fa-muted);font-size:.96rem;line-height:1.7;overflow-wrap:anywhere}
.academy-service-description p{margin:0 0 10px}.academy-service-description p:last-child{margin-bottom:0}
@media(max-width:900px){.academy-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.academy-services-intro{grid-template-columns:1fr;gap:16px}.academy-services-grid{grid-template-columns:1fr}.academy-service-card{min-height:0}}
@media(prefers-reduced-motion:reduce){.academy-service-card{transition:none}.academy-service-card:hover{transform:none}}


/* FA-04: teachers */
.academy-teachers{background:var(--fa-white);padding:clamp(64px,8vw,112px) 0;scroll-margin-top:2rem}
.academy-teachers-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,90px);align-items:end;margin-bottom:42px}
.academy-teachers-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0}
.academy-teachers-lead{color:var(--fa-muted);line-height:1.8;margin:0;max-width:560px}
.academy-teachers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.academy-teacher-card{background:var(--fa-paper-gradient);border:1px solid var(--fa-border);display:flex;flex-direction:column;height:100%;overflow:hidden}
.academy-teacher-visual{aspect-ratio:3/4;background:#ddd7d0;overflow:hidden}
.academy-teacher-visual img{width:100%;height:100%;object-fit:cover;display:block}
.academy-teacher-body{padding:24px 24px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.academy-teacher-card h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(1.35rem,1.8vw,1.75rem);margin:0}
.academy-teacher-role{margin:0;color:var(--fa-bronze);font-size:.86rem;letter-spacing:.08em;font-weight:700;text-transform:uppercase}
.academy-teacher-excerpt,.academy-teacher-longtext{color:var(--fa-muted);font-size:.97rem;line-height:1.75}
.academy-teacher-excerpt p,.academy-teacher-longtext p{margin:0 0 12px}
.academy-teacher-excerpt p:last-child,.academy-teacher-longtext p:last-child{margin-bottom:0}
.academy-teacher-details{margin-top:auto;padding-top:8px;border-top:1px solid var(--fa-border)}
.academy-teacher-details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;font-size:.9rem;font-weight:650;color:var(--fa-ink)}
.academy-teacher-details summary::-webkit-details-marker{display:none}
.academy-teacher-summary-icon{width:12px;height:12px;position:relative;display:inline-block;flex-shrink:0}
.academy-teacher-summary-icon::before,.academy-teacher-summary-icon::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transform:translate(-50%,-50%)}
.academy-teacher-summary-icon::before{width:12px;height:1.5px}
.academy-teacher-summary-icon::after{width:1.5px;height:12px;transition:opacity .2s ease}
.academy-teacher-details[open] .academy-teacher-summary-icon::after{opacity:0}
.academy-teacher-longtext{padding-top:16px}
.academy-teacher-link-wrap{padding-top:6px}
.academy-teacher-link-wrap a{color:var(--fa-bronze);font-weight:650}
.academy-teacher-link-wrap a:hover{text-decoration:underline}
@media(max-width:900px){.academy-teachers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.academy-teachers-intro{grid-template-columns:1fr;gap:16px}.academy-teachers-grid{grid-template-columns:1fr}.academy-teacher-body{padding:20px 18px 18px}}
@media(prefers-reduced-motion:reduce){.academy-teacher-summary-icon::after{transition:none}}


/* FA-04: open biography replaces the short introduction */
.academy-teacher-card:has(.academy-teacher-details[open]) .academy-teacher-excerpt{display:none}
.academy-teacher-details::details-content{block-size:0;overflow:hidden;opacity:0;transition:block-size .28s ease,opacity .28s ease;transition-behavior:allow-discrete}
.academy-teacher-details[open]::details-content{block-size:auto;opacity:1}
@media(prefers-reduced-motion:reduce){.academy-teacher-details::details-content{transition:none}}


/* FA-05: gallery – justified layout and progressive reveal */
.academy-gallery{padding:clamp(64px,8vw,112px) 0;background:var(--fa-paper-art),var(--fa-paper-gradient);scroll-margin-top:2rem}
.academy-gallery-intro{margin-bottom:36px}
.academy-gallery-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0}
/* Fallback grid if JavaScript is disabled */
.academy-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.academy-gallery-item{margin:0;overflow:hidden;background:#d7d5d2;aspect-ratio:4/3}
.academy-gallery-item img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:850px){.academy-gallery-grid:not(.is-justified){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.academy-gallery-grid:not(.is-justified){grid-template-columns:1fr}}
/* Justified rows use actual image dimensions, calculated by JS */
.academy-gallery-grid.is-justified{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--gallery-gap,12px)}
.academy-gallery-grid.is-justified .academy-gallery-item{flex:0 0 auto;aspect-ratio:auto}
/* Only hide photos when JS has explicitly enabled the reveal behavior */
.academy-gallery-grid.is-enhanced .academy-gallery-item img{opacity:0;transition:opacity .45s ease}
.academy-gallery-grid.is-enhanced .academy-gallery-item.is-in-view img.is-loaded{opacity:1}
@media(prefers-reduced-motion:reduce){.academy-gallery-grid.is-enhanced .academy-gallery-item img{transition:none}}
.academy-gallery-credit {margin: 24px 0 0;font-size: 0.75rem;font-style: italic;letter-spacing: 0.025em;color: var(--fa-muted, #777);text-align: right;}
html[lang="hu"] .academy-gallery-credit [lang="en"],html[lang="en"] .academy-gallery-credit [lang="hu"] {display: none;}


/* FA-06: latest news; compact editorial preview, not a news portal. */
.academy-news{background:var(--fa-paper-art),var(--fa-paper-gradient);padding:clamp(64px,8vw,112px) 0;scroll-margin-top:2rem}
.academy-news-intro{margin-bottom:36px}
.academy-news-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0}
.academy-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.academy-news-card{min-width:0;border-top:1px solid var(--fa-border);padding-top:18px}
.academy-news-image{aspect-ratio:4/3;background:var(--fa-paper-gradient);overflow:hidden;margin-bottom:20px}
.academy-news-image img{display:block;width:100%;height:100%;object-fit:cover}
.academy-news-copy h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(1.25rem,1.75vw,1.6rem);line-height:1.3;margin:0 0 12px;overflow-wrap:anywhere}
.academy-news-excerpt{color:var(--fa-muted);font-size:.95rem;line-height:1.75;max-height:12.25em;overflow:hidden;overflow-wrap:anywhere}
.academy-news-excerpt p{margin:0 0 12px}
.academy-news-excerpt p:last-child{margin-bottom:0}
@media(max-width:900px){.academy-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.academy-news-grid{grid-template-columns:1fr}.academy-news-card{padding-top:14px}}


/* FA-07: contact section */
.academy-contacts{background:var(--fa-paper-art),var(--fa-paper-gradient);padding:clamp(64px,8vw,112px) 0;scroll-margin-top:2rem}
.academy-contacts-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,6vw,100px);align-items:center}
.academy-contacts-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0 0 22px}
.academy-contacts-description{color:var(--fa-muted);line-height:1.8;max-width:650px}
.academy-contacts-description p{margin:0 0 12px}
.academy-contacts-panel{background:var(--fa-white);border:1px solid var(--fa-border);padding:clamp(28px,3vw,44px);min-width:0}
.academy-contacts-panel h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0 0 18px}
.academy-contact-value{color:var(--fa-ink);font-size:clamp(1.1rem,2vw,1.5rem);font-weight:500;overflow-wrap:anywhere}
.academy-contact-value:hover{color:var(--fa-bronze)}
@media(max-width:750px){.academy-contacts-grid{grid-template-columns:1fr}}


/* FA-09: mobile usability, layout stability and paint performance */
.academy-body{overflow-wrap:break-word}
.academy-body img{max-width:100%}
.academy-navigation a,.academy-languages a{display:inline-flex;min-height:44px;align-items:center}
.academy-header-inner>*{min-width:0}
/* Hero emblem: +20% desktop, independent of the narrow grid column. */
@media(min-width:851px){.academy-intro-mark img{transform:scale(1.2);transform-origin:center center}}
.academy-intro-mark img{display:block}
.academy-about-visual{aspect-ratio:1200/1323;min-height:0}
.academy-teachers-grid>*,.academy-services-grid>*,.academy-news-grid>*{min-width:0}
.academy-teacher-visual img,.academy-news-image img,.academy-gallery-item img{aspect-ratio:inherit}
.academy-body :is(a,button,summary):focus-visible{outline:3px solid var(--fa-bronze);outline-offset:4px}
@media(max-width:850px){
  .academy-header-inner{gap:8px 16px}
  .academy-brand{margin-right:auto}
  .academy-navigation{order:3;flex-basis:100%;justify-content:center;gap:0 22px;padding:5px 0 2px;border-top:1px solid var(--fa-border)}
  .academy-navigation a{font-size:.88rem}
  .academy-languages{margin-left:auto}
  .academy-about-visual{aspect-ratio:4/3;min-height:0}
}
@media(max-width:480px){
  .academy-navigation{justify-content:space-between;gap:0 12px}
  .academy-navigation a{font-size:.78rem;min-height:44px}
  .academy-languages a{min-width:34px;justify-content:center}
  .academy-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .academy-gallery-item{aspect-ratio:1}
  .academy-teacher-visual{aspect-ratio:1}
  .academy-footer-links{gap:4px 20px}
  .academy-footer-links a{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:350px){.academy-navigation{justify-content:flex-start;gap:0 16px}}
@media(prefers-reduced-motion:reduce){.academy-body *, .academy-body *::before, .academy-body *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* FA-10 — visual consistency and content rhythm (no CMS/content changes) */
:root{--fa-section-space:clamp(64px,7vw,104px);--fa-reading-width:65ch;--fa-focus:#94684e}
.academy-body{font-feature-settings:"kern" 1;text-rendering:optimizeLegibility}
.academy-body :is(h1,h2,h3){text-wrap:balance}
.academy-body :is(p,li){text-wrap:pretty}
.academy-body :is(p,li,a,summary){overflow-wrap:break-word}
.academy-eyebrow{line-height:1.45}
.academy-intro,.academy-services,.academy-teachers,.academy-gallery,.academy-news,.academy-contacts{padding-block:var(--fa-section-space)}
.academy-intro{min-height:clamp(440px,55vw,610px)}
.academy-intro h1{max-width:20ch}
.academy-description{max-width:var(--fa-reading-width)}
.academy-cta{min-height:48px;justify-content:center;transition:background-color .2s ease,transform .2s ease}
.academy-cta:hover{transform:translateY(-2px)}
.academy-about-content{padding-block:var(--fa-section-space)}
.academy-about-copy{max-width:var(--fa-reading-width)}
.academy-about-description{max-width:var(--fa-reading-width)}
.academy-services-intro,.academy-teachers-intro{align-items:start}
.academy-services-intro h2,.academy-teachers-intro h2,.academy-gallery-intro h2,.academy-news-intro h2,.academy-contacts-intro h2{line-height:1.15}
.academy-service-card{transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.academy-service-card:hover{box-shadow:0 15px 35px rgba(35,37,43,.055)}
.academy-service-description,.academy-teacher-excerpt,.academy-teacher-longtext,.academy-news-excerpt{line-height:1.75}
.academy-teacher-card{transition:border-color .2s ease}
.academy-teacher-card:hover{border-color:#c9b8a9}
.academy-teacher-visual img,.academy-gallery-item img,.academy-news-image img{transition:transform .45s ease}
.academy-teacher-card:hover .academy-teacher-visual img,.academy-gallery-item:hover img,.academy-news-card:hover .academy-news-image img{transform:scale(1.025)}
.academy-teacher-details summary{min-height:44px}
.academy-teacher-details summary:hover{color:var(--fa-bronze)}
.academy-gallery-item{border-radius:2px}
.academy-news-card{display:flex;flex-direction:column}
.academy-news-excerpt{max-height:none;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden}
.academy-contacts-panel{box-shadow:0 16px 42px rgba(35,37,43,.035)}
@media(max-width:850px){
 .academy-intro{min-height:0}
 .academy-about-content{padding-block:clamp(38px,6vw,64px)}
 .academy-services-intro,.academy-teachers-intro{gap:18px}
}
@media(max-width:650px){
 .academy-intro h1{max-width:none}
 .academy-cta{width:100%;max-width:340px}
 .academy-service-card{padding:25px}
 .academy-teacher-details summary{padding-block:8px}
 .academy-gallery-intro,.academy-news-intro{margin-bottom:26px}
}
@media(prefers-reduced-motion:reduce){
 .academy-cta,.academy-service-card,.academy-teacher-card,.academy-teacher-visual img,.academy-gallery-item img,.academy-news-image img{transition:none}
 .academy-cta:hover,.academy-service-card:hover,.academy-teacher-card:hover .academy-teacher-visual img,.academy-gallery-item:hover img,.academy-news-card:hover .academy-news-image img{transform:none}
}

/* FA-11 — member biographies in native accessible dialog */
.academy-teacher-more{margin-top:auto;display:inline-flex;gap:14px;align-items:center;justify-content:space-between;width:100%;padding:14px 0 2px;border:0;border-top:1px solid var(--fa-border);background:transparent;color:var(--fa-ink);font-size:.9rem;font-weight:600;line-height:1.5;font-family:inherit;cursor:pointer;text-align:left}
.academy-teacher-more:hover{color:var(--fa-bronze)}
.academy-teacher-dialog{position:fixed;inset:0;width:min(1050px,calc(100% - 40px));max-width:none;height:min(82dvh,760px);max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--fa-border);background:var(--fa-paper-gradient);color:var(--fa-ink);box-shadow:0 30px 90px rgba(0,0,0,.25);overflow:hidden}
.academy-teacher-dialog::backdrop{background:rgba(17,19,23,.72)}
.academy-teacher-dialog-shell{display:grid;grid-template-columns:minmax(0,58%) minmax(0,42%);position:relative;height:100%;min-height:0}
.academy-teacher-dialog-picture{background:#d4d2cf;min-height:0;height:100%;overflow:hidden}
.academy-teacher-dialog-picture img{display:block;width:100%;height:100%;object-fit:contain;object-position:center top}
.academy-teacher-dialog-content{padding:clamp(36px,4vw,70px);min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.academy-teacher-dialog-content h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0 0 16px}
.academy-teacher-dialog-content .academy-teacher-role{margin-bottom:26px}
.academy-teacher-dialog-content .academy-teacher-longtext{line-height:1.8;overflow-wrap:break-word}
.academy-teacher-external{display:inline-block;margin-top:24px;color:var(--fa-bronze)!important;text-decoration:underline!important;text-underline-offset:4px}
.academy-teacher-close{position:absolute;top:14px;right:14px;width:44px;height:44px;display:grid;place-items:center;background:var(--fa-white);border:1px solid var(--fa-border);color:var(--fa-ink);font:400 30px/1 Arial,sans-serif;cursor:pointer;z-index:2}
.academy-teacher-close:hover{background:var(--fa-paper-gradient)}
.academy-dialog-open{overflow:hidden}
@media(max-width:700px){.academy-teacher-dialog{width:calc(100% - 20px);height:auto;max-height:94dvh;overflow-y:auto;overscroll-behavior:contain}.academy-teacher-dialog-shell{grid-template-columns:1fr;height:auto}.academy-teacher-dialog-picture{min-height:0;height:auto;max-height:40dvh}.academy-teacher-dialog-picture img{height:auto;max-height:40dvh}.academy-teacher-dialog-content{padding:28px 22px 34px;overflow:visible;scrollbar-gutter:auto}}


/* FA-11: portrait determines the dialog height; biography scrolls independently. */
@media (min-width:701px){
  .academy-teacher-dialog{
    width:min(1050px, calc(100vw - 40px), calc((100dvh - 32px) * 1.529));
    aspect-ratio:1.529;
    height:auto;
    max-height:calc(100dvh - 32px);
    overflow:hidden;
  }
  .academy-teacher-dialog-shell{
    display:grid;
    grid-template-columns:52% minmax(0,48%);
    width:100%;
    height:100%;
    min-height:0;
  }
  .academy-teacher-dialog-picture{
    width:100%;
    height:100%;
    min-height:0;
    overflow:hidden;
  }
  .academy-teacher-dialog-picture img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center top;
  }
  .academy-teacher-dialog-content{
    position:static;
    min-width:0;
    min-height:0;
    height:100%;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
}


/* FA-13: Rózsa Vol. 2 release modal. Isolated from teacher dialogs. */
.academy-cd-launcher-wrap{position:fixed;right:clamp(12px,3vw,32px);bottom:clamp(12px,3vw,28px);z-index:40}
.academy-cd-launcher{background:#222126;color:#e4c88d;border:1px solid #a98b58;padding:11px 17px;box-shadow:0 8px 35px rgba(0,0,0,.22);font:600 .79rem/1.3 system-ui,sans-serif;letter-spacing:.06em;cursor:pointer}
.academy-cd-launcher:hover{background:#363039}
.academy-cd-dialog{position:fixed;inset:0;margin:auto;padding:0;width:min(1240px,calc(100% - 42px));max-width:none;max-height:min(88dvh,800px);border:1px solid #7a6543;background:#17171b;color:#f6f0e7;box-shadow:0 34px 110px #000a;overflow:auto}
.academy-cd-dialog::backdrop{background:rgba(10,10,14,.79);backdrop-filter:blur(5px)}
.academy-cd-dialog[open]{animation:fa-cd-appear .38s ease-out both}
@keyframes fa-cd-appear{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.academy-cd-shell{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);position:relative;min-height:500px}
.academy-cd-visual{display:flex;align-items:center;justify-content:center;padding:clamp(18px,2.4vw,36px);background:radial-gradient(ellipse at 45% 55%,#353138,#17171b 67%)}
.academy-cd-visual img{display:block;width:min(100%,490px);height:auto;box-shadow:0 17px 50px #0008}
.academy-cd-content{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(38px,5vw,74px) clamp(26px,3.8vw,48px) clamp(34px,5vw,66px) 20px}
.academy-cd-kicker{font-size:.75rem;letter-spacing:.19em;text-transform:uppercase;color:#d9b87a;margin:0 0 27px}
.academy-cd-content h2{font:400 clamp(1.62rem,2.7vw,2.43rem)/1.12 Georgia,serif;letter-spacing:-.035em;margin:0 0 26px;color:#f9f6ef}
.academy-cd-content h2 span{display:block;font-size:.58em;letter-spacing:.01em;color:#d7b875;margin-top:10px}
.academy-cd-content>p:not(.academy-cd-kicker):not(.academy-cd-credit){color:#d4cdd0;line-height:1.75;margin:0 0 20px;max-width:390px}
.academy-cd-description{color:#d4cdd0;line-height:1.65;max-width:none;margin:0 0 20px}
.academy-cd-description p{margin:0 0 14px}
.academy-cd-description p:last-child{margin-bottom:0}
.academy-cd-publisher{align-self:flex-end;margin:0 0 22px}.academy-cd-publisher img{display:block;width:clamp(112px,11vw,142px);height:auto;background:#bcbcc4}
.academy-cd-dismiss{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border:1px solid #b99a65;background:transparent;color:#e8ce9b;padding:14px 20px;font:600 .83rem/1.3 system-ui,sans-serif;cursor:pointer}
.academy-cd-dismiss:hover{background:#b99a65;color:#17171b}
.academy-cd-close{position:absolute;z-index:2;right:14px;top:12px;width:44px;height:44px;border:0;background:rgba(0,0,0,.35);color:#fff;font:300 32px/1 system-ui,sans-serif;cursor:pointer}
.academy-cd-close:hover{background:#504335}
.academy-cd-dialog button:focus-visible,.academy-cd-dialog a:focus-visible,.academy-cd-launcher:focus-visible{outline:3px solid #f3d590;outline-offset:3px}
@media(max-width:720px){.academy-cd-dialog{width:calc(100% - 20px);max-height:94dvh}.academy-cd-shell{display:flex;flex-direction:column;min-height:0}.academy-cd-visual{padding:34px 42px 14px}.academy-cd-visual img{max-width:270px;max-height:34dvh;width:auto}.academy-cd-content{padding:14px 26px 34px}.academy-cd-kicker{margin-bottom:15px}.academy-cd-content h2{margin-bottom:14px}.academy-cd-publisher{margin-bottom:18px}.academy-cd-close{right:8px;top:8px}}
@media(prefers-reduced-motion:reduce){.academy-cd-dialog[open]{animation:none}}

/* FA-14 — original Hungaroton artwork as a CD-case/disc montage; modal dimensions unchanged. */
.academy-cd-visual{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 48% 46%,#37313a,#17171b 72%)}
.academy-cd-visual::after{content:"";position:absolute;z-index:0;left:8%;right:8%;bottom:9%;height:9%;background:radial-gradient(ellipse,#c3a27028,transparent 70%);filter:blur(12px);pointer-events:none}
.academy-cd-product{width:min(100%,620px);aspect-ratio:1.2;position:relative;z-index:1;filter:drop-shadow(0 23px 24px rgba(0,0,0,.52))}
.academy-cd-disc{position:absolute;top:10%;right:1%;width:71%;aspect-ratio:1;border-radius:50%;background:#e7e6e3;box-shadow:0 0 0 2px #b8b5b0,5px 4px 16px #0007;overflow:hidden}
.academy-cd-disc img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.academy-cd-disc::after{content:"";position:absolute;left:50%;top:50%;width:14%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#19191d 0 39%,#c3c2bd 42% 53%,#66666c 56% 64%,#dedcda 67% 76%,#777 79% 82%,transparent 85%);box-shadow:0 0 3px #0009}
.academy-cd-case{position:absolute;left:0;top:2%;width:77%;aspect-ratio:1.017;background:#141417;border:4px ridge #c0c0bd;box-shadow:inset 0 0 0 2px #ffffff75,12px 14px 20px #0009;transform:perspective(1100px) rotateY(-5deg);overflow:hidden}
.academy-cd-case::after{content:"";position:absolute;inset:0;background:linear-gradient(112deg,#ffffff2a 0%,transparent 18%,transparent 58%,#ffffff10 68%,transparent 78%);pointer-events:none}
.academy-cd-case img{width:100%;height:100%;object-fit:fill;display:block;box-shadow:none}
@media(max-width:720px){.academy-cd-product{width:min(100%,360px);max-height:32dvh;aspect-ratio:1.2}.academy-cd-visual{padding:27px 22px 8px}.academy-cd-case{border-width:3px}}

/* FA-14: restrained visual depth for Academy hero (reversible CSS-only study). */
.academy-intro{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.academy-intro::before{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  width:clamp(520px,64vw,1080px);
  aspect-ratio:1;
  top:51%;right:-15%;
  transform:translateY(-50%) perspective(1400px) rotateY(-29deg) rotateX(10deg) rotateZ(-16deg) scale(1.02);
  transform-origin:center center;
  border-radius:50%;
  background:
    radial-gradient(circle at 49% 52%, rgba(101,73,42,.26) 0%, rgba(123,91,52,.16) 16%, rgba(155,113,57,.08) 33%, rgba(155,113,57,.02) 51%, rgba(155,113,57,0) 69%),
    repeating-radial-gradient(ellipse at center,
      transparent 0, transparent 74px,
      rgba(155,113,57,.12) 75px, rgba(155,113,57,.12) 77px,
      transparent 79px, transparent 108px);
  mask-image:linear-gradient(102deg,transparent 0%,#000 34%,#000 83%,transparent 100%);
  filter:drop-shadow(0 14px 22px rgba(122,93,56,.08));
  opacity:.92;
}
.academy-intro::after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  width:52%;height:94%;right:-7%;top:1%;
  transform:perspective(1400px) rotateY(-18deg) rotateZ(-10deg);
  background:
    radial-gradient(ellipse at 42% 42%,rgba(255,255,255,.34),rgba(255,255,255,.08) 34%,rgba(255,255,255,0) 68%),
    linear-gradient(130deg,rgba(255,255,255,.12),rgba(255,255,255,0) 55%);
  opacity:.58;
}
.academy-intro-inner{position:relative;z-index:1}
@media(max-width:850px){
  .academy-intro::before{right:-44%;top:74%;width:82vw;transform:translateY(-50%) perspective(1100px) rotateY(-22deg) rotateX(8deg) rotateZ(-14deg);opacity:.74}
  .academy-intro::after{width:82%;top:24%;right:-34%;opacity:.3}
}
@media(max-width:480px){
  .academy-intro::before{right:-66%;top:80%;width:128vw;opacity:.5}
}

/* FA-15: partners and supporters — editable lists, consistent logo boxes. */
.academy-partners{background:var(--fa-white);padding:clamp(64px,8vw,112px) 0;scroll-margin-top:2rem}
.academy-partners-intro{margin-bottom:clamp(34px,5vw,58px)}
.academy-partners-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0}
.academy-partners-group+.academy-partners-group{margin-top:clamp(32px,4vw,54px)}
.academy-partners-group h3{font:500 .8rem/1.4 system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--fa-muted);margin:0 0 18px}
.academy-partners-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.academy-partner{min-width:0;min-height:142px;padding:clamp(18px,2.3vw,30px);display:flex;justify-content:center;align-items:center;background:rgba(255,255,255,.79);border:1px solid var(--fa-border)}
.academy-partner img{display:block;width:100%;max-width:190px;height:84px;object-fit:contain;object-position:center}
@media(max-width:920px){.academy-partners-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.academy-partners-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.academy-partner{min-height:112px;padding:16px}.academy-partner img{height:70px}}
@media(max-width:360px){.academy-partners-grid{grid-template-columns:1fr}.academy-partner{min-height:95px}}

/* FA-16 — Videos: two portraits, centered landscapes */
.academy-videos {padding: 2rem 0; background: #fff;}
.academy-videos-grid {display: grid;grid-template-columns: repeat(2, minmax(0, 300px)); justify-content: center;align-items: start;gap: 24px;}
.academy-videos-grid .academy-video {margin: 0;min-width: 0;width: 100%;}
.academy-videos-grid .academy-video--portrait {grid-column: span 1;max-width: 300px;}
.academy-videos-grid .academy-video--portrait video {display: block;width: 100%;height: auto;aspect-ratio: 9 / 16;object-fit: contain;}

/* Landscape videos centered, one per row */
.academy-videos-grid .academy-video:not(.academy-video--portrait) {grid-column: 1 / -1;width: 100%; max-width: 624px;justify-self: center;}
.academy-videos-grid .academy-video:not(.academy-video--portrait) video,
.academy-videos-grid .academy-video--youtube {grid-column: 1 / -1;width: 100%;max-width: 624px;justify-self: center;background: #16171b;}
.academy-video--youtube iframe {display: block;width: 100%;height: auto; aspect-ratio: 16 / 9;border: 0;background: #16171b;}

/* Mobile: keep the portrait videos side by side */
@media (max-width: 580px) {
  .academy-videos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

/* FA gallery preview: justified rows, natural aspect ratios, no cropping. */
.academy-gallery-grid[data-justified-gallery]{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;
}
.academy-gallery-grid[data-justified-gallery].is-justified{
  display:flex;flex-wrap:wrap;gap:var(--gallery-gap,12px);align-content:flex-start;
}
.academy-gallery-grid[data-justified-gallery] .academy-gallery-item{
  margin:0;min-width:0;aspect-ratio:auto;border-radius:2px;overflow:hidden;
}
.academy-gallery-grid[data-justified-gallery].is-justified .academy-gallery-item{
  flex:none;max-width:100%;
}
.academy-gallery-grid[data-justified-gallery] .academy-gallery-item img{
  display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;
}
@media(max-width:580px){
  .academy-gallery-grid[data-justified-gallery]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media(prefers-reduced-motion:reduce){
  .academy-gallery-grid[data-justified-gallery] .academy-gallery-item img{transition:none}
}


/* FA hero alternative: lightweight abstract image instead of the CSS rings.
   Remove this block to restore the original rings and gradient. */
.academy-intro {
  background-color: #f2eee8;
  background-image: url('/images/hero/academy-abstract-champagne.webp');
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.academy-intro::before,
.academy-intro::after {
  content: none;
  display: none;
}
@media (max-width: 850px) {
  .academy-intro {
    background-position: 55% center;
  }
}

/* FA: Shared restrained abstract artwork for former paper-gradient sections.
   Uses the same uploaded background as the hero; keeps the paper gradient as fallback.
   Does not affect cards, dialogs or plain-white sections. */
:root {
  --fa-paper-art: url('/images/hero/academy-abstract-champagne.webp') center center / cover no-repeat;
}
/* FA mobile images: show the complete About image and member portraits.
   Desktop layout remains unchanged. Append after existing academy.css rules. */
@media (max-width: 850px) {
  .academy-about-visual {
    aspect-ratio: auto;
    min-height: 0;
  }
  .academy-about-visual img {
    position: static;
    inset: auto;
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  .academy-teacher-visual {
    aspect-ratio: auto;
    height: auto;
  }
  .academy-teacher-visual img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}
