/* Gemeinsames Erscheinungsbild ab 3.12.0.
 * Wird nach style.css geladen. Layout, Schrift und Farbe sind hier gebündelt;
 * Datenzustände und Interaktionen bleiben in den bestehenden Templates.
 */
:root {
  --paper: #ffffff;
  --navy-soft: #f2f4f8;
  --container: 1168px;
  --pad: clamp(20px, 4vw, 56px);
}

body { font-size: 1rem; background: var(--white); overflow-wrap: anywhere; }
.hro-grid > *, .join-grid > *, .dc-head > *, .dc-news-row > *,
.footer-main > *, .footer-navigation > *, .contact-main > *,
.contact-directory__item > *, .contact-directory__body { min-width: 0; }
h1, h2, h3 { hyphens: auto; overflow-wrap: anywhere; }
.site-header { background: var(--white); }
.mobile-nav { transition: none; }
.site-main { overflow: visible; }
.notice-banner p, .alert-banner p { min-width: 0; overflow-wrap: anywhere; }
.hro {
  background: var(--white);
  border: 0;
  padding: clamp(28px, 3vw, 40px) 0;
}
.hro-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
  gap: clamp(28px, 4vw, 64px);
  background: transparent;
}
.hro-text { padding: 0; }
.hro-text::before, .dc-h2::before { content: none; }
.hro-title {
  margin-bottom: 24px;
  color: var(--ink);
  font-size: clamp(2rem, 2.85vw, 2.625rem);
  line-height: 1.12;
  letter-spacing: -0.035em;
  hyphens: auto;
  overflow-wrap: anywhere;
  text-wrap: initial;
}
.hro-title-tail { white-space: normal; }
.hro-lead {
  color: #434750;
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.65;
  max-width: 48ch;
  margin-bottom: 24px;
}
.hro-cta {
  color: var(--ink);
  background: var(--white);
  border-color: var(--line-dark);
  border-radius: 3px;
  font-family: var(--sans);
}
.hro-cta:hover { color: var(--ink); background: #f5f5f5; border-color: var(--muted); }
.hro :focus-visible { outline-color: var(--navy); }
.hro-photo { align-self: center; background: #f3f4f5; }
.hro-photo img { display: block; aspect-ratio: auto; }
.hro-cap {
  padding: 10px 14px;
  color: var(--muted);
  font: 400 .875rem/1.5 var(--sans);
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
}

/* Navigation uses quiet surface states instead of green decorative bars. */
.nav-link::after { content: none; }
.nav-link:hover, .nav-link[aria-current="page"],
.current-menu-item > .nav-link, .current-menu-ancestor > .nav-link {
  font-weight: 500;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}
.nav-main .sub-menu { box-shadow: 0 6px 18px rgb(23 25 31 / 6%); }
.nav-main .sub-menu a { display: flex; align-items: center; min-height: 44px; }
.nav-main .sub-menu a:hover,
.nav-main .sub-menu .current-menu-item > a,
.nav-main .sub-menu a[aria-current="page"] {
  color: var(--ink); background: #f3f4f5; box-shadow: none;
}
.nav-main .sub-menu .current-menu-item > a,
.nav-main .sub-menu a[aria-current="page"] { font-weight: 600; }
.mobile-group-items a { border-left: 0; }
.mobile-group-items a:hover, .mobile-group-items a[aria-current="page"] {
  color: var(--ink); background: #f3f4f5; border-left: 0;
}
.mobile-group-items a[aria-current="page"] { font-weight: 600; }
.nav-search-hit-arrow { color: var(--muted); }

/* Office, meeting and contact details share one aligned row. */
.sbar { background: var(--white); border: 0; }
.sbar-grid { border-block: 1px solid var(--line); grid-template-columns: minmax(0, .85fr) minmax(0, 1.3fr) minmax(0, .85fr); }
.sbar-cell { padding: 20px 24px; border: 0; min-width: 0; min-height: 0; align-items: flex-start; }
.sbar-cell:first-child { padding-left: 0; }
.sbar-cell:last-child { padding-right: 0; }
.sbar-cell::before, .sbar-cell::after { content: none !important; }
.sbar-key { font: 400 .875rem/1.4 var(--sans); text-transform: none; letter-spacing: 0; }
.sbar-val { font-size: 1.0625rem; line-height: 1.45; }
.front-editorial { --section-gap: clamp(28px, 3vw, 40px); padding: var(--section-gap) 0; }
.dc-sec, .dc-sec--end { padding: 0; }
.dc-sec + .dc-sec { border: 0; margin-top: 28px; }
.front-editorial .dc-sec:not(#direktzugriff) > .container {
  padding-top: 28px;
}
.front-editorial .dc-sec:last-child:not(#direktzugriff) > .container {
  padding-bottom: 28px;
}
.dc-h2 { padding-top: 0; font-size: clamp(1.5rem, 2.1vw, 1.75rem); line-height: 1.2; }
.dc-head { margin-bottom: 20px; }
#direktzugriff { padding: 0; }
.dir-h2 { font-size: 1rem; letter-spacing: 0; margin-bottom: 12px; color: var(--muted); }
.dir-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  gap: 0 24px; background: transparent; border: 0;
}
.dir-cell, .dir-cell:last-child:nth-child(3n + 2), .dir-cell:last-child:nth-child(odd) {
  min-width: 0; min-height: 56px; grid-column: auto;
  flex-direction: row; align-items: center; justify-content: flex-start;
  gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line);
  background: transparent;
}
.dir-cell:hover { background: var(--navy-soft); }
.dir-icon { width: 26px; height: 26px; flex: 0 0 26px; }
.dir-icon img { width: 26px; height: 26px; }
.dir-label { font-size: 1rem; overflow-wrap: anywhere; }
.exh-description { max-width: 56ch; }
.exh-title { font-size: 1.125rem; }
.exh--active { gap: 32px; }
.exh--active .exh-hours { border-left: 1px solid var(--line); padding-left: 32px; }
.exh-details > div {
  display: grid; grid-template-columns: minmax(0, 12rem) minmax(0, 1fr);
  gap: 4px 16px; margin-top: 8px;
}
.exh-links { flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 20px; }
.exh-secondary-links { display: flex; flex-wrap: wrap; gap: 0 20px; min-width: 0; max-width: 100%; }
.exh-links .btn-navy { margin-block: 0; }
.exh-secondary-links a { max-width: 100%; }

