@font-face {
    font-family: 'Libre Caslon Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('./assets/libre-caslon-display-latin-ext-v18.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Libre Caslon Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('./assets/libre-caslon-display-latin-v18.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('./assets/montserrat-latin-ext-v31.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('./assets/montserrat-latin-v31.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

:root {
    color-scheme: light;
    --ink: #193c49;
    --opening-blue: #0f5d7b;
    --ink-2: #375663;
    --paper: #f5f1e9;
    --cream: #fcfaf5;
    --sand: #e8dac8;
    --sand-light: #f0e7da;
    --line: #c9ccc5;
    --copper: #936648;
    --mist: #e4ebea;
    --white: #fff;
    --max: 1232px;
    --site-header-height: 85px;
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .015em
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink)
}

button,
input {
    font: inherit
}

a {
    color: inherit;
    text-underline-offset: .2em
}

img {
    max-width: 100%;
    height: auto;
    display: block
}

#content img {
    border-radius: 8px
}

h1,
h2,
h3,
p {
    margin-top: 0
}

h1,
h2,
h3 {
    line-height: 1.1;
    font-weight: 400
}

h1,
h2,
h3,
.display,
.serif {
    font-family: 'Libre Caslon Display', Georgia, 'Times New Roman', serif
}

h1 {
    font-size: clamp(3.05rem, 6vw, 5.9rem);
    letter-spacing: -.055em
}

h2 {
    font-size: clamp(2.2rem, 4vw, 3.8rem);
    letter-spacing: -.045em
}

h3 {
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    letter-spacing: -.02em
}

p {
    max-width: 70ch
}

::selection {
    background: #d5aa88;
    color: #112f3a
}

:focus-visible {
    outline: 3px solid #c17349;
    outline-offset: 4px
}

.skip {
    position: absolute;
    left: 1rem;
    top: -5rem;
    padding: .6rem 1rem;
    background: #fff;
    z-index: 100
}

.skip:focus {
    top: 1rem
}

.draft-band {
    background: #e9d8cb;
    color: #633e2d;
    text-align: center;
    font-size: .8rem;
    letter-spacing: .04em;
    padding: .28rem 1rem
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1rem max(4vw, calc((100vw - var(--max))/2));
    background: var(--cream);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 8px 24px rgba(25, 60, 73, .08)
}

.brand {
    display: flex;
    align-items: center;
    gap: .65rem;
    text-decoration: none;
    min-width: 225px
}

.brand img {
    width: 92px;
    height: 52px;
    object-fit: contain
}

.brand span {
    font-family: Georgia, serif;
    font-size: 1rem;
    line-height: 1.1;
    letter-spacing: -.03em;
    font-weight: bold
}

.main-nav {
    display: flex;
    align-items: center;
    gap: clamp(.7rem, 1.5vw, 1.8rem);
    flex-wrap: wrap
}

.main-nav a {
    text-decoration: none;
    font-size: .88rem;
    font-weight: 600;
    white-space: nowrap;
    padding: .55rem 0;
    border-bottom: 2px solid transparent
}

.main-nav a:hover,
.main-nav a[aria-current=page] {
    border-color: var(--copper)
}

.menu-toggle {
    display: none;
    background: none;
    border: 1px solid var(--ink);
    padding: .55rem .8rem;
    color: var(--ink)
}

.wrap {
    width: min(calc(100% - 3.5rem), var(--max));
    margin-inline: auto
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .17em;
    font-size: .77rem;
    font-weight: 700;
    line-height: 1.4
}

.kicker {
    color: var(--copper)
}

.muted {
    color: #47636c
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 48px;
    padding: .7rem 1.15rem;
    background: var(--ink);
    color: #fff;
    text-decoration: none;
    border: 1px solid var(--ink);
    font-weight: 600;
    line-height: 1.25
}

.button:hover {
    background: #28596b
}

.button.outline {
    background: transparent;
    color: var(--ink)
}

.button.outline:hover {
    background: var(--mist)
}

.button.light {
    background: #fff;
    color: var(--ink);
    border-color: #fff
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: .25rem
}

.text-link:hover {
    color: var(--copper)
}

.text-link.light:hover {
    color: #e8b28b
}

.rule {
    height: 1px;
    background: var(--line)
}

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
    min-height: 585px;
    background: var(--ink);
    color: #fff
}

.hero-copy {
    padding: clamp(3rem, 6vw, 6.8rem) max(2rem, calc((100vw - var(--max))/2)) 3.5rem max(2rem, calc((100vw - var(--max))/2));
    padding-right: clamp(2rem, 4vw, 4.5rem)
}

.hero h1 {
    max-width: 680px;
    margin: 1.3rem 0 1.5rem
}

.hero p {
    font-size: 1.14rem;
    color: #e6eeec;
    max-width: 560px
}

.hero .eyebrow {
    color: #ddb08c
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 2rem
}

.hero-photo {
    position: relative;
    overflow: hidden;
    min-height: 440px
}

.hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center
}

.hero-photo:after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(23, 59, 73, .16), transparent 45%)
}

.photo-caption {
    position: absolute;
    right: 1.4rem;
    bottom: 1.2rem;
    color: #fff;
    font-size: .78rem;
    text-shadow: 0 1px 4px #162f3b
}

.quickways {
    background: var(--cream);
    border-bottom: 1px solid var(--line)
}

.quickways .wrap {
    display: grid;
    grid-template-columns: repeat(3, 1fr)
}

.quickway {
    display: block;
    text-decoration: none;
    padding: 1.65rem 2rem 1.65rem 0;
    border-right: 1px solid var(--line);
    margin-right: 2rem
}

.quickway:last-child {
    border-right: 0;
    margin-right: 0
}

.quickway small {
    display: block;
    color: var(--copper);
    text-transform: uppercase;
    letter-spacing: .13em;
    font-weight: bold;
    margin-bottom: .4rem
}

.quickway strong {
    font-family: Georgia, serif;
    font-size: 1.4rem;
    font-weight: 400
}

.quickway span {
    display: block;
    color: var(--ink-2);
    font-size: .94rem
}

.quickway:hover strong {
    text-decoration: underline;
    text-decoration-color: var(--copper)
}

.section {
    padding: clamp(3.5rem, 7vw, 7rem) 0
}

.section-tight {
    padding: 3.5rem 0
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 2rem;
    margin-bottom: 2rem
}

.section-head h2 {
    margin: 0
}

.section-head p {
    margin: .6rem 0 0
}

.event-list {
    border-top: 1px solid var(--ink)
}

.home-events-action {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.75rem
}

.home-events-action .button {
    min-width: min(100%, 18rem)
}

.event-row {
    display: grid;
    grid-template-columns: 135px 160px minmax(0, 1fr) auto;
    gap: 1.45rem;
    align-items: center;
    padding: 1.4rem 0;
    border-bottom: 1px solid var(--line)
}

.event-row-no-image {
    grid-template-columns: 135px minmax(0, 1fr) auto
}

.event-row-no-image.event-row-no-action {
    grid-template-columns: 135px minmax(0, 1fr)
}

.event-date {
    line-height: 1.05
}

.event-date b {
    display: block;
    font-family: Georgia, serif;
    font-size: 2.5rem;
    font-weight: 400;
    letter-spacing: -.04em
}

.event-date span {
    font-size: .79rem;
    text-transform: uppercase;
    letter-spacing: .11em;
    font-weight: 700
}

.event-thumb {
    aspect-ratio: 47 / 20;
    object-fit: cover;
    object-position: center;
    width: 160px;
    background: var(--sand-light)
}

.event-row h3 {
    margin: .2rem 0 .45rem
}

.event-row h3 a {
    text-decoration: none
}

.event-row h3 a:hover {
    text-decoration: underline;
    text-decoration-color: var(--copper)
}

.event-row p {
    margin: 0 0 .5rem;
    font-size: .93rem;
    color: var(--ink-2)
}

.event-description {
    margin: 0 0 .5rem;
    font-size: .93rem;
    color: var(--ink-2)
}

.event-description .maintained-paragraph+.maintained-paragraph,
.event-description .maintained-heading-2+.maintained-paragraph,
.event-description .maintained-paragraph+.maintained-heading-2 {
    margin-top: .7rem
}

.event-description .maintained-heading-2 {
    font-size: 1.18rem;
    line-height: 1.25
}

.event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    font-size: .84rem;
    font-weight: 600
}

.event-tag {
    font-size: .75rem;
    font-weight: 700;
    color: var(--copper);
    text-transform: uppercase;
    letter-spacing: .1em
}

.event-row .text-link {
    font-size: .87rem;
    white-space: nowrap
}

.note {
    border-left: 3px solid var(--copper);
    padding: .8rem 1.1rem;
    background: #f0e8df;
    color: #4d423c
}

.split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center
}

.split img {
    width: 100%;
    height: auto;
    object-fit: cover
}

.split .portrait {
    aspect-ratio: 1.05;
    object-fit: cover;
    object-position: center 28%
}

.prose {
    font-size: 1.07rem;
    line-height: 1.78
}

.prose p+p {
    margin-top: 1.1rem
}

.soft {
    background: var(--mist)
}

.dark {
    background: var(--ink);
    color: #fff
}

.dark p {
    color: #e2ebeb
}

.simple-header {
    padding: clamp(3.5rem, 6vw, 6rem) 0 3rem;
    background: var(--mist)
}

.simple-header h1 {
    max-width: 1050px;
    margin: .8rem 0 1.3rem
}

.simple-header .intro {
    font-size: 1.17rem;
    max-width: 760px
}

.breadcrumb {
    font-size: .84rem;
    margin-bottom: 1.5rem
}

.breadcrumb a {
    text-decoration: none;
    border-bottom: 1px solid
}

.subnav {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin: 2rem 0 0
}

.subnav a {
    padding: .55rem .85rem;
    border: 1px solid #78949a;
    text-decoration: none;
    font-size: .9rem
}

.subnav a:hover,
.subnav a[aria-current=page] {
    background: var(--ink);
    color: #fff
}

.page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: clamp(2rem, 6vw, 6rem)
}

.aside {
    padding: 1.6rem;
    background: var(--cream);
    border-top: 3px solid var(--copper);
    align-self: start
}

.aside h3 {
    margin-bottom: 1rem
}

.aside p {
    font-size: .94rem
}

.aside a:not(.button) {
    display: block;
    margin: .5rem 0
}

.facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line)
}

.fact {
    padding: 1.3rem 1.5rem 1.3rem 0
}

.fact+.fact {
    border-left: 1px solid var(--line);
    padding-left: 1.5rem
}

.fact small {
    display: block;
    text-transform: uppercase;
    color: var(--copper);
    font-weight: 700;
    letter-spacing: .1em
}

.fact strong {
    font-size: 1.05rem
}

.filterbar {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: 1.8rem
}

.filterbar button {
    border: 1px solid var(--line);
    background: transparent;
    color: var(--ink);
    padding: .55rem .85rem;
    cursor: pointer
}

.filterbar button:hover,
.filterbar button[aria-pressed=true] {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff
}

.event-detail-img {
    width: 100%;
    max-height: 400px;
    object-fit: cover;
    margin: 0 0 2rem
}

.details {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 1.4rem 0;
    margin: 1.5rem 0
}

.details dt {
    color: var(--copper);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: bold
}

.details dd {
    margin: .1rem 0 0;
    font-size: 1.03rem
}

.site-footer {
    background: var(--opening-blue);
    color: #f2f4f1
}

.error-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column
}

.error-page main {
    flex: 1
}

.error-site-header {
    position: relative
}

.not-found-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .75fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: start
}

.not-found-panel>div:first-child {
    padding-top: 1.55rem;
    border-top: 2px solid var(--copper)
}

.not-found-panel h2 {
    margin-bottom: 1rem
}

.not-found-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    align-items: center;
    padding: clamp(1.5rem, 3vw, 2rem);
    background: var(--cream);
    border: 1px solid var(--line)
}

.not-found-actions .text-link {
    margin: .45rem .25rem
}

/* Mediale Sitzungen in Nidau */
.nidau-session-overview {
    grid-template-columns: minmax(0, 1fr) minmax(290px, 355px);
    column-gap: clamp(2.5rem, 7vw, 7rem);
    row-gap: clamp(2.5rem, 4vw, 4rem)
}

.nidau-session-panorama {
    grid-column: 1 / -1;
    grid-row: 1;
    margin: 0
}

.nidau-session-panorama img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 5;
    object-fit: cover;
    object-position: center 45%;
    box-shadow: 0 18px 42px rgba(25, 60, 73, .14)
}

.nidau-session-content {
    grid-column: 1;
    grid-row: 2
}

.nidau-session-content>h2:first-child {
    margin-bottom: 1.3rem
}

.nidau-session-intro {
    font-size: 1.05rem
}

.nidau-session-content>.nidau-session-flow {
    margin-top: clamp(3.5rem, 6vw, 5rem)
}

.interior-page.route-mediale-sitzungen .nidau-session-note {
    margin-top: 2rem;
    padding: 1.35rem 1.5rem;
    background: var(--opening-blue);
    border-left-color: #e6b894;
    color: #e5eceb
}

.nidau-booking {
    grid-column: 2;
    grid-row: 2;
    background: var(--sand-light)
}

.nidau-booking h3 {
    margin: .25rem 0 1rem;
    font-size: clamp(1.65rem, 2.5vw, 2.15rem)
}

.interior-page.route-mediale-sitzungen>.section.nidau-arrival-section {
    background: var(--cream)
}

.nidau-arrival {
    display: grid;
    grid-template-columns: minmax(300px, .88fr) minmax(0, 1fr);
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: center
}

.nidau-arrival figure {
    margin: 0
}

.nidau-arrival img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    box-shadow: 0 18px 42px rgba(25, 60, 73, .12)
}

.nidau-arrival figcaption {
    margin-top: .6rem;
    color: var(--ink-2);
    font-size: .78rem
}

.nidau-arrival h2 {
    margin: .45rem 0 1.25rem
}

.nidau-cta {
    padding: clamp(3rem, 5vw, 5rem) 0;
    background: var(--opening-blue);
    color: var(--cream)
}

.nidau-cta .wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem
}

.nidau-cta h2 {
    max-width: 760px;
    margin: .35rem 0 .75rem;
    color: var(--cream);
    hyphens: none;
    overflow-wrap: normal
}

.nidau-cta p {
    margin-bottom: 0;
    color: #e5eceb
}

.nidau-cta .eyebrow {
    color: #e6b894
}

/* Sitzungen in Heidelberg */
.heidelberg-panorama {
    margin-top: clamp(1.5rem, 3vw, 2.75rem)
}

.heidelberg-panorama figure,
.heidelberg-arrival figure {
    margin: 0
}

.heidelberg-panorama img {
    width: 100%;
    aspect-ratio: 256 / 45;
    object-fit: cover;
    box-shadow: 0 18px 42px rgba(25, 60, 73, .14)
}

.heidelberg-panorama figcaption,
.heidelberg-arrival figcaption {
    margin-top: .6rem;
    color: var(--ink-2);
    font-size: .78rem
}

.heidelberg-overview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(290px, 355px);
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: start
}

.heidelberg-welcome {
    padding-top: 1.55rem;
    border-top: 2px solid var(--copper)
}

.heidelberg-welcome h2 {
    max-width: 760px;
    margin: .45rem 0 1.3rem
}

.heidelberg-address {
    display: grid;
    gap: .08rem;
    margin: 2rem 0;
    padding: 1.25rem 1.4rem;
    background: var(--cream);
    border-left: 3px solid var(--copper);
    font-style: normal
}

.heidelberg-address span,
.heidelberg-facts span {
    color: var(--copper);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase
}

.heidelberg-address strong {
    font-size: 1.05rem
}

.heidelberg-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line)
}

.heidelberg-facts>div {
    display: grid;
    gap: .35rem;
    padding: 1.2rem 1.25rem 1.25rem 0
}

.heidelberg-facts>div+div {
    padding-left: 1.25rem;
    border-left: 1px solid var(--line)
}

.heidelberg-facts strong {
    line-height: 1.35
}

.heidelberg-booking {
    background: var(--sand-light)
}

.heidelberg-booking h3 {
    margin: .25rem 0 1rem;
    font-size: clamp(1.65rem, 2.5vw, 2.15rem)
}

.heidelberg-booking .text-link {
    margin-top: .8rem
}

@media(min-width:901px) {
    .heidelberg-booking {
        position: sticky;
        top: calc(var(--site-header-height) + 1.5rem)
    }
}

.heidelberg-practical {
    background: var(--sand-light)
}

.heidelberg-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--ink)
}

.heidelberg-detail-grid article {
    padding: 2rem clamp(1.25rem, 3vw, 2.6rem) .5rem 0
}

.heidelberg-detail-grid article+article {
    padding-left: clamp(1.25rem, 3vw, 2.6rem);
    border-left: 1px solid var(--line)
}

.heidelberg-detail-grid h3 {
    margin: .45rem 0 .9rem
}

.heidelberg-detail-grid p:last-child {
    color: var(--ink-2)
}

.heidelberg-session {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(285px, 355px);
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: start
}

.heidelberg-session>.prose {
    padding-top: 1.55rem;
    border-top: 2px solid var(--copper)
}

.heidelberg-session h2 {
    margin: .45rem 0 1.3rem
}

.heidelberg-note {
    padding: clamp(1.6rem, 3vw, 2.2rem);
    background: var(--opening-blue);
    color: var(--cream)
}

.heidelberg-note .kicker {
    color: #e6b894
}

.heidelberg-note h3 {
    margin: .35rem 0 1rem;
    color: var(--cream)
}

.heidelberg-note p:last-child {
    margin-bottom: 0;
    color: #e5eceb
}

.heidelberg-note a {
    color: var(--white);
    font-weight: 700
}

.heidelberg-arrival-section {
    background: var(--cream)
}

.heidelberg-arrival {
    display: grid;
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1fr);
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: center
}

.heidelberg-arrival img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    box-shadow: 0 18px 42px rgba(25, 60, 73, .12)
}

.heidelberg-arrival h2 {
    margin: .45rem 0 1.6rem
}

.heidelberg-arrival h3 {
    margin: 1.4rem 0 .55rem
}

.heidelberg-directions {
    margin: 0 0 1.5rem;
    padding-left: 1.3rem
}

.heidelberg-directions li+li {
    margin-top: .45rem
}

.heidelberg-cta {
    padding: clamp(3rem, 5vw, 5rem) 0;
    background: var(--opening-blue);
    color: var(--cream)
}

