/* Selbst gehostete Google Fonts (nur latin + latin-ext) – keine Anfragen mehr an Google, keine IP-Übertragung an Dritte beim Laden der Schrift. */
@font-face{font-family:'Dancing Script'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/dancing-script-600-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Dancing Script'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/dancing-script-600-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Dancing Script'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/dancing-script-600-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Dancing Script'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/dancing-script-600-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Kalam'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/kalam-400-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Kalam'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/kalam-400-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Kalam'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/kalam-700-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Kalam'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/kalam-700-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans'; font-style:italic; font-weight:400; font-display:swap; src:url('/assets/fonts/open-sans-400-italic-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans'; font-style:italic; font-weight:400; font-display:swap; src:url('/assets/fonts/open-sans-400-italic-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:800; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin-ext.woff2') format('woff2'); unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Open Sans'; font-style:normal; font-weight:800; font-display:swap; src:url('/assets/fonts/open-sans-400-normal-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* Fixed brand palette — this is a public club site, not a themed tool,
   so it always looks the same regardless of the viewer's OS setting. */
:root{
  --red:#E31D25;
  --red-deep:#AD141A;
  --blue:#04A0E3;
  --blue-deep:#036D9C;
  --paper:#FFFFFF;
  --paper-alt:#F3F5F5;
  --ink:#2B2E33;
  --ink-soft:#666B6F;
  --dark:#3D4045;
  --dark-deep:#2A2C30;
  --line:#E3E6E7;
  --shadow: 43 12% 20%;

  /* Spacing scale — every gap, margin and padding in this file is one of these. */
  --space-1:8px;
  --space-2:12px;
  --space-3:16px;
  --space-4:24px;
  --space-5:32px;
  --space-6:48px;
  --space-7:64px;
  --space-8:96px;

  /* Type scale — one size per role, reused everywhere that role appears. */
  --fs-xs:.8rem;
  --fs-sm:.9rem;
  --fs-body:1rem;
  --fs-lg:1.1rem;
  --fs-h3:1.05rem;
  --fs-h2:clamp(1.8rem, 3.2vw, 2.4rem);
  --fs-h1:clamp(2.2rem, 4.6vw, 3rem);
  --fs-display:clamp(2.8rem, 7vw, 5rem);
}

*{box-sizing:border-box;}
html{color-scheme:light; overflow-x:hidden;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Open Sans', system-ui, sans-serif;
  font-size:var(--fs-body);
  overflow-x:hidden;
}
a{color:inherit;}
img{max-width:100%; display:block;}
p{line-height:1.65; color:var(--ink-soft); margin:0 0 var(--space-3) 0;}
p:last-child{margin-bottom:0;}

/* Headings: one shared rhythm. Contexts that need a different size say so
   with --fs-h1 / --fs-display, never a one-off clamp() or inline style. */
h1,h2,h3,h4{
  margin:0 0 var(--space-2) 0;
  font-family:'Open Sans', system-ui, sans-serif;
  font-weight:800;
  letter-spacing:-.01em;
  text-wrap:balance;
  color:var(--ink);
  line-height:1.15;
}
h1{font-size:var(--fs-h1);}
h2{font-size:var(--fs-h2);}
h3{font-size:var(--fs-h3); font-weight:700;}
.script{font-family:'Dancing Script', cursive; font-weight:700; color:var(--blue); line-height:1.15;}
h1.script, h2.script{font-weight:600;}

.lead{font-size:var(--fs-lg); color:var(--ink-soft); max-width:60ch; margin:0 0 var(--space-5) 0;}
.link-inline{color:var(--blue); font-weight:700;}
.center{text-align:center;}
.narrow{max-width:880px; margin-inline:auto;}
.note{margin-top:var(--space-6);}
.section-title.tight{margin-bottom:var(--space-2);}

.wrap{max-width:1180px; margin-inline:auto; padding-inline:var(--space-4);}

/* ---------- Header ---------- */
header{
  background:var(--red);
  position:sticky; top:0; z-index:50;
  box-shadow:0 2px 10px hsl(var(--shadow) / .25);
}
.header-inner{
  max-width:1180px; margin-inline:auto; padding-inline:var(--space-4);
  display:flex; align-items:center; justify-content:space-between;
  height:76px; position:relative;
}
.brand{display:flex; align-items:center; gap:var(--space-2); text-decoration:none; height:100%;}
.brand img{height:44px; width:auto;}
nav{display:flex; gap:6px; list-style:none; margin:0; padding:0;}
nav a{
  text-decoration:none; color:#fff; font-weight:600; font-size:var(--fs-sm);
  padding:10px 14px; border-radius:8px; opacity:.92;
  transition:background .15s ease, opacity .15s ease;
}
nav a:hover{background:rgba(255,255,255,.16); opacity:1;}
nav a.current{background:rgba(255,255,255,.22); opacity:1;}
.nav-soon{
  display:inline-flex; align-items:center; gap:6px;
  color:rgba(255,255,255,.6); font-weight:600; font-size:var(--fs-sm);
  padding:10px 14px; cursor:default;
}
.nav-soon .badge-soon{
  font-size:.66rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  background:rgba(255,255,255,.18); color:#fff; padding:2px 7px; border-radius:999px;
}
.nav-toggle{display:none; background:none; border:2px solid #fff; border-radius:8px; width:42px; height:38px; align-items:center; justify-content:center; cursor:pointer;}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{content:""; display:block; width:18px; height:2px; background:#fff; position:relative; transition:background .15s ease, transform .15s ease, top .15s ease;}
.nav-toggle span::before{position:absolute; top:-6px;} .nav-toggle span::after{position:absolute; top:6px;}
.nav-toggle.is-active span{background:transparent;}
.nav-toggle.is-active span::before{top:0; transform:rotate(45deg);}
.nav-toggle.is-active span::after{top:0; transform:rotate(-45deg);}

/* ---------- Hero (home) ---------- */
.hero{
  position:relative; min-height:clamp(620px, 86vh, 820px); display:flex; align-items:flex-end;
  background:
    linear-gradient(180deg, rgba(20,15,14,.05) 0%, rgba(15,12,12,.86) 92%),
    var(--hero-img, url('/assets/img/hero-neussend-alaaf.jpg')) center var(--hero-pos, 20%) / cover no-repeat;
}
.hero-content{max-width:1180px; margin-inline:auto; padding:0 var(--space-4) var(--space-6); width:100%; min-width:0; color:#fff;}
.hero-eyebrow{
  position:relative;
  display:inline-flex; align-items:center; gap:var(--space-1);
  font-weight:800; font-size:var(--fs-xs); letter-spacing:.09em; text-transform:uppercase;
  color:#fff; background:var(--blue-deep);
  padding:10px 26px; margin-bottom:var(--space-4);
  clip-path:polygon(3% 0, 97% 0, 100% 50%, 97% 100%, 3% 100%, 0 50%);
  box-shadow:0 8px 16px rgba(0,0,0,.35);
}
.hero-eyebrow .dot{width:6px; height:6px; border-radius:50%; background:#fff;}
.hero h1{font-size:var(--fs-display); margin:0 0 var(--space-2) 0; color:#fff; text-shadow:0 4px 24px rgba(0,0,0,.35);}
.hero p.lede{color:#EDEAE6; max-width:52ch; font-size:var(--fs-lg); margin:0 0 var(--space-5) 0;}
.hero-ctas{display:flex; gap:var(--space-3); flex-wrap:wrap;}

/* ---------- Page hero (subpages) ---------- */
.page-hero{
  background:linear-gradient(120deg, var(--red) 0%, var(--red-deep) 100%);
  color:#fff; padding-block:var(--space-6);
}
.page-hero .kicker{color:#FFD9D8;}
.page-hero h1{font-size:var(--fs-h1); margin:0 0 var(--space-2) 0; color:#fff;}
.page-hero p{color:#FBE3E2; max-width:56ch; margin:0;}

.btn{
  font-weight:700; text-decoration:none; padding:13px 26px; border-radius:999px;
  display:inline-flex; align-items:center; gap:var(--space-1); font-size:var(--fs-sm);
  transition:transform .15s ease, box-shadow .15s ease; border:none; cursor:pointer;
  font-family:inherit;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--blue); color:#fff; box-shadow:0 6px 18px rgba(4,160,227,.4);}
.btn-primary:hover{background:var(--blue-deep);}
.btn-outline{background:rgba(255,255,255,.08); color:#fff; border:1.5px solid rgba(255,255,255,.7);}
.btn-outline:hover{background:rgba(255,255,255,.18);}

/* ---------- Section shell ---------- */
section{padding-block:var(--space-8);}
.alt{background:var(--paper-alt);}
.section-head{text-align:center; max-width:640px; margin:0 auto var(--space-6);}
.kicker{
  display:block; font-weight:700; font-size:var(--fs-xs); letter-spacing:.14em; text-transform:uppercase;
  color:var(--red); margin-bottom:var(--space-2);
}
.section-head h2{margin-bottom:var(--space-2);}
.section-title{margin-bottom:var(--space-5);}
.block-head{display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-3); margin-bottom:var(--space-5); flex-wrap:wrap;}
.block-head h2{margin:0;}
.see-all{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:700; font-size:var(--fs-sm); text-decoration:none; color:var(--ink); white-space:nowrap;
  padding:6px 6px 6px 18px; border-radius:999px; border:1.5px solid var(--line);
  transition:border-color .18s ease, background .18s ease;
}
.see-all .arrow{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:26px; height:26px; border-radius:50%; background:var(--blue); color:#fff; font-size:.8rem;
  transition:transform .18s ease, background .18s ease;
}
.see-all:hover{border-color:var(--blue);}
.see-all:hover .arrow{transform:translateX(3px); background:var(--blue-deep);}

/* Prinzenpaar */
.royal-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:var(--space-6); align-items:center;}
.royal-copy p{max-width:48ch;}
.royal-copy .see-all{margin-top:var(--space-4);}
.royal-entry{padding-block:var(--space-3); border-bottom:1px solid var(--line);}
.royal-entry:first-child{padding-top:0;}
.royal-entry:last-child{padding-bottom:0; border-bottom:none;}
.royal-tag{
  display:inline-block; font-weight:800; font-size:var(--fs-xs); letter-spacing:.08em; text-transform:uppercase;
  color:var(--blue-deep); background:rgba(4,160,227,.12); padding:4px 12px; border-radius:999px;
  margin-bottom:var(--space-2);
}
.royal-name-line{font-weight:800; font-size:var(--fs-lg); color:var(--ink); margin:0 0 4px 0;}
.royal-title{font-style:italic; color:var(--ink-soft); font-size:var(--fs-sm); margin:0;}
.royal-photos{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); justify-items:center;}
.royal-photos img{border-radius:16px; aspect-ratio:4/5; object-fit:cover; box-shadow:0 10px 26px hsl(var(--shadow)/.22); max-width:220px; width:100%;}
.royal-photos img:nth-child(2){margin-top:var(--space-7);}
.royal-photos img.royal-photo-rect{aspect-ratio:auto; object-fit:contain;}
.royal-photos img.royal-photo-round{
  aspect-ratio:1/1; border-radius:0; object-fit:contain; box-shadow:none; background:transparent;
  filter:drop-shadow(0 10px 20px hsl(var(--shadow)/.35));
  max-width:220px; width:100%;
}

/* Termine — pinned notepad sheets, not SaaS cards */
.termine-row{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-5);
  align-items:start; padding-block:var(--space-2);
}
.termin-card{
  --tilt:-2deg; --tape:var(--red);
  position:relative;
  background:
    linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,0) 24px),
    #FFFCF2;
  border:1px solid rgba(43,46,51,.08);
  border-radius:3px;
  padding:var(--space-4) var(--space-3) var(--space-3);
  box-shadow:0 10px 18px -8px hsl(var(--shadow)/.35);
  transform:rotate(var(--tilt));
  transition:transform .25s ease, box-shadow .25s ease;
  cursor:default;
}
.termin-card:nth-child(4n+1){--tilt:-2.5deg; --tape:var(--red);}
.termin-card:nth-child(4n+2){--tilt:1.8deg; --tape:var(--blue); margin-top:var(--space-3);}
.termin-card:nth-child(4n+3){--tilt:-1.5deg; --tape:#D9A400;}
.termin-card:nth-child(4n){--tilt:2.6deg; --tape:var(--dark); margin-top:var(--space-1);}
.termin-card:hover{
  transform:rotate(0deg) translateY(-6px) scale(1.04);
  box-shadow:0 18px 30px -10px hsl(var(--shadow)/.45);
  z-index:2;
}
.termin-card::before{
  content:"";
  position:absolute; top:-10px; left:50%; margin-left:-24px;
  width:48px; height:20px; border-radius:2px;
  background:var(--tape); opacity:.75;
  transform:rotate(-4deg);
  box-shadow:0 2px 4px hsl(var(--shadow)/.2);
}
.termin-card .d{
  font-family:'Kalam', cursive; font-weight:700; font-size:1.4rem; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.termin-card .l{font-weight:600; color:var(--ink-soft); margin-top:var(--space-1); font-size:var(--fs-sm);}
.termin-card .more{
  display:inline-flex; align-items:center; gap:4px;
  margin-top:var(--space-3); font-weight:700; font-size:var(--fs-xs);
  color:var(--blue-deep); text-decoration:none; border-bottom:1.5px solid transparent;
}
.termin-card .more:hover{border-color:var(--blue-deep);}

.termine-list{display:flex; flex-direction:column; max-width:720px; margin:0 auto;}
.termine-list li{
  list-style:none; display:grid; grid-template-columns:120px 1fr; gap:var(--space-3); align-items:center;
  padding:var(--space-4) 0; border-bottom:1px solid var(--line);
}
.termine-list .d{font-weight:800; font-size:var(--fs-lg); font-variant-numeric:tabular-nums; color:var(--red);}
.termine-list .l{font-weight:700; font-size:var(--fs-lg);}
.termine-list .s{color:var(--ink-soft); font-size:var(--fs-sm); margin-top:2px;}
.termine-list li:has(.termin-flyer){grid-template-columns:120px 1fr auto;}
.termin-flyer{width:84px; border-radius:4px; box-shadow:0 6px 14px -6px hsl(var(--shadow)/.45);}
img.termin-flyer-img{display:block; height:auto; cursor:zoom-in; transform:rotate(2deg); transition:transform .2s ease;}
img.termin-flyer-img:hover{transform:rotate(0) scale(1.05);}
.termin-flyer-pdf{
  display:flex; flex-direction:column; align-items:center; gap:2px; padding:var(--space-2) 0;
  background:#FFFCF2; border:1px solid var(--line); font-size:1.6rem; text-decoration:none; color:var(--ink);
}
.termin-flyer-pdf span{font-size:var(--fs-xs); font-weight:700; color:var(--blue-deep);}
.termine-list li{scroll-margin-top:100px;}

/* News — pinned photo clippings, matching the notepad/pinboard language
   used for Termine, instead of a generic rounded blog card. */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); padding-block:var(--space-2);}
.news-card{
  --tilt:-1.5deg; --pin:var(--red);
  background:#fff; border-radius:3px;
  padding:var(--space-2) var(--space-2) var(--space-4);
  box-shadow:0 10px 20px -8px hsl(var(--shadow)/.32);
  position:relative; display:flex; flex-direction:column;
  text-decoration:none; color:var(--ink);
  transform:rotate(var(--tilt));
  transition:transform .2s ease, box-shadow .2s ease;
}
.news-card:nth-child(6n+1){--tilt:-2deg; --pin:var(--red);}
.news-card:nth-child(6n+2){--tilt:1.6deg; --pin:var(--blue);}
.news-card:nth-child(6n+3){--tilt:-1.2deg; --pin:#D9A400;}
.news-card:nth-child(6n+4){--tilt:2.1deg; --pin:var(--blue);}
.news-card:nth-child(6n+5){--tilt:-1.6deg; --pin:var(--red);}
.news-card:nth-child(6n){--tilt:1.3deg; --pin:#D9A400;}
.news-card:hover{
  transform:rotate(0deg) translateY(-6px) scale(1.03);
  box-shadow:0 18px 30px -10px hsl(var(--shadow)/.42);
  z-index:2;
}
.news-card::before{
  content:""; position:absolute; top:-9px; left:50%; margin-left:-9px;
  width:18px; height:18px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.75), transparent 45%), var(--pin);
  box-shadow:0 3px 6px hsl(var(--shadow)/.45);
}
.news-thumb{aspect-ratio:16/10; object-fit:cover; width:100%; border-radius:2px; display:block;}
.news-body{padding:var(--space-3) var(--space-1) 0;}
.news-date{font-weight:700; font-size:var(--fs-xs); letter-spacing:.06em; text-transform:uppercase; color:var(--blue-deep);}
.news-body h3{margin:var(--space-1) 0 var(--space-1) 0;}
.news-body p{
  font-size:var(--fs-sm); margin:0 0 var(--space-2) 0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.news-body .link-inline{font-size:var(--fs-sm);}

.news-article{display:grid; grid-template-columns:300px 1fr; gap:var(--space-5); align-items:start; margin-top:var(--space-5);}
.news-article.no-image{grid-template-columns:1fr;}
.news-article-photo{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px;}

/* Gallery */
.gallery-panel{position:relative; border-radius:22px; overflow:hidden; color:#fff; background:var(--dark-deep);}
.gallery-collage{position:absolute; inset:0; display:grid; grid-template-columns:repeat(6,1fr); opacity:.34;}
.gallery-collage img{width:100%; height:100%; object-fit:cover;}
.gallery-overlay{
  position:relative; z-index:1;
  background:linear-gradient(100deg, rgba(20,18,17,.94) 0%, rgba(20,18,17,.75) 55%, rgba(20,18,17,.5) 100%);
  padding:var(--space-6) var(--space-5); display:grid; grid-template-columns:1.1fr .9fr; gap:var(--space-5); align-items:center;
}
.gallery-overlay .kicker{color:var(--blue);}
.gallery-overlay h2{color:#fff;}
.gallery-overlay p{color:#D8D4CF; max-width:44ch;}
.gallery-crumbs{display:flex; flex-wrap:wrap; gap:var(--space-1); align-items:center; margin:var(--space-3) 0 var(--space-4) 0; font-size:var(--fs-sm); font-weight:700;}
.gallery-crumbs .crumb{background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.28); padding:6px 13px; border-radius:999px;}
.gallery-crumbs a.crumb{text-decoration:none;}
.gallery-crumbs .sep{color:var(--blue);}
.gallery-thumbs{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-2);}
.gallery-thumbs img{border-radius:10px; aspect-ratio:1; object-fit:cover; border:1px solid rgba(255,255,255,.15);}

.session-pills{display:flex; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-6);}
.session-pill{
  padding:9px 18px; border-radius:999px; font-weight:700; font-size:var(--fs-sm); text-decoration:none;
  border:1.5px solid var(--line); color:var(--ink-soft);
}
.session-pill.active{background:var(--red); border-color:var(--red); color:#fff;}

/* Veranstaltungen — same pinned-photo family as the News cards. */
.veranstaltung-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-5); margin-bottom:var(--space-7); padding-block:var(--space-2);}
.veranstaltung-card{
  --tilt:-1.5deg; --pin:var(--red);
  display:flex; flex-direction:column;
  background:#fff; border-radius:3px;
  padding:var(--space-2) var(--space-2) var(--space-4);
  box-shadow:0 10px 20px -8px hsl(var(--shadow)/.32);
  position:relative; text-decoration:none; color:var(--ink);
  transform:rotate(var(--tilt));
  transition:transform .2s ease, box-shadow .2s ease;
}
.veranstaltung-card:nth-child(4n+1){--tilt:-2deg; --pin:var(--red);}
.veranstaltung-card:nth-child(4n+2){--tilt:1.6deg; --pin:var(--blue);}
.veranstaltung-card:nth-child(4n+3){--tilt:-1.3deg; --pin:#D9A400;}
.veranstaltung-card:nth-child(4n){--tilt:2.1deg; --pin:var(--dark);}
.veranstaltung-card:hover{
  transform:rotate(0deg) translateY(-6px) scale(1.03);
  box-shadow:0 18px 30px -10px hsl(var(--shadow)/.42);
  z-index:2;
}
.veranstaltung-card::before{
  content:""; position:absolute; top:-9px; left:50%; margin-left:-9px;
  width:18px; height:18px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.75), transparent 45%), var(--pin);
  box-shadow:0 3px 6px hsl(var(--shadow)/.45);
}
.veranstaltung-card img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:2px; display:block;}
.veranstaltung-card .body{padding:var(--space-3) var(--space-1) 0;}
.veranstaltung-card h3{margin:0 0 4px 0;}
.veranstaltung-card .meta{font-size:var(--fs-sm); color:var(--ink-soft);}
.veranstaltung-card .count{display:inline-block; margin-top:var(--space-1); font-size:var(--fs-xs); font-weight:700; color:var(--blue-deep);}

.album-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-2);}
.album-grid img{border-radius:12px; aspect-ratio:1; object-fit:cover; box-shadow:0 4px 14px hsl(var(--shadow)/.08); cursor:zoom-in;}

.lightbox-overlay{
  position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center;
  background:rgba(20,20,22,.94); padding:var(--space-5);
}
.lightbox-overlay.open{display:flex;}
.lightbox-img{max-width:100%; max-height:100%; border-radius:10px; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute; background:none; border:none; color:#fff; cursor:pointer; line-height:1;
  padding:var(--space-2); opacity:.85;
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{opacity:1;}
.lightbox-close{top:var(--space-3); right:var(--space-3); font-size:2.2rem;}
.lightbox-prev, .lightbox-next{top:50%; transform:translateY(-50%); font-size:3rem;}
.lightbox-prev{left:var(--space-2);}
.lightbox-next{right:var(--space-2);}
@media (max-width:600px){
  .lightbox-overlay{padding:var(--space-2);}
  .lightbox-prev, .lightbox-next{font-size:2rem;}
}

/* Historie */
.historie-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:center;}
.historie-copy p{max-width:48ch;}
.historie-timeline{list-style:none; margin:var(--space-3) 0 0 0; padding:0; display:flex; flex-direction:column;}
.historie-timeline li{display:flex; align-items:baseline; gap:var(--space-3); padding:var(--space-3) 0; border-bottom:1px dashed var(--line);}
.historie-timeline .yr{font-weight:800; color:var(--red); min-width:74px; font-size:var(--fs-lg);}
.historie-timeline .who{font-weight:600;}
.historie-timeline.future .who{color:var(--ink-soft); font-style:italic; font-weight:400;}
.historie-copy .see-all{margin-top:var(--space-4);}
.historie-card{
  background:var(--paper); border-radius:18px; padding:var(--space-5); box-shadow:0 10px 30px hsl(var(--shadow)/.1);
  border:1px solid var(--line); text-align:center;
}
.historie-card img{border-radius:14px; aspect-ratio:4/5; object-fit:cover; margin-bottom:var(--space-3);}
.historie-card .tag{
  display:inline-block; background:var(--blue); color:#fff; font-weight:700; font-size:var(--fs-xs);
  letter-spacing:.06em; text-transform:uppercase; padding:5px 12px; border-radius:999px; margin-bottom:var(--space-2);
}
.chronik-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-5);}
.chronik-card{
  background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:var(--space-4);
}
.chronik-card-head{display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-4);}
.chronik-card-head .yr{font-weight:800; font-size:1.5rem; color:var(--red);}
.chronik-card-head .badge{
  font-size:var(--fs-xs); font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  background:var(--blue); color:#fff; padding:5px 12px; border-radius:999px; white-space:nowrap;
}
.chronik-pair{display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-3);}
.chronik-pair:last-child{margin-bottom:0;}
.chronik-pair.kinder{border-top:1px dashed var(--line); padding-top:var(--space-3);}
.chronik-photo{
  width:90px; height:90px; object-fit:contain; background:transparent; flex:none;
  filter:drop-shadow(0 4px 10px hsl(var(--shadow)/.3));
}
img.chronik-photo{cursor:zoom-in;}
.chronik-photo.chronik-photo-rect{
  width:100px; height:auto; max-height:130px; object-fit:cover; border-radius:6px;
  filter:none; box-shadow:0 4px 10px hsl(var(--shadow)/.25);
}
.chronik-photo.placeholder{
  border-radius:50%; background:var(--blue); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:var(--fs-sm); filter:none;
}
.chronik-people{display:flex; flex-direction:column; gap:var(--space-2);}
.chronik-person .who{font-weight:700;}
.chronik-person .titel{font-size:var(--fs-sm); color:var(--ink-soft); font-style:italic; margin-top:1px;}
.chronik-none{color:var(--ink-soft); font-style:italic; margin:0;}

