:root {
    --ink: #20295F;
    --coral: #005DA8;
    --paper: #FFFFFE;
    --mist: #F7F3E8;
    --line: #D7A73F;
    --green: #7C8C1A;
    --plum: #762553;
    --blue: #3B9FD0;
    --blue-hover: #007DC3;
    --teal: #006B8F;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #E8F0F1; color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.55; }
.container-md { max-width: 1440px; min-height: 100vh; margin: 0 auto; background: var(--paper); box-shadow: 0 0 45px rgba(16, 38, 66, .08); }

.site-nav { min-height: 100px; display: flex; align-items: center; gap: 2rem; padding: 1.05rem clamp(1.5rem, 4vw, 4.5rem); background: var(--paper); }
.wordmark { display: block; width: 205px; flex: 0 0 205px; text-decoration: none; }
.wordmark img { display: block; width: 100%; height: auto; }
.site-nav nav { display: flex; justify-content: center; gap: clamp(1rem, 2.6vw, 3rem); flex: 1; }
.site-nav nav a { color: var(--ink); font-size: .92rem; font-weight: 650; text-decoration: none; }
.site-nav a:hover { color: var(--coral); }
.nav-cta, .button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; border-radius: 7px; font-size: .9rem; font-weight: 750; text-decoration: none; transition: transform .18s ease, background .18s ease; }
.nav-cta { min-width: 136px; padding: .75rem 1rem; color: white; background: var(--coral); }
.nav-cta:hover, .button-primary:hover { color: white; background: var(--blue-hover); transform: translateY(-2px); }
.site-nav .nav-cta:hover { color: white; }
.colour-band, .colour-band-top, .section-divider { height: 12px; background-image: url('../svg/footer.svg'); background-repeat: repeat-x; background-size: 700px 12px; background-position-x: calc(var(--tile-offset, 0) * -50px); }
.colour-band--top { --tile-offset: 0; }
.colour-band--nav { --tile-offset: 3; }
.section-divider--one { --tile-offset: 5; }
.section-divider--two { --tile-offset: 8; }
.section-divider--three { --tile-offset: 11; }
.section-divider--four { --tile-offset: 2; }
.section-divider--five { --tile-offset: 6; }
.section-divider--six { --tile-offset: 9; }
.section-divider--footer { --tile-offset: 12; }
.colour-band--footer { --tile-offset: 4; }

