@font-face{font-family:Dosis;src:url('/fonts/dosis-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Dosis;src:url('/fonts/dosis-semibold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
:root{--night:#0c1531;--night-soft:#0a1838;--gold:#c1a478;--gold-accent:#D5AD6D;--text:#1d2633;--line:rgba(213,173,98,.7)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;font-family:Dosis,'Arial Narrow',Arial,sans-serif}a{text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.container{margin-inline:auto}.skip-link{position:absolute;left:-9999px;top:.5rem;background:#fff;color:#000;padding:.75rem;z-index:10000}.skip-link:focus{left:.5rem}/* Production's navbar is .navbar-fixed-top: it overlays the banner's first 100px and there is
   NO compensating body padding anywhere in application.css. That is safe because every page
   renders a banner beneath the header - baseof.html for non-home routes, index.html for home -
   so a banner always absorbs the overlap and no route needs a top offset (005 research R4). */
.site-header{height:100px;background:#101e45;position:fixed;top:0;left:0;right:0;z-index:20}.site-header nav{width:80%;height:100%;margin:auto;display:flex;align-items:stretch}.brand{width:116px;display:flex;align-items:center;padding:0 16px;border-left:1px solid rgba(0,0,0,.45);border-right:1px solid rgba(0,0,0,.45)}.brand img{width:100px;height:100px;object-fit:contain}.nav-toggle{display:none;margin:auto 24px auto auto;border:1px solid var(--gold-accent);border-radius:5px;background:transparent;color:var(--gold-accent);font:600 1rem Dosis;padding:.55rem .8rem}#primary-nav{display:flex;align-items:stretch;list-style:none;margin:0;padding:0}#primary-nav li{display:flex;border-right:1px solid rgba(0,0,0,.5)}#primary-nav a{display:flex;align-items:center;padding:0 15px;color:var(--gold-accent);font-size:16px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}#primary-nav a:hover,#primary-nav a[aria-current=page]{background:rgba(255,255,255,.04);text-decoration:none}.slider{display:grid;position:relative;overflow:hidden;background:var(--night);border-bottom:4px solid var(--gold-accent)}.slider article{grid-area:1/1;position:relative;color:var(--gold-accent);transform:translateX(100%);transition:transform .6s ease-in-out;visibility:hidden}.slider article[data-current]{transform:none;visibility:visible}.slider article[data-leaving]{visibility:visible}.slider article[data-enter=prev]{transform:translateX(-100%)}.slider img{display:block;width:2000px;max-width:100%;height:auto;margin:auto}.slider article>div{position:absolute;top:45%;left:11%;text-align:left;text-shadow:0 2px 3px #000}.slider h1,.slider h2,.slider p{font-family:Dosis,Arial,sans-serif;font-size:50px;font-weight:400;line-height:1.1;margin:0}/* The caption passes gold down, but application.css's `p{color:#0c1531}` is a DIRECT element rule
   and a direct rule always beats an inherited value - no specificity on .slider article can win.
   Production never hits this: its caption emits text2 as bare text, not a <p> (005 research R1). */
.slider p{color:var(--gold-accent)}.slider-control{z-index:2;padding:0;border:0;background-color:transparent;-webkit-appearance:none;appearance:none;font:inherit;cursor:pointer}.slider-control:focus-visible{outline:3px solid #ffd166;outline-offset:3px}.home{position:relative;z-index:2}/* This rule was written for a bare <ol class=breadcrumbs> and silently stopped matching when the
   markup became <nav aria-label=Brotkrumen><ol class=breadcrumbs>: .breadcrumbs' parent is now
   the <nav>, not .home. The <nav> kept ~57px of flow, which is what the .cards -40px pull was
   spent closing instead of overlapping the banner (005 research R5). Production has no
   breadcrumb on the home page. Two separate rules, not one list: an unsupported selector in a
   selector list invalidates the whole list. */
.home>nav{display:none}
.home>.breadcrumbs{display:none}.cards{display:grid;grid-template-columns:1fr;gap:30px;margin-top:-40px;margin-bottom:50px;align-items:stretch}.cards>section{min-width:0;background:var(--night);color:#fff;font-size:16px;line-height:1.42857143;border-top:3px solid var(--gold);border-bottom:3px solid var(--gold);padding:20px 40px}.cards>section p{color:#fff}.cards h2{font-family:Dosis,Arial,sans-serif;color:var(--gold);font-size:24px;font-weight:500;line-height:1.1;text-transform:uppercase;margin:20px 0 10px}.cards h3{color:var(--gold);font:600 18px Dosis;text-transform:uppercase}.home>section:not(:first-of-type){margin-top:3rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}.card{display:block;background:#f8f7f3;border-top:3px solid var(--gold);padding:20px;color:var(--text)}.card img{display:block;width:100%;object-fit:cover;margin-bottom:14px}.card strong,.card span{display:block}.member-detail{display:grid;grid-template-columns:1fr 1fr;gap:42px}.breadcrumbs{display:flex;gap:.55rem;list-style:none;margin:0;padding:26px 0 10px;font-size:15px}.breadcrumbs li+li:before{content:'›';margin-right:.55rem}.media iframe{width:100%;aspect-ratio:16/9;border:0}.media-fallback{padding:1rem;border-left:4px solid var(--gold);background:#fff7e8}/* Pre-existing, found by 005's SC-006 sweep and not caused by it: the press downloads are long
   unbreakable filenames, which overflowed the viewport by 118px at 320px. Verified present on
   HEAD before any of this feature's changes. `anywhere` rather than `break-word` because the
   filename is a single token with no break opportunity at all. */
.downloads a{overflow-wrap:anywhere}main>.container,main>article.container{padding-bottom:50px}.btn-members{background-color:#101e45;color:#D5AD6D;padding:10px;text-transform:uppercase;margin:auto;display:block;transition:opacity .25s ease-in-out}.btn-members:hover{opacity:.9}.member-carousel{position:relative;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.member-carousel[data-enhanced]{overflow:hidden;scroll-snap-type:none}.member-carousel-track{display:flex}.member-carousel[data-enhanced] .member-carousel-track{transition:transform .2s ease-in-out;will-change:transform}.member-carousel-item{flex:0 0 auto;scroll-snap-align:start;min-width:0;padding:30px 15px 30px 0;color:#fff;border-radius:3px;text-align:center;min-height:425px}.member-carousel-item img{margin:0 auto;display:block}.member-carousel-item h3{font-size:28px;font-weight:300;margin:25px 0 0;color:#101e45}.member-carousel picture{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.listing-page>section{margin:2rem 0 3.5rem}.listing-page>section>h2{color:var(--gold)}.button{display:inline-block;padding:.65rem 1rem;background:var(--night);color:var(--gold);border:1px solid var(--gold)}a:focus-visible,button:focus-visible{outline:3px solid #ffd166;outline-offset:3px}
/* Honoratioren year submenu (feature 006). Production's menu is a Bootstrap 3 dropdown inside
   .navbar-inverse, so its selectors cannot reach this hand-written flex nav - every value below is
   production's, lifted from the .dropdown-menu rules in application.css and recorded with its
   source rule in tests/fixtures/production-values.yml. */
.has-submenu{position:relative}
.submenu-toggle{display:flex;align-items:center;gap:6px;padding:0 15px;border:0;background:transparent;color:var(--gold-accent);font-family:Dosis,'Arial Narrow',Arial,sans-serif;font-size:16px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.submenu-toggle:hover,.submenu-toggle[aria-expanded=true],.submenu-toggle[data-current=section]{background:rgba(255,255,255,.04)}
.caret{display:inline-block;width:0;height:0;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}
.submenu{position:absolute;top:100%;left:0;z-index:1000;min-width:160px;margin:0;padding:5px 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175)}
.submenu li{display:block;border:0}
#primary-nav .submenu li a{display:block;padding:3px 20px;color:#101e45;font-size:14px;line-height:1.42857143;text-transform:none;letter-spacing:0;white-space:nowrap}
#primary-nav .submenu li a:hover,#primary-nav .submenu li a:focus{color:#262626;background-color:#f5f5f5;text-decoration:none}
#primary-nav .submenu li a[aria-current=page]{background-color:#f5f5f5}
.submenu-divider{height:1px;margin:9px 0;padding:0;overflow:hidden;background-color:#c1a478}
/* The listing rows are production's Bootstrap grid markup, which application.css already styles;
   only the page's own vertical rhythm is set here. */
.members-listing hr{margin:20px 0;border:0;border-top:1px solid var(--line)}
/* The partner overview repeats the same production block with a rule after each one, so it takes
   the value above verbatim rather than introducing a second rhythm (contracts/partner-block.md). */
.partner-listing hr{margin:20px 0;border:0;border-top:1px solid var(--line)}
.members-listing h3{font-size:20px;font-weight:400;margin:12px 0 0}
/* Preview-only. An unpublished member never reaches a production build, so this needs no
   production-fidelity value; it needs to be unmissable and to be real text, so it is part of the
   heading's accessible name without an aria-label. */
.draft-badge{display:inline-block;margin-left:.5em;padding:.15em .5em;border:1px solid var(--gold-accent);border-radius:3px;background:var(--night);color:var(--gold-accent);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}
/* Production renders the submenu as a static nested list at 80% width inside the open mobile menu
   (.navbar-nav .open .dropdown-menu{width:80%} @<=768px), not as a floating panel. */
@media(max-width:760px){.has-submenu{display:block}.submenu-toggle{width:100%;padding:13px 24px;justify-content:space-between}.submenu{position:static;width:80%;margin:0 0 0 24px;border:0;border-radius:0;box-shadow:none}#primary-nav .submenu li a{padding:8px 20px}}

@media(max-width:1312px){#primary-nav a{padding-inline:9px;font-size:14px}.brand{width:100px;padding:0 8px}}
@media(max-width:1125px) and (min-width:761px){.site-header nav{width:100%}.brand{width:78px;padding:0 4px}.brand img{width:70px;height:70px}#primary-nav{flex:1}#primary-nav a{font-size:12px;padding-inline:5px;letter-spacing:0}#primary-nav li{flex:1;justify-content:center}}
@media(max-width:760px){.site-header,.site-header nav{height:100px}.brand{border:0;width:150px;padding:0 10px}.brand img{width:100px;height:100px}.nav-toggle{display:block}#primary-nav{display:none;position:absolute;top:100px;left:0;width:100%;max-height:calc(100vh - 100px);overflow-y:auto;overscroll-behavior:contain;flex-direction:column;background:var(--night);border-top:1px solid var(--line);z-index:30}#primary-nav[data-open=true]{display:flex}#primary-nav li{display:block;border:0;border-bottom:1px solid rgba(213,173,98,.25)}#primary-nav a{padding:13px 24px}.slider article>div{display:none}.cards{gap:28px}.cards>section{padding:20px 40px}.member-detail{grid-template-columns:1fr}}
@media(max-width:370px){.cards>section{padding-inline:28px}}
/* Production's own guard against the banner collapsing on small screens. Ported because 005's
   header overlay made its absence visible: at 390px the banner is 141px tall, of which the
   100px header covers the top and the panels' -40px pull covers the rest, leaving 1px. With
   production's rule the banner is 200px and stays visible, exactly as production renders it. */
@media(max-width:600px){.slider img{min-height:200px}}
@media(min-width:1200px){.home .cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1600px){.slider h1,.slider h2,.slider p{font-size:46px}}
@media(min-width:1025px) and (max-width:1400px){.slider h1,.slider h2,.slider p{font-size:36px}}
@media(min-width:900px) and (max-width:1024px){.slider h1,.slider h2,.slider p{font-size:30px}}
@media(max-width:991px){.slider article>div,.slider-control{display:none}}
.home>section>h2{font-size:36px}.home>section>h3{font-size:30px}
@media(max-width:600px){.home>section>h2{font-size:24px;margin-top:0;margin-bottom:15px}.home>section>h3{font-size:20px}}
@media(max-width:1600px){.member-carousel-item h3{font-size:20px}}
@media(max-width:400px){.btn-members{font-size:10px;margin-top:10px}}