.heidelberg-cta .wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem
}

.heidelberg-cta h2 {
    max-width: 760px;
    margin: .35rem 0 .75rem;
    color: var(--cream);
    hyphens: none;
    overflow-wrap: normal
}

.heidelberg-cta p {
    margin-bottom: 0;
    color: #e5eceb
}

.heidelberg-cta .eyebrow {
    color: #e6b894
}

.footer-top,
.footer-bottom {
    width: min(calc(100% - 3.5rem), var(--max));
    margin: auto;
    display: flex;
    justify-content: space-between;
    gap: 2rem
}

.footer-top {
    padding: 4rem 0;
    align-items: end
}

.route-mediale-sitzungen+.site-footer .footer-top {
    display: none
}

.footer-top h2 {
    margin: .3rem 0 1rem
}

.footer-bottom {
    border-top: 1px solid #51717a;
    padding: 1.2rem 0;
    font-size: .85rem;
    flex-wrap: wrap
}

.footer-bottom div {
    display: flex;
    gap: 1.2rem;
    flex-wrap: wrap
}

.footer-bottom a {
    text-decoration: none
}

.footer-bottom .cookie-settings-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer
}

.footer-bottom a:hover,
.footer-bottom .cookie-settings-link:hover,
.footer-bottom .cookie-settings-link:focus-visible {
    text-decoration: underline
}

.open-flag {
    background: #fff3e5;
    border: 1px solid #be7c56;
    padding: 1rem 1.2rem;
    font-size: .92rem
}

.resource-line {
    padding: 1.3rem 0;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    align-items: center
}

.resource-line:last-child {
    border-bottom: 1px solid var(--line)
}

.resource-line h3 {
    margin: 0 0 .3rem
}

.resource-line p {
    margin: 0;
    color: var(--ink-2)
}

.youtube-posts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.25rem, 3vw, 2.2rem)
}

.youtube-post {
    display: grid;
    align-content: start;
    min-width: 0;
    color: inherit;
    background: rgba(252, 250, 245, .82);
    border-bottom: 1px solid var(--line);
    text-decoration: none
}

.youtube-post-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--ink)
}

.youtube-post-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease
}

.youtube-post-action {
    position: absolute;
    right: 0;
    bottom: 0;
    padding: .65rem .85rem;
    color: #fff;
    background: rgba(23, 59, 73, .94);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .03em
}

.youtube-post-copy {
    display: grid;
    gap: .55rem;
    padding: 1.3rem 1.35rem 1.45rem
}

.youtube-post-title {
    font-family: 'Libre Caslon Display', Georgia, serif;
    font-size: clamp(1.55rem, 2.7vw, 2rem);
    line-height: 1.08
}

.youtube-post-description {
    color: var(--ink-2);
    line-height: 1.65
}

.youtube-post:hover .youtube-post-media img,
.youtube-post:focus-visible .youtube-post-media img {
    transform: scale(1.025)
}

.youtube-post:hover .youtube-post-title,
.youtube-post:focus-visible .youtube-post-title {
    color: var(--copper-dark)
}

.youtube-channel-link {
    margin: 2rem 0 0
}

.youtube-empty {
    display: grid;
    gap: .35rem
}

@media(max-width:1100px) {
    .site-header {
        padding-inline: 2rem
    }

    .brand {
        min-width: 165px
    }

    .brand img {
        width: 75px
    }

    .brand span {
        font-size: .9rem
    }

    .main-nav {
        gap: .55rem
    }

    .main-nav a {
        font-size: .8rem
    }

    .event-row {
        grid-template-columns: 100px 132px minmax(0, 1fr);
        gap: 1rem
    }

    .event-row-no-image {
        grid-template-columns: 100px minmax(0, 1fr)
    }

    .event-thumb {
        width: 132px
    }

    .event-row>.text-link {
        grid-column: 3;
        justify-self: start
    }

    .event-row-no-image>.text-link {
        grid-column: 2
    }
}

@media(max-width:700px) {
    .youtube-posts {
        grid-template-columns: 1fr
    }
}

@media(max-width:780px) {
    .site-header {
        padding: 1rem 1.5rem
    }

    .menu-toggle {
        display: block
    }

    .main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--cream);
        padding: 1rem 1.5rem 1.6rem;
        box-shadow: 0 12px 25px #0f2e3b22;
        flex-direction: column;
        align-items: stretch;
        gap: 0
    }

    .main-nav.open {
        display: flex
    }

    .main-nav a {
        font-size: 1rem;
        padding: .65rem 0
    }

    .hero {
        grid-template-columns: 1fr
    }

    .hero-copy {
        padding: 3.5rem 1.75rem
    }

    .hero-photo {
        min-height: 270px;
        height: 35vh
    }

    .quickways .wrap {
        grid-template-columns: 1fr
    }

    .quickway {
        margin: 0;
        padding: 1rem 0;
        border-right: 0;
        border-bottom: 1px solid var(--line)
    }

    .quickway:last-child {
        border-bottom: 0
    }

    .split,
    .page-grid {
        grid-template-columns: 1fr
    }

    .split img {
        max-height: 500px
    }

    .section-head {
        align-items: start;
        flex-direction: column
    }

    .facts {
        grid-template-columns: 1fr
    }

    .fact+.fact {
        border-left: 0;
        border-top: 1px solid var(--line);
        padding-left: 0
    }

    .footer-top {
        align-items: start;
        flex-direction: column
    }

    .not-found-panel {
        grid-template-columns: 1fr
    }
}

@media(max-width:560px) {

    .wrap,
    .footer-top,
    .footer-bottom {
        width: min(calc(100% - 2.5rem), var(--max))
    }

    .hero-copy {
        padding-inline: 1.25rem
    }

    .event-row {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: .8rem
    }

    .event-date b {
        font-size: 2rem
    }

    .event-thumb {
        grid-column: 1 / -1;
        grid-row: 1;
        width: 100%;
        aspect-ratio: 47 / 20
    }

    .event-date {
        grid-column: 1;
        grid-row: 2
    }

    .event-info {
        grid-column: 2;
        grid-row: 2
    }

    .event-row>.text-link {
        grid-column: 2;
        grid-row: 3
    }

    .event-row-no-image .event-date,
    .event-row-no-image .event-info {
        grid-row: 1
    }

    .event-row-no-image>.text-link {
        grid-row: 2
    }

    .details {
        grid-template-columns: 1fr
    }

    .resource-line {
        align-items: start;
        flex-direction: column;
        gap: .7rem
    }

    .footer-top h2 {
        font-size: 2.3rem
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    .portrait-scroll-image {
        transition: none
    }

    .youtube-post-media img {
        transition: none
    }
}

.hero .button.outline.light {
    background: transparent;
    color: #fff;
    border-color: #fff
}

.hero .button.outline.light:hover {
    background: #fff;
    color: var(--ink)
}

.simple-header {
    padding: 2.8rem 0 2.4rem
}

.simple-header h1 {
    font-size: clamp(2.8rem, 4.5vw, 4.5rem);
    max-width: 1050px
}

.simple-header .breadcrumb {
    margin-bottom: 1rem
}

.simple-header .intro {
    margin-bottom: 0
}

h1,
h2,
h3 {
    overflow-wrap: break-word;
    hyphens: auto
}

@media(max-width:560px) {
    .simple-header h1 {
        font-size: 2.55rem
    }

    .simple-header {
        padding: 2.5rem 0 2rem
    }

    .section {
        padding: 3rem 0
    }
}

.brand img {
    object-fit: cover;
    object-position: left center
}

.hero h1 {
    font-size: clamp(2.9rem, 5vw, 5.4rem);
    hyphens: none;
    overflow-wrap: normal
}

.hero-photo img {
    object-position: 70% center
}

@media(max-width:1100px) {
    .menu-toggle {
        display: block
    }

    .main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--cream);
        padding: 1rem 1.5rem 1.6rem;
        box-shadow: 0 12px 25px #0f2e3b22;
        flex-direction: column;
        align-items: stretch;
        gap: 0
    }

    .main-nav.open {
        display: flex
    }

    .main-nav a {
        font-size: 1rem;
        padding: .65rem 0
    }
}

.detail-list {
    margin: 0;
    padding-left: 1.25rem
}

.detail-list li {
    margin: .5rem 0
}

.section-label {
    font-size: .82rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--copper);
    font-weight: bold
}

.source-note {
    font-size: .85rem;
    color: var(--ink-2)
}

.legal-copy {
    max-width: 850px
}

.legal-copy h2 {
    font-size: 2rem;
    margin: 2.5rem 0 1rem
}

.legal-copy h3 {
    font-size: 1.35rem;
    margin: 1.6rem 0 .7rem
}

.legal-copy p,
.legal-copy li {
    line-height: 1.75
}

.legal-copy li {
    margin-bottom: .5rem
}

.media-pair {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 2rem;
    align-items: center;
    border-top: 1px solid var(--line);
    padding: 2rem 0
}

.media-pair img {
    width: 170px;
    aspect-ratio: 1;
    object-fit: cover
}

.media-pair:last-child {
    border-bottom: 1px solid var(--line)
}

/* Porträtseite: eigenständiger, redaktioneller Rhythmus im Stil der Startseite */
.portrait-header {
    position: relative;
    overflow: hidden;
    padding: clamp(2.35rem, 3.3vw, 3.3rem) 0 clamp(2.7rem, 3.8vw, 3.8rem);
    background: var(--opening-blue);
    color: var(--cream)
}

.portrait-header::after {
    content: '';
    position: absolute;
    left: max(1.75rem, calc((100vw - var(--max))/2));
    right: 0;
    bottom: 2rem;
    height: 1px;
    background: rgba(252, 250, 245, .34)
}

.portrait-header .wrap {
    position: relative
}

.portrait-header .breadcrumb,
.portrait-header .breadcrumb a {
    color: #dce8e8
}

.portrait-header .eyebrow {
    color: #e6b894
}

.portrait-header h1 {
    max-width: 1050px;
    color: var(--cream);
    font-size: clamp(2.9rem, 4vw, 4.4rem);
    line-height: 1.02;
    margin: .75rem 0 1.1rem;
    hyphens: none
}

.portrait-header .intro {
    max-width: 690px;
    color: #dce8e8;
    font-size: clamp(1rem, 1.5vw, 1.2rem)
}

@media(min-width:901px) {
    .portrait-header h1,
    .portrait-header .intro {
        max-width: none;
        white-space: nowrap
    }
}

.portrait-story {
    grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr);
    gap: clamp(2.8rem, 6vw, 6rem);
    align-items: center;
    padding-top: clamp(4rem, 7vw, 7rem);
    padding-bottom: clamp(4rem, 7vw, 7rem)
}

.portrait-story-copy {
    align-self: center;
    padding-top: 1.6rem;
    border-top: 2px solid var(--copper)
}

.portrait-story-copy h2 {
    margin: .65rem 0 1.7rem
}

.portrait-story-copy>p:first-of-type {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.45;
    letter-spacing: -.015em;
    color: var(--ink)
}

.portrait-story-copy>p:last-child {
    margin-top: 2.2rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
    color: var(--copper)
}

.portrait-scroll-gallery {
    position: sticky;
    top: calc(var(--site-header-height) + 1.5rem);
    width: min(100%, 500px);
    margin: 0;
    justify-self: end;
    align-self: start
}

.portrait-scroll-stage {
    position: relative;
    width: 100%;
    aspect-ratio: 17 / 11;
    overflow: hidden;
    background: var(--sand-light);
    border-bottom: 3px solid var(--copper)
}

.portrait-scroll-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transform: scale(1.025);
    transition: opacity .65s ease, transform 1.05s ease
}

.portrait-scroll-image.is-active {
    opacity: 1;
    transform: scale(1)
}

.portrait-media {
    background: var(--sand-light)
}

.portrait-journey {
    margin: 2.2rem 0 1.8rem;
    background: var(--sand-light);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line)
}

.portrait-journey summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    padding: 1.6rem;
    cursor: pointer;
    list-style: none
}

.portrait-journey summary::-webkit-details-marker {
    display: none
}

.portrait-journey summary:focus-visible {
    outline: 3px solid var(--copper);
    outline-offset: 3px
}

.portrait-journey-heading,
.portrait-journey-action {
    display: flex
}

.portrait-journey-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem
}

.portrait-journey-heading .kicker {
    margin: 0
}

.portrait-journey-heading strong {
    color: var(--ink);
    font-family: 'Libre Caslon Display', Georgia, 'Times New Roman', serif;
    font-size: clamp(1.65rem, 2.6vw, 2.15rem);
    font-weight: 400;
    line-height: 1.08
}

.portrait-journey-teaser {
    max-width: 620px;
    color: var(--ink-2);
    font-size: .95rem;
    line-height: 1.55
}

.portrait-journey-action {
    align-items: center;
    gap: .65rem;
    color: var(--ink);
    border-bottom: 1px solid var(--ink);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.35;
    padding: .35rem 0
}

.portrait-journey-action-open {
    display: none
}

.portrait-journey-icon {
    display: grid;
    width: 1.65rem;
    height: 1.65rem;
    place-items: center;
    border: 1px solid var(--copper);
    border-radius: 50%;
    color: var(--copper);
    font-size: 1.15rem;
    line-height: 1
}

.portrait-journey-icon::before {
    content: '+'
}

.portrait-journey[open] .portrait-journey-action-closed {
    display: none
}

.portrait-journey[open] .portrait-journey-action-open {
    display: inline
}

.portrait-journey[open] .portrait-journey-icon::before {
    content: '\2212'
}

.portrait-journey-content {
    max-width: 720px;
    padding: 2rem 1.6rem 2.4rem;
    border-top: 1px solid var(--line)
}

.portrait-journey-content h3 {
    margin: 2.2rem 0 .75rem;
    color: var(--ink);
    font-size: 1.45rem
}

.portrait-journey-content h3:first-child {
    margin-top: 0
}

.portrait-journey-content p {
    color: var(--ink-2)
}

.portrait-media .wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(2rem, 5vw, 5rem)
}

.portrait-media .section-head {
    grid-column: 1 / -1;
    padding-bottom: 1.8rem;
    border-bottom: 1px solid var(--ink)
}

.portrait-media .media-pair {
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 1.5rem;
    padding: 2.2rem 0;
    border-top: 0;
    border-bottom: 1px solid var(--line)
}

.portrait-media .media-pair:nth-child(2) {
    padding-right: clamp(2rem, 5vw, 5rem);
    border-right: 1px solid var(--line)
}

.portrait-media .media-pair:nth-child(3) {
    margin-left: calc(clamp(2rem, 5vw, 5rem) * -1);
    padding-left: clamp(2rem, 5vw, 5rem)
}

.portrait-media .media-pair img {
    width: 132px;
    border-radius: 0;
    filter: saturate(.86)
}

.portrait-media .media-pair h3 {
    margin: .35rem 0 .65rem
}

.portrait-background {
    position: relative;
    background: var(--ink);
    color: var(--cream)
}

.portrait-background::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: min(32vw, 430px);
    height: 3px;
    background: var(--copper)
}

.portrait-background h2,
.portrait-background h3 {
    color: var(--cream)
}

.portrait-background .kicker {
    color: #e6b894
}

.portrait-background .prose {
    color: #dce8e8
}

.portrait-background .aside {
    background: var(--sand);
    color: var(--ink);
    border-top: 0;
    padding: 2rem
}

.portrait-background .aside h3 {
    color: var(--ink)
}

.portrait-background .aside a {
    padding: .55rem 0;
    border-bottom-color: rgba(25, 60, 73, .42)
}

@media(max-width:560px) {
    .portrait-journey summary {
        grid-template-columns: 1fr;
        gap: 1.1rem;
        padding: 1.35rem
    }

    .portrait-journey-action {
        justify-self: start
    }

    .portrait-journey-content {
        padding: 1.7rem 1.35rem 2rem
    }

    .media-pair {
        grid-template-columns: 100px 1fr;
        gap: 1rem
    }

    .media-pair img {
        width: 100px
    }
}

@media(max-width:900px) {
    .portrait-story {
        grid-template-columns: 1fr;
        gap: 2.5rem
    }

    .portrait-story-copy {
        max-width: 720px
    }

    .portrait-scroll-gallery {
        position: relative;
        top: auto;
        width: min(100%, 520px);
        justify-self: start
    }

    .portrait-media .wrap {
        grid-template-columns: 1fr
    }

    .portrait-media .media-pair:nth-child(2),
    .portrait-media .media-pair:nth-child(3) {
        margin-left: 0;
        padding-left: 0;
        padding-right: 0;
        border-right: 0
    }
}

@media(max-width:560px) {
    .portrait-header {
        padding: 2.25rem 0 3.4rem
    }

    .portrait-header h1 {
        font-size: clamp(2.65rem, 12vw, 3.35rem)
    }

    .portrait-story {
        padding-top: 3.5rem;
        padding-bottom: 3.5rem
    }

    .portrait-scroll-stage {
        aspect-ratio: 17 / 11
    }

    .portrait-media .media-pair {
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 1rem
    }

    .portrait-media .media-pair img {
        width: 92px
    }
}

.opening {
    background: var(--opening-blue);
    color: var(--cream)
}

.opening-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.03fr) minmax(0, .85fr);
    gap: clamp(2rem, 4.5vw, 4.5rem);
    align-items: stretch;
    padding: clamp(2.8rem, 5vw, 4.6rem) 0
}

.opening-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center
}

.opening-copy .eyebrow {
    color: #e6b894
}

.opening-copy h1 {
    font-size: clamp(3rem, 4.6vw, 4.9rem);
    letter-spacing: -.045em;
    line-height: 1.06;
    hyphens: none;
    overflow-wrap: normal;
    margin: .9rem 0 1.4rem;
    max-width: 610px
}

.opening-copy>p:not(.eyebrow) {
    color: #e5eceb;
    font-size: 1.09rem;
    line-height: 1.7;
    max-width: 530px
}

.opening-copy .opening-signature {
    margin: 1rem 0 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
    font-size: 1.15rem;
    color: #f7f3ed
}

.opening-signature span {
    font-family: Arial, Helvetica, sans-serif;
    font-style: normal;
    font-size: .87rem;
    color: #c8d6d6
}

.opening .hero-actions {
    margin-top: 1.65rem;
    align-items: center;
    gap: 1.5rem
}

.opening .text-link.light {
    color: #f8f4ed
}

.opening .text-link.light:hover {
    color: #e6b894
}

