:root {
  color-scheme: light;
  --blue: #004aad;
  --blue-dark: #002556;
  --blue-soft: #eaf2fb;
  --blue-pale: #f4f8fd;
  --ink: #18212f;
  --muted: #5f6b7a;
  --line: #dbe5f0;
  --page: #f8fafc;
  --white: #fff;
  --shadow: 0 20px 55px rgba(0, 37, 86, .10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { background: var(--page); }
body { margin: 0; color: var(--ink); font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
input, select, textarea, button { color-scheme: light; }
a { color: inherit; text-decoration: none; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; border-radius: .75rem; background: var(--blue-dark); color: #fff; padding: .8rem 1rem; }
.skip-link:focus { top: 1rem; }
.section-wrap, .header-inner { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid #dbe5f0; background: #fff; }
.header-inner { min-height: 86px; display: grid; grid-template-columns: 245px 1fr auto; align-items: center; gap: 2rem; }
.brand { display: flex; align-items: center; border-radius: .65rem; background: #fff !important; isolation: isolate; padding: .15rem .25rem; }
.brand img { display: block; width: 230px; height: auto; opacity: 1; filter: none; mix-blend-mode: normal; }
.footer-inner img { border-radius: .65rem; background: #fff !important; opacity: 1; filter: none; mix-blend-mode: normal; isolation: isolate; }
.desktop-nav { display: flex; justify-content: center; gap: .25rem; }
.desktop-nav a { border-radius: 999px; color: #465365; font-size: .92rem; font-weight: 700; padding: .7rem .85rem; transition: .16s ease; }
.desktop-nav a:hover, .desktop-nav a:focus-visible, .desktop-nav a.active { background: var(--blue-soft); color: var(--blue); }
.header-action { border: 1px solid var(--blue); border-radius: 999px; color: var(--blue); font-size: .88rem; font-weight: 800; padding: .8rem 1rem; }
.header-action:hover, .header-action:focus-visible { background: var(--blue); color: #fff; }
.hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(360px,.75fr); gap: clamp(3rem,7vw,7rem); align-items: center; padding: 6.2rem 0 6.5rem; }
.hero-copy h1, .page-hero h1 { max-width: 760px; margin: .7rem 0 1.35rem; color: var(--blue-dark); font-size: clamp(2.7rem,5.2vw,5rem); font-weight: 780; letter-spacing: -.055em; line-height: .98; }
.hero-copy > p, .page-hero > p { max-width: 670px; margin: 0; color: var(--muted); font-size: clamp(1.05rem,1.7vw,1.25rem); line-height: 1.7; }
.kicker, .card-label { color: var(--blue); font-size: .74rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 999px; font-weight: 800; padding: .8rem 1.25rem; transition: .16s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button.primary { background: var(--blue); box-shadow: 0 10px 25px rgba(0,74,173,.22); color: #fff; }
.button.secondary { border-color: var(--line); background: #fff; color: var(--blue-dark); }
.hero-panel { position: relative; border: 1px solid var(--line); border-radius: 2rem; background: #fff; box-shadow: var(--shadow); padding: 1.2rem; }
.hero-panel::before { position: absolute; inset: -55px -70px auto auto; width: 180px; height: 180px; border-radius: 50%; background: rgba(0,74,173,.08); content: ""; z-index: -1; }
.status-row { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; color: #506070; font-size: .9rem; padding: .45rem .5rem 1rem; }
.status-dot { width: .65rem; height: .65rem; border: 3px solid #bfdbfe; border-radius: 50%; background: var(--blue); }
.status-row > span:nth-child(2) { flex: 1; }
.status-row a { color: var(--blue); font-size: .78rem; font-weight: 800; }
.status-row.notice-notice .status-dot { border-color: #d8c6ef; background: #7857a7; }
.status-row.notice-warning .status-dot { border-color: #f5d58c; background: #ba7200; }
.status-row.notice-urgent { color: #8c1e2a; font-weight: 750; }
.status-row.notice-urgent .status-dot { border-color: #efb5bd; background: #c73546; }
.today-card { min-height: 190px; display: flex; flex-direction: column; justify-content: space-between; border-radius: 1.45rem; background: linear-gradient(145deg,var(--blue-dark),var(--blue)); color: #fff; padding: 1.55rem; }
.today-card .card-label { display: block; margin-bottom: .75rem; color: #bfdbfe; }
.today-card strong { display: block; max-width: 300px; font-size: 1.45rem; line-height: 1.25; }
.today-card a { width: fit-content; border-bottom: 1px solid rgba(255,255,255,.7); font-size: .9rem; font-weight: 800; }
.topic-pills { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .9rem; }
.topic-pills span { border-radius: 999px; background: var(--blue-pale); color: var(--blue-dark); font-size: .78rem; font-weight: 700; padding: .55rem .7rem; }
.quick-section { padding-bottom: 6.3rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.section-heading h2, .panel-heading h2, .council-panel h2, .submit-banner h2 { margin: .45rem 0 0; color: var(--blue-dark); font-size: clamp(1.9rem,3.4vw,2.8rem); letter-spacing: -.035em; line-height: 1.05; }
.section-heading > p { max-width: 380px; margin: 0; color: var(--muted); line-height: 1.6; }
.card-grid { display: grid; gap: 1rem; }
.three-columns { grid-template-columns: repeat(3,1fr); }
.two-columns { grid-template-columns: repeat(2,1fr); }
.feature-card { display: flex; flex-direction: column; min-height: 245px; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: 1.5rem; transition: .18s ease; }
.feature-card:hover { border-color: #a7c8ed; box-shadow: 0 16px 34px rgba(0,37,86,.08); transform: translateY(-4px); }
.feature-card h3 { margin: .9rem 0 .75rem; color: var(--blue-dark); font-size: 1.28rem; line-height: 1.25; }
.feature-card p { margin: 0; color: var(--muted); line-height: 1.65; }
.feature-card a { margin-top: auto; color: var(--blue); font-size: .9rem; font-weight: 850; padding-top: 1.4rem; }
.news-section { background: var(--blue-dark); color: #fff; padding: 6rem 0; }
.light-heading h2, .light-heading .kicker { color: #fff; }
.text-link { color: #dbeafe; font-weight: 800; }
.news-grid { grid-template-columns: repeat(3,1fr); }
.news-card { min-height: 290px; display: flex; flex-direction: column; align-items: stretch; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 1.5rem; background: linear-gradient(155deg,rgba(255,255,255,.14),rgba(255,255,255,.05)); }
.news-card-image { position: relative; width: 100%; height: 210px; display: block; flex: 0 0 210px; overflow: hidden; background: #001d42; }
.news-card-image img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; }
.news-card-body { margin-top: auto; padding: 1.5rem; }
.news-card .card-label { color: #bfdbfe; }
.news-card h3 { margin: .8rem 0 .7rem; font-size: 1.45rem; line-height: 1.2; }
.news-card p { margin: 0; color: #d9e4f1; line-height: 1.6; }
.news-more { display: inline-block; margin-top: 1rem; color: #fff; font-size: .84rem; font-weight: 800; }
.large-empty { border: 1px solid rgba(255,255,255,.18); border-radius: 1.5rem; background: linear-gradient(145deg,#075bbd,#003b84); padding: clamp(2rem,5vw,4rem); }
.large-empty span { color: #bfdbfe; font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.large-empty h3 { max-width: 720px; margin: .8rem 0; font-size: clamp(1.6rem,3vw,2.5rem); }
.large-empty p { margin: 0; color: #dbeafe; }
.split-section { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1rem; padding: 6rem 0; }
.calendar-panel, .council-panel { border-radius: 1.6rem; padding: clamp(1.5rem,4vw,2.5rem); }
.calendar-panel { border: 1px solid var(--line); background: #fff; }
.panel-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.panel-heading a { color: var(--blue); font-weight: 800; }
.empty-state { display: flex; align-items: center; gap: 1.2rem; margin-top: 2rem; border-radius: 1.1rem; background: var(--blue-pale); padding: 1.25rem; }
.empty-date { width: 64px; height: 64px; display: grid; place-items: center; flex: 0 0 64px; border-radius: 1rem; background: #fff; color: var(--blue); font-size: 1.8rem; font-weight: 800; }
.empty-state strong { display: block; margin-bottom: .3rem; color: var(--blue-dark); }
.empty-state p { margin: 0; color: var(--muted); line-height: 1.5; }
.compact-events { display: grid; gap: .7rem; margin-top: 1.4rem; }
.compact-events article { display: grid; grid-template-columns: 145px 1fr auto; align-items: center; gap: 1rem; border-top: 1px solid var(--line); padding-top: .8rem; }
.compact-events time, .compact-events span { color: var(--muted); font-size: .78rem; }
.compact-events strong { color: var(--blue-dark); }
.council-panel { background: var(--blue); color: #fff; }
.council-panel .kicker { color: #dbeafe; }
.council-panel h2 { color: #fff; }
.council-panel p { margin: 1rem 0 1.6rem; color: #e8f1fb; line-height: 1.7; }
.button.on-blue { border-color: rgba(255,255,255,.55); background: #fff; color: var(--blue-dark); }
.submit-banner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 6rem; border: 1px solid var(--line); border-radius: 1.6rem; background: #fff; padding: clamp(1.5rem,4vw,2.5rem); }
.submit-banner p { max-width: 690px; margin: .8rem 0 0; color: var(--muted); line-height: 1.6; }
.page-hero { padding: 5.5rem 0 3.2rem; }
.page-hero h1 { font-size: clamp(2.5rem,5vw,4.4rem); }
.page-content { min-height: 45vh; padding-bottom: 6rem; }
.content-empty { border: 1px solid var(--line); border-radius: 1.5rem; background: #fff; padding: clamp(1.5rem,4vw,2.8rem); }
.content-empty > span { color: var(--blue); font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.content-empty h2 { margin: .75rem 0; color: var(--blue-dark); font-size: clamp(1.5rem,3vw,2.2rem); }
.content-empty p { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.65; }
.workflow { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; counter-reset: workflow; }
.workflow li { display: grid; grid-template-columns: 56px 1fr; gap: .2rem 1rem; border: 1px solid var(--line); border-radius: 1.2rem; background: #fff; padding: 1.25rem; counter-increment: workflow; }
.workflow li::before { grid-row: 1 / 3; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--blue-soft); color: var(--blue); font-weight: 850; content: counter(workflow); }
.workflow strong { color: var(--blue-dark); }
.workflow span { color: var(--muted); line-height: 1.5; }
.notice-box { margin-top: 1.3rem; border-left: 4px solid var(--blue); border-radius: .8rem; background: var(--blue-pale); color: var(--blue-dark); padding: 1.1rem 1.25rem; line-height: 1.55; }
.public-news-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.public-news-card { display: flex; flex-direction: column; min-height: 290px; overflow: hidden; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; }
.public-card-image { position: relative; width: 100%; height: 260px; display: block; flex: 0 0 260px; overflow: hidden; background: var(--blue-pale); }
.public-card-image img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; }
.public-card-body { min-height: 100%; display: flex; flex: 1; flex-direction: column; padding: clamp(1.3rem, 3vw, 2rem); }
.public-news-card h2 { margin: .7rem 0 .75rem; color: var(--blue-dark); font-size: clamp(1.35rem, 2.5vw, 1.9rem); letter-spacing: -.025em; }
.public-card-body > p { margin: 0 0 1.2rem; color: var(--muted); line-height: 1.65; }
.public-meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--muted); font-size: .78rem; }
.text-button { margin-top: auto; color: var(--blue); font-size: .88rem; font-weight: 800; padding-top: 1.4rem; }
.event-list { display: grid; gap: 1rem; }
.event-card { display: grid; grid-template-columns: 76px minmax(0,1fr) 240px; align-items: start; gap: 1.25rem; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: clamp(1.1rem,2.5vw,1.6rem); }
.event-date { width: 76px; height: 76px; display: grid; place-content: center; justify-items: center; border-radius: 1rem; background: var(--blue-soft); color: var(--blue); }
.event-date strong { font-size: 1.8rem; line-height: 1; }
.event-date span { margin-top: .25rem; font-size: .72rem; font-weight: 800; }
.event-image-button { position: relative; width: 240px; height: 180px; grid-column: 3; grid-row: 1; display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: var(--blue-pale); padding: 0; cursor: zoom-in; }
.event-image { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; }
.event-image-button:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.event-card-content { min-width: 0; grid-column: 2; grid-row: 1; }
.event-date + .event-card-content { grid-column: 2 / -1; }
.event-card h2 { margin: .5rem 0 .7rem; color: var(--blue-dark); font-size: clamp(1.35rem, 2.5vw, 1.9rem); }
.event-card p { max-width: 800px; margin: 0 0 1rem; color: var(--muted); line-height: 1.65; }
.article-page { max-width: 900px; padding: 5rem 0 6rem; }
.article-page h1 { margin: .7rem 0 1rem; color: var(--blue-dark); font-size: clamp(2.4rem, 5vw, 4.6rem); letter-spacing: -.05em; line-height: 1; }
.article-lead { margin: 1.5rem 0 0; color: var(--muted); font-size: 1.2rem; line-height: 1.65; }
.article-body { margin-top: 2.5rem; border-top: 1px solid var(--line); color: #303d4e; font-size: 1.05rem; line-height: 1.85; padding-top: 2.2rem; }
.article-body::after { content: ""; display: block; clear: both; }
.article-body p { margin: 0 0 1.15rem; }
.article-body h2, .article-body h3 { margin: 1.7rem 0 .7rem; color: var(--blue-dark); letter-spacing: -.025em; line-height: 1.2; }
.article-body h2 { font-size: clamp(1.45rem, 3vw, 2rem); }
.article-body h3 { font-size: clamp(1.2rem, 2.5vw, 1.55rem); }
.article-body ul, .article-body ol { margin: 0 0 1.25rem; padding-left: 1.5rem; }
.article-body li + li { margin-top: .3rem; }
.article-body a { color: var(--blue); font-weight: 750; text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .18em; }
.article-image { width: min(42%, 360px); float: left; margin: .15rem 1.6rem .75rem 0; overflow: hidden; border: 1px solid var(--line); border-radius: 1.15rem; background: var(--blue-pale); }
.article-image-button { width: 100%; display: block; margin: 0; border: 0; background: transparent; padding: 0; cursor: zoom-in; }
.article-image-button img { width: 100%; max-height: 420px; display: block; object-fit: contain; }
.article-image-button:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
.article-image figcaption { border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; font-weight: 700; line-height: 1.35; padding: .55rem .7rem; text-align: center; }
.image-lightbox { width: auto; max-width: min(94vw, 1200px); max-height: 94vh; margin: auto; overflow: visible; border: 0; border-radius: 1rem; background: #07111e; padding: 1rem; box-shadow: 0 28px 90px rgba(0,0,0,.58); }
.image-lightbox::backdrop { background: rgba(3,10,18,.86); backdrop-filter: blur(3px); }
.image-lightbox img { max-width: calc(94vw - 2rem); max-height: calc(94vh - 2rem); display: block; object-fit: contain; }
.lightbox-close { width: 2.65rem; height: 2.65rem; position: absolute; top: -.85rem; right: -.85rem; display: grid; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #07111e; color: #fff; cursor: pointer; font-size: 1.75rem; line-height: 1; }
.lightbox-close:focus-visible { outline: 3px solid #73b3ff; outline-offset: 2px; }
.contact-dialog { width: min(94vw, 760px); max-height: 92vh; margin: auto; overflow: hidden; border: 0; border-radius: 1.4rem; background: transparent; padding: 0; box-shadow: 0 28px 90px rgba(0,0,0,.42); }
.contact-dialog::backdrop { background: rgba(3,10,18,.78); backdrop-filter: blur(3px); }
.contact-dialog-shell { position: relative; max-height: 92vh; overflow-y: auto; border-radius: 1.4rem; background: #fff; }
.contact-dialog-form { border: 0; border-radius: 0; padding: clamp(1.3rem,4vw,2.2rem); }
.contact-dialog-close { width: 2.5rem; height: 2.5rem; position: absolute; top: .8rem; right: .8rem; z-index: 2; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--blue-pale); color: var(--blue-dark); cursor: pointer; font-size: 1.55rem; line-height: 1; }
.contact-dialog-actions { display: flex; justify-content: flex-end; gap: .7rem; }
.contact-dialog-actions .button { border: 0; cursor: pointer; }
.back-to-list { display: inline-block; margin-top: 2.5rem; color: var(--blue); font-weight: 800; }
.organization-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.organization-card { display: grid; grid-template-columns: 78px 1fr; gap: 1.2rem; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: clamp(1.25rem, 3vw, 2rem); }
.organization-card > div:last-child { min-width: 0; display: flex; flex-direction: column; }
.organization-mark { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 1.1rem; background: linear-gradient(145deg, var(--blue-dark), var(--blue)); color: #fff; font-size: 1.15rem; font-weight: 900; letter-spacing: .04em; }
.organization-mark.large { width: 110px; height: 110px; border-radius: 1.6rem; font-size: 1.8rem; }
.organization-mark.organization-logo { overflow: hidden; border: 1px solid var(--line); background: #fff; }
.organization-mark.organization-logo img { width: 100%; height: 100%; display: block; object-fit: contain; padding: .35rem; }
.organization-card h2 { margin: .5rem 0 .7rem; color: var(--blue-dark); font-size: 1.45rem; }
.organization-card p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.organization-card-actions { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin-top: auto; padding-top: 1.4rem; }
.organization-card-actions .text-button { margin-top: 0; padding-top: 0; }
.organization-card-actions .contact-link { color: var(--blue-dark); }
.organization-hero { display: grid; grid-template-columns: 110px 1fr; gap: 2rem; align-items: start; padding: 5.5rem 0 3rem; }
.organization-hero h1 { margin: .6rem 0 1rem; color: var(--blue-dark); font-size: clamp(2.5rem, 5vw, 4.4rem); letter-spacing: -.05em; line-height: 1; }
.organization-hero p { max-width: 780px; margin: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.75; }
.organization-details { display: grid; grid-template-columns: .8fr 1.2fr; gap: 1rem; padding-bottom: 4.5rem; }
.organization-contact, .organization-related { border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: clamp(1.3rem, 3vw, 2rem); }
.organization-contact h2, .organization-related h2 { margin: .5rem 0 1.2rem; color: var(--blue-dark); font-size: 1.65rem; }
.organization-contact dl { display: grid; gap: .7rem; margin: 0; }
.organization-contact dl div { display: grid; grid-template-columns: 145px 1fr; gap: 1rem; border-top: 1px solid var(--line); padding-top: .7rem; }
.organization-contact dt { color: var(--muted); font-size: .78rem; }
.organization-contact dd { margin: 0; color: var(--blue-dark); font-weight: 700; line-height: 1.5; }
.organization-contact a { color: var(--blue); }
.organization-contact .organization-contact-button { display: inline-flex; margin-top: 1.4rem; color: #fff; }
.council-contact-card .button { display: inline-flex; margin-top: 1.4rem; }
.council-page-sections { display: grid; gap: 1rem; padding-bottom: 5rem; }
.council-page-sections > .page-content { padding-bottom: 1rem; }
.council-page-sections .section-heading { margin-bottom: 1.4rem; }
.mini-empty { border-radius: 1rem; background: var(--blue-pale); color: var(--muted); padding: 1.2rem; line-height: 1.5; }
.organization-news { padding-bottom: 6rem; }
.flohmarkt-banner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 6rem; border-radius: 1.6rem; background: linear-gradient(145deg, var(--blue-dark), var(--blue)); color: #fff; padding: clamp(1.5rem, 4vw, 2.6rem); }
.flohmarkt-banner .kicker, .flohmarkt-hero .kicker { color: #cfe4fc; }
.flohmarkt-banner h2 { margin: .5rem 0 .7rem; color: #fff; font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
.flohmarkt-banner p { max-width: 680px; margin: 0; color: #e3effc; line-height: 1.6; }
.flohmarkt-banner-meta { min-width: 190px; display: grid; justify-items: end; gap: .25rem; }
.flohmarkt-banner-meta strong { font-size: 1.45rem; }
.flohmarkt-banner-meta .button { margin-top: .8rem; background: #fff; color: var(--blue-dark); }
.flohmarkt-hero { background: linear-gradient(145deg, var(--blue-dark), var(--blue)); color: #fff; padding: 5.5rem 0; }
.flohmarkt-hero h1 { max-width: 900px; margin: .7rem 0 1rem; font-size: clamp(2.7rem, 6vw, 5.4rem); letter-spacing: -.055em; line-height: .98; }
.flohmarkt-hero p { max-width: 760px; color: #e3effc; font-size: 1.12rem; line-height: 1.7; }
.flohmarkt-keyfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: .8rem; margin-top: 2rem; }
.flohmarkt-keyfacts div { border: 1px solid rgba(255,255,255,.2); border-radius: 1rem; background: rgba(255,255,255,.08); padding: 1rem; }
.flohmarkt-keyfacts span, .flohmarkt-keyfacts strong { display: block; }
.flohmarkt-keyfacts span { color: #cfe4fc; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.flohmarkt-keyfacts strong { margin-top: .35rem; font-size: 1.15rem; }
.countdown { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; border-radius: 1rem; background: #fff; color: var(--blue-dark); padding: 1rem 1.2rem; }
.countdown > span { font-weight: 800; }
.countdown > div { display: grid; grid-template-columns: auto auto auto auto auto auto; align-items: baseline; gap: .35rem; }
.countdown strong { color: var(--blue); font-size: 1.5rem; }
.countdown small { color: var(--muted); }
.flohmarkt-content { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1rem; padding: 4.5rem 0 6rem; }
.flohmarkt-content article, .flohmarkt-content aside { border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: clamp(1.4rem, 4vw, 2.5rem); }
.flohmarkt-content h2 { margin: .5rem 0 1rem; color: var(--blue-dark); font-size: 2rem; }
.flohmarkt-content p { color: var(--muted); line-height: 1.75; }
.flohmarkt-contact { display: block; }
.flohmarkt-team-section { padding-bottom: 6rem; }
.flohmarkt-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.flohmarkt-team-card { display: flex; align-items: center; gap: 1.1rem; border: 1px solid var(--line); border-radius: 1.3rem; background: #fff; padding: 1rem; }
.flohmarkt-team-photo, .flohmarkt-team-placeholder { width: 96px; height: 96px; flex: 0 0 96px; border-radius: 1rem; }
.flohmarkt-team-photo { object-fit: cover; }
.flohmarkt-team-placeholder { display: grid; place-items: center; background: linear-gradient(145deg, var(--blue-dark), var(--blue)); color: #fff; font-size: 1.4rem; font-weight: 900; }
.flohmarkt-team-card span { color: var(--blue); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.flohmarkt-team-card h3 { margin: .3rem 0 0; color: var(--blue-dark); font-size: 1.35rem; }
.dedicated-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.dedicated-team-card { min-width: 0; display: grid; grid-template-columns: 150px 1fr; gap: 1.4rem; align-items: start; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; box-shadow: var(--shadow); padding: 1.2rem; }
.dedicated-team-photo, .dedicated-team-placeholder { width: 150px; height: 180px; max-width: 100%; max-height: 180px; border-radius: 1rem; }
.dedicated-team-photo { display: block; object-fit: cover; }
.dedicated-team-placeholder { display: grid; place-items: center; background: linear-gradient(145deg, var(--blue-dark), var(--blue)); color: #fff; font-size: 2rem; font-weight: 900; }
.dedicated-team-card h2 { margin: .45rem 0 .75rem; color: var(--blue-dark); font-size: 1.7rem; }
.dedicated-team-card p { margin: 0; color: var(--muted); line-height: 1.7; }
.portal-team-section { display: grid; gap: 3rem; }
.portal-team-lead { display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: clamp(1.5rem,5vw,4rem); align-items: center; border: 1px solid var(--line); border-radius: 1.7rem; background: linear-gradient(145deg,#fff,#f2f7fd); box-shadow: var(--shadow); padding: clamp(1.2rem,4vw,2.4rem); }
.portal-team-lead-photo, .portal-team-lead-placeholder { width: 100%; height: 400px; max-width: 320px; max-height: 400px; aspect-ratio: 4 / 5; border-radius: 1.3rem; }
.portal-team-lead-photo { display: block; object-fit: cover; }
.portal-team-lead-placeholder { display: grid; place-items: center; background: linear-gradient(145deg,var(--blue-dark),var(--blue)); color: #fff; font-size: clamp(2.4rem,7vw,4.5rem); font-weight: 900; }
.portal-team-lead h2 { margin: .6rem 0 1rem; color: var(--blue-dark); font-size: clamp(2.2rem,5vw,4rem); letter-spacing: -.045em; line-height: 1; }
.portal-team-lead p { max-width: 680px; margin: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.75; }
.portal-team-heading { margin-bottom: -2rem; }
.portal-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.portal-team-card { display: grid; grid-template-columns: 110px 1fr; gap: 1.2rem; align-items: start; border: 1px solid var(--line); border-radius: 1.3rem; background: #fff; padding: 1rem; }
.portal-team-photo, .portal-team-placeholder { width: 110px; height: 130px; max-width: 100%; max-height: 130px; border-radius: .9rem; }
.portal-team-photo { display: block; object-fit: cover; }
.portal-team-placeholder { display: grid; place-items: center; background: linear-gradient(145deg,var(--blue-dark),var(--blue)); color: #fff; font-size: 1.45rem; font-weight: 900; }
.portal-team-card h3 { margin: .35rem 0 .65rem; color: var(--blue-dark); font-size: 1.4rem; }
.portal-team-card p { margin: 0; color: var(--muted); line-height: 1.6; }
.portal-team-card small { display: block; margin-top: .8rem; color: var(--blue); font-weight: 750; line-height: 1.4; }
.registration-closed { border-radius: .9rem; background: var(--blue-pale); color: var(--muted); padding: 1rem; }
.registration-availability { margin: 0 0 1rem; border: 1px solid #b9e1cb; border-radius: .9rem; background: #e8f6ef; color: #0c6039; font-weight: 750; padding: .9rem 1rem; line-height: 1.45; }
.registration-availability.full { border-color: #d7c4ee; background: #f4eeff; color: #65409a; }
.flohmarkt-content .registration-availability { margin-top: 1rem; }
.stand-list-section { padding-bottom: 6rem; }
.stand-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.stand-card { display: flex; flex-direction: column; min-height: 250px; border: 1px solid var(--line); border-radius: 1.3rem; background: #fff; padding: 1.4rem; }
.stand-number { width: fit-content; border-radius: 999px; background: var(--blue-soft); color: var(--blue); font-size: .72rem; font-weight: 850; padding: .4rem .6rem; }
.stand-card h3 { margin: .9rem 0 .6rem; color: var(--blue-dark); font-size: 1.35rem; }
.stand-card > p { margin: 0; color: var(--muted); line-height: 1.55; }
.stand-tags, .stand-extras { display: flex; flex-wrap: wrap; gap: .4rem; }
.stand-tags { margin-top: 1rem; }
.stand-tags span { border-radius: 999px; background: var(--blue-pale); color: var(--blue-dark); font-size: .72rem; font-weight: 750; padding: .42rem .6rem; }
.stand-extras { margin-top: auto; padding-top: 1.2rem; }
.stand-extras span { color: var(--muted); font-size: .75rem; font-weight: 700; }
.flohmarkt-map-section { padding-bottom: 6rem; }
.map-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 1rem; align-items: start; }
.leaflet-map-shell { min-width: 0; }
.public-leaflet-map { min-height: 520px; overflow: hidden; border: 1px solid var(--line); border-radius: 1.4rem; background: linear-gradient(145deg,#edf4ff,#f8fbff); box-shadow: var(--shadow); }
.map-consent { min-height: 520px; display: grid; place-content: center; justify-items: start; gap: .85rem; padding: clamp(1.5rem,5vw,4rem); }
.map-consent strong { color: var(--blue-dark); font-size: clamp(1.35rem,3vw,2rem); }
.map-consent p { max-width: 580px; margin: 0; color: var(--muted); line-height: 1.65; }
.map-load-error { border-radius: .8rem; background: #fff0f2; color: #8c1e2a; padding: .8rem 1rem; }
.leaflet-marker-wrapper { background: transparent; border: 0; }
.leaflet-map-marker { width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 5px 13px rgba(0,37,86,.32); color: #fff; font-size: .72rem; font-weight: 900; line-height: 1; }
.leaflet-map-marker.stand { background: var(--blue); }
.leaflet-map-marker.parking { background: #147a42; }
.leaflet-map-marker.landmark { background: #7857a7; }
.leaflet-popup-content strong { display: block; color: var(--blue-dark); font-size: .9rem; }
.leaflet-popup-content p { margin: .35rem 0 0; color: var(--muted); line-height: 1.4; }
.map-directory { max-height: 680px; display: grid; gap: .65rem; overflow-y: auto; padding-right: .2rem; }
.map-legend { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: .65rem; border: 1px solid var(--line); border-radius: 1rem; background: rgba(255,255,255,.96); padding: .8rem; }
.map-legend span { display: inline-flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .72rem; font-weight: 750; }
.legend-pin { width: 1.35rem; height: 1.35rem; display: inline-grid; place-items: center; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 2px 5px rgba(0,37,86,.18); color: #fff; font-size: .62rem; font-style: normal; }
.legend-pin.stand { background: var(--blue); }
.legend-pin.parking { background: #147a42; }
.legend-pin.landmark { background: #7857a7; }
.map-detail-card { border: 1px solid var(--line); border-radius: 1rem; background: #fff; padding: 1rem; outline: 0; transition: .16s ease; }
.map-detail-card.active { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,74,173,.11); }
.map-detail-card h3 { margin: .65rem 0 .4rem; color: var(--blue-dark); font-size: 1.05rem; }
.map-detail-card p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.map-directory-empty { border: 1px dashed #b9ccdf; border-radius: 1rem; color: var(--muted); padding: 1rem; text-align: center; }
.public-alerts { padding-top: 1rem; }
.public-alert { border: 1px solid transparent; border-radius: .9rem; padding: .9rem 1rem; line-height: 1.5; }
.public-alert + .public-alert { margin-top: .5rem; }
.public-alert.success { border-color: #b9e1cb; background: #e8f6ef; color: #0c6039; }
.public-alert.error { border-color: #efc3c9; background: #fff0f2; color: #8c1e2a; }
.registration-page { max-width: 920px; padding-bottom: 6rem; }
.registration-summary, .public-form { border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: clamp(1.4rem, 4vw, 2.4rem); }
.registration-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1rem; }
.registration-summary > div > strong { display: block; margin-top: .35rem; color: var(--blue-dark); font-size: 1.4rem; }
.registration-summary .summary-status { font-size: 1rem; }
.registration-summary > h2, .registration-summary > p, .registration-summary > a { grid-column: 1 / -1; }
.registration-summary > h2 { margin: .4rem 0 0; color: var(--blue-dark); }
.review-message, .private-link-box, .payment-box { grid-column: 1 / -1; border-radius: 1rem; background: var(--blue-pale); color: var(--muted); padding: 1rem; line-height: 1.55; }
.waitlist-message { grid-column: 1 / -1; margin: 0; border-radius: 1rem; background: #f4eeff; color: #65409a; padding: 1rem; line-height: 1.55; }
.review-message { border-left: 4px solid var(--blue); margin: 0; }
.private-link-box label { display: block; margin-bottom: .5rem; color: var(--blue-dark); font-size: .82rem; font-weight: 800; }
.private-link-box > div { display: flex; gap: .5rem; }
.private-link-box input { min-width: 0; flex: 1; border: 1px solid #cbd8e6; border-radius: .75rem; background: #fff; padding: .75rem; }
.private-link-box button { border: 0; border-radius: 999px; background: var(--blue); color: #fff; font-weight: 800; padding: .7rem 1rem; cursor: pointer; }
.private-link-box small { display: block; margin-top: .55rem; }
.payment-box p { margin: 0 0 .6rem; }
.payment-box > strong { display: block; color: var(--blue-dark); }
.payment-box .button { margin-top: 1rem; }
.payment-box.payment-complete { border: 1px solid #b9e1cb; background: #e8f6ef; color: #0c6039; }
.payment-box.payment-complete > strong { color: #0c6039; }
.payment-box.payment-complete p, .payment-box.payment-waived p { margin: .35rem 0 0; }
.public-form { display: grid; gap: 1rem; }
.form-section { display: grid; gap: 1rem; border-bottom: 1px solid var(--line); padding-bottom: 1.5rem; }
.form-section h2 { margin: -.4rem 0 0; color: var(--blue-dark); font-size: 1.7rem; }
.form-section > p { margin: -.5rem 0 0; color: var(--muted); line-height: 1.5; }
.public-form label { display: grid; gap: .45rem; color: var(--blue-dark); font-size: .86rem; font-weight: 750; }
.public-form input, .public-form select, .public-form textarea { width: 100%; border: 1px solid #cbd8e6; border-radius: .85rem; background: #fff; color: var(--ink); font: inherit; outline: 0; padding: .82rem .9rem; }
.public-form input:focus, .public-form select:focus, .public-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,74,173,.12); }
.public-form textarea { resize: vertical; line-height: 1.5; }
.public-form small { color: var(--muted); font-size: .75rem; font-weight: 500; }
.form-heading { border-bottom: 1px solid var(--line); padding-bottom: 1rem; }
.form-heading h2 { margin: .35rem 0 .45rem; color: var(--blue-dark); font-size: clamp(1.55rem,3vw,2.1rem); }
.form-heading p { margin: 0; color: var(--muted); line-height: 1.55; }
.public-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.public-form fieldset { margin: 0; border: 0; padding: 0; }
.public-form legend { margin-bottom: .6rem; color: var(--blue-dark); font-size: .86rem; font-weight: 750; }
.choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; }
.choice-grid label { display: flex; align-items: center; gap: .55rem; border: 1px solid var(--line); border-radius: .85rem; background: var(--blue-pale); padding: .75rem; }
.choice-grid input, .consent-box input { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin: 0; }
.consent-box { display: flex !important; align-items: flex-start; gap: .7rem !important; border-radius: 1rem; background: var(--blue-pale); padding: 1rem; line-height: 1.5; }
.consent-box a { color: var(--blue); font-weight: 850; text-decoration: underline; }
.terms-consent { border: 1px solid #bfd2ea; }
.terms-consent-card { display: grid; gap: .9rem; margin: 0 0 1rem; border: 1px solid #bfd2ea; border-radius: 1.4rem; background: #f3f7fc; padding: clamp(1.3rem,4vw,2rem); }
.terms-consent-card h2, .terms-consent-card p { margin: 0; }
.terms-consent-card h2 { color: var(--blue-dark); }
.terms-consent-card p { color: var(--muted); line-height: 1.55; }
.terms-consent-card .button { justify-self: start; }
.summary-status.terms-current { color: #12633c; }
.summary-status.terms-outdated, .summary-status.terms-missing { color: #9a5d00; }
.rules-link-card { display: grid; gap: .2rem; margin: 1rem 0; border: 1px solid #bfd2ea; border-radius: 1rem; background: var(--blue-pale); color: var(--blue-dark); padding: 1rem; }
.rules-link-card span { color: var(--blue); font-size: .82rem; font-weight: 800; }
.legal-page { max-width: 980px; padding-bottom: 6rem; }
.legal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.legal-meta > div { min-width: 170px; display: grid; gap: .2rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; padding: .85rem 1rem; }
.legal-meta span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.legal-meta strong { color: var(--blue-dark); }
.legal-meta .button { margin-left: auto; }
.legal-document { display: grid; gap: 1rem; }
.legal-document > section { border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: clamp(1.4rem,4vw,2.4rem); }
.legal-document h2 { margin: .45rem 0 1rem; color: var(--blue-dark); font-size: clamp(1.7rem,4vw,2.3rem); }
.legal-copy { color: #344255; line-height: 1.75; }
.about-document { max-width: 900px; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; box-shadow: var(--shadow); padding: clamp(1.4rem,4vw,2.6rem); }
.about-copy { color: #344255; font-size: 1.05rem; line-height: 1.8; }
.about-copy h2 { margin: 2rem 0 .8rem; color: var(--blue-dark); font-size: clamp(1.45rem,3vw,2rem); letter-spacing: -.025em; line-height: 1.2; }
.about-copy h2:first-child { margin-top: 0; }
.about-copy h3 { margin: 1.5rem 0 .6rem; color: var(--blue-dark); font-size: 1.2rem; }
.about-copy p { margin: 0 0 1.1rem; }
.about-copy ul, .about-copy ol { margin: 0 0 1.1rem; padding-left: 1.5rem; }
.about-copy a { color: var(--blue); font-weight: 750; text-decoration: underline; text-underline-offset: .18em; }
.rich-legal-copy h2 { margin: 2rem 0 .8rem; color: var(--blue-dark); font-size: clamp(1.35rem,3vw,1.8rem); }
.rich-legal-copy h2:first-child { margin-top: 0; }
.rich-legal-copy h3 { margin: 1.5rem 0 .6rem; color: var(--blue-dark); font-size: 1.15rem; }
.rich-legal-copy p { margin: 0 0 1rem; }
.rich-legal-copy ul, .rich-legal-copy ol { margin: 0 0 1rem; padding-left: 1.4rem; }
.rich-legal-copy a { color: var(--blue); font-weight: 750; }
.legal-contact-note { margin: 1rem 0; border-radius: 1rem; background: var(--blue-pale); color: var(--muted); padding: 1rem; }
.legal-contact-note a { color: var(--blue); font-weight: 800; }
.registration-form > .button { justify-self: start; }
.cancel-registration-form { margin-top: 1rem; text-align: right; }
.cancel-registration-form button { border: 0; background: transparent; color: #9a2733; font: inherit; font-size: .82rem; font-weight: 800; text-decoration: underline; cursor: pointer; }
.honey-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.ticket-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(270px,.42fr); gap: 1rem; align-items: start; padding-bottom: 6rem; }
.ticket-side-card { position: sticky; top: 7rem; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; padding: clamp(1.3rem,3vw,2rem); }
.ticket-side-card h2 { margin: .45rem 0 .7rem; color: var(--blue-dark); }
.ticket-side-card p { margin: 0 0 1.2rem; color: var(--muted); line-height: 1.6; }
.ticket-page { max-width: 980px; padding: 5rem 0 6rem; }
.ticket-public-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; }
.ticket-public-header h1 { margin: .55rem 0 .65rem; color: var(--blue-dark); font-size: clamp(2rem,5vw,3.8rem); letter-spacing: -.045em; line-height: 1.05; }
.ticket-public-header p { margin: 0; color: var(--muted); }
.ticket-status { flex: 0 0 auto; border-radius: 999px; background: var(--blue-soft); color: var(--blue); font-size: .78rem; font-weight: 850; padding: .55rem .8rem; }
.ticket-status.completed { background: #e8f6ef; color: #12633c; }
.ticket-status.closed, .ticket-status.rejected { background: #eef1f4; color: #566171; }
.ticket-status.waiting, .ticket-status.activation_pending { background: #fff4d8; color: #815b00; }
.ticket-meta { display: grid; grid-template-columns: repeat(auto-fit,minmax(155px,1fr)); gap: .7rem; margin: 1rem 0 2rem; }
.ticket-meta div { border: 1px solid var(--line); border-radius: 1rem; background: #fff; padding: .9rem 1rem; }
.ticket-meta span { display: block; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ticket-meta strong { display: block; margin-top: .25rem; color: var(--blue-dark); font-size: .9rem; }
.ticket-conversation { margin-top: 2rem; }
.ticket-message { max-width: 85%; margin-bottom: .8rem; border: 1px solid var(--line); border-radius: 1.15rem; background: #fff; padding: 1rem 1.1rem; }
.ticket-message.staff, .ticket-message.system { margin-left: auto; background: var(--blue-pale); }
.ticket-message > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; color: var(--blue-dark); font-size: .78rem; }
.ticket-message time { color: var(--muted); font-weight: 500; }
.ticket-message p { margin: .65rem 0 0; color: #344255; line-height: 1.65; }
.ticket-reply-form { margin-top: 1.5rem; }
.activation-form, .access-request-form { max-width: 840px; margin: 0 auto; }
.site-footer { border-top: 1px solid var(--line); background: #fff; padding: 3rem 0 7rem; }
.footer-inner { display: grid; grid-template-columns: 230px 1fr auto; align-items: center; gap: 2rem; }
.footer-inner img { width: 220px; height: auto; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; color: #465365; font-size: .86rem; font-weight: 700; }
.footer-inner > p { margin: 0; color: var(--muted); font-size: .82rem; }
.mobile-nav { position: fixed; bottom: .65rem; left: 50%; z-index: 40; width: min(560px,calc(100% - 1rem)); display: none; grid-template-columns: repeat(5,1fr); border: 1px solid rgba(219,229,240,.95); border-radius: 1.25rem; background: rgba(255,255,255,.96); box-shadow: 0 12px 32px rgba(0,37,86,.16); padding: .45rem; transform: translateX(-50%); backdrop-filter: blur(18px); }
.mobile-nav a { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: .25rem; border-radius: .85rem; color: #596779; font-size: .65rem; font-weight: 750; padding: .5rem .1rem; }
.mobile-nav a.active { background: var(--blue-pale); color: var(--blue); }
.mobile-nav-dot { width: .42rem; height: .42rem; border-radius: 50%; background: currentColor; }
@media (max-width: 980px) {
  .header-inner { grid-template-columns: 220px 1fr; }
  .desktop-nav { display: none; }
  .header-action { justify-self: end; }
  .hero { grid-template-columns: 1fr; gap: 3rem; padding: 4.5rem 0 5rem; }
  .hero-copy { max-width: 760px; }
  .hero-panel { max-width: 680px; }
  .three-columns, .news-grid, .stand-grid { grid-template-columns: 1fr 1fr; }
  .organization-details { grid-template-columns: 1fr; }
  .flohmarkt-content { grid-template-columns: 1fr; }
  .map-layout { grid-template-columns: 1fr; }
  .map-directory { max-height: none; grid-template-columns: repeat(2, 1fr); overflow: visible; }
  .map-legend { grid-column: 1 / -1; }
  .footer-inner { grid-template-columns: 1fr; justify-items: start; }
  .footer-links { justify-content: start; }
  .dedicated-team-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .section-wrap, .header-inner { width: min(100% - 24px,1180px); }
  .site-header { position: relative; }
  .header-inner { min-height: 74px; display: flex; }
  .brand img { width: 205px; }
  .header-action { display: none; }
  .hero { padding: 3.5rem 0 4.2rem; }
  .hero-copy h1 { font-size: clamp(2.45rem,12vw,3.7rem); }
  .hero-actions .button { width: 100%; }
  .section-heading { align-items: start; flex-direction: column; gap: .8rem; }
  .three-columns, .two-columns, .news-grid, .split-section, .public-news-grid, .organization-grid, .stand-grid, .flohmarkt-team-grid, .portal-team-grid, .public-form-row, .choice-grid, .registration-summary, .ticket-layout, .ticket-meta { grid-template-columns: 1fr; }
  .news-card-image { height: 220px; flex-basis: 220px; }
  .public-card-image { height: 240px; flex-basis: 240px; }
  .portal-team-lead { grid-template-columns: 1fr; }
  .portal-team-lead-photo, .portal-team-lead-placeholder { width: min(100%,320px); height: min(calc((100vw - 48px) * 1.25),400px); }
  .dedicated-team-card { grid-template-columns: 105px 1fr; }
  .dedicated-team-photo, .dedicated-team-placeholder { width: 105px; height: 130px; }
  .portal-team-card { grid-template-columns: 86px 1fr; }
  .portal-team-photo, .portal-team-placeholder { width: 86px; height: 105px; }
  .compact-events article { grid-template-columns: 1fr; gap: .25rem; }
  .event-card { grid-template-columns: 68px minmax(0,1fr); gap: 1rem; }
  .event-date { width: 68px; height: 68px; grid-column: 1; grid-row: 1; }
  .event-card-content, .event-date + .event-card-content { grid-column: 2; grid-row: 1; }
  .event-image-button { width: 100%; height: 220px; grid-column: 1 / -1; grid-row: 2; }
  .article-image { width: 100%; max-width: 520px; float: none; margin: .15rem auto 1.3rem; }
  .organization-hero { grid-template-columns: 1fr; gap: 1.2rem; }
  .organization-mark.large { width: 86px; height: 86px; }
  .organization-contact dl div { grid-template-columns: 1fr; gap: .25rem; }
  .flohmarkt-banner { align-items: stretch; flex-direction: column; }
  .flohmarkt-banner-meta { justify-items: start; }
  .flohmarkt-keyfacts { grid-template-columns: 1fr; }
  .countdown { align-items: start; flex-direction: column; }
  .private-link-box > div { align-items: stretch; flex-direction: column; }
  .ticket-side-card { position: static; }
  .ticket-public-header { flex-direction: column; }
  .ticket-message { max-width: 100%; }
  .map-directory { grid-template-columns: 1fr; }
  .feature-card { min-height: 215px; }
  .news-section { padding: 4.5rem 0; }
  .split-section { padding: 4.5rem 0; }
  .submit-banner { align-items: stretch; flex-direction: column; margin-bottom: 4.5rem; }
  .footer-inner img { width: 210px; }
  .mobile-nav { display: grid; }
}
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --blue: #73b3ff;
    --blue-dark: #e8f2ff;
    --blue-soft: #173554;
    --blue-pale: #10243a;
    --ink: #edf4fc;
    --muted: #b7c4d3;
    --line: #30445d;
    --page: #07111e;
    --white: #111e2d;
    --shadow: 0 20px 55px rgba(0,0,0,.34);
  }
  html, body { background: var(--page) !important; color: var(--ink) !important; }
  input, select, textarea, button { color-scheme: dark; }
  .site-header { border-color: #dbe5f0; background: #fff; }
  .desktop-nav a { color: #465365; }
  .status-row, .footer-links, .footer-inner > p, .mobile-nav a { color: var(--muted); }
  .status-row.notice-urgent { color: #ffc1c8; }
  .desktop-nav a:hover, .desktop-nav a:focus-visible, .desktop-nav a.active { background: #eaf2fb; color: #004aad; }
  .hero-panel, .feature-card, .calendar-panel, .submit-banner, .content-empty, .public-news-card, .event-card, .organization-card, .organization-contact, .organization-related, .flohmarkt-content article, .flohmarkt-content aside, .flohmarkt-team-card, .dedicated-team-card, .portal-team-card, .stand-card, .registration-summary, .public-form, .terms-consent-card, .legal-meta > div, .legal-document > section, .about-document, .site-footer, .map-detail-card, .map-legend, .ticket-side-card, .ticket-meta div, .ticket-message, .contact-dialog-shell { background-color: var(--white); }
  .portal-team-lead { background: linear-gradient(145deg,#111e2d,#10243a); }
  .today-card, .news-section, .council-panel, .flohmarkt-banner, .flohmarkt-hero { background: linear-gradient(145deg,#071a32,#0b4b8a); }
  .news-card { background: linear-gradient(155deg,rgba(255,255,255,.12),rgba(255,255,255,.04)); }
  .large-empty { background: linear-gradient(145deg,#0b4f92,#082c50); }
  .button.primary, .private-link-box button { background: #126dca; color: #fff; }
  .button.secondary { border-color: var(--line); background: #162538; color: var(--ink); }
  .button.on-blue { background: #fff; color: #002556; }
  .flohmarkt-banner-meta .button { background: #fff; color: #002556; }
  .countdown { background: var(--white); color: var(--ink); }
  .article-body, .legal-copy, .about-copy { color: #d3deea; }
  .ticket-message p { color: #d3deea; }
  .ticket-status.completed { background: #102c22; color: #9ee6bf; }
  .ticket-status.closed, .ticket-status.rejected { background: #1b2a3c; color: #c5d1df; }
  .ticket-status.waiting, .ticket-status.activation_pending { background: #342b16; color: #f3d88d; }
  input, select, textarea, option { border-color: #3c526b !important; background-color: #0d1a29 !important; color: #edf4fc !important; -webkit-text-fill-color: #edf4fc; }
  input::placeholder, textarea::placeholder { color: #8fa0b4; opacity: 1; }
  .choice-grid label, .consent-box, .review-message, .private-link-box, .payment-box, .rules-link-card, .registration-closed, .mini-empty { background: var(--blue-pale); }
  .public-alert.success, .registration-availability { border-color: #29684a; background: #102c22; color: #b7ebcf; }
  .payment-box.payment-complete { border-color: #29684a; background: #102c22; color: #b7ebcf; }
  .payment-box.payment-complete > strong { color: #b7ebcf; }
  .public-alert.error { border-color: #713b43; background: #35171d; color: #ffc1c8; }
  .registration-availability.full, .waitlist-message { border-color: #554274; background: #241c35; color: #d9c7f5; }
  .mobile-nav { border-color: var(--line); background: rgba(14,27,43,.97); box-shadow: 0 12px 32px rgba(0,0,0,.4); }
  .organization-mark:not(.organization-logo) { background: linear-gradient(145deg,#0b345e,#126dca); color: #fff; }
  .leaflet-map-shell, .public-leaflet-map, .map-consent { background: #10243a; }
  .leaflet-popup-content-wrapper, .leaflet-popup-tip { background: var(--white); color: var(--ink); }
  .leaflet-popup-content p { color: var(--muted); }
  .brand, .brand img, .footer-inner img, .organization-logo { background-color: #fff !important; filter: none !important; opacity: 1 !important; mix-blend-mode: normal !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
@media print {
  :root { color-scheme: light; --blue: #004aad; --blue-dark: #002556; --blue-soft: #eaf2fb; --blue-pale: #f4f8fd; --ink: #18212f; --muted: #5f6b7a; --line: #dbe5f0; --page: #fff; --white: #fff; }
  .site-header, .site-footer, .mobile-nav, .public-alerts, .legal-page .back-to-list, [data-print-page], .image-lightbox, .contact-dialog { display: none !important; }
  .legal-page-hero { padding: 1rem 0; }
  .legal-page { width: 100%; max-width: none; padding: 0; }
  .legal-document > section { break-inside: avoid; border-color: #bbb; box-shadow: none; }
  body { background: #fff !important; color: #18212f !important; }
}