/* Archiv */
.archiv-motto{font-family:'Dancing Script', cursive; font-weight:700; color:var(--blue); font-size:1.7rem; line-height:1.2; margin:2px 0 var(--space-5);}
.archiv-top-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); align-items:start; margin-bottom:var(--space-6);}
.archiv-prinzenpaar{margin-bottom:0;}
.archiv-orden{display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:var(--space-2); height:100%;}
.archiv-orden img{max-width:220px; max-height:220px; width:auto; height:auto; object-fit:contain; filter:drop-shadow(0 4px 10px hsl(var(--shadow)/.3)); cursor:zoom-in;}
.archiv-orden-titel{font-weight:700; margin:0;}
.archiv-kategorie-title{margin:var(--space-6) 0 var(--space-3);}
.archiv-grid{margin-bottom:var(--space-2);}
.archiv-pdf-tile{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-2);
  aspect-ratio:1; border-radius:12px; background:var(--paper-alt); border:1px solid var(--line);
  text-decoration:none; color:var(--ink); text-align:center; padding:var(--space-3); box-shadow:0 4px 14px hsl(var(--shadow)/.08);
}
.archiv-pdf-tile:hover{border-color:var(--blue); text-decoration:none;}
.archiv-pdf-icon{font-size:2rem;}
.archiv-pdf-label{font-size:var(--fs-xs); font-weight:700; color:var(--ink-soft); line-height:1.3; word-break:break-word;}