.learning-feature {
    background: var(--sand);
    color: var(--ink);
    padding: 2rem 2.2rem 1.8rem;
    display: flex;
    flex-direction: column;
    border-top: 2px solid #b98564
}

.learning-feature .eyebrow {
    margin-bottom: 0
}

.learning-feature h2 {
    font-size: clamp(2.25rem, 3.2vw, 3.2rem);
    margin: .85rem 0 1rem;
    hyphens: none;
    letter-spacing: -.04em
}

.learning-feature>p:not(.eyebrow) {
    line-height: 1.65;
    font-size: 1.01rem;
    margin-bottom: 1.3rem
}

.learning-preview {
    width: 100%;
    height: 124px;
    object-fit: cover;
    object-position: 50% 42%;
    margin: auto 0 1.2rem;
    filter: saturate(.8)
}

.learning-link {
    margin-top: auto
}

.learning-link .text-link {
    font-size: .94rem
}

.home-about {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 340px);
    gap: clamp(2rem, 6vw, 5.5rem);
    align-items: center;
    max-width: 1080px
}

.home-about .portrait {
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center 25%;
    border-bottom: 2px solid var(--copper)
}

.soft {
    background: var(--sand-light)
}

.section {
    padding: clamp(3.2rem, 5.5vw, 5.5rem) 0
}

.section-head h2 {
    font-size: clamp(2.15rem, 3.5vw, 3.35rem)
}

.quickway {
    padding-top: 1.4rem;
    padding-bottom: 1.4rem
}

.aside {
    border-top-width: 2px
}

@media(max-width:800px) {
    .opening-grid {
        grid-template-columns: 1fr;
        padding: 3rem 0;
        gap: 2.5rem
    }

    .opening-copy h1 {
        max-width: 650px;
        font-size: clamp(2.8rem, 6vw, 4.5rem)
    }

    .learning-feature {
        max-width: 650px
    }

    .home-about {
        grid-template-columns: 1fr
    }

    .home-about .portrait {
        width: min(100%, 340px);
        height: 360px
    }
}

@media(max-width:560px) {
    .opening-grid {
        padding: 2.6rem 0;
        gap: 2rem
    }

    .opening-copy h1 {
        font-size: clamp(2.7rem, 10vw, 3.3rem)
    }

    .opening-copy>p:not(.eyebrow) {
        font-size: 1rem
    }

    .opening .hero-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem
    }

    .learning-feature {
        padding: 1.5rem
    }

    .learning-feature h2 {
        font-size: 2.5rem
    }

    .learning-preview {
        height: 105px
    }

    .home-about .portrait {
        width: min(100%, 260px);
        height: 300px
    }
}

.learning-preview {
    object-fit: none;
    object-position: 100% 62%
}

.featured-events {
    margin: 0 0 clamp(2.8rem, 5vw, 4.5rem);
    padding: 1.5rem 0 2rem;
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--line)
}

.featured-events-intro {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.35rem
}

.featured-events-intro p {
    margin: 0
}

.featured-events-intro>p:last-child {
    color: var(--ink-2);
    font-size: .94rem;
    text-align: right
}

.featured-events-grid {
    display: grid;
    grid-template-columns: repeat(var(--featured-count, 3), minmax(0, 1fr));
    gap: 0
}

.featured-event {
    display: flex;
    min-width: 0;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
    padding: 0 clamp(1rem, 2.1vw, 1.8rem);
    border-right: 1px solid var(--line)
}

.featured-event:last-child {
    border-right: 0
}

.featured-event img {
    width: 100%;
    height: auto;
    aspect-ratio: 1200 / 510;
    object-fit: cover;
    background: var(--mist);
    filter: saturate(.88)
}

.featured-event-tag {
    display: block;
    margin-top: 1rem;
    color: var(--copper);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase
}

.featured-event h3 {
    margin: .35rem 0 .6rem;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    hyphens: none
}

.featured-event-date,
.featured-event-place {
    margin: 0;
    color: var(--ink-2);
    font-size: .87rem;
    line-height: 1.55
}

.featured-event-date {
    font-weight: 650
}

.featured-event-place {
    margin-bottom: 1rem
}

.featured-event-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: auto;
    padding-top: .75rem;
    border-top: 1px solid var(--line);
    font-size: .84rem;
    font-weight: 700
}

a.featured-event:hover h3,
a.featured-event:focus-visible h3 {
    text-decoration: underline;
    text-decoration-color: var(--copper);
    text-underline-offset: .16em
}

a.featured-event:hover .featured-event-action {
    color: var(--copper)
}

.featured-event-static {
    cursor: default
}

@media(max-width:800px) {
    .featured-events-intro {
        display: block
    }

    .featured-events-intro>p:last-child {
        margin-top: .45rem;
        text-align: left
    }

    .featured-events-grid {
        grid-template-columns: 1fr
    }

    .featured-event,
    .featured-event:first-child,
    .featured-event:last-child {
        display: grid;
        grid-template-columns: minmax(160px, .85fr) minmax(0, 1fr);
        column-gap: 1.25rem;
        padding: 1.35rem 0;
        border-right: 0;
        border-bottom: 1px solid var(--line)
    }

    .featured-event:first-child {
        padding-top: 0
    }

    .featured-event:last-child {
        padding-bottom: 0;
        border-bottom: 0
    }

    .featured-event img {
        grid-row: 1/6;
        height: 100%;
        min-height: 160px;
        aspect-ratio: auto
    }

    .featured-event-tag {
        margin-top: 0
    }

    .featured-event h3 {
        margin-top: .25rem
    }

    .featured-event-action {
        align-self: end
    }
}

@media(max-width:560px) {

    .featured-event,
    .featured-event:first-child,
    .featured-event:last-child {
        display: flex
    }

    .featured-event img {
        height: auto;
        min-height: 0;
        aspect-ratio: 1200 / 510
    }

    .featured-event-tag {
        margin-top: 1rem
    }
}

.meditation-section {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--line)
}

.meditation-section .section-head {
    margin-bottom: 1rem
}

.press-collection .section-head {
    margin-bottom: 1.6rem
}

.press-list {
    border-top: 1px solid var(--ink)
}

.press-entry {
    display: grid;
    grid-template-columns: minmax(150px, 190px) minmax(0, 1fr);
    gap: clamp(1.5rem, 5vw, 4.5rem);
    padding: 1.8rem 0;
    border-bottom: 1px solid var(--line)
}

.press-source {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    color: var(--copper);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase
}

.press-source time {
    color: var(--ink-2);
    font-weight: 400
}

.press-copy h3 {
    margin: 0 0 .5rem
}

.press-copy p {
    margin: 0;
    line-height: 1.65
}

.press-copy .press-credit,
.press-film .press-credit {
    font-size: .9rem;
    color: var(--ink-2);
    margin-bottom: .65rem
}

.press-archive {
    margin: 1.7rem 0 .8rem
}

.press-film {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start
}

.press-film h2 {
    margin: .4rem 0 1rem
}

.press-film p {
    line-height: 1.7
}

.press-film .button {
    margin-top: .6rem
}

@media(max-width:700px) {

    .press-entry,
    .press-film {
        grid-template-columns: 1fr
    }

    .press-entry {
        gap: .65rem
    }

    .press-source {
        flex-direction: row;
        gap: .6rem
    }

    .press-source time:before {
        content: '· ';
        color: var(--ink-2)
    }
}

.press-entry {
    color: inherit;
    text-decoration: none
}

.press-entry:hover h3,
.press-entry:focus-visible h3 {
    text-decoration: underline;
    text-decoration-color: var(--copper);
    text-underline-offset: .16em
}

.press-action {
    display: inline-block;
    margin-top: .8rem;
    color: var(--ink);
    font-size: .9rem;
    font-weight: 700;
    border-bottom: 1px solid currentColor;
    padding-bottom: .2rem
}

.press-entry:hover .press-action {
    color: var(--copper)
}

.press-story {
    display: grid;
    grid-template-columns: minmax(0, 760px) minmax(240px, 300px);
    justify-content: space-between;
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start
}

.press-reading {
    font-size: 1.07rem;
    line-height: 1.8
}

.press-story-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    color: var(--copper);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase
}

.press-story-meta time {
    color: var(--ink-2);
    font-weight: 400
}

.press-story-credit {
    margin: .3rem 0 1.2rem;
    color: var(--ink-2);
    font-size: .95rem
}

.press-story-note {
    border-left: 2px solid var(--copper);
    padding: .45rem 0 .45rem 1rem;
    color: var(--ink-2);
    font-size: .9rem
}

.press-story-lead {
    margin: 2rem 0 0;
    padding: 1.2rem 1.35rem;
    background: var(--sand-light);
    border-left: 3px solid var(--copper);
    color: var(--ink);
    font-size: 1.08rem;
    line-height: 1.75
}

.press-original-link {
    margin: 1rem 0 0
}

.press-interview dl {
    margin: 0;
    padding: 0
}

.press-interview dl>div {
    padding: 1.25rem 0 1.4rem;
    border-top: 1px solid var(--line)
}

.press-interview dl>div:last-child {
    border-bottom: 1px solid var(--line)
}

.press-interview dt {
    margin: 0 0 .55rem;
    color: var(--ink);
    font-family: 'Libre Caslon Display', Georgia, 'Times New Roman', serif;
    font-size: clamp(1.25rem, 2vw, 1.52rem);
    font-style: italic;
    line-height: 1.25
}

.press-interview dd {
    margin: 0;
    color: var(--ink-2);
    line-height: 1.75
}

.press-reading section {
    margin-top: 2.3rem
}

.press-reading section h2 {
    font-size: clamp(1.65rem, 2.5vw, 2.2rem);
    letter-spacing: -.025em;
    margin-bottom: .8rem
}

.press-reading section p {
    margin: 0
}

.press-story-aside a:last-child {
    margin-top: 1.5rem
}

@media(max-width:800px) {
    .press-story {
        grid-template-columns: 1fr
    }

    .press-story-aside {
        max-width: 550px
    }
}

h1,
h2,
h3,
h4,
h5,
h6,
.display,
.serif,
.quickway strong,
.event-date b {
    font-family: 'Libre Caslon Display', Georgia, 'Times New Roman', serif
}

h4,
h5,
h6 {
    font-weight: 400;
    line-height: 1.1
}

h1,
h2,
h3,
h4,
h5,
h6 {
    letter-spacing: .01em
}

.opening-copy h1,
.learning-feature h2,
.press-reading section h2 {
    letter-spacing: .01em
}

.event-date b {
    letter-spacing: 0
}

.opening-signature span {
    font-family: 'Montserrat', Arial, Helvetica, sans-serif
}

button,
input,
textarea,
select {
    letter-spacing: inherit
}

.external-dialog {
    width: min(540px, calc(100% - 2rem));
    max-width: none;
    padding: 0;
    border: 0;
    border-radius: 12px;
    color: var(--ink);
    background: var(--cream);
    box-shadow: 0 24px 70px rgba(16, 46, 57, .3)
}

.external-dialog::backdrop {
    background: rgba(16, 46, 57, .6);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px)
}

.external-dialog-card {
    padding: clamp(1.5rem, 4vw, 2.3rem);
    border-top: 3px solid var(--copper)
}

.external-dialog-card h2 {
    margin: .5rem 0 1.2rem;
    font-size: clamp(1.9rem, 4vw, 2.7rem)
}

.external-dialog-copy p {
    margin-bottom: .9rem;
    color: var(--ink-2)
}

.external-dialog-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.6rem
}

@media(max-width:560px) {
    .external-dialog-actions {
        align-items: stretch;
        flex-direction: column-reverse
    }

    .external-dialog-actions .button {
        width: 100%
    }
}

/* Cookiebanner – übernommen von psiseeland.ch */
#cookie-banner {
    position: fixed;
    box-sizing: border-box;
    right: clamp(16px, 4vw, 36px);
    bottom: clamp(16px, 4vw, 36px);
    overflow: hidden;
    background: radial-gradient(circle at 14% 18%, rgba(255, 237, 190, .95) 0 14%, transparent 15%), linear-gradient(135deg, rgba(255, 255, 255, .99), rgba(246, 253, 255, .97));
    padding: clamp(18px, 3vw, 26px);
    border: 1px solid rgba(0, 89, 151, .16);
    border-radius: 22px;
    box-shadow: 0 24px 70px rgba(17, 38, 58, .2);
    z-index: 1000;
    width: min(820px, calc(100% - 32px));
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px)
}

#cookie-banner::after {
    content: "";
    position: absolute;
    right: -54px;
    top: -70px;
    width: 180px;
    height: 180px;
    background: rgba(0, 89, 151, .08);
    border-radius: 50%;
    pointer-events: none
}

.cookie-content {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    width: 100%;
    text-align: left;
    position: relative;
    z-index: 1
}

.cookie-mascot {
    display: grid;
    place-items: center;
    width: 112px;
    height: 112px;
    border-radius: 50%;
    background: linear-gradient(145deg, #fff8df, #e8f8ff);
    border: 1px solid rgba(0, 89, 151, .12);
    box-shadow: inset 0 -10px 24px rgba(0, 89, 151, .08)
}

.cookie-ghost {
    position: relative;
    width: 74px;
    height: 82px;
    background: #fffdf6;
    border: 2px solid rgba(214, 154, 69, .32);
    border-radius: 40px 40px 26px 26px;
    box-shadow: 0 10px 20px rgba(95, 55, 18, .16)
}

.cookie-ghost::before,
.cookie-ghost::after {
    content: "";
    position: absolute;
    bottom: -10px;
    width: 28px;
    height: 24px;
    background: #fffdf6;
    border-bottom: 2px solid rgba(214, 154, 69, .32);
    border-radius: 0 0 20px 20px
}

.cookie-ghost::before {
    left: 8px;
    border-left: 2px solid rgba(214, 154, 69, .32)
}

.cookie-ghost::after {
    right: 8px;
    border-right: 2px solid rgba(214, 154, 69, .32)
}

.cookie-chip {
    position: absolute;
    width: 9px;
    height: 9px;
    background: #c6873d;
    border-radius: 50%;
    opacity: .9
}

.chip-one {
    left: 18px;
    top: 18px
}

.chip-two {
    right: 15px;
    top: 27px
}

.chip-three {
    left: 14px;
    bottom: 22px
}

.cookie-eye {
    position: absolute;
    top: 36px;
    width: 11px;
    height: 15px;
    background: #203040;
    border-radius: 50%
}

.cookie-eye::after {
    content: "";
    position: absolute;
    left: 2px;
    top: 2px;
    width: 3px;
    height: 3px;
    background: #fff;
    border-radius: 50%
}

.eye-left {
    left: 23px
}

.eye-right {
    right: 23px
}

.cookie-smile {
    position: absolute;
    left: 27px;
    top: 54px;
    width: 20px;
    height: 11px;
    border-bottom: 3px solid #203040;
    border-radius: 0 0 20px 20px
}

.cookie-cheek {
    position: absolute;
    top: 51px;
    width: 11px;
    height: 7px;
    background: rgba(255, 177, 157, .82);
    border-radius: 50%
}

.cheek-left {
    left: 13px
}

.cheek-right {
    right: 13px
}

.cookie-copy {
    min-width: 0
}

.cookie-eyebrow {
    margin: 0 0 6px;
    color: #005997;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase
}

.cookie-content h2 {
    margin: 0;
    color: #13283b;
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0
}

.cookie-content p {
    font-size: .95rem;
    line-height: 1.5;
    margin: 8px 0 0;
    color: #53606b
}

.cookie-actions {
    display: grid;
    gap: 10px;
    min-width: 210px
}

.cookie-buttons {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
    min-width: 220px;
    margin: 0
}

.cookie-btn {
    padding: .75rem 1.1rem;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
    font-size: .9rem;
    min-width: 180px
}

.cookie-btn.accept {
    background-color: #005997;
    color: #fff;
    box-shadow: 0 10px 22px rgba(0, 89, 151, .22)
}

.cookie-btn.accept:hover,
.cookie-btn.accept:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 12px 26px rgba(0, 89, 151, .18)
}

.cookie-btn.decline {
    background-color: #fff;
    color: #53606b;
    border-color: #d9e1e7
}

.cookie-btn.decline:hover,
.cookie-btn.decline:focus-visible {
    background-color: #f6f8fa;
    transform: translateY(-1px)
}

.cookie-footer {
    text-align: center
}

.cookie-link {
    color: #005997;
    font-size: .88rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px
}

.cookie-link:hover {
    color: #003f6c
}

@media(max-width:767px) {
    #cookie-banner {
        left: 16px;
        right: 16px;
        bottom: 16px;
        width: auto
    }

    .cookie-content {
        grid-template-columns: 1fr;
        gap: 16px;
        justify-items: stretch
    }

    .cookie-mascot {
        width: 82px;
        height: 82px;
        justify-self: center
    }

    .cookie-ghost {
        transform: scale(.76)
    }

    .cookie-copy {
        text-align: center
    }

    .cookie-copy p:last-child {
        display: none
    }

    .cookie-content h2 {
        font-size: 1.22rem
    }

    .cookie-content p {
        font-size: .9rem
    }

    .cookie-actions,
    .cookie-buttons {
        min-width: 0
    }

    .cookie-btn {
        width: 100%;
        min-width: 0
    }
}

@media(prefers-reduced-motion:reduce) {
    .cookie-btn {
        transition: none
    }
}

.maintained-multiline {
    white-space: pre-line
}

.maintained-paragraph,
.maintained-heading-2 {
    display: block
}

.maintained-paragraph+.maintained-paragraph,
.maintained-heading-2+.maintained-paragraph,
.maintained-paragraph+.maintained-heading-2 {
    margin-top: 1.1em
}

.maintained-heading-2 {
    font-family: 'Libre Caslon Display', Georgia, 'Times New Roman', serif;
    font-size: clamp(1.65rem, 2.5vw, 2.2rem);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: .01em
}

/* Einheitliche, redaktionelle Gestaltung aller Unterseiten */
.interior-page {
    background: var(--paper)
}

.interior-page>.simple-header {
    position: relative;
    overflow: hidden;
    padding: clamp(2.35rem, 3.3vw, 3.3rem) 0 clamp(2.7rem, 3.8vw, 3.8rem);
    background: var(--opening-blue);
    color: var(--cream)
}

.interior-page>.simple-header::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 2rem;
    left: max(1.75rem, calc((100vw - var(--max))/2));
    height: 1px;
    background: rgba(252, 250, 245, .34)
}

.interior-page>.simple-header .wrap {
    position: relative
}

.interior-page>.simple-header .breadcrumb,
.interior-page>.simple-header .breadcrumb a {
    color: #dce8e8
}

.interior-page>.simple-header .eyebrow {
    color: #e6b894
}

.interior-page>.simple-header h1 {
    max-width: 1120px;
    margin: .75rem 0 1.1rem;
    color: var(--cream);
    font-size: clamp(2.9rem, 4vw, 4.4rem);
    line-height: 1.02;
    hyphens: none;
    overflow-wrap: normal
}

.interior-page>.simple-header .intro {
    max-width: 920px;
    margin-bottom: 0;
    color: #dce8e8;
    font-size: clamp(1rem, 1.35vw, 1.16rem);
    line-height: 1.65
}

.interior-page>.simple-header .subnav {
    margin-top: 1.5rem
}

.interior-page>.simple-header .subnav a {
    border-color: rgba(252, 250, 245, .48);
    color: var(--cream)
}

.interior-page>.simple-header .subnav a:hover,
.interior-page>.simple-header .subnav a:focus-visible {
    background: var(--cream);
    color: var(--ink)
}

.interior-page>.section {
    position: relative
}

.interior-page>.section.soft {
    background: var(--sand-light)
}

.interior-page .page-grid {
    grid-template-columns: minmax(0, 1fr) minmax(285px, 340px);
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: start
}

.interior-page .page-grid>.prose,
.interior-page .press-reading,
.interior-page.route-veranstaltung-detail .page-grid>div:first-child {
    padding-top: 1.55rem;
    border-top: 2px solid var(--copper)
}

.interior-page .page-grid>.prose>h2:first-child,
.interior-page.route-veranstaltung-detail .page-grid>div:first-child>h2:first-of-type {
    margin-top: 0
}

.interior-page .page-grid>.prose>h2 {
    margin: 3rem 0 1.15rem;
    font-size: clamp(2rem, 3vw, 2.8rem)
}

.interior-page .page-grid>.prose>h3 {
    margin: 2rem 0 .7rem
}

.interior-page .aside {
    padding: clamp(1.6rem, 2.8vw, 2.15rem);
    background: var(--sand);
    border-top: 0;
    box-shadow: inset 0 3px 0 var(--copper)
}

.interior-page .aside .button {
    width: 100%;
    margin: .35rem 0 .65rem
}

@media(min-width:901px) {
    .interior-page.route-mediale-sitzungen .page-grid>.aside {
        position: sticky;
        top: calc(var(--site-header-height) + 1.5rem);
        max-height: calc(100vh - var(--site-header-height) - 3rem);
        overflow-y: auto
    }
}

.interior-page .facts {
    margin: 2rem 0;
    background: rgba(252, 250, 245, .75);
    border-color: var(--ink)
}

.interior-page .fact {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem
}

.interior-page .note,
.interior-page .open-flag {
    padding: 1.05rem 1.25rem;
    background: var(--sand-light);
    border: 0;
    border-left: 3px solid var(--copper);
    color: #4d423c
}

.interior-page .resource-line {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2rem;
    padding: 1.65rem 1.7rem;
    background: rgba(252, 250, 245, .78);
    border: 0;
    border-bottom: 1px solid var(--line)
}

.interior-page .resource-line:first-child {
    border-top: 1px solid var(--ink)
}

.interior-page .resource-line::before {
    content: '';
    position: absolute;
    top: 1rem;
    bottom: 1rem;
    left: 0;
    width: 2px;
    background: transparent
}

.interior-page .resource-line:has(a:hover)::before,
.interior-page .resource-line:has(a:focus-visible)::before {
    background: var(--copper)
}

.interior-page .resource-line h3 {
    margin-bottom: .45rem;
    font-size: clamp(1.55rem, 2.3vw, 2rem)
}

.interior-page .resource-line p {
    line-height: 1.65
}

.interior-page .resource-line>.text-link {
    align-self: center;
    white-space: nowrap
}

.interior-page .source-note {
    margin-top: 1.4rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line)
}

.interior-page .event-list {
    display: grid;
    gap: .7rem;
    border-top: 0
}

.interior-page .event-row {
    padding: 1.3rem 1.4rem;
    background: rgba(252, 250, 245, .82);
    border: 0;
    border-left: 2px solid transparent
}

.interior-page .event-row:hover,
.interior-page .event-row:focus-within {
    border-left-color: var(--copper)
}

.interior-page .filterbar {
    margin-bottom: 2.2rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--ink)
}

.interior-page .filterbar button {
    background: var(--cream);
    border-color: #aeb9b6;
    color: var(--ink);
    font-weight: 600;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease
}

.interior-page .filterbar button:hover:not([aria-pressed="true"]),
.interior-page .filterbar button:focus-visible:not([aria-pressed="true"]) {
    background: var(--sand-light);
    border-color: var(--copper);
    color: var(--ink)
}

.interior-page .filterbar button[aria-pressed="true"] {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--white);
    box-shadow: inset 0 -4px 0 var(--copper)
}

.interior-page .filterbar button[aria-pressed="true"]:hover,
.interior-page .filterbar button[aria-pressed="true"]:focus-visible {
    background: #28596b;
    border-color: #28596b;
    color: var(--white)
}

.interior-page .filterbar .meditation-jump {
    margin-left: .35rem;
    border-color: var(--copper);
    color: #70462f
}

.interior-page .filterbar .meditation-jump span {
    display: inline-block;
    margin-left: .2rem;
    font-size: 1.05em;
    transition: transform .18s ease
}

.interior-page .filterbar .meditation-jump:hover span,
.interior-page .filterbar .meditation-jump:focus-visible span {
    transform: translateY(2px)
}

.other-events-bridge {
    display: grid;
    justify-items: start;
    gap: .75rem;
    margin-top: .9rem
}

.other-events-bridge p {
    margin: 0
}

.other-events-bridge.note strong {
    color: var(--ink)
}

.other-events-link {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    padding: 0 0 .25rem;
    text-align: left
}

.other-events-link span {
    font-size: 1.05em
}

.other-organizer-events {
    scroll-margin-top: 7rem
}

.other-organizer-events .event-list {
    margin-top: 2rem
}


#other-organizer-events-title:focus {
    outline: none
}

#other-organizer-events-title:focus-visible {
    outline: 3px solid var(--copper);
    outline-offset: .35rem
}

.interior-page .meditation-section {
    scroll-margin-top: 7rem;
    margin-top: clamp(3.5rem, 6vw, 5.5rem);
    padding-top: 2rem;
    border-top: 2px solid var(--copper)
}

#online-meditationen-title:focus {
    outline: none
}

#online-meditationen-title:focus-visible {
    outline: 3px solid var(--copper);
    outline-offset: .35rem
}

.interior-page:not(.route-andreas-meile) .media-pair {
    grid-template-columns: minmax(190px, 250px) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    padding: clamp(2rem, 4vw, 3rem);
    background: rgba(252, 250, 245, .8);
    border: 0;
    border-bottom: 1px solid var(--line)
}

.interior-page:not(.route-andreas-meile) .media-pair:first-child {
    border-top: 1px solid var(--ink)
}

.interior-page:not(.route-andreas-meile) .media-pair img {
    width: 100%;
    border-radius: 0;
    filter: saturate(.88)
}

.interior-page:not(.route-andreas-meile) .media-pair h2 {
    margin: .35rem 0 1rem;
    font-size: clamp(2.1rem, 3.4vw, 3.25rem)
}

.route-buch-podcast .media-pair p:has(>.text-link) {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem 1.1rem
}

.media-pair img.media-artwork {
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    object-position: center;
    filter: none
}

.route-kontakt>.section.split>div:first-child {
    align-self: center;
    padding-top: 1.5rem;
    border-top: 2px solid var(--copper)
}

.group-calendar-section {
    background: var(--sand-light)
}

.group-calendar-head {
    margin-bottom: 1.6rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--ink)
}

.group-calendar-head h2 {
    margin: .4rem 0 .6rem
}

.group-calendar-frame {
    background: transparent
}

.group-calendar-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: 1rem;
    background: rgba(252, 250, 245, .72);
    border: 1px solid var(--line)
}

.group-calendar-filters button {
    padding: .65rem .9rem;
    color: var(--ink);
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 2px;
    cursor: pointer
}

.group-calendar-filters button:hover,
.group-calendar-filters button:focus-visible {
    border-color: var(--copper)
}

.group-calendar-filters button[aria-pressed="true"] {
    color: var(--white);
    background: var(--ink);
    border-color: var(--ink)
}

.group-calendar-results {
    margin-top: 1rem;
    padding: clamp(1rem, 3vw, 2rem);
    background: var(--cream);
    border: 1px solid var(--line);
    border-top: 3px solid var(--copper)
}

.group-calendar-next {
    padding: clamp(1.4rem, 4vw, 2.5rem);
    background: rgba(147, 102, 72, .09);
    border-left: 3px solid var(--copper)
}

.group-calendar-next>.kicker {
    margin-bottom: 1rem
}

.group-calendar-next-grid {
    display: grid;
    grid-template-columns: minmax(215px, .8fr) minmax(0, 1.6fr);
    gap: clamp(1.25rem, 4vw, 3.5rem);
    align-items: end
}

.group-calendar-next time {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    color: var(--ink-2)
}

.group-calendar-next time strong {
    color: var(--ink)
}