section { padding: clamp(3.8rem, 7vw, 7.2rem) clamp(1.5rem, 5vw, 5.8rem); }
.hero { display: grid; grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr); column-gap: clamp(2rem, 4vw, 5rem); padding: 0; min-height: 580px; }
.hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 7vw, 7rem) clamp(1.5rem, 6vw, 6.2rem); }
.eyebrow { margin: 0 0 1rem; color: var(--coral); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -.055em; line-height: .98; }
h1 { max-width: 640px; margin-bottom: 1.6rem; font-size: clamp(3.2rem, 5.6vw, 6.3rem); font-weight: 790; }
.hero h1 { max-width: 100%; color: var(--blue); font-size: clamp(3.2rem, 4.5vw, 5rem); }
.hero h1 span { color: var(--ink); }
.hero-intro { max-width: 530px; margin-bottom: 1.4rem; font-size: clamp(1rem, 1.35vw, 1.16rem); font-weight: 480; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.button { padding: .9rem 1.2rem; }
.button-primary { color: white; background: var(--coral); }
.button-secondary { color: var(--coral); border: 1.5px solid var(--coral); background: transparent; }
.button-secondary:hover { color: white; background: var(--coral); transform: translateY(-2px); }
.hero-image { position: relative; min-height: 440px; overflow: hidden; }
.hero-image > img { width: 100%; height: 100%; min-height: 580px; object-fit: cover; object-position: 53% center; display: block; }
.next-event { position: absolute; right: clamp(1rem, 3vw, 2.5rem); bottom: 1.5rem; display: flex; align-items: center; gap: .8rem; width: min(410px, calc(100% - 2rem)); padding: .9rem 1rem; color: var(--ink); background: rgba(255, 255, 255, .94); border-radius: 10px; box-shadow: 0 8px 22px rgba(16, 38, 66, .16); text-decoration: none; }
.next-event:hover { color: var(--coral); }
.next-event small, .next-event strong, .next-event em { display: block; line-height: 1.3; font-style: normal; }
.next-event small { color: var(--green); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.next-event strong { color: var(--coral); font-size: .95rem; }
.next-event em { font-size: .78rem; }
.next-event b { margin-left: auto; font-size: 1.2rem; }

.principles { background: var(--mist); }
.section-heading { margin-bottom: 2.6rem; }
.section-heading h2 { max-width: 640px; margin: 0; font-size: clamp(2.5rem, 4.1vw, 4.75rem); font-weight: 760; }
.principle-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.principle { min-height: 270px; padding: 1.8rem; border-right: 1px solid rgba(255,255,255,.45); border-bottom: 1px solid rgba(255,255,255,.45); }
.principle-number { display: block; margin-bottom: 2.2rem; font-size: .78rem; font-weight: 800; }
.principle h3 { margin-bottom: 1rem; font-size: clamp(1.55rem, 2.1vw, 2.2rem); font-weight: 760; overflow-wrap: anywhere; }
.principle p { margin: 0; font-size: .9rem; }
.principle.identity { color: white; background: #D62850; }
.principle.spirituality { color: white; background: #1673AD; }
.principle.reformation { color: #10213D; background: #C7D950; }
.principle.responsibility { color: #2D1911; background: #F7AD3A; }
.principle.identity .principle-number, .principle.spirituality .principle-number { color: #FFD0DC; }
.principle.reformation .principle-number { color: #63760B; }
.principle.responsibility .principle-number { color: #A44A08; }

.leitbild-section { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 7vw, 8rem); color: white; background: var(--teal); }
.leitbild-section .eyebrow { color: #F1AB56; }
.leitbild-heading h2 { margin: 0; font-size: clamp(2.5rem, 4vw, 4.5rem); font-weight: 760; }
.leitbild-copy { max-width: 720px; padding-top: .3rem; }
.leitbild-copy p { margin-bottom: 1.35rem; font-size: clamp(1rem, 1.25vw, 1.15rem); }
.leitbild-copy p:last-child { margin-bottom: 0; }

.events-section { background: #fff; }
.event-list { width: 100%; margin-bottom: 2rem; border-top: 2px solid var(--ink); }
.event-row { display: grid; grid-template-columns: 112px minmax(260px, 1.45fr) minmax(190px, .9fr); align-items: center; gap: clamp(1rem, 3vw, 3rem); min-height: 110px; padding: 1rem 0; border-bottom: 1px solid rgba(59, 159, 208, .65); }
.event-date { display: grid; grid-template-columns: 58px 1fr; align-items: baseline; column-gap: .35rem; color: var(--coral); line-height: 1; }
.event-date strong { font-size: 2.8rem; font-weight: 800; letter-spacing: -.08em; text-align: right; }
.event-date span { font-size: .92rem; font-weight: 800; text-transform: uppercase; }
.event-date small { grid-column: 2; color: var(--ink); font-size: .72rem; font-weight: 700; }
.event-copy h3 { margin: 0 0 .3rem; color: var(--ink); font-size: 1.35rem; font-weight: 760; letter-spacing: -.035em; }
.event-copy p { margin: 0; font-size: .88rem; }
.event-meta { display: grid; gap: .3rem; color: var(--teal); font-size: .88rem; font-weight: 650; }
.event-meta a { color: inherit; text-decoration: none; }
.event-meta a:hover { color: var(--coral); text-decoration: underline; }

#statements .card-img { width: calc(100% - 1.5rem); margin: .75rem; border-radius: 4px; }
#statements { background: var(--mist); }

.members-section { color: white; background: var(--plum); }
.members-section .eyebrow { color: #FFC1D5; }
.member-group-title { margin: 0 0 1.25rem; color: #FFC1D5; font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 720; letter-spacing: -.03em; }
.member-group--members { margin-top: clamp(3.5rem, 6vw, 5.5rem); padding-top: clamp(3.5rem, 6vw, 5.5rem); }
.members-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.kirchenraete-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 720px; }
.member-card { position: relative; aspect-ratio: .82; overflow: hidden; background: #461633; }
.member-card img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: saturate(.85); transition: transform .35s ease; }
.member-card:hover img { transform: scale(1.04); }
.member-card h3 { position: absolute; right: 0; bottom: 0; left: 0; margin: 0; padding: 2.4rem 1rem .85rem; background: linear-gradient(transparent, rgba(17, 6, 17, .86)); color: white; font-size: 1.15rem; font-weight: 670; letter-spacing: -.03em; line-height: 1.1; }
.member-card h3 span { display: block; margin-top: .35rem; color: rgba(255, 255, 255, .72); font-size: .72em; font-weight: 480; letter-spacing: 0; line-height: 1.3; }

.site-footer { display: flex; position: relative; justify-content: space-between; gap: 2rem; padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 5.8rem); color: white; background: var(--ink); }
.site-footer .eyebrow { color: var(--blue); }
.site-footer h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.6rem); font-weight: 740; }
.footer-imprint { align-self: end; max-width: 300px; font-size: .86rem; line-height: 1.55; }
.footer-imprint p { margin: .55rem 0 0; }
.footer-imprint-title { margin-top: 0 !important; color: var(--blue); font-size: clamp(1.25rem, 2vw, 1.65rem); font-weight: 720; letter-spacing: -.03em; }
.footer-imprint a { color: white; font-weight: 700; }
.footer-divider { position: absolute; right: 0; bottom: 0; left: 0; }

@media (max-width: 860px) {
    .site-nav { min-height: auto; flex-wrap: wrap; gap: .9rem 1.4rem; padding-top: 1.2rem; padding-bottom: 1.2rem; }
    .site-nav nav { order: 3; flex-basis: 100%; justify-content: space-between; gap: .5rem; overflow-x: auto; padding-top: .3rem; }
    .site-nav nav a { flex: 0 0 auto; font-size: .82rem; }
    .nav-cta { margin-left: auto; min-width: auto; }
    .hero { grid-template-columns: 1fr; }
    .hero-copy { padding-top: 4rem; padding-bottom: 3.6rem; }
    .hero-image, .hero-image > img { min-height: 440px; }
    .hero-image > img { object-position: 57% center; }
    .principle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .leitbild-section { grid-template-columns: 1fr; gap: 2rem; }
    .members-grid { grid-template-columns: repeat(3, 1fr); }
    .kirchenraete-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 600px; }
}

@media (max-width: 540px) {
    .site-nav { gap: .7rem; }
    .wordmark { width: 155px; flex-basis: 155px; }
    .nav-cta { padding: .58rem .7rem; font-size: .78rem; }
    .colour-band, .colour-band-top, .section-divider { height: 8px; background-size: 182px 8px; background-position-x: calc(var(--tile-offset, 0) * -13px); }
    h1, .hero h1 { font-size: clamp(3.1rem, 14vw, 4.5rem); }
    .hero-intro { font-size: 1rem; }
    .hero-image, .hero-image > img { min-height: 360px; }
    .next-event { bottom: 1rem; padding: .7rem .8rem; }
    .next-event em { font-size: .72rem; }
    .principle { min-height: 220px; padding: 1.25rem; }
    .principle-grid { grid-template-columns: minmax(0, 1fr); }
    .principle-number { margin-bottom: 1.6rem; }
    .principle h3 { font-size: 1.6rem; }
    .principle p { font-size: .83rem; }
    .members-grid { grid-template-columns: repeat(2, 1fr); gap: .65rem; }
    .member-card h3 { padding: 2rem .65rem .6rem; font-size: .95rem; }
    .site-footer { display: block; }
    .footer-imprint { margin-top: 2rem; }
    .event-row { grid-template-columns: 78px minmax(0, 1fr); gap: .85rem; min-height: 0; padding: 1.15rem 0; }
    .event-date strong { font-size: 2.2rem; }
    .event-date span { font-size: .75rem; }
    .event-date small { font-size: .62rem; }
    .event-copy h3 { font-size: 1.1rem; }
    .event-meta { grid-column: 2; font-size: .78rem; }
}