.archiv-timeline{display:flex; flex-direction:column; position:relative; margin-top:var(--space-2);}
.archiv-timeline::before{content:""; position:absolute; left:17px; top:8px; bottom:8px; width:2px; background:var(--line);}
.archiv-timeline-item{
  position:relative; display:flex; align-items:center; gap:var(--space-3);
  padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);
  text-decoration:none; color:var(--ink); border-radius:10px;
}
.archiv-timeline-item:hover{background:var(--paper-alt); text-decoration:none;}
.archiv-timeline-dot{
  position:absolute; left:12px; width:14px; height:14px; border-radius:50%;
  background:var(--paper); border:3px solid var(--red);
}
.archiv-timeline-year{font-weight:800; color:var(--red); min-width:110px;}
.archiv-timeline-meta{flex:1; color:var(--ink-soft); font-size:var(--fs-sm);}
.archiv-timeline-arrow{color:var(--blue); font-weight:700;}

/* Verein */
.verein-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4);}
.verein-card{text-align:center;}
.verein-photo{
  aspect-ratio:1; border-radius:50%; overflow:hidden; margin:0 auto var(--space-3); width:104px;
  border:3px solid var(--paper-alt); box-shadow:0 6px 16px hsl(var(--shadow)/.12);
}
.verein-photo img{width:100%; height:100%; object-fit:cover;}
.verein-photo img.pos-top{object-position:top;}
.verein-photo.placeholder{
  background:var(--blue);
  display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:var(--fs-lg);
}
.verein-card h3{margin:0 0 3px 0;}
.verein-card .role{font-size:var(--fs-sm); color:var(--ink-soft);}
.dept-title{font-size:var(--fs-lg); font-weight:800; color:var(--red); margin:0 0 var(--space-4) 0;}
.dept-block{margin-bottom:var(--space-6);}
.dept-block:last-child{margin-bottom:0;}

/* Kontakt */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:start;}
.contact-card{background:var(--dark); color:#fff; border-radius:18px; padding:var(--space-5);}
.contact-card h2{color:#fff; margin:0 0 var(--space-4) 0; font-size:var(--fs-h3); }
.field{display:flex; flex-direction:column; gap:6px; margin-bottom:var(--space-3);}
.field label{font-size:var(--fs-sm); font-weight:700; color:#D9D6D2;}
.field input, .field textarea{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); border-radius:10px;
  padding:12px 14px; color:#fff; font-family:inherit; font-size:var(--fs-body);
}
.field input:focus, .field textarea:focus{outline:2px solid var(--blue); outline-offset:1px;}
.contact-info h3{margin:0 0 var(--space-2) 0; color:var(--red);}
.contact-info p{margin:0 0 var(--space-5) 0;}

/* Footer */
footer{background:var(--dark); color:#D9D6D2; padding-block:var(--space-6) 0;}
.foot-top{display:flex; flex-direction:column; align-items:center; gap:var(--space-3); text-align:center; padding-bottom:var(--space-5); border-bottom:1px solid rgba(255,255,255,.1);}
.foot-logo{height:52px;}
.foot-nav{display:flex; flex-wrap:wrap; gap:var(--space-4); justify-content:center; list-style:none; padding:0; margin:0;}
.foot-nav a{text-decoration:none; font-weight:600; font-size:var(--fs-sm); color:#D9D6D2;}
.foot-nav a:hover{color:var(--blue);}
.foot-social{
  width:38px; height:38px; border-radius:50%; background:var(--blue); display:flex; align-items:center; justify-content:center;
  font-weight:800; text-decoration:none; color:#fff;
}
.foot-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--space-2); padding:var(--space-4) 0; font-size:var(--fs-xs); color:#9A9793;}
.foot-bottom a{color:#B7B4B0; font-weight:700; text-decoration:none;}
.foot-bottom a:hover{color:var(--blue);}
.foot-contact{text-align:center; font-size:var(--fs-sm); line-height:1.7; padding-block:var(--space-5); color:#B7B4B0;}

/* ---------- Scroll to top ---------- */
.scroll-top{
  position:fixed; right:var(--space-4); bottom:var(--space-4); z-index:60;
  width:48px; height:48px; border-radius:50%; border:none; cursor:pointer;
  background:var(--red); color:#fff; font-size:1.2rem; font-weight:800;
  box-shadow:0 8px 20px hsl(var(--shadow)/.35);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity .2s ease, transform .2s ease, background .15s ease;
}
.scroll-top.visible{opacity:1; transform:translateY(0); pointer-events:auto;}
.scroll-top:hover{background:var(--red-deep);}

@media (max-width:900px){
  nav{display:none;}
  nav.is-open{
    display:flex; flex-direction:column; gap:2px;
    position:absolute; top:100%; left:0; right:0;
    background:var(--red-deep); padding:var(--space-2);
    box-shadow:0 12px 24px hsl(var(--shadow) / .35);
  }
  nav.is-open a, nav.is-open .nav-soon{padding:14px 16px;}
  .nav-toggle{display:flex;}
  .royal-grid, .historie-grid, .contact-grid, .news-article, .archiv-top-grid{grid-template-columns:1fr;}
  .termine-row{grid-template-columns:repeat(2,1fr);}
  .news-grid{grid-template-columns:1fr;}
  .gallery-overlay{grid-template-columns:1fr; padding:var(--space-5) var(--space-3);}
  .verein-grid{grid-template-columns:repeat(2,1fr);}
  .veranstaltung-grid{grid-template-columns:repeat(2,1fr);}
  .album-grid{grid-template-columns:repeat(2,1fr);}
  .chronik-grid{grid-template-columns:1fr;}
  /* Feste vh-Höhe zwingt "cover" auf schmalen Screens zu einem viel
     stärkeren Ausschnitt (Personen am Rand fallen weg). Ein Seitenverhältnis
     nahe am tatsächlichen Foto sorgt für einen vergleichbaren Bildausschnitt
     wie auf Desktop. */
  .hero{min-height:380px; aspect-ratio:4/3; width:100%;}
}

@media (max-width:560px){
  .veranstaltung-grid{grid-template-columns:1fr;}
  .termine-list li, .termine-list li:has(.termin-flyer){grid-template-columns:1fr auto; gap:var(--space-1) var(--space-3);}
  .termine-list li .d{grid-column:1 / -1;}
  .termin-flyer{width:64px;}
}