.group-calendar-next h3 {
    margin: .15rem 0 .45rem;
    font-size: clamp(1.6rem, 3vw, 2.3rem)
}

.group-calendar-next-grid>div>p:last-child {
    margin: 0;
    color: var(--ink-2)
}

.group-calendar-month {
    margin-top: clamp(2rem, 5vw, 3.5rem)
}

.group-calendar-month>h3 {
    margin: 0;
    padding: 0 0 .8rem;
    font-size: clamp(1.65rem, 2.7vw, 2.2rem);
    border-bottom: 1px solid var(--ink)
}

.group-calendar-list {
    list-style: none;
    margin: 0;
    padding: 0
}

.group-calendar-entry {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: center;
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--line)
}

.group-calendar-entry:first-child {
    padding-top: 1.2rem
}

.group-calendar-entry:last-child {
    padding-bottom: 1.2rem;
    border-bottom: 0
}

.group-calendar-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 66px;
    padding: .45rem;
    color: var(--ink-2)
}

.group-calendar-date strong {
    color: var(--ink);
    font-family: 'Libre Caslon Display', Georgia, serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1
}

.group-calendar-date span {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase
}

.group-calendar-copy h3 {
    margin: .15rem 0 .35rem;
    font-size: clamp(1.2rem, 2vw, 1.48rem)
}

.group-calendar-copy p {
    margin: 0;
    color: var(--ink-2)
}

.group-calendar-category {
    color: var(--copper) !important;
    font-size: .73rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase
}

.group-calendar-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    align-items: baseline
}

.group-calendar-meta strong {
    color: var(--ink);
    font-size: .88rem
}

.group-calendar-meta span {
    position: relative;
    padding-left: 1rem
}

.group-calendar-meta span::before {
    position: absolute;
    left: 0;
    content: "·"
}

.group-calendar-status {
    margin: 0;
    padding: clamp(2rem, 6vw, 4rem) clamp(1rem, 4vw, 3rem);
    color: var(--ink-2);
    text-align: center
}

.group-calendar-more {
    display: flex;
    justify-content: center;
    padding: 1.6rem 0 .25rem;
    border-top: 1px solid var(--line)
}

.route-kontakt>.section.split>img {
    height: 100%;
    min-height: 430px;
    border-radius: 0;
    border-bottom: 3px solid var(--copper)
}

.route-kontakt .page-grid>.prose h3,
.route-wissenswertes .page-grid>.prose h3 {
    margin-top: 2rem;
    padding-top: 1.35rem;
    border-top: 1px solid var(--line)
}

.route-presse .press-entry {
    margin-bottom: .65rem;
    padding: 1.7rem 1.8rem;
    background: rgba(252, 250, 245, .8);
    border: 0;
    border-left: 2px solid transparent
}

.route-presse .press-entry:hover,
.route-presse .press-entry:focus-visible {
    border-left-color: var(--copper)
}

.route-presse>.soft {
    background: var(--ink);
    color: var(--cream)
}

.route-presse>.soft p {
    color: #dce8e8
}

.route-presse>.soft .kicker {
    color: #e6b894
}

.route-presse>.soft .aside {
    background: var(--sand);
    color: var(--ink)
}

.route-presse>.soft .aside p {
    color: var(--ink-2)
}

.route-presse-detail .press-story {
    align-items: start
}

.route-presse-detail .press-reading {
    padding-right: clamp(0rem, 4vw, 3rem)
}

.route-veranstaltung-detail .event-detail-img {
    margin-top: -1.55rem;
    border-radius: 0;
    border-bottom: 3px solid var(--copper)
}

.route-impressum .legal-copy,
.route-agb .legal-copy,
.route-datenschutz .legal-copy {
    max-width: 960px;
    margin-top: clamp(3rem, 5vw, 5rem);
    margin-bottom: clamp(3rem, 5vw, 5rem);
    padding: clamp(2rem, 5vw, 4.5rem);
    background: rgba(252, 250, 245, .88);
    border-top: 2px solid var(--copper)
}

.route-impressum .legal-copy>h2:first-child,
.route-agb .legal-copy>h2:first-child,
.route-datenschutz .legal-copy>h2:first-child {
    margin-top: 0
}

.route-impressum .legal-copy h2,
.route-agb .legal-copy h2,
.route-datenschutz .legal-copy h2 {
    padding-top: 1.7rem;
    border-top: 1px solid var(--line)
}

.route-impressum .legal-copy>h2:first-child,
.route-agb .legal-copy>h2:first-child,
.route-datenschutz .legal-copy>h2:first-child {
    padding-top: 0;
    border-top: 0
}

@media(min-width:1180px) {
    .interior-page:not(.route-veranstaltung-detail):not(.route-presse-detail)>.simple-header h1 {
        max-width: none;
        white-space: nowrap
    }
}

@media(min-width:1000px) {
    .interior-page>.simple-header .wrap:has(.subnav) {
        padding-right: 390px
    }

    .interior-page>.simple-header .wrap:has(.subnav) .intro {
        max-width: 790px
    }

    .interior-page>.simple-header .subnav {
        position: absolute;
        right: 0;
        bottom: .15rem;
        justify-content: flex-end;
        width: 350px;
        margin: 0
    }
}

@media(max-width:900px) {
    .interior-page .page-grid {
        grid-template-columns: 1fr;
        gap: 2.8rem
    }

    .interior-page .aside {
        width: min(100%, 620px)
    }

    .heidelberg-overview,
    .heidelberg-session,
    .heidelberg-arrival,
    .nidau-arrival {
        grid-template-columns: 1fr
    }

    .nidau-session-panorama,
    .nidau-session-content,
    .nidau-booking {
        grid-column: 1
    }

    .nidau-session-panorama {
        grid-row: 1
    }

    .nidau-session-content {
        grid-row: 2
    }

    .nidau-booking {
        grid-row: 3;
        width: 100%
    }

    .heidelberg-overview .aside {
        width: 100%
    }

    .heidelberg-arrival figure {
        width: min(100%, 620px)
    }

    .interior-page:not(.route-andreas-meile) .media-pair {
        grid-template-columns: 160px minmax(0, 1fr);
        gap: 1.7rem
    }
}

@media(max-width:560px) {
    .interior-page>.simple-header {
        padding: 2.15rem 0 3rem
    }

    .interior-page>.simple-header h1 {
        font-size: clamp(2.45rem, 11vw, 3.15rem);
        overflow-wrap: break-word;
        hyphens: auto
    }

    .interior-page>.simple-header::after {
        bottom: 1.65rem
    }

    .heidelberg-panorama {
        width: 100%;
        margin-top: 0
    }

    .heidelberg-panorama img {
        min-height: 205px;
        border-radius: 0;
        object-position: center
    }

    .heidelberg-panorama figcaption {
        width: min(calc(100% - 2.5rem), var(--max));
        margin-inline: auto
    }

    .heidelberg-facts,
    .heidelberg-detail-grid {
        grid-template-columns: 1fr
    }

    .heidelberg-facts>div {
        padding: 1rem 0
    }

    .heidelberg-facts>div+div {
        padding-left: 0;
        border-top: 1px solid var(--line);
        border-left: 0
    }

    .heidelberg-detail-grid article,
    .heidelberg-detail-grid article+article {
        padding: 1.5rem 0;
        border-left: 0
    }

    .heidelberg-detail-grid article+article {
        border-top: 1px solid var(--line)
    }

    .heidelberg-cta .wrap {
        align-items: flex-start;
        flex-direction: column
    }

    .nidau-session-panorama img {
        min-height: 205px;
        aspect-ratio: 16 / 7
    }

    .nidau-cta .wrap {
        align-items: flex-start;
        flex-direction: column
    }

    .interior-page .resource-line {
        display: flex;
        align-items: flex-start;
        gap: .9rem;
        padding: 1.4rem 1.2rem
    }

    .interior-page .resource-line>.text-link {
        align-self: flex-start;
        white-space: normal
    }

    .interior-page .event-row {
        padding: 1.15rem 1rem
    }

    .interior-page:not(.route-andreas-meile) .media-pair {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 1rem;
        padding: 1.45rem 1rem
    }

    .route-kontakt>.section.split>img {
        min-height: 0;
        aspect-ratio: 1.15
    }

    .group-calendar-frame {
        padding: 0
    }

    .group-calendar-filters {
        gap: .4rem;
        padding: .75rem
    }

    .group-calendar-filters button {
        flex: 1 1 auto;
        padding: .58rem .65rem;
        font-size: .82rem
    }

    .group-calendar-results {
        padding: 1rem
    }

    .group-calendar-next {
        padding: 1.25rem
    }

    .group-calendar-next-grid {
        grid-template-columns: 1fr;
        gap: .9rem
    }

    .group-calendar-entry {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: .9rem;
        padding: 1.25rem 0
    }

    .group-calendar-date {
        min-height: 58px;
        padding: .25rem
    }

    .group-calendar-date strong {
        font-size: 1.7rem
    }

    .group-calendar-meta {
        flex-direction: column;
        gap: .1rem
    }

    .group-calendar-meta span {
        padding-left: 0
    }

    .group-calendar-meta span::before {
        content: none
    }

    .route-impressum .legal-copy,
    .route-agb .legal-copy,
    .route-datenschutz .legal-copy {
        width: min(calc(100% - 1.5rem), var(--max));
        padding: 1.6rem 1.25rem
    }
}
