/* 2.0.165: compact, paginated event overview; month dividers match Heine heute. */
.event-row{grid-template-columns:100px minmax(0,1fr)}
.event-row time{width:100%;height:auto;min-height:54px;padding:8px;font-size:14px;text-align:center}
.event-month{margin-bottom:32px}
.event-month>h2{display:flex;align-items:center;gap:14px;margin:18px 0 16px;padding:0;border:0;letter-spacing:.01em}
.event-month>h2::after{content:"";height:1px;flex:1;background:var(--line)}
.event-month:first-child>h2{margin-top:0}
@layer heine-typography{
  html body main .event-month>h2{font-size:16px!important;font-weight:750!important;line-height:1.5!important;letter-spacing:.01em!important}
  html body main .event-archive-copy h3{font-size:24px!important;line-height:1.2!important}
  @media(max-width:620px){html body main .event-archive-copy h3{font-size:20px!important}}
}
.event-archive-item>.event-overview-row{padding:18px 20px;gap:24px}
.event-archive-date{min-height:74px}
.event-archive-date strong{font-size:22px}
.event-archive .pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.event-archive .pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--gd)}
.event-archive .pagination .current{background:var(--gd);color:#fff;border-color:var(--gd)}
.event-archive .pagination a:hover{background:var(--mint)}
.event-archive .pagination a:focus-visible{outline:3px solid var(--g);outline-offset:3px}
@media(max-width:620px){
  .event-archive-item>.event-overview-row{padding:16px 12px;gap:12px}
  .event-archive-date{min-height:0}
  .event-archive-date strong{font-size:17px}
}
/* 2.0.164: wide desktop hero alignment follows Unsere Schule. */
@media (min-width:1600px){
  .heine-learning-v100 .learning-hero-wide-copy,
  .heine-learning-v100 .learning-hero-contained,
  .experience-hero-fullbleed.rubric-entry-media{
    width:min(1460px,calc(100% - 112px))!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}
/* 2.0.112: same purpose, same presentation; scoped to explicit UI roles. */
/* Service actions need no additional divider above the pills. */
.service-page-v2 .service-primary-card-v50 .service-tool-action{border-top:0!important}
.service-page-v2 .service-tool-copy h3{margin:5px 0 6px;color:var(--gd)}
/* Service uses the homepage section scale and the shared main-page title scale. */
@layer heine-typography{
  html body main.service-page-v2 h1{font-size:clamp(52px,5.8vw,82px)!important;line-height:.96!important;letter-spacing:-.055em!important}
  html body main.service-page-v2 h2{font-size:clamp(35px,3.8vw,50px)!important;line-height:1.02!important;letter-spacing:-.04em!important}
  html body main.service-page-v2 .service-tool-copy h3,
  html body main.service-page-v2 .service-more-rail-copy h3{font-size:22px!important;line-height:1.2!important;letter-spacing:-.025em!important}
  html body main.service-page-v2 .kicker,
  html body main.service-page-v2 .service-tool-copy>small{font-size:var(--heine-text-label)!important;line-height:1.45!important;letter-spacing:.07em!important;text-transform:uppercase}
  @media(max-width:720px){html body main.service-page-v2 h1{font-size:48px!important}}
  @media(max-width:680px){
    html body main.service-page-v2 h2{font-size:42px!important;line-height:1.06!important}
    html body main.service-page-v2 .service-tool-copy h3,
    html body main.service-page-v2 .service-more-rail-copy h3{font-size:20px!important}
  }
}

@media(min-width:1100px){
  .heine-school-page .school-hero-copy>.school-hero-intro-single,
  .new-heine-page-v106 .new-hero-copy>.new-hero-intro-single{
    max-width:none!important;
    white-space:nowrap;
    font-size:clamp(15px,1.45vw,17px)!important;
    letter-spacing:-.01em;
  }
}
@layer heine-typography.weights{
  html body main.service-page-v2 :is(h1,h2){font-weight:650!important}
  html body main.service-page-v2 .service-tool-copy h3,
  html body main.service-page-v2 .service-more-rail-copy h3,
  html body main.service-page-v2 .kicker,
  html body main.service-page-v2 .service-tool-copy>small{font-weight:600!important}
}
main .heine-ui-pill,
main .heine-ui-pill:visited{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;
  gap:10px;width:max-content;max-width:100%;min-height:44px;padding:8px 16px;
  border:1px solid #bfdacf;border-radius:999px;background:#fff;color:#17624d!important;
  font:inherit;font-size:14px;line-height:1.5;font-weight:500;text-decoration:none;
  box-shadow:none;white-space:normal;cursor:pointer;
}
main .heine-ui-pill:hover{background:#e5f3ed;border-color:#2fac81;color:#17624d!important;transform:none;text-decoration:none}
main .heine-ui-pill>span{flex-shrink:0;color:inherit}
.new-heine-page-v106 .new-entry .heine-ui-pill{margin-top:auto}
main .heine-ui-pill--submit{background:#17624d;border-color:#17624d;color:#fff!important}
main .heine-ui-pill--submit:hover{background:#237b60;border-color:#237b60;color:#fff!important}
main .heine-ui-pill:focus-visible,
main .heine-ui-entry:focus-visible{outline:3px solid #2fac81;outline-offset:4px}

/* Intro links share a mint surface and leading arrow; statements remain text. */
main .heine-ui-entry,
main .learning-hero-statement{
  display:inline-flex;align-items:center;gap:12px;width:max-content;max-width:100%;
  margin-top:24px;padding:10px 16px 10px 10px;border:0;border-radius:999px;
  background:#eef8f4;color:#17624d;font-size:16px;line-height:1.5;font-weight:500;
  text-decoration:none;
}
main .heine-ui-entry>span,
main .learning-hero-statement>span{
  display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;
  padding:0;border:0;border-radius:50%;background:#fff;color:#2fac81;
}
main .heine-ui-entry>strong,
main .learning-hero-statement>strong{font:inherit}
main .heine-ui-entry:hover{background:#e5f3ed;color:#17624d}
@layer heine-typography{
  html body main .heine-ui-pill,
  html body main .heine-ui-pill>span,
  html body main .service-tool-action .service-portal-link,
  html body main .service-tool-action .service-portal-link>span,
  html body main .heine-more-link{font-size:14px!important;line-height:1.5!important}
  html body main .heine-ui-entry,
  html body main .heine-ui-entry>strong,
  html body main .learning-hero-statement,
  html body main .learning-hero-statement>strong{font-size:16px!important;line-height:1.5!important}
}
@layer heine-typography.weights{
  html body main .heine-ui-pill,
  html body main .service-tool-action .service-portal-link,
  html body main .heine-more-link,
  html body main .heine-ui-entry,
  html body main .heine-ui-entry>strong,
  html body main .learning-hero-statement>strong{font-weight:500!important}
}

/* Support cards use the PL contact pills and the same content order. */
.support-page-v5 .support-icon-card{min-width:0}
.support-page-v5 .support-icon-grid{align-items:stretch}
.support-page-v5 .support-icon-copy{display:flex;flex-direction:column;gap:14px;height:100%}
.support-page-v5 .support-icon-copy>h3,
.support-page-v5 .support-icon-copy>p,
.support-page-v5 .support-icon-copy>.support-card-contact-stack{margin:0}
.support-page-v5 .support-icon-copy>p{flex:0 0 auto}
.support-page-v5 .support-card-contact-stack{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding-top:14px;border-top:1px solid #dcebe5}
.support-page-v5 .support-card-label{display:block;color:#17624d;font-size:13px;line-height:1.4;font-weight:650}
.support-page-v5 .support-card-people{display:flex;flex-direction:column;align-items:flex-start;gap:9px;color:#17624d}
.support-page-v5 .support-card-people .heine-ui-pill{min-height:40px;padding:7px 13px;font-size:13px!important}
.support-page-v5 .support-person-entry{display:flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:100%}
.support-page-v5 .support-person-entry>small{max-width:210px;color:#17624d;font-size:13px;line-height:1.4;font-weight:650}
.support-page-v5 .support-person-entry>.support-person-overline{max-width:none;font-size:13px;line-height:1.4;font-weight:650}
.support-page-v5 .support-card-phone{display:inline-flex;align-items:center;gap:7px;margin-top:2px;min-height:28px!important;color:#17624d!important;font-size:13px!important;font-weight:600!important;text-decoration:none}
.heine-phone-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
#produktives-lernen .heine-pl-phone{gap:8px;text-decoration:none}
.support-page-v5 .support-career-service{display:inline-flex;align-items:center;gap:9px;margin-top:2px;padding-top:10px;border-top:1px solid #dcebe5;color:#17624d!important;font-size:12px!important;font-weight:600!important;text-decoration:none}
.support-page-v5 .support-career-service img{display:block;width:30px;height:30px;flex:0 0 30px;object-fit:contain}
.support-page-v5 .support-career-service>span{display:block;line-height:1.3}
.support-page-v5 .support-career-service:hover{text-decoration:underline;text-underline-offset:3px}
@media(min-width:901px){
  .support-page-v5 .support-icon-grid{align-items:stretch}
  .support-page-v5 .support-icon-card{height:100%}
  .support-page-v5 .support-icon-copy{display:grid;grid-template-rows:auto 132px auto;align-content:start}
  .support-page-v5 .support-card-contact-stack{display:flex;min-height:0}
  .support-funding-v5 .support-funding-link{justify-self:end!important}
  .support-foundation-panel .support-foundation-actions{justify-self:end!important}
  .support-foundation-actions .support-foundation-more.heine-more-link{align-self:flex-end!important}
}

/* Jahrgangsteams: Klassenleitungen klar vor weiteren Teammitgliedern. */
.yearteam-person-group{display:grid;gap:8px;margin-top:16px}
.yearteam-person-label{color:#6d827a;font-size:11px;line-height:1.3;font-weight:750}
.yearteam-lead-pair{display:inline-flex;align-items:stretch}
.yearteam-lead-pair .name-card{display:inline-flex;align-items:center}
.yearteam-lead-name{border-radius:999px 0 0 999px;border-right:0}
.yearteam-class-pill{border-radius:0 999px 999px 0;background:#fff;color:#2fac81;min-width:43px;justify-content:center}

.support-foundation-actions{align-items:flex-end}
.support-foundation-actions .support-foundation-more.heine-more-link,
.support-foundation-actions .support-foundation-more.heine-more-link:visited{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  min-height:0!important;
  padding:4px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  font-size:14px!important;
  line-height:1.35!important;
  font-weight:900!important;
  text-decoration:none!important;
}
.support-foundation-actions .support-foundation-more.heine-more-link:hover{
  color:#bce6d6!important;
  text-decoration:underline!important;
  text-underline-offset:4px;
}
@media(max-width:900px){.support-foundation-actions{align-items:flex-start}}

/* Mobile Navigation: the entry point for new families is gently prioritised. */
@media(max-width:1000px){
  .mobile-nav .mobile-nav-new-at-heine,
  .mobile-nav .mobile-nav-new-at-heine:visited{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:7px;
    padding:12px 12px 12px 15px;
    border:1px solid #dcebe5;
    border-radius:15px;
    background:#eef8f4;
    color:#17624d;
    font-weight:800;
  }
  .mobile-nav .mobile-nav-new-at-heine:hover{background:#e5f3ed;color:#17624d}
  .mobile-nav-new-at-heine-arrow{
    display:grid;
    place-items:center;
    flex:0 0 34px;
    width:34px;
    height:34px;
    border-radius:50%;
    background:#fff;
    color:#2fac81;
    font-size:17px;
    line-height:1;
  }
}

/* Berufsorientierung: beide Informationszonen beginnen auf derselben Höhe. */
@media(min-width:761px){
  .heine-learning-v100 .learning-career-showcase .fair-card>div:last-child,
  .heine-learning-v100 .learning-career-showcase .internships-card>div:last-child{display:flex!important;flex-direction:column}
  .heine-learning-v100 .learning-career-event-meta,
  .heine-learning-v100 .learning-practice-contact{margin-top:auto!important;padding-top:14px!important;min-height:116px}
}

/* Ganztagskarten bleiben Übersichten: keine Klickfläche. */
.heine-offer-archive .offer-archive-card:hover .offer-archive-image img{transform:none!important}
@media(min-width:761px){
  .heine-offer-archive .offer-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .experience-offer-mosaic-card{min-height:205px}
  .experience-offer-mosaic-card .experience-offer-image{position:relative;height:auto;min-height:0;align-self:stretch;aspect-ratio:auto}
  .experience-offer-mosaic-card .experience-offer-image img{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:cover}
}
@media(min-width:901px){
  .heine-offer-archive .offer-archive-card{display:grid;grid-template-columns:minmax(190px,42%) minmax(0,1fr);min-height:250px}
  .heine-offer-archive .offer-archive-image{position:relative;height:100%;min-height:100%;aspect-ratio:auto}
  .heine-offer-archive .offer-archive-image img{position:absolute;inset:0;width:100%;height:100%;min-height:100%;object-fit:cover}
}

/* School profile: a replaceable visual break before the profile section. */
.school-profile-visual-section{padding:0 0 12px;background:#fff}
.school-profile-visual{position:relative;margin:0;aspect-ratio:16/5;border-radius:28px;overflow:hidden;background:#eaf6f1}
.school-profile-visual img{display:block;width:100%;height:100%;object-fit:cover}
.school-profile-visual-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;color:#17624d;background:linear-gradient(135deg,#eef8f4,#dcefe8)}
.school-profile-visual-placeholder span{font-size:12px;line-height:1.4;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:#2fac81}
.school-profile-visual-placeholder strong{font-size:clamp(22px,3vw,34px);line-height:1.15;font-weight:600}
.school-profile-visual-placeholder small{font-size:12px;line-height:1.4;color:#687d75}

/* Service portals are peers: all links now sit on the same action baseline. */
.service-page-v2 .service-tool-action-iserv .service-action-row{align-items:center;justify-content:flex-end;flex-wrap:wrap}
.service-page-v2 .service-tool-action-iserv .service-portal-link{padding:8px 16px!important;line-height:1.5!important}

/* Footer rows stay compact even when mobile text scaling is active. */
.site-footer .footer-service-column{row-gap:0}

/* Schülerrat: längerer Originaltext und kompakte Erfolgsliste. */
.experience-voice-head{max-width:980px}
.experience-voice-head>p{max-width:920px}
.experience-council-achievements{display:grid;gap:10px;margin:15px 0 0;padding:0;list-style:none}
.experience-council-achievements li{position:relative;padding-left:18px;color:#5f786f;font-size:14px;line-height:1.48}
.experience-council-achievements li::before{content:"✓";position:absolute;left:0;top:0;color:#2fac81;font-weight:900}
.site-footer .footer-service-column>strong{margin-bottom:5px;line-height:1.15!important}
.site-footer .footer-service-column a{min-height:22px!important;line-height:1.22!important;padding-block:1px}
.site-footer .footer-identity{line-height:1.18!important}

@media(max-width:720px){
  .school-profile-visual-section{padding-bottom:6px}
  .school-profile-visual{aspect-ratio:16/9;border-radius:20px}
  .school-profile-visual-placeholder{padding:18px}
  .school-profile-visual-placeholder strong{font-size:22px}
  .school-profile-grid{border-top-color:rgba(255,255,255,.13)!important;border-bottom-color:rgba(255,255,255,.13)!important}
  .school-profile-card,
  .school-profile-card:nth-child(2n),
  .school-profile-card:nth-last-child(-n+2){border-bottom:0!important}
  .school-profile-card:not(:last-child)::after{content:"";position:absolute;left:21px;right:21px;bottom:0;height:1px;background:rgba(255,255,255,.13);pointer-events:none}
  .school-profile-card:last-child{border-bottom:0!important}
  .site-footer{padding-top:32px!important;padding-bottom:28px!important}
  .footer-service-grid{gap:17px!important}
  .site-footer .footer-service-column a{min-height:21px!important;line-height:1.15!important}
  .site-footer .footer-meta-nav{gap:4px 18px}
}

/* Card links follow the Startchancen pattern: plain text, contrasting per background. */
@media(max-width:900px){
  .support-page-v5 .support-card-phone-placeholder{display:none}
  .support-foundation-panel .support-foundation-actions{display:flex!important;grid-column:1/-1!important;width:100%;margin-top:4px!important;opacity:1!important;visibility:visible!important}
  .support-foundation-actions .support-foundation-more.heine-more-link,
  .support-foundation-actions .support-foundation-more.heine-more-link:visited{
    display:inline-flex!important;align-self:flex-start!important;min-height:0!important;padding:4px 0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#fff!important;opacity:1!important;visibility:visible!important;
  }
}

/* Lernen & Wege: Klasse 10 sitzt wie die übrigen Stationen direkt auf der Route. */
.heine-learning-v100 .hrn5{top:43%}
.learning-sol-intro-desktop{font-size:16px;line-height:1.55;color:#62766e;max-width:700px;margin:0}
@media(min-width:721px){
  .learning-sol-head-copy>.learning-sol-short,
  .learning-sol-head-copy>.learning-sol-intro-details{display:none!important}
}
@media(max-width:720px){
  .learning-sol-intro-desktop{display:none}
}

/* Neu an der Heine: Termine gut erkennbar, aber weiterhin ruhig. */
.new-heine-page-v106 .new-start-date small{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin-top:8px;
  padding:7px 10px;
  border-radius:9px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:13px;
  line-height:1.25;
  font-weight:800;
}
.new-heine-page-v106 .new-arrival .new-section-head{grid-template-columns:1fr}
.new-heine-page-v106 .new-arrival .new-section-head>p{max-width:none;white-space:nowrap}
@media(max-width:1050px){.new-heine-page-v106 .new-arrival .new-section-head>p{white-space:normal}}

/* Optional event facts stay collapsed until requested. */
.event-extra-details{min-width:0;align-self:start;justify-self:end;width:min(100%,320px)}
.event-extra-details>summary{display:flex;align-items:center;justify-content:flex-end;gap:10px;cursor:pointer;list-style:none;color:var(--g);font-size:14px;font-weight:600;min-height:44px;border-radius:8px}
.event-extra-details>summary::-webkit-details-marker{display:none}
.event-extra-details>summary>span[aria-hidden]{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#eef7f3;font-size:23px;font-weight:400}
.event-extra-details>summary>span[aria-hidden]::before{content:'+'}
.event-extra-details[open]>summary>span[aria-hidden]::before{content:'−'}
.event-extra-details>summary:focus-visible{outline:2px solid var(--g);outline-offset:4px}
.event-extra-details .event-archive-meta{margin-top:10px}
@media(max-width:700px){.event-extra-details{grid-column:2;justify-self:start;width:100%}.event-extra-details>summary{justify-content:flex-start}}

.event-essential-info{display:block;margin-top:7px;color:var(--mut);font-size:14px;line-height:1.5}
.event-essential-info>strong{font-weight:650;white-space:nowrap}
.event-info-separator{padding-inline:5px}
.event-extra-details>p{font-size:14px;line-height:1.6;color:var(--mut);margin:12px 0 0}

.event-archive-copy>.event-extra-details{width:100%;max-width:none;margin-top:8px}
.event-archive-copy>.event-extra-details>summary{justify-content:flex-start;width:fit-content}
.event-archive-copy>.event-extra-details>p{max-width:75ch}
.event-overview-row>.event-archive-copy{grid-column:2}

.event-archive-copy>.event-description{max-width:65ch;font-size:15px;line-height:1.6;margin-top:12px}

/* Desktop review September 2026 */
.foundation-page .foundation-join h2{color:#fff}
.foundation-page .foundation-join .kicker{color:#bfe8d9}
.foundation-page .foundation-hero{padding-bottom:48px}
.heine-learning-v100 .seal-card .learning-career-visual{display:grid;place-items:center;padding:32px;background:#f1f8f5}
.heine-learning-v100 .seal-card .learning-career-visual img{position:static!important;inset:auto!important;width:100%!important;height:100%!important;max-width:300px!important;max-height:180px;object-fit:contain!important;transform:none!important}
.event-archive-meta span{font-size:14px;padding:10px 13px;line-height:1.4}
.event-archive-meta span small{font-size:12px;letter-spacing:.02em;text-transform:none}
@media(min-width:1050px){#erweiterte-schulleitung .leadership-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}#erweiterte-schulleitung .leader-card{flex:0 1 calc((100% - 48px)/3);min-width:0}}
@media(min-width:1450px){#erweiterte-schulleitung .leader-card{flex-basis:calc((100% - 96px)/5)}}

.foundation-projects{background:#f2f8f5}.foundation-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px;margin-top:28px}
.foundation-project-card{background:white;border:1px solid var(--line);border-radius:24px;overflow:hidden}.foundation-project-card>div{padding:28px}.foundation-project-card figure{margin:0;aspect-ratio:16/10;overflow:hidden}.foundation-project-card img{width:100%;height:100%;object-fit:cover}.foundation-project-card h3{font-size:24px}.foundation-project-card p{line-height:1.65}

.foundation-join-copy>p+p{margin-top:14px}
@media(min-width:1000px){.school-profile-grid{grid-template-rows:auto auto 1fr auto}.school-profile-grid .school-profile-card{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}.school-profile-card h3{align-self:start}}

/* Year teams: natural-width pills aligned in two fixed columns. */
/* 2.0.214: Keep the complete group photo stable when members are expanded. */
/* 2.0.215: Continue the photo background to the card edge without stretching the photo. */
.yearteam-card{background:linear-gradient(135deg,#d6efe6,#edf8f4)}
.yearteam-card .yearteam-photo{align-self:start;width:100%;min-width:0;min-height:0;aspect-ratio:4/3;background:transparent}
.yearteam-card .yearteam-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center top}
.yearteam-card .yearteam-content{min-width:0;container-type:inline-size;background:#fff}
.yearteam-card .name-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;justify-items:start;align-items:start}
.yearteam-card .name-cards > *{justify-self:start;width:max-content;max-width:100%;min-width:0}
.yearteam-card .yearteam-lead-pair{display:grid;grid-template-columns:minmax(0,1fr) max-content;min-width:0}
.yearteam-card .name-card{min-width:0;white-space:normal;overflow-wrap:anywhere;display:flex;align-items:center;line-height:1.4}
.yearteam-card .yearteam-class-pill{min-width:38px;padding-inline:7px;justify-content:center;white-space:nowrap}
@container (max-width:309px){
 .yearteam-card .name-cards{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:620px){
 .yearteam-card .name-cards{grid-template-columns:minmax(0,1fr)}
}

/* Each grade occupies its own column, independently of class count. */
.yearteam-card .yearteam-grade-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;align-items:start}
.yearteam-card .yearteam-grade{min-width:0}
.yearteam-card .yearteam-grade .name-cards{grid-template-columns:minmax(0,1fr)}
@container (max-width:309px){.yearteam-card .yearteam-grade-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.yearteam-card .yearteam-grade-columns{grid-template-columns:minmax(0,1fr);gap:20px}}

/* Foundation projects: permanent title and photo, optional details. */
.foundation-projects .foundation-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start;margin-top:24px}
.foundation-project-heading{padding:22px 24px;min-height:104px;display:flex;align-items:center}
.foundation-project-heading h3{margin:0;font-size:22px;line-height:1.35}
.foundation-project-card figure{margin:0;aspect-ratio:16/10;overflow:hidden}
.foundation-project-disclosure{border-top:1px solid var(--line)}
.foundation-project-disclosure summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;cursor:pointer;color:var(--gd);font-size:16px;font-weight:600}
.foundation-project-disclosure summary::-webkit-details-marker{display:none}
.foundation-project-toggle{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:var(--mint);color:var(--g)}
.foundation-project-toggle::before{content:'+';font-size:24px;font-weight:400}
.foundation-project-disclosure[open] .foundation-project-toggle::before{content:'−'}
.foundation-project-disclosure>div{padding:0 24px 24px}
.foundation-project-disclosure p{margin:0;font-size:16px;line-height:1.65}
.foundation-project-disclosure summary:focus-visible{outline:3px solid var(--g);outline-offset:-3px}
@media(max-width:1000px){.foundation-projects .foundation-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.foundation-projects .foundation-project-grid{grid-template-columns:minmax(0,1fr);gap:18px}.foundation-project-heading{min-height:0;padding:20px}.foundation-project-disclosure summary{padding:16px 20px}.foundation-project-disclosure>div{padding:0 20px 20px}}

/* Center the disclosure symbol geometrically, independent of font metrics. */
.foundation-project-toggle{position:relative;width:30px;padding:0;line-height:1}
.foundation-project-toggle::before,.foundation-project-toggle::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;transform:translate(-50%,-50%)}
.foundation-project-toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.foundation-project-disclosure[open] .foundation-project-toggle::before{content:''}
.foundation-project-disclosure[open] .foundation-project-toggle::after{display:none}
.foundation-projects p,.foundation-join p,.foundation-project-disclosure p{font-size:16px}

.foundation-join-actions .heine-ui-pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px 20px;border:1px solid #d1e4dc;background:#fff;color:#185e4d;font-size:16px;font-weight:600;line-height:1.3;text-decoration:none;border-radius:999px}
.foundation-join-actions .heine-ui-pill:hover{background:#eaf6ef;border-color:#fff}
.foundation-person-link{color:inherit;text-decoration:underline;text-underline-offset:4px;font-weight:600}
.foundation-person-link:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* Team portraits: more vertical room, preserving all existing names and links. */
.multi-team-card{display:flex;flex-direction:column}
.multi-team-card .multi-team-photo{aspect-ratio:16/9;flex:none}
.multi-team-card .multi-team-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.multi-team-card .multi-team-content{display:flex;flex-direction:column;flex:1}
.multi-team-card .multi-contact-link{margin-top:auto;padding-top:16px;align-self:flex-start}

/* Override the existing important typography layer, not just its local fallback. */
@layer heine-typography {
  html body main.sc-page p:not(.kicker):not(.sc-lead):not(.sc-brand-claim):not(.sc-reveal-note){font-size:16px!important}
  html body main.sc-page .sc-lead{font-size:18px!important}
  html body main.sc-page .sc-reveal-note{font-size:10px!important}
  html body main.sc-page .sc-brand-claim{font-size:25px!important}
}

/* Projects first; center incomplete rows without stretching image cards. */
.foundation-projects .foundation-project-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;align-items:flex-start}
.foundation-projects .foundation-project-card{flex:0 0 calc((100% - 48px)/3);min-width:0}
.foundation-impact-compact{padding:28px 0}
.foundation-impact-compact details>summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:18px 0;font-weight:600;color:var(--green,#155d4d)}
.foundation-impact-compact details>summary::-webkit-details-marker{display:none}
.foundation-impact-compact details>summary>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef8f4;flex:none}
.foundation-impact-compact details[open]>summary>span{transform:rotate(45deg)}
.foundation-impact-compact .foundation-section-head{margin-top:20px}
.foundation-page .foundation-projects>.wrap>p{font-size:16px;color:var(--mut,#6d827a)}
@media(max-width:1000px){.foundation-projects .foundation-project-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:620px){.foundation-projects .foundation-project-grid{gap:18px}.foundation-projects .foundation-project-card{flex-basis:100%}}

/* 2.0.201: Keep shared text baselines, with space below the tallest title. */
@media(min-width:1000px){
  .heine-school-page .school-profile-grid .school-profile-card h3{padding-bottom:18px}
}

/* 2.0.203: Separate appointments and use the shared person-pill treatment. */
#heine-home.hh-final-home .hh-calendar-card .hh-event+.hh-event{border-top:1px solid #d1e4dc!important}
.foundation-join .foundation-person-link.heine-ui-pill{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 16px;margin-top:8px;border:1px solid rgba(255,255,255,.6);border-radius:999px;background:transparent;color:#fff;text-decoration:none;font-size:16px;font-weight:600;line-height:1.3}
.foundation-join .foundation-person-link.heine-ui-pill:hover{background:rgba(255,255,255,.12)}
@media(max-width:760px){
 .experience-dog-copy .experience-checks{gap:10px}
 .experience-dog-copy .experience-checks span{min-height:0;padding:12px 14px;gap:12px}
}

/* 2.0.204: Readable staff roles, mobile team disclosures and prominent absence route. */
.team-page .leader-card .leader-copy{min-width:0}
.team-page .leader-card .leader-copy p{white-space:normal;overflow-wrap:anywhere;hyphens:auto;max-width:100%;height:auto}
.yearteam-mobile-disclosure>summary{list-style:none;cursor:pointer}
.yearteam-mobile-disclosure>summary::-webkit-details-marker{display:none}
.yearteam-grade>summary{display:none}
/* 2.0.211: Additional team members start collapsed on every screen size. */
.yearteam-card .yearteam-members{display:block;min-width:0;border:1px solid #dcebe5;border-radius:16px;padding:0;background:#fff}
.yearteam-card .yearteam-members>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;list-style:none;font-size:14px;line-height:1.4;font-weight:650;color:#17624d;cursor:pointer;border-radius:15px}
.yearteam-members>summary::-webkit-details-marker{display:none}
.yearteam-members>summary::marker{content:''}
.yearteam-card .yearteam-members>summary:hover{background:#f3faf7}
.yearteam-card .yearteam-members>summary:focus-visible{outline:3px solid #2fac81;outline-offset:2px}
.yearteam-disclosure-icon{display:grid;place-items:center;flex:none;width:28px;height:28px;background:#eef8f4;border-radius:50%;color:#2fac81;font-size:20px}
.yearteam-members[open]>summary .yearteam-disclosure-icon{transform:rotate(45deg)}
/* 2.0.213: Separate the hover area from the first row of names. */
.yearteam-card .yearteam-members>.name-cards{padding:12px 14px 14px}
.yearteam-card .yearteam-members:not([open])>.name-cards{display:none}
.service-absence-notice{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 36px;padding:26px;border:1px solid #b6d9ca;border-left:5px solid #2fac81;border-radius:20px;background:#eaf6f0}
.service-absence-copy{max-width:680px}
.service-absence-notice h2{margin:6px 0 12px;font-size:clamp(24px,2.4vw,32px);line-height:1.15;color:#17624d}
.service-absence-notice p{margin:0;color:#355f50}
.service-absence-notice .heine-ui-pill{flex:none;background:#fff;color:#17624d;border-color:#b6d9ca;display:inline-flex;align-items:center;gap:10px;max-width:100%;white-space:normal}
@media(max-width:760px){
 .service-daily-compact-head{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:10px}
 .service-daily-compact-head>div{min-width:0;max-width:100%}
 .service-daily-compact-head h2{font-size:clamp(28px,8vw,40px)!important;overflow-wrap:normal}
 .service-daily-compact-head>span{display:block;white-space:nowrap}
 .service-absence-notice{display:block;padding:20px;margin-bottom:28px}
 .service-absence-notice .heine-ui-pill{margin-top:18px}
}
@media(max-width:620px){
 .yearteam-card .yearteam-grade-columns{gap:10px}
 .yearteam-card .yearteam-mobile-disclosure{display:block;min-width:0;border:1px solid #dcebe5;border-radius:16px;padding:0;margin-top:10px;background:#fff}
 .yearteam-card .yearteam-mobile-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;font-size:14px;line-height:1.4;font-weight:650;color:#17624d;cursor:pointer}
 .yearteam-card .yearteam-mobile-disclosure>summary>span:last-child:not(:first-child),.yearteam-card .yearteam-grade>summary>span{display:grid;place-items:center;flex:none;width:28px;height:28px;background:#eef8f4;border-radius:50%;color:#2fac81;font-size:20px}
 .yearteam-card .yearteam-mobile-disclosure[open]>summary>span:last-child{transform:rotate(45deg)}
 .yearteam-card .yearteam-mobile-disclosure>.name-cards{padding:0 14px 14px}
 .yearteam-card .yearteam-mobile-disclosure:not([open])>.name-cards{display:none}
}

/* 2.0.205: consistent, readable contact actions. */
@media(min-width:761px){
 #heine-home.hh-final-home .hh-calendar-card .hh-event+.hh-event{border-top-width:.5px!important;border-top-color:#e4eee9!important}
}
@layer heine-typography {
 html body .service-absence-notice a.heine-ui-pill,
 html body .service-absence-notice a.heine-ui-pill:visited,
 html body .service-absence-notice a.heine-ui-pill:hover,
 html body .service-absence-notice a.heine-ui-pill span{color:#17624d!important;-webkit-text-fill-color:#17624d!important}
 html body .foundation-join a.foundation-person-link,
 html body .foundation-join a.foundation-person-link:visited,
 html body .foundation-join a.foundation-person-link span{color:#17624d!important;-webkit-text-fill-color:#17624d!important}
 html body .topbar .mobile-nav a.mobile-nav-new-at-heine{color:#fff!important;-webkit-text-fill-color:#fff!important}
}
.foundation-join .foundation-person-link{display:inline-flex;gap:8px;align-items:center;padding:0;border:0;background:none;border-radius:0;color:#fff!important;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){
 .topbar .mobile-nav a.mobile-nav-new-at-heine{display:inline-flex!important;width:auto!important;justify-content:center;padding:12px 16px!important;background:var(--g,#2fac81)!important;border:0!important;border-radius:999px!important;font-size:14px!important;font-weight:900!important;color:#fff!important}
 .topbar .mobile-nav .mobile-nav-new-at-heine-arrow{display:none!important}
}

/* Absence information follows the complete timetable. */
.service-times-compact-grid + .service-absence-notice{margin-top:28px;margin-bottom:0}

/* 2.0.207: quieter Heine Heute pagination, retaining touch target sizes. */
@layer heine-typography {
 html body .news-archive-pagination .page-numbers{font-size:14px!important;line-height:1.4!important}
}

/* 2.0.208: keep foreground and background together for every absence-link state. */
@layer heine-typography {
 html body .service-absence-notice a.heine-ui-pill:is(:link,:visited,:hover,:focus,:active){background:#fff!important;color:#17624d!important;-webkit-text-fill-color:#17624d!important;border-color:#b6d9ca!important}
 html body .service-absence-notice a.heine-ui-pill:focus-visible{outline:3px solid #17624d;outline-offset:3px}
}

/* Förderverein: same contact pill as the support cards. */
.foundation-page .foundation-person-link.heine-ui-pill,
.foundation-person-link.heine-ui-pill{display:inline-flex!important;align-items:center!important;gap:12px!important;min-height:44px;padding:10px 18px!important;border:1px solid rgba(255,255,255,.48)!important;border-radius:999px!important;background:#f0f8f4!important;color:#17624d!important;text-decoration:none!important;font-size:15px!important;line-height:1.4!important;vertical-align:middle;margin:6px 0}
.foundation-person-link.heine-ui-pill span{text-decoration:none!important}
@media(max-width:760px){
 .heine-school-page .school-profile-grid p{color:#e0eee8!important}
 .heine-school-page .school-profile-grid h3{margin-top:20px!important}
}

/* 2.0.227: Match the pale green mobile holiday highlight. */
.event-archive-item.is-holiday{background:#eef8f4}

/* 2.0.229: Mobile calendar uses the Heine Heute heading hierarchy. */
@media(max-width:760px){
 html body .heine-calendar-mobile-group{display:flex;flex-direction:column;min-width:0;grid-column:1/-1;margin-top:24px}
 html body .heine-calendar-mobile-group>.heine-calendar-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start;margin:0 0 24px}
 html body .heine-calendar-heading>div{min-width:0}
 html body .heine-calendar-heading .heine-calendar-overview-link{display:inline-flex;justify-self:start;align-items:center;gap:6px;min-height:44px;margin:0;padding:0;background:none;border:0;color:#17624d;font-size:14px;line-height:1.5;text-decoration:none}
 html body .heine-calendar-overview-link:hover{text-decoration:underline;text-underline-offset:4px}
 html body .heine-calendar-overview-link:focus-visible{outline:3px solid #2fac81;outline-offset:4px;border-radius:4px}
 html body .heine-calendar-mobile-title,
 html body .heine-calendar-mobile-eyebrow{display:none!important}
 html body .heine-calendar-mobile-group>.hh-calendar-card,
 html body .heine-calendar-mobile-group>.panel{margin:0;width:100%}
 /* Theme fallback without the homepage plugin. */
 #service .heine-calendar-heading .hh-eyebrow{margin:0 0 10px;color:#50ad88;font-size:11px;font-weight:600;letter-spacing:.07em;line-height:1.45;text-transform:uppercase}
 #service .heine-calendar-heading h2{margin:0;color:#17624d;font-size:clamp(32px,10vw,42px);line-height:1.08;letter-spacing:-.035em}
}