.dc-lnk, .dc-more, .join-cta-link { text-decoration-color: currentColor; text-decoration-thickness: 1px; min-height: 44px; }
.event-editorial { border-color: var(--line); border-radius: 4px; }
.event-editorial__title { letter-spacing: -.025em; }
.dc-news { border-top: 1px solid var(--line); }
.dc-news-feat-meta, .dc-news-meta, .dc-news-date, .dc-news-cat {
  font-family: var(--sans); font-size: .875rem; text-transform: none; letter-spacing: 0;
}
.join { padding: clamp(36px, 4vw, 56px) 0; background: var(--navy-soft); border: 0; }
.join-title { font-size: clamp(1.75rem, 2.8vw, 2.25rem); line-height: 1.15; margin-bottom: 20px; }
.join-lead { color: var(--ink); font-family: var(--sans); font-size: 1.125rem; }
.join-kicker, .join-fact dt { font: 500 .875rem/1.5 var(--sans); text-transform: none; letter-spacing: 0; color: var(--muted); }

/* The same typography carries through the representative reading/contact pages. */
.breadcrumb, .footer-col-heading, .footer-copy, .footer-legal,
.nav-search-hit-kicker, .nav-search-panel-head, .reading-related-title,
.reading-post-nav-direction, .examen-priority__eyebrow,
.examen-priority__timeline > h2, .examen-priority__hours-head h2,
.examen-contact-strip__item dt, .form-section-title, .chips-label, .cal-label,
.sitzung-row-label, .lage-label, .person-tag, .reading-meta, .entry-content figcaption {
  font-size: .875rem; letter-spacing: 0; text-transform: none; font-family: var(--sans);
}
.examen-h2 { border-top: 0; padding-top: 0; }
.cal-btn { font-size: .875rem; min-height: 44px; }
.channel-label { font: 500 .875rem/1.5 var(--sans); text-transform: none; letter-spacing: 0; }
.contact-directory__action { max-width: 100%; min-width: 0; min-height: 44px; }
.page-hero { background: var(--navy-soft); }
.page-title { overflow-wrap: anywhere; hyphens: auto; }
.footer-contacts a { overflow-wrap: anywhere; min-width: 0; max-width: 100%; }
.footer-contacts { grid-template-columns: minmax(0, 1fr); }
button:active, .hro-cta:active, .dir-cell:active { opacity: .8; }

/* Reading columns keep a comfortable line length and align with the page heading. */
.page-main, .reading-content { margin-inline: 0; }

/* Full-width surfaces, one shared content grid across every page template. */
@media (min-width: 991px) {
  .container, .hro-grid {
    width: min(calc(100% - 64px - (2 * var(--pad))), var(--container));
  }
}

@media (max-width: 990px) {
  .hro-grid { grid-template-columns: 1fr; gap: 28px; }
  .hro-text { padding: 0; }
  .hro-title { max-width: 22ch; font-size: clamp(1.75rem, 5.5vw, 3rem); }
  .hro-lead { max-width: 64ch; }
  .hro-photo { max-width: 680px; }
  .sbar-grid { grid-template-columns: 1fr 1.4fr; }
  .sbar-cell:last-child { grid-column: 1 / -1; padding: 0 0 20px; }
}
@media (max-width: 720px) {
  .contact-directory__item { grid-template-columns: minmax(0, 1fr); }
  .hro-title { font-size: clamp(1.75rem, 7.5vw, 2.75rem); }
  .hro-lead { font-size: 1.0625rem; }
  .hro-cap { padding: 10px 14px; font-size: .875rem; }
  .sbar > .container { width: min(calc(100% - (2 * var(--pad))), var(--container)); }
  .sbar-grid { grid-template-columns: 1fr; }
  .sbar-cell, .sbar-cell:first-child, .sbar-cell:last-child { padding: 18px 0; border-bottom: 1px solid var(--line); }
  .sbar-cell:last-child { border-bottom: 0; }
  .sbar-text { gap: 4px; }
  .dir-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .dir-cell, .dir-cell:last-child:nth-child(odd) { gap: 8px; min-height: 60px; }
  .dir-label { font-size: .9375rem; hyphens: auto; }
  .exh--active { gap: 24px; }
  .exh--active .exh-hours { border-left: 0; border-top: 1px solid var(--line); padding: 24px 0 0; }
  .exh-details > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }

  .dc-head { align-items: flex-start; flex-wrap: wrap; gap: 8px; }
  .join-lead { font-size: 1.0625rem; }
}
@media (max-width: 360px) {
  .dir-grid { grid-template-columns: 1fr; }
  .dir-cell, .dir-cell:last-child:nth-child(odd) { min-height: 60px; }
}
@media (prefers-contrast: more) {
  :root { --line: #787e8c; --line-dark: #787e8c; --muted: #343945; }
  a { text-decoration-thickness: 2px; }
}
@media print {
  .container, .hro-grid { width: 100%; }
  .hro, .hro-grid, .join { background: #fff; }
  .hro-title, .hro-lead, .hro-cap, .hro-cta { color: #000; }
}
