/* flow-root: the reading column contains its figures' floats, so a trailing
   float never escapes into the byline, yet body text still wraps beside a
   floated figure (only headings/galleries below opt back out via clear). */
.article { max-width: 42rem; margin: 0 auto; line-height: 1.6; display: flow-root; }
.article-block { margin: 1rem 0; }
.article-paragraph { margin: 0 0 1rem; }
.article-ordered-list, .article-unordered-list { margin: 0 0 1rem 1.5rem; }
.article-heading { margin: 1.5rem 0 0.75rem; line-height: 1.25; clear: both; }
.article-quote { margin: 1rem 0; padding: 0.25rem 0 0.25rem 1rem; border-left: 4px solid #ccc; color: #555; font-style: italic; }
.article-quote p { margin: 0 0 0.5rem; }
.article-quote p:last-child { margin-bottom: 0; }

.article-figure { margin: 1rem 0; }
.article-figure-link { display: block; }
.article-figure-contents img { display: block; max-width: 100%; height: auto; }
.article-figure-caption { margin-top: 0.5rem; font-size: 0.875rem; color: #666; }
/* Centred figures are capped at the shared 640px Preview so they stay native. */
.article-figure-centered { max-width: 640px; margin-inline: auto; text-align: center; }
.article-figure-centered .article-figure-contents img { margin-inline: auto; }
/* Floated figures take about a third of the reading column (~224px Preview). */
.article-figure-float-left  { float: left;  max-width: 33%; margin: 0 1rem 0.5rem 0; }
.article-figure-float-right { float: right; max-width: 33%; margin: 0 0 0.5rem 1rem; }
@media (max-width: 40rem) {
  .article-figure-float-left, .article-figure-float-right { float: none; max-width: 100%; margin: 1rem 0; }
}

.article-video { display: block; width: 100%; margin: 1rem 0; }
iframe.article-video { aspect-ratio: 16 / 9; border: 0; }
.article-video.external-site-link {
  aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center;
  padding: 1rem; background: #111; color: #fff; text-align: center; word-break: break-all;
}
.article-video.external-site-link::before { content: "↗"; margin-right: 0.4rem; }

/* Non-enhanced (no-JS): a thumbnail grid; each thumb links to the full image. */
.article-gallery { margin: 1rem 0; clear: both; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.article-gallery-link { display: block; }
.article-gallery-image img { display: block; width: auto; height: 120px; cursor: zoom-in; }
.article-gallery:not(.article-gallery--enhanced) .article-gallery-image-caption { display: none; }
/* Enhanced (JS): one Preview at a time in a fixed 4:3 stage with overlay arrows;
   a control bar toggles autoplay and the thumbnail-grid view. */
.article-gallery--enhanced { display: block; }
.article-gallery--enhanced .article-gallery-image { display: none; }
.article-gallery-stage {
  position: relative;
  width: 100%; max-width: 672px; margin: 0 auto; aspect-ratio: 4 / 3; overflow: hidden;
  display: flex; align-items: center; justify-content: center; background: #f0f0f0;
}
.article-gallery-stage-image { max-width: 100%; max-height: 100%; object-fit: contain; display: block; cursor: zoom-in; }
.article-gallery-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 2.4rem; height: 2.4rem; border: none; border-radius: 50%; cursor: pointer;
  background: rgba(0, 0, 0, 0.4); color: #fff; font-size: 1.6rem; line-height: 1;
}
.article-gallery-arrow-prev { left: 0.4rem; }
.article-gallery-arrow-next { right: 0.4rem; }
.article-gallery-caption { min-height: 1.4em; margin-top: 0.5rem; text-align: center; font-size: 0.875rem; color: #666; }
.article-gallery-image-caption { margin-top: 0.5rem; font-size: 0.875rem; color: #666; }
.article-gallery-bar { display: flex; align-items: center; justify-content: center; gap: 1rem; width: 100%; margin-top: 0.5rem; }
.article-gallery-ctl { cursor: pointer; font-size: 1.2rem; line-height: 1; background: none; border: none; color: inherit; }
/* Thumbnail-grid view (toggled): show the thumbnails, hide the stage. Capped in
   height (around the stage's width limit) with its own vertical scroll. */
.article-gallery--enhanced.article-gallery--grid {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  max-height: 672px; overflow-y: auto;
}
.article-gallery--enhanced.article-gallery--grid .article-gallery-image { display: block; }
.article-gallery--grid .article-gallery-stage, .article-gallery--grid .article-gallery-caption { display: none; }

/* Shared gallery-aware pop-over (figures, galleries, lead image). */
.article-lightbox { display: none; position: fixed; inset: 0; z-index: 2000; padding: 1rem;
  background: rgba(0, 0, 0, 0.85); align-items: center; justify-content: center; cursor: zoom-out; }
.article-lightbox--open { display: flex; }
.article-lightbox-image { max-width: 100%; max-height: 100%; object-fit: contain; cursor: default; }
.article-lightbox-btn {
  position: absolute; border: none; cursor: pointer; color: #fff;
  background: rgba(0, 0, 0, 0.4); border-radius: 50%; width: 2.6rem; height: 2.6rem;
  font-size: 1.4rem; line-height: 1;
}
.article-lightbox-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.article-lightbox-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.article-lightbox-close { right: 1rem; top: 1rem; }
.article-lightbox-play { left: 1rem; top: 1rem; }
.article-lightbox-counter { position: absolute; top: 1.3rem; left: 50%; transform: translateX(-50%); color: #fff; font-size: 0.9rem; }
.article-lightbox-caption { position: absolute; bottom: 1rem; left: 0; right: 0; padding: 0 1rem; text-align: center; color: #fff; font-size: 0.9rem; }
@font-face{src:url("/media/fonts/Lato-Regular.woff2")format("woff2");font-family:"Lato";font-weight:normal;font-style:normal}@font-face{src:url("/media/fonts/Lato-Bold.woff2")format("woff2");font-family:"Lato";font-weight:bold;font-style:normal}@font-face{src:url("/media/fonts/Lato-Italic.woff2")format("woff2");font-family:"Lato";font-weight:normal;font-style:italic}@font-face{src:url("/media/fonts/Lato-BoldItalic.woff2")format("woff2");font-family:"Lato";font-weight:bold;font-style:italic}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}body{font-family:"Lato", sans-serif;margin:0px 0px 0px 0px;display:flex;flex-direction:column;min-height:100vh}article{padding-top:0.5rem;padding-bottom:0.5rem;max-width:1200px;margin-left:auto;margin-right:auto;margin-top:1rem;margin-bottom:1rem;padding-left:1rem;padding-right:1rem;background-color:#ffffff;line-height:1.5rem;color:#002c40;border:2px solid #d0d0d0}article a,.landing-wayfinding a{color:#002c40}.skip-link{border-width:0px;height:1px;width:1px;margin:0px 0px 0px 0px;overflow:hidden;position:absolute;white-space:nowrap}.skip-link:focus{position:fixed;top:0px;left:0px;height:auto;width:auto;overflow:visible;z-index:1000;padding:0.5rem 1rem 0.5rem 1rem;background-color:#002c40;color:#ffffff}.nav-toggle{border-width:0px;height:1px;width:1px;margin:0px 0px 0px 0px;overflow:hidden;position:absolute;white-space:nowrap}.nav-toggle-label{display:none}.nav-acc{border-width:0px;height:1px;width:1px;margin:0px 0px 0px 0px;overflow:hidden;position:absolute;white-space:nowrap}.nav-acc-toggle{display:none}.nav-list{display:flex;list-style:none initial initial;column-gap:2rem;font-size:18pt}.nav-list > .nav-item > .nav-folder::before{content:"▾";margin-right:0.4rem}.nav-sub .nav-folder{display:flex;align-items:center;justify-content:space-between}.nav-sub .nav-folder::after{content:"▸";margin-left:1rem}.nav-sub > .nav-item,.nav-sub > .nav-item-external{border-bottom:1px solid #81bebc}.nav-sub > .nav-item:last-child{border-bottom-width:0px}.nav-sub > .nav-item-external:last-child{border-bottom-width:0px}header a,footer a{color:#d0d0d0;text-decoration:none}header a:hover,footer a:hover{color:#ffffff}main{flex-grow:1;background-color:#81bebc}.nav-list li::marker{content:none}.nav-item{position:relative}.nav-item:hover > .nav-sub{display:block}.nav-sub{position:absolute;display:none;background-color:#002c40;z-index:10;border:1px solid #81bebc;font-size:1rem;white-space:nowrap;width:max-content;padding:0px 0px 0px 0px;margin:0px 0px 0px 0px}.nav-sub > .nav-item,.nav-sub > .nav-item-external{padding-left:1.4rem;padding-right:1.2rem;padding-top:0.8rem;padding-bottom:0.8rem}.nav-item-external::before{content:"↗";margin-right:0.4rem;color:#d0d0d0}.nav-list > .nav-item > .nav-sub{top:100%;left:0px}.nav-sub .nav-sub{top:0px;left:100%}.site-header{background-color:#002c40;color:#ffffff}.site-header .container,.site-footer .container{display:flex;column-gap:1rem;align-items:center;justify-content:space-between;padding-top:0.5rem;padding-bottom:0.5rem;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}.logo{height:8rem;width:auto}.header-right{display:flex;flex-direction:column;flex-grow:1;justify-content:flex-end;align-items:flex-start;align-self:stretch}.header-top-right{display:flex;flex-direction:row;justify-content:space-between;align-self:stretch}.site-name{font-size:2.5rem;flex-grow:1}.contact-bar{display:flex;flex-direction:column;row-gap:0.2rem;justify-content:space-between}.social-buttons{display:flex;flex-direction:row-reverse;align-items:flex-end;column-gap:0.3rem}.site-footer{background-color:#002c40;color:#ffffff;padding-top:1rem;padding-bottom:1rem}.footer-links{padding-left:0rem}.footer-links li::marker{content:none}.team-mitglied-container-TMSCompact{border:1px solid #002c40}.team-mitglied-container-TMSHalf{border:1px solid #002c40}.team-mitglied-container-TMSWide{border:1px solid #002c40}.team-mitglied-container-TMSHalf{display:flex;flex-direction:row;gap:1rem 1rem;padding:0.5rem 0.5rem 0.5rem 0.5rem}.team-mitglied-container-TMSWide{display:flex;flex-direction:row;gap:1rem 1rem;padding:0.5rem 0.5rem 0.5rem 0.5rem}.team-mitglied-container-TMSWide{max-width:54rem;margin-left:auto;margin-right:auto}.team-mitglied-container-TMSHalf{min-width:400px;width:45%}.team-mitglied-container-TMSCompact{width:15rem;padding:0.5rem 0.5rem 0.5rem 0.5rem;display:flex;flex-direction:column;align-items:center;gap:0.5rem 0.5rem}.team-mitglied-name{font-size:14pt;font-weight:bold}.lehrer-container{display:flex;gap:0.5rem 0.5rem;margin-left:auto;margin-right:auto;max-width:100%;flex-wrap:wrap;justify-content:center}.lehrer-container .team-mitglied-container-TMSHalf{width:calc(50% - 0.25rem)}.landing{display:flex;flex-direction:column;row-gap:0.5rem;max-width:1200px;margin-left:auto;margin-right:auto;padding-top:1rem;padding-bottom:1rem;padding-left:1rem;padding-right:1rem}.sondermeldungen{display:flex;flex-direction:column;row-gap:1rem}.sondermeldung{border:2px solid #002c40;background-color:#ffffff;color:#002c40;padding:0.75rem 1rem 0.75rem 1rem}.sondermeldung-summary{cursor:pointer;font-weight:bold;font-size:1.25rem}.sondermeldung-body{padding-top:0.5rem}.hero{display:flex;flex-direction:column;row-gap:0.5rem}.hero-stage{display:none;position:relative}.hero--enhanced .hero-stage{display:block}.hero-stage-link{position:relative;display:block;height:320px;overflow:hidden}.hero-stage-face{position:absolute;top:0px;left:0px;width:100%;height:100%}.hero-stage-backdrop{display:none}.hero-stage--composed .hero-stage-backdrop{display:block;position:absolute;top:0px;left:0px;width:100%;height:100%;object-fit:cover;filter:blur(24px);transform:scale(1.2)}.hero-stage-image{position:absolute;top:0px;left:0px;width:100%;height:100%;object-fit:cover}.hero-stage--composed .hero-stage-image{width:50%}.hero-stage-panel{position:absolute;left:0px;right:0px;bottom:0px;background-color:rgba(0,44,64,0.8);color:#ffffff;padding:0.5rem 1rem 0.5rem 1rem}.hero-stage--composed .hero-stage-panel{left:auto;top:0px;width:50%;display:flex;flex-direction:column;justify-content:center;padding:1.5rem 1.5rem 1.5rem 1.5rem;background-color:rgba(0,44,64,0.7)}.hero-stage-title{font-size:1.2rem;font-weight:bold}.hero-stage--composed .hero-stage-title{font-size:1.6rem}.hero-stage-lead{display:none}.hero-stage--composed .hero-stage-lead{margin-top:0.5rem;font-size:1.1rem;line-height:1.4rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.hero-tiles{display:flex;gap:0.5rem 0.5rem;list-style:none initial initial;padding:0px 0px 0px 0px;margin:0px 0px 0px 0px}.hero-tiles > li{flex-grow:1;flex-basis:0px;display:flex}.hero-tiles li::marker{content:none}.hero-tile{display:block;width:100%;border:3px solid #d0d0d0;background-color:#ffffff;color:#002c40;text-decoration:none;cursor:pointer}.hero-tile-active{border-color:#002c40}.hero-tile-title{display:block;font-weight:bold;padding:0.4rem 0.5rem 0px 0.5rem}.hero-tile-lead{font-size:0.85rem;padding:0.2rem 0.5rem 0.5rem 0.5rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.hero-progress{position:absolute;left:0px;right:0px;bottom:0px;height:3px;overflow:hidden;z-index:3}.hero-progress-bar{height:100%;width:20%;background-color:#81bebc}.hero-prev,.hero-next{position:absolute;top:calc(50% - 1rem);background-color:rgba(0,44,64,0.6);color:#ffffff;border-width:0px;padding:0.25rem 0.6rem 0.25rem 0.6rem;font-size:1.5rem;cursor:pointer;z-index:2}.hero-prev{left:0.5rem}.hero-next{right:0.5rem}.landing-split{display:flex;gap:1rem 1rem;align-items:stretch}.landing-wayfinding{flex-grow:1;flex-basis:0px;background-color:#ffffff;border:2px solid #d0d0d0;padding:1rem 1rem 1rem 1rem;color:#002c40;line-height:1.5rem}.landing-wayfinding p{margin:0px 0px 1rem 0px}.landing-wayfinding h1,.landing-wayfinding h2,.landing-wayfinding h3{margin:1.5rem 0px 0.75rem 0px;line-height:1.25rem}.landing-wayfinding ul,.landing-wayfinding ol{margin:0px 0px 1rem 1.5rem}.landing-calendar{flex-grow:1;flex-basis:0px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.5rem 0.5rem;border:2px solid #d0d0d0;background-color:#ffffff}.embed-activate,.sondermeldung-dismiss,.embed-deactivate{padding:0.5rem 1rem 0.5rem 1rem;background-color:#002c40;color:#ffffff;text-decoration:none;border-width:0px;cursor:pointer;font:inherit}.embed-activate{display:inline-block}.embed-activate::before{content:"↗";margin-right:0.4rem}.sondermeldung-dismiss,.embed-deactivate{display:block;margin-top:0.5rem;margin-left:auto;margin-right:auto;width:fit-content}.calendar-frame{width:100%;flex-grow:1;border-width:0px;align-self:stretch}.map-frame{width:100%;height:400px;border-width:0px}.more-news{padding:0.5rem 1rem 0.5rem 1rem;background-color:#002c40;color:#ffffff;text-decoration:none;border-width:0px;cursor:pointer;font:inherit;display:block;margin-left:auto;width:fit-content}.sponsors-heading{font-size:1.5rem}.sponsors-list{display:flex;flex-wrap:wrap;gap:1rem 1rem;align-items:center;justify-content:center;list-style:none initial initial;padding:0px 0px 0px 0px}.sponsors-list li::marker{content:none}.sponsors-logo{height:4rem;width:auto}.embed-hint{margin-top:0.5rem;margin-bottom:0px;max-width:320px;font-size:0.85rem;color:#002c40}.hero-stage-meta{display:block;font-size:0.8rem;margin-bottom:0.15rem;opacity:0.85}.article-preview-wide{display:flex;gap:1rem 1rem;align-items:flex-start;max-width:860px;margin-left:auto;margin-right:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem 1rem 1rem 1rem;background-color:#ffffff;border:1px solid #d0d0d0;text-decoration:none}.article-preview-wide-lead-thumb{flex-shrink:0;width:180px;height:120px;object-fit:cover}.article-preview-wide-text{flex-grow:1;flex-basis:0px;min-width:0px}.article-preview-meta{font-size:0.8rem;color:#555555}.article-preview-wide-title{font-size:1.3rem;font-weight:bold;color:#002c40;margin-bottom:0.3rem}.article-preview-wide-lead{color:#555555}.article-preview-list-item{max-width:860px;margin-left:auto;margin-right:auto;padding:0.6rem 1rem 0.6rem 1rem;background-color:#ffffff;border-bottom:1px solid #d0d0d0}.box-link{text-decoration:none}.article-preview-list-item-title{font-weight:bold;color:#002c40}.article-preview-list-item-lead{font-size:0.9rem;color:#555555}.stunden-layout{display:flex;gap:2rem 2rem;align-items:flex-start;flex-wrap:wrap}.stunden-layout table{flex-shrink:0}.stunden-layout ol{flex-grow:1;flex-basis:240px;margin-top:0px}.article-container{margin-left:auto;margin-right:auto;max-width:46rem}.article-header{display:flex;align-items:center;margin-top:1rem}.article-header-data{flex-grow:1}.article-header-meta{font-size:0.8rem;color:#555555;margin-bottom:0.25rem}.article-lead-image{float:right;max-width:18rem;max-height:14rem;margin-left:1.5rem;margin-bottom:1rem;border-radius:4px 4px 4px 4px}.article-title{font-size:2rem;font-weight:bold;color:#002c40;margin-top:0px;margin-bottom:0.5rem}.article-lead{font-size:1.15rem;color:#555555}.article-byline{margin-top:2rem;padding-top:1rem;border-top:1px solid #d0d0d0;font-size:0.85rem;color:#555555}.article-by-authors{margin-right:2rem}.stundentafel-wrap{overflow-x:auto;max-width:100%}.stundentafel{border-collapse:collapse;width:100%;font-size:0.9rem;font-variant-numeric:tabular-nums}.stundentafel th,.stundentafel td{padding-top:0.3rem;padding-bottom:0.3rem;padding-left:0.55rem;padding-right:0.55rem;text-align:center;white-space:nowrap;border-bottom:1px solid #d0d0d0}.stundentafel thead th{font-weight:bold;background-color:#ffffff;border-bottom:2px solid #002c40}.stundentafel tbody tr:nth-child(even){background-color:#f6f8f9}.stundentafel tbody tr:hover{background-color:#e8f2f2}.stundentafel-summe{font-weight:bold;background-color:#eaf0f2}.stundentafel tfoot{font-weight:bold;background-color:#e0e8eb}.stundentafel tfoot th,.stundentafel tfoot td{border-top:2px solid #002c40}.stundentafel-fach{text-align:left;font-weight:normal;position:sticky;left:0px;background-color:#ffffff}.stundentafel tbody tr:nth-child(even) .stundentafel-fach{background-color:#f6f8f9}.category-banner{width:100%;max-width:1200px;margin-top:1rem;margin-left:auto;margin-right:auto;border:2px solid #d0d0d0;padding:1rem 1rem 1rem 1rem;color:#002c40;background-color:#ffffff;display:flex;flex-direction:column;gap:0.8rem 0.8rem}.category-banner-title{font-size:1.5rem;font-weight:bold;text-align:center}.category-banner-logo{width:200px}.category-banner-body{display:flex;gap:1rem 1rem;align-items:center;max-width:46rem;margin-left:auto;margin-right:auto}.category-banner-text{line-height:1.2rem}@media screen and (max-width: 52em){.logo{height:3rem}.site-header .container{position:relative;flex-direction:row-reverse}.header-right{flex-direction:row;align-items:center;padding-left:3rem}.header-top-right{align-items:center}.contact-bar{display:none}.site-name{font-size:1.5rem;flex-grow:0}.nav-toggle-label{display:flex;align-items:center;cursor:pointer;font-size:2rem;line-height:2rem;position:absolute;left:1rem;top:0px;height:100%}.nav-list{display:none;flex-direction:column;position:absolute;top:100%;left:0px;right:0px;background-color:#002c40;z-index:20;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px}.nav-toggle:checked + .nav-toggle-label + .nav-list{display:flex}.nav-item > a{display:block;padding:0.8rem 1rem 0.8rem 1rem}.nav-item-external > a{display:block;padding:0.8rem 1rem 0.8rem 1rem}.nav-folder{display:block;padding:0.8rem 1rem 0.8rem 2.4rem}.nav-sub > .nav-item,.nav-sub > .nav-item-external{padding-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px}.nav-item-external::before{content:none}.nav-item-external > a::before{content:"↗";margin-right:0.4rem}.nav-acc-toggle{display:block;cursor:pointer;position:absolute;top:0px;left:0px;padding:0.8rem 0.8rem 0.8rem 0.9rem}.nav-acc-toggle::before{content:"▾"}.nav-list > .nav-item > .nav-folder::before{display:none}.nav-sub .nav-folder::after{display:none}.nav-sub{position:static;display:none;width:100%;border:0px solid #002c40;padding-left:1rem}.nav-item:hover > .nav-sub{display:none}.nav-acc:checked + .nav-sub{display:block}.landing-split{flex-direction:column}.stunden-layout{flex-direction:column}.hero-tiles{flex-direction:column}.hero-tiles > li{flex-grow:0;flex-basis:auto}.hero-stage--composed .hero-stage-image{width:100%;height:50%}.hero-stage--composed .hero-stage-panel{top:50%;left:0px;width:100%;height:50%}.article-header{flex-direction:column}.article-lead-image{float:none;max-width:100%;margin-left:auto;margin-right:auto;margin-top:1rem;align-self:center}.site-footer .container{flex-direction:column;align-items:flex-start;row-gap:0.5rem}}