
:root {
  --ink: #15120d;
  --paper: #faf6ee;
  --paper-2: #f3ecdd;
  --surface: #ffffff;
  --muted: #6f6557;
  --line: rgba(75, 58, 34, 0.18);
  --gold: #c99a34;
  --gold-strong: #9e711f;
  --forest: #779dcc;
  --forest-soft: #779dcc;
  --brown: #4b3a22;
  --shadow: 0 24px 70px rgba(41, 31, 18, 0.14);
  --radius-xl: 30px;
  --radius-lg: 20px;
  --radius-md: 14px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--ink);
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 8%, rgba(201,154,52,.18), transparent 29rem),
    linear-gradient(180deg, var(--paper), #fff 42%, var(--paper-2));
  line-height: 1.65;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background-image: linear-gradient(rgba(75,58,34,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(75,58,34,.045) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(180deg, black, transparent 85%);
}
a { color: var(--gold-strong); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--brown); }
h1, h2, h3, .display-serif { font-family: Georgia, "Times New Roman", serif; letter-spacing: -.035em; color: var(--ink); }
h1 { font-size: clamp(2.25rem, 4.7vw, 4.85rem); line-height: 1.04; max-width: 100%; overflow-wrap: break-word; word-break: normal; hyphens: auto; text-wrap: balance; }
h2 { font-size: clamp(2rem, 3.8vw, 3.7rem); line-height: 1.03; margin-bottom: 1rem; max-width: 100%; overflow-wrap: anywhere; hyphens: auto; }
h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); margin-top: 2rem; margin-bottom: .8rem; }
p { color: #453d31; }

.skip-link { position:absolute; top:.75rem; left:.75rem; z-index:2000; transform:translateY(-150%); background:var(--ink); color:#fff; padding:.65rem .9rem; border-radius:.6rem; }
.skip-link:focus { transform:translateY(0); }
.site-nav { background: rgba(250,246,238,.9); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.brand-lockup { display:inline-flex; align-items:center; gap:.75rem; color:var(--ink); text-decoration:none; font-weight:900; line-height:1.02; letter-spacing:-.025em; }
.brand-lockup img { width:44px; height:58px; object-fit:contain; filter:drop-shadow(0 6px 12px rgba(104,76,22,.22)); }
.nav-link { display:inline-flex; align-items:center; justify-content:center; min-height:40px; font-weight:850; color:rgba(21,18,13,.68); border-radius:999px; padding:.58rem .82rem !important; font-size:.94rem; line-height:1; transition:background-color .2s ease, color .2s ease, transform .2s ease; }
.nav-link:hover, .nav-link.active { color:var(--ink); background:rgba(201,154,52,.13); }
.nav-link:hover { transform:translateY(-1px); }
.navbar-toggler { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--line); border-radius:999px; padding:0; background:rgba(255,255,255,.64); transition:background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.navbar-toggler:hover, .navbar-toggler:focus-visible { background:rgba(255,189,1,.16); border-color:rgba(255,189,1,.62); box-shadow:0 10px 24px rgba(201,154,52,.18); transform:translateY(-1px); }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:46px; border-radius:999px; padding:.78rem 1.14rem; font-size:clamp(.82rem,.9vw,.94rem); font-weight:950; line-height:1; letter-spacing:.01em; text-decoration:none; white-space:nowrap; box-shadow:none; transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; touch-action:manipulation; }
.btn:hover { transform:translateY(-2px); text-decoration:none; }
.btn:active { transform:translateY(0); }
.btn:focus-visible, .navbar-toggler:focus-visible, .lightbox-close:focus-visible, .lightbox-nav:focus-visible, .village-carousel-arrow:focus-visible { outline:3px solid rgba(255,189,1,.58); outline-offset:3px; }
.btn-gold { --bs-btn-bg:#ffbd01; --bs-btn-border-color:#ffbd01; --bs-btn-color:#22180b; --bs-btn-hover-bg:#ffd04a; --bs-btn-hover-border-color:#ffd04a; --bs-btn-hover-color:#14100a; --bs-btn-active-bg:#d99d00; --bs-btn-active-border-color:#d99d00; box-shadow:0 10px 24px rgba(255,189,1,.25); }
.btn-gold:hover, .btn-gold:focus-visible { box-shadow:0 16px 34px rgba(255,189,1,.32); }
.btn-outline-dark { --bs-btn-color:var(--ink); --bs-btn-border-color:rgba(21,18,13,.72); --bs-btn-hover-bg:#15120d; --bs-btn-hover-border-color:#15120d; --bs-btn-hover-color:#fff8ea; --bs-btn-active-bg:#15120d; --bs-btn-active-border-color:#15120d; background:rgba(255,255,255,.56); box-shadow:0 10px 22px rgba(21,18,13,.07); }
.btn-outline-dark:hover, .btn-outline-dark:focus-visible { box-shadow:0 15px 30px rgba(21,18,13,.13); }

.page-hero { position:relative; isolation:isolate; overflow:hidden; padding: 8.5rem 0 3.5rem; }
.page-hero::before { content:""; position:absolute; z-index:0; left:50%; top:clamp(18rem, 27vw, 22rem); width:100vw; height:clamp(5.8rem, 8vw, 8.9rem); transform:translateX(-50%); background:linear-gradient(180deg, #ffbd01 0 34%, #779dcc 34% 66%, #ffbd01 66% 100%); box-shadow:0 18px 42px rgba(41,31,18,.08); pointer-events:none; }
.page-hero > .container { position:relative; z-index:1; }
.hero-shell { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); align-items:stretch; min-height: 560px; overflow:hidden; border:1px solid var(--line); border-radius: calc(var(--radius-xl) + 8px); background:linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,255,255,.58)), radial-gradient(circle at 82% 18%, rgba(201,154,52,.28), transparent 24rem); box-shadow:var(--shadow); }
.hero-copy { padding:clamp(2rem, 5vw, 4rem); display:flex; flex-direction:column; justify-content:center; background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.9)); position:relative; z-index:1; }
.eyebrow { display:inline-flex; align-items:center; flex-wrap:wrap; max-width:100%; gap:.55rem; align-self:flex-start; color:var(--brown); background:rgba(201,154,52,.16); border:1px solid rgba(201,154,52,.28); border-radius:999px; padding:.45rem .8rem; font-size:.82rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; margin-bottom:1.4rem; }
.hero-lead, .lead-readable { font-size:clamp(1.08rem,1.55vw,1.28rem); color:#514737; }
.home-title { font-size: clamp(2.65rem, 4.35vw, 4.35rem); line-height: 1.03; overflow-wrap: normal; hyphens: none; text-wrap: balance; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.5rem; }
.hero-mark { position:relative; display:grid; place-items:center; min-height:100%; border-left:1px solid var(--line); background:linear-gradient(160deg, rgba(119,157,204,.08), rgba(255,189,1,.08)); overflow:hidden; }
.home-hero .hero-mark { background:linear-gradient(180deg, rgba(247,239,210,.12), rgba(75,58,34,.14)), url("../images/source/index-hero-titelbild.png") center 46% / cover no-repeat; }
.home-hero .hero-mark::before { content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.06)), radial-gradient(circle at 50% 42%, rgba(255,255,255,.18), transparent 58%); pointer-events:none; }
.home-hero .hero-mark::after { content:""; position:absolute; z-index:0; width:34rem; height:34rem; right:-16rem; bottom:-18rem; border-radius:50%; background:transparent; box-shadow:inset 0 0 0 24px #ffbd01, inset 0 0 0 48px #779dcc; opacity:.38; }
.hero-logo { width:min(82%, 430px); max-height:540px; object-fit:contain; filter:drop-shadow(0 30px 50px rgba(64,46,14,.25)); position:relative; z-index:1; }
/* Hero-Carousel für historische Bildseiten */
.hero-carousel-mark { padding:0; place-items:stretch; }
.hero-carousel-mark::after { z-index:0; }
.hero-carousel { position:relative; z-index:1; width:100%; height:100%; min-height:100%; border:0; border-radius:0; overflow:hidden; background:#21170c; box-shadow:none; }
.hero-carousel .carousel-inner, .hero-carousel .carousel-item { height:100%; }
.hero-carousel-figure { position:relative; height:100%; min-height:560px; margin:0; display:block; background:#21170c; }
.hero-carousel-image { width:100%; height:100%; min-height:560px; object-fit:cover; padding:0; background:#21170c; }
.hero-carousel-caption { position:absolute; left:0; right:0; bottom:0; min-height:auto; padding:3.8rem 1.5rem 1.25rem; background:linear-gradient(180deg, rgba(21,18,13,0), rgba(21,18,13,.82) 42%, rgba(119,157,204,.96)); color:#fff8ea; }
.hero-carousel-caption span { display:block; color:#f4d18a; font-size:.72rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; margin-bottom:.3rem; }
.hero-carousel-caption strong { display:block; font-size:1.05rem; line-height:1.25; max-width:32rem; }
.hero-carousel-indicators { top:.8rem; right:.9rem; bottom:auto; left:auto; margin:0; justify-content:flex-end; gap:.35rem; }
.hero-carousel-indicators [data-bs-target] { width:.58rem; height:.58rem; border-radius:999px; border:0; margin:0; background:#fff8ea; opacity:.58; }
.hero-carousel-indicators .active { width:1.35rem; background:var(--gold); opacity:1; }


.page-main { padding: 1rem 0 5rem; }
.content-section { border:1px solid var(--line); border-radius:var(--radius-xl); background:rgba(255,255,255,.78); box-shadow:0 16px 42px rgba(41,31,18,.08); padding:clamp(1.4rem, 4vw, 3rem); margin:1.5rem 0; }
.section-kicker { color:var(--gold-strong); font-weight:950; letter-spacing:.12em; text-transform:uppercase; font-size:.8rem; margin-bottom:.8rem; }
.source-text { max-width: 980px; margin-left:auto; margin-right:auto; }
.source-text p { font-size:1.05rem; margin-bottom:1rem; }
.source-text h2 + p, .source-text h3 + p { margin-top:.25rem; }
.page-raketen .source-text h2 { font-size:clamp(1.55rem, 2.25vw, 2.35rem); line-height:1.14; letter-spacing:-.026em; margin:1.85rem 0 .75rem; max-width:820px; overflow-wrap:break-word; hyphens:auto; }
.page-raketen .source-text h2:first-child { margin-top:0; font-size:clamp(1.7rem, 2.55vw, 2.65rem); line-height:1.1; }
.page-raketen .rocket-gallery-section h2,
.page-raketen .contact-section .section-heading-row h2 { font-size:clamp(1.65rem, 2.45vw, 2.55rem); line-height:1.12; letter-spacing:-.03em; max-width:780px; }
.clean-list { display:grid; gap:.55rem; padding-left:1.2rem; color:#453d31; }
.clean-list li::marker { color:var(--gold-strong); }
.intro-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(2rem, 5vw, 4rem); align-items:start; }
.stat-band { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius-xl); background:var(--line); box-shadow:0 16px 42px rgba(41,31,18,.08); margin:1.5rem 0; }
.stat-band div { background:rgba(255,255,255,.78); padding:1.4rem; }
.stat-band strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,3.5vw,3.2rem); line-height:1; color:var(--brown); letter-spacing:-.04em; }
.stat-band span { display:block; margin-top:.45rem; color:var(--muted); font-weight:800; }
.topic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.2rem; }
.topic-card { display:flex; flex-direction:column; min-height:205px; padding:1.35rem; border:1px solid var(--line); border-radius:var(--radius-lg); background:linear-gradient(180deg,#fff,rgba(250,246,238,.72)); color:var(--ink); text-decoration:none; transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.topic-card:hover { transform:translateY(-4px); color:var(--ink); border-color:rgba(201,154,52,.52); box-shadow:0 18px 42px rgba(41,31,18,.11); }
.topic-card span { color:var(--gold-strong); font-size:.76rem; text-transform:uppercase; font-weight:950; letter-spacing:.1em; }
.topic-card strong { font-size:1.35rem; margin:.5rem 0; }
.topic-card p { margin:auto 0 0; color:var(--muted); }
.museum-callout { display:flex; align-items:center; justify-content:space-between; gap:2rem; background:linear-gradient(135deg, rgba(119,157,204,.96), rgba(119,157,204,.92)); color:#fff8ea; }
.museum-callout h2 { color:#fff8ea; }
.museum-callout p { color:rgba(255,248,234,.82); max-width:780px; }
.gallery-section h2 { max-width:820px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.4rem; }
.gallery-grid--dense { grid-template-columns:repeat(4,minmax(0,1fr)); }
.gallery-item { margin:0; border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; overflow:hidden; box-shadow:0 10px 28px rgba(41,31,18,.07); }
.gallery-item img { width:100%; height:220px; object-fit:cover; display:block; background:#efe7d8; }
.gallery-grid--dense .gallery-item img { height:180px; }
.gallery-item figcaption { padding:.8rem .9rem; color:var(--muted); font-size:.88rem; font-weight:700; }
.site-footer { padding:3rem 0; border-top:1px solid var(--line); color:var(--muted); }
.footer-brand { display:flex; align-items:center; gap:.75rem; font-weight:900; color:var(--ink); }
.footer-brand img { width:38px; height:52px; object-fit:contain; }
.footer-links { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.footer-links a { font-weight:800; }



/* Über-uns-Seite: Hero mit Text oben und DSC02584 darunter */
.about-hero-page .about-hero-shell { grid-template-columns:1fr; min-height:auto; }
.about-hero-page .hero-copy { width:100%; max-width:none; justify-self:stretch; background:#fff; }
.about-hero-page .about-hero-photo-mark { min-height:0; border-left:0; border-top:1px solid var(--line); place-items:stretch; background:linear-gradient(160deg, rgba(119,157,204,.10), rgba(201,154,52,.10)); }
.about-hero-page .about-hero-photo-mark::after { z-index:0; }
.about-hero-page .about-hero-photo { position:relative; z-index:1; width:100%; height:auto; min-height:0; object-fit:contain; object-position:center; display:block; filter:saturate(.98) contrast(1.03); }
.about-bottom-photo { max-width:980px; margin:1.5rem auto 0; border:1px solid var(--line); border-radius:var(--radius-xl); background:#fff; overflow:hidden; box-shadow:0 16px 42px rgba(41,31,18,.08); }
.about-bottom-photo img { width:100%; height:auto; display:block; object-fit:cover; }

/* Startseite: Über uns, Termine/News und Kontakt */
.about-highlight {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: stretch;
}
.about-actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 1.4rem; }
.about-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: linear-gradient(160deg, rgba(119,157,204,.96), rgba(75,58,34,.92));
  color: #fff8ea;
  padding: clamp(1.5rem, 4vw, 2.4rem);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 420px;
  overflow: hidden;
  position: relative;
}
.about-panel::after {
  content: "";
  position: absolute;
  inset: auto -7rem -11rem auto;
  width: 24rem;
  height: 24rem;
  border-radius: 50%;
  border: 1px solid rgba(244,209,138,.18);
  box-shadow: inset 0 0 0 44px rgba(244,209,138,.05);
}
.about-panel img {
  width: clamp(150px, 52%, 240px);
  max-width: 72%;
  height: auto;
  object-fit: contain;
  display: block;
  align-self: center;
  margin: 0 auto clamp(1.2rem, 3vw, 2rem);
  filter: drop-shadow(0 24px 38px rgba(0,0,0,.22));
  position: relative;
  z-index: 1;
}
.about-list {
  position: relative;
  z-index: 1;
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
  display: grid;
  gap: .75rem;
}
.about-list li { color: rgba(255,248,234,.88); font-weight: 750; }
.about-list li::before { content: ""; display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: var(--gold); margin-right: .65rem; }

.about-pill-row { display:flex; flex-wrap:wrap; gap:.55rem; margin:1.15rem 0 0; }
.about-pill-row span { display:inline-flex; align-items:center; border:1px solid rgba(201,154,52,.35); background:rgba(201,154,52,.12); color:var(--brown); border-radius:999px; padding:.35rem .7rem; font-size:.78rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.about-fact-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.5rem 0 2rem; }
.about-fact-grid article { border:1px solid var(--line); border-radius:var(--radius-lg); background:linear-gradient(180deg,#fff,rgba(250,246,238,.76)); padding:1rem; box-shadow:0 10px 26px rgba(41,31,18,.06); }
.about-fact-grid span { display:block; color:var(--gold-strong); font-size:.74rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.35rem; }
.about-fact-grid strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:1.45rem; line-height:1.05; color:var(--ink); }
.about-fact-grid p { margin:.55rem 0 0; color:var(--muted); font-size:.94rem; }
.research-periods { list-style:none; padding:0; margin:1.2rem 0 2rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.research-periods li { border:1px solid var(--line); border-radius:var(--radius-md); background:rgba(255,255,255,.72); padding:.85rem 1rem; }
.research-periods strong { display:block; color:var(--brown); font-weight:950; }
.research-periods span { display:block; color:var(--muted); margin-top:.15rem; }
.about-thanks { border-radius:var(--radius-lg); border:1px solid rgba(119,157,204,.18); background:linear-gradient(180deg, rgba(119,157,204,.62), rgba(255,255,255,.78)); padding:1.2rem; margin-top:1.6rem; }
.about-thanks h3 { margin-top:0; }

.section-heading-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
  gap: 2rem;
  align-items: end;
  margin-bottom: 1.5rem;
}
.section-heading-row > p { margin: 0; color: var(--muted); font-weight: 650; }
.contact-section .section-heading-row { grid-template-columns: 1fr; }
.contact-section .section-heading-row h2 { width: 100%; max-width: none; }
.event-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.event-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: #fff;
  box-shadow: 0 14px 34px rgba(41,31,18,.08);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.event-card:hover { transform: translateY(-4px); border-color: rgba(201,154,52,.52); box-shadow: 0 22px 48px rgba(41,31,18,.13); }
.event-card img { width: 100%; height: 180px; object-fit: cover; display: block; background: #efe7d8; }
.event-content { padding: 1.15rem; display: flex; flex-direction: column; flex: 1; }
.event-content time {
  display: inline-flex;
  align-self: flex-start;
  color: var(--brown);
  background: rgba(201,154,52,.15);
  border: 1px solid rgba(201,154,52,.28);
  border-radius: 999px;
  padding: .35rem .65rem;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .04em;
  margin-bottom: .9rem;
}
.event-content h3 { margin: 0 0 .7rem; font-size: 1.35rem; line-height: 1.1; }
.event-content p { margin: 0; color: var(--muted); }
.compact-topic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.contact-grid {
  display: grid;
  grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
  gap: 1rem;
  width: 100%;
  justify-items: stretch;
}
.contact-grid > * { min-width: 0; }
.contact-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border-radius: var(--radius-xl);
  padding: clamp(1.25rem, 3vw, 2rem);
  background: linear-gradient(145deg, var(--brown), #21170c);
  color: #fff8ea;
}
.contact-panel h3 { color: #fff8ea; margin-top: 0; }
.contact-list { margin: 1.2rem 0 0; display: grid; gap: 1rem; }
.contact-list div { border-top: 1px solid rgba(255,248,234,.16); padding-top: 1rem; }
.contact-list dt { color: rgba(255,248,234,.65); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 900; }
.contact-list dd { margin: .2rem 0 0; color: #fff8ea; font-weight: 750; }
.contact-subline { display: block; margin-top: .25rem; color: rgba(255,248,234,.72); font-size: .85em; line-height: 1.45; }
.contact-list a { color: #f4d18a; }
.contact-form {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: rgba(255,255,255,.82);
  padding: clamp(1.25rem, 3vw, 2rem);
}
.contact-form .form-label { color: var(--brown); font-weight: 900; }
.contact-form .form-control {
  border-color: rgba(75,58,34,.22);
  border-radius: 14px;
  padding: .85rem 1rem;
  background-color: rgba(255,255,255,.92);
}
.contact-form .form-control:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 .22rem rgba(201,154,52,.16);
}
.form-note { margin: 1rem 0; color: var(--muted); font-size: .92rem; }
.form-status { min-height: 1.5rem; margin: .9rem 0 0; color: var(--gold-strong); font-weight: 800; }



/* Verlassene/alte Dörfer */

.village-hero-mark { background: linear-gradient(160deg, rgba(119,157,204,.18), rgba(201,154,52,.14)); }
.village-hero-image { width:100%; height:100%; min-height:560px; object-fit:cover; display:block; filter:saturate(.94) contrast(1.02); }
.village-hero-mark::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(21,18,13,0), rgba(21,18,13,.22)); pointer-events:none; }
.village-animation-section { overflow:hidden; }
.village-animation-carousel { position:relative; border:1px solid var(--line); border-radius:var(--radius-xl); background:linear-gradient(160deg, rgba(119,157,204,.96), rgba(75,58,34,.92)); overflow:hidden; box-shadow:0 18px 48px rgba(41,31,18,.12); }
.village-animation-figure { margin:0; display:grid; background:radial-gradient(circle at 50% 20%, rgba(201,154,52,.18), transparent 28rem), #17130d; }
.village-animation-image { width:100%; max-height:72vh; object-fit:contain; display:block; background:#17130d; }
.village-animation-figure figcaption { padding:1rem 1.2rem; color:#fff8ea; background:linear-gradient(180deg, rgba(21,18,13,.9), rgba(119,157,204,.96)); font-weight:900; }

.village-carousel-nav { position:absolute; inset:0; z-index:4; pointer-events:none; }
.village-carousel-arrow { position:absolute; top:50%; transform:translateY(-50%); pointer-events:auto; width:3.25rem; height:3.25rem; min-width:44px; min-height:44px; border:2px solid #ffbd01; border-radius:999px; background:rgba(21,18,13,.68); color:#ffbd01; display:grid; place-items:center; font-family:Georgia,"Times New Roman",serif; font-size:2.85rem; line-height:1; cursor:pointer; touch-action:manipulation; box-shadow:0 12px 34px rgba(0,0,0,.34); transition:background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
.village-carousel-arrow span { display:block; transform:translateY(-.08em); }
.village-carousel-arrow:hover, .village-carousel-arrow:focus-visible { background:#ffbd01; color:#15120d; transform:translateY(-50%) scale(1.06); box-shadow:0 16px 42px rgba(255,189,1,.28); }
.village-carousel-prev { left:1rem; }
.village-carousel-next { right:1rem; }

.village-document { max-width: 1120px; }
.village-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.4rem 0 2rem; }
.village-stat-grid article, .village-card-grid article, .village-details-grid article { border:1px solid var(--line); border-radius:var(--radius-lg); background:linear-gradient(180deg,#fff,rgba(250,246,238,.76)); padding:1.1rem; box-shadow:0 10px 26px rgba(41,31,18,.06); }
.village-stat-grid span, .village-card-grid span { display:block; color:var(--gold-strong); font-size:.74rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.35rem; }
.village-stat-grid strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,4vw,3rem); line-height:1; color:var(--brown); }
.village-stat-grid p, .village-card-grid p { margin:.55rem 0 0; color:var(--muted); }
.village-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; margin:1rem 0 2rem; box-shadow:0 12px 30px rgba(41,31,18,.06); }
.village-table { width:100%; border-collapse:collapse; min-width:820px; }
.village-table th, .village-table td { padding:.85rem 1rem; border-bottom:1px solid rgba(75,58,34,.14); vertical-align:top; text-align:left; }
.village-table thead th { color:var(--brown); background:rgba(201,154,52,.12); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; }
.village-table tbody th { color:var(--ink); font-weight:950; }
.village-group-row th { background:rgba(119,157,204,.08); color:var(--forest); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.village-timeline { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.4rem 0 2rem; }
.village-timeline article { position:relative; border-radius:var(--radius-xl); padding:1.4rem; background:linear-gradient(145deg, rgba(119,157,204,.96), rgba(75,58,34,.92)); color:#fff8ea; overflow:hidden; }
.village-timeline article::after { content:""; position:absolute; width:18rem; height:18rem; right:-9rem; bottom:-10rem; border-radius:50%; border:1px solid rgba(244,209,138,.22); box-shadow:inset 0 0 0 34px rgba(244,209,138,.06); }
.village-timeline span { position:relative; z-index:1; display:inline-flex; color:#22180b; background:var(--gold); border-radius:999px; padding:.25rem .65rem; font-weight:950; }
.village-timeline h3 { position:relative; z-index:1; margin-top:.9rem; color:#fff8ea; }
.village-timeline p { position:relative; z-index:1; color:rgba(255,248,234,.84); }
.village-chip-row { position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1rem; }
.village-chip-row span { border:1px solid rgba(244,209,138,.32); border-radius:999px; padding:.25rem .55rem; color:#fff8ea; background:rgba(255,248,234,.08); font-size:.82rem; font-weight:800; }
.village-card-grid { display:grid; gap:1rem; margin:1rem 0 2rem; }
.village-card-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.village-card-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.village-card-grid strong { display:block; color:var(--ink); font-weight:950; }
.village-details-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; margin:1rem 0 2rem; }
.village-details-grid h4 { margin:0 0 .9rem; color:var(--brown); font-weight:950; }
.village-mayor-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem 1rem; margin:0; }
.village-mayor-list div { border-top:1px solid rgba(75,58,34,.12); padding-top:.5rem; }
.village-mayor-list dt { color:var(--gold-strong); font-size:.78rem; font-weight:950; letter-spacing:.05em; text-transform:uppercase; }
.village-mayor-list dd { margin:0; color:var(--ink); font-weight:800; }
.village-mini-block { border-top:1px solid rgba(75,58,34,.12); padding-top:.75rem; margin-top:.75rem; }
.village-mini-block:first-of-type { border-top:0; padding-top:0; margin-top:0; }
.village-mini-block strong { color:var(--gold-strong); text-transform:uppercase; letter-spacing:.06em; font-size:.78rem; }
.village-mini-block p { margin:.2rem 0 0; color:var(--muted); }

/* Rechtliche Seiten */
.legal-update-note {
  border-color: rgba(201,154,52,.34);
  background: rgba(201,154,52,.10);
}
.legal-text h2 { margin-bottom: .4rem; }
.legal-text h3 { margin-top: 2.2rem; }
.legal-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.78);
  padding: 1.2rem 1.35rem;
  margin: 1rem 0;
}
.legal-card h3 { margin-top: 0; }
.legal-card-warning {
  border-color: rgba(201,154,52,.48);
  background: linear-gradient(180deg, rgba(201,154,52,.12), rgba(255,255,255,.82));
}


/* PHP-Kontaktformular Ergebnis */
.contact-result-page { min-height: 100vh; display: grid; align-items: center; }
.contact-result-page .container { max-width: 860px; }
.contact-result-page .content-section { padding: clamp(1.65rem, 4vw, 3rem); }
.contact-result-page h1 { font-size: clamp(1.8rem, 3.1vw, 2.75rem); line-height: 1.1; letter-spacing: -.03em; max-width: 700px; margin-bottom: .9rem; text-wrap: balance; }
.contact-result-page .lead-readable { max-width: 680px; }
.contact-result-page .hero-actions { gap: .75rem; margin-top: 1.45rem; }
.contact-result-page .btn { min-height: 46px; padding: .78rem 1.08rem; font-size: clamp(.82rem, 1.05vw, .92rem); box-shadow: 0 10px 24px rgba(41,31,18,.10); }
.contact-result-page .btn-gold { box-shadow: 0 12px 28px rgba(255,189,1,.26); }
.success-card { border-color: rgba(119, 157, 204, .28); background: linear-gradient(180deg, rgba(119,157,204,.78), rgba(255,255,255,.86)); }
.error-card { border-color: rgba(151, 66, 42, .32); background: linear-gradient(180deg, rgba(151,66,42,.10), rgba(255,255,255,.86)); }
.contact-form code { color: var(--brown); background: rgba(201,154,52,.14); border-radius: .35rem; padding: .12rem .32rem; }
.recaptcha-field { display: grid; gap: .45rem; align-items: start; margin-top: .25rem; min-width: 0; max-width: 100%; overflow: hidden; }
.recaptcha-field .g-recaptcha { max-width: 100%; transform-origin: left top; }
.recaptcha-note { margin: 0; color: var(--muted); font-size: .9rem; }


/* Militär-Übersicht und importierte Militär-Unterseiten */
.military-hero-mark { background: linear-gradient(160deg, rgba(119,157,204,.18), rgba(201,154,52,.14)); }
.military-hero-image { width:100%; height:100%; min-height:560px; object-fit:cover; display:block; filter:saturate(.92) contrast(1.02); }
.military-hero-mark::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(21,18,13,0), rgba(21,18,13,.26)); pointer-events:none; }
.military-subnav { display:flex; flex-wrap:wrap; gap:.55rem; margin:0 0 1.4rem; }
.military-subnav a { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.72); color:var(--brown); padding:.45rem .8rem; text-decoration:none; font-size:.82rem; font-weight:900; }
.military-subnav a:hover, .military-subnav a.active { background:rgba(201,154,52,.17); border-color:rgba(201,154,52,.44); color:var(--ink); }
.military-topic-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; margin-top:1.4rem; }
.military-topic-card { display:flex; flex-direction:column; min-height:100%; border:1px solid var(--line); border-radius:var(--radius-xl); background:#fff; overflow:hidden; color:var(--ink); text-decoration:none; box-shadow:0 14px 34px rgba(41,31,18,.08); transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.military-topic-card:hover { transform:translateY(-4px); border-color:rgba(201,154,52,.52); box-shadow:0 22px 48px rgba(41,31,18,.13); color:var(--ink); }
.military-topic-card img { width:100%; height:150px; object-fit:cover; background:#efe7d8; }
.military-topic-card span { display:block; margin:1rem 1rem 0; color:var(--gold-strong); font-size:.72rem; font-weight:950; letter-spacing:.09em; text-transform:uppercase; }
.military-topic-card strong { display:block; margin:.35rem 1rem 0; font-size:1.15rem; line-height:1.12; }
.military-topic-card p { margin:.55rem 1rem 0; color:var(--muted); font-size:.92rem; }
.military-fact-list { display:grid; gap:.72rem; margin-top:1.4rem; }
.military-fact-list.compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.military-source-heading { grid-column:1/-1; margin:1.35rem 0 .1rem; padding-top:.9rem; border-top:1px solid rgba(75,58,34,.12); color:var(--brown); }
.military-source-heading:first-child { border-top:0; padding-top:0; margin-top:0; }
.military-fact-item { display:grid; grid-template-columns:7.8rem minmax(0,1fr); gap:1rem; align-items:start; border:1px solid rgba(75,58,34,.14); border-radius:var(--radius-md); background:linear-gradient(180deg,#fff,rgba(250,246,238,.72)); padding:.85rem 1rem; }
.military-fact-item span { color:var(--gold-strong); font-size:.75rem; font-weight:950; letter-spacing:.07em; text-transform:uppercase; overflow-wrap:anywhere; }
.military-fact-item--dated span { color:var(--forest); }
.military-fact-item p { margin:0; color:#453d31; }
.military-link-panel { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; }
.military-link-panel > div { border:1px solid var(--line); border-radius:var(--radius-lg); background:rgba(255,255,255,.76); padding:1.2rem; }
.military-link-panel h3 { margin-top:0; }
.military-doc-links { display:grid; gap:.55rem; }
.military-doc-links a { display:block; border:1px solid rgba(201,154,52,.28); border-radius:var(--radius-md); background:rgba(201,154,52,.10); padding:.75rem .9rem; font-weight:850; overflow-wrap:anywhere; }
.military-credits ul { margin:0; padding-left:1.2rem; color:var(--muted); }
.military-credits li::marker { color:var(--gold-strong); }
@media (max-width:1199.98px) {
  .military-topic-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:991.98px) {
  .military-hero-image { min-height:390px; }
  .village-hero-image { min-height:390px; }
  .military-topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .military-link-panel, .military-fact-list.compact { grid-template-columns:1fr; }
}
@media (max-width:575.98px) {
  .military-subnav { gap:.42rem; }
  .military-subnav a { font-size:.76rem; padding:.38rem .62rem; }
  .military-topic-grid { grid-template-columns:1fr; }
  .military-topic-card img { height:180px; }
  .military-fact-item { grid-template-columns:1fr; gap:.25rem; padding:.8rem; }
  .military-fact-item span { font-size:.72rem; }
}

@media (max-width:1199.98px) {
  .navbar-collapse { padding:1rem 0 .35rem; }
  .nav-link { display:inline-flex; margin:.18rem 0; }
}
@media (max-width:991.98px) {
  .page-hero { padding-top:7rem; }
  h1 { font-size: clamp(2.2rem, 6vw, 3.45rem); line-height: 1.05; }
  .home-title { font-size: clamp(2.25rem, 5.4vw, 3.45rem); }
  .hero-shell { grid-template-columns:1fr; min-height:auto; }
  .hero-mark { min-height:390px; border-left:0; border-top:1px solid var(--line); }
  .hero-carousel { width:100%; height:100%; min-height:390px; }
  .hero-carousel .carousel-inner, .hero-carousel .carousel-item { height:100%; }
  .hero-carousel-figure { height:100%; min-height:390px; }
  .hero-carousel-image { height:100%; min-height:390px; }
  .intro-grid { grid-template-columns:1fr; }
  .stat-band { grid-template-columns:repeat(2,1fr); }
  .topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gallery-grid, .gallery-grid--dense { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .museum-callout { align-items:flex-start; flex-direction:column; }
  .about-highlight, .section-heading-row, .contact-grid { grid-template-columns:minmax(0,1fr); }
  .village-stat-grid, .village-timeline, .village-card-grid--four, .village-card-grid--two, .village-details-grid { grid-template-columns:1fr; }
  .village-table-wrap { overflow:visible; }
  .village-table { min-width:0; }
  .village-table thead { display:none; }
  .village-table, .village-table tbody, .village-table tr, .village-table th, .village-table td { display:block; width:100%; }
  .village-table tbody tr:not(.village-group-row) { padding:.8rem 0; border-bottom:1px solid rgba(75,58,34,.14); }
  .village-table tbody tr:not(.village-group-row):last-child { border-bottom:0; }
  .village-table tbody th[scope="row"] { padding:.35rem .8rem .45rem; border-bottom:0; font-size:1.08rem; }
  .village-table td { display:grid; grid-template-columns:7.8rem minmax(0,1fr); gap:.6rem; padding:.32rem .8rem; border-bottom:0; }
  .village-table td::before { color:var(--gold-strong); font-size:.72rem; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
  .village-table td:nth-of-type(1)::before { content:"Ersterwähnung"; }
  .village-table td:nth-of-type(2)::before { content:"Namensform"; }
  .village-table td:nth-of-type(3)::before { content:"Deutung"; }
  .village-table td:nth-of-type(4)::before { content:"Einwohner"; }
  .village-group-row th { padding:.65rem .8rem; border-bottom:0; }
  .event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .about-fact-grid { grid-template-columns:1fr; }
}
@media (max-width:575.98px) {
  h1 { font-size: clamp(1.75rem, 7vw, 2.05rem); line-height: 1.08; letter-spacing: -.03em; overflow-wrap: break-word; }
  .home-title { font-size: clamp(1.8rem, 6.8vw, 2.05rem); line-height: 1.08; overflow-wrap: break-word; hyphens: auto; }
  h2 { font-size: clamp(1.85rem, 9vw, 2.6rem); }
  .page-hero .container,
  .page-main .container { max-width: 390px; }
  .brand-lockup { gap:.55rem; font-size:.95rem; }
  .brand-lockup img { width:38px; height:50px; }
  .eyebrow { border-radius:18px; font-size:.72rem; line-height:1.25; }
  .page-hero { padding-top:6.75rem; }
  .hero-copy { padding:1.5rem; }
  .hero-shell { border-radius:22px; }
  .hero-logo { width:min(84%,320px); max-height:380px; }
  .hero-carousel-mark { padding:0; }
  .hero-carousel { width:100%; border-radius:0; min-height:390px; }
  .hero-carousel-figure { min-height:390px; }
  .hero-carousel-image { height:100%; min-height:390px; padding:0; }
  .hero-carousel-caption { padding:3.4rem .95rem .95rem; }
  .hero-carousel-caption strong { font-size:.95rem; }
  .hero-actions .btn { width:auto; }
  .btn { min-height:44px; padding:.72rem 1rem; font-size:.82rem; }
  .contact-form .btn { width:100%; }
  .contact-grid { width:100%; justify-items:stretch; gap:.9rem; }
  .contact-panel,
  .contact-form { width:100%; max-width:100%; min-width:0; padding:1rem; }
  .contact-panel h3,
  .contact-list dd,
  .recaptcha-note { overflow-wrap:anywhere; }
  .contact-form .row { --bs-gutter-x:.75rem; }
  .recaptcha-field { width:100%; max-width:100%; overflow:hidden; }
  .recaptcha-field .g-recaptcha { transform:scale(.92); transform-origin:left top; margin-bottom:-.35rem; }
  .contact-result-page h1 { font-size: clamp(1.6rem, 7vw, 2rem); line-height:1.12; }
  .contact-result-page .hero-actions { gap:.65rem; }
  .contact-result-page .hero-actions .btn { width:100%; white-space:normal; min-height:46px; padding:.78rem .9rem; text-align:center; }
  .content-section { border-radius:22px; padding:1.25rem; }
  .about-bottom-photo { border-radius:22px; }
  .stat-band, .topic-grid, .compact-topic-grid, .gallery-grid, .gallery-grid--dense, .event-grid, .research-periods { grid-template-columns:1fr; }
  .gallery-item img, .gallery-grid--dense .gallery-item img { height:230px; }
  .village-animation-carousel { border-radius:22px; }
  .village-animation-image { max-height:58vh; }
  .village-animation-figure figcaption { padding:.85rem 1rem; }

  .village-carousel-nav { inset:0; }
  .village-carousel-arrow { width:2.65rem; height:2.65rem; font-size:2.3rem; }
  .village-carousel-prev { left:.55rem; }
  .village-carousel-next { right:.55rem; }
  .village-mayor-list { grid-template-columns:1fr; }
  .village-table-wrap { overflow:visible; }
  .village-table { min-width:0; }
  .village-table thead { display:none; }
  .village-table, .village-table tbody, .village-table tr, .village-table th, .village-table td { display:block; width:100%; }
  .village-table tbody tr:not(.village-group-row) { padding:.8rem 0; border-bottom:1px solid rgba(75,58,34,.14); }
  .village-table tbody tr:not(.village-group-row):last-child { border-bottom:0; }
  .village-table tbody th[scope="row"] { padding:.35rem .8rem .45rem; border-bottom:0; font-size:1.08rem; }
  .village-table td { display:grid; grid-template-columns:7.8rem minmax(0,1fr); gap:.6rem; padding:.32rem .8rem; border-bottom:0; }
  .village-table td::before { color:var(--gold-strong); font-size:.72rem; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
  .village-table td:nth-of-type(1)::before { content:"Ersterwähnung"; }
  .village-table td:nth-of-type(2)::before { content:"Namensform"; }
  .village-table td:nth-of-type(3)::before { content:"Deutung"; }
  .village-table td:nth-of-type(4)::before { content:"Einwohner"; }
  .village-group-row th { padding:.65rem .8rem; border-bottom:0; }
}

@media (max-width:380px) {
  .contact-section { padding:1rem; }
  .contact-panel,
  .contact-form { padding:.85rem; }
  .recaptcha-field .g-recaptcha { transform:scale(.86); margin-bottom:-.75rem; }
}

/* Galerie-Lightbox */
.gallery-lightbox-trigger { position:relative; display:block; color:inherit; text-decoration:none; cursor:zoom-in; }
.gallery-lightbox-trigger img { transition:transform .24s ease, filter .24s ease; }
.gallery-lightbox-trigger::after { content:"Bild öffnen"; position:absolute; right:.8rem; bottom:.8rem; border-radius:999px; background:#ffbd01; color:#15120d; padding:.38rem .68rem; font-size:.74rem; font-weight:950; line-height:1; box-shadow:0 10px 24px rgba(21,18,13,.18); opacity:0; transform:translateY(.25rem); transition:opacity .2s ease, transform .2s ease; pointer-events:none; }
.gallery-lightbox-trigger:hover img, .gallery-lightbox-trigger:focus-visible img { transform:scale(1.025); filter:saturate(1.04) contrast(1.04); }
.gallery-lightbox-trigger:hover::after, .gallery-lightbox-trigger:focus-visible::after { opacity:1; transform:translateY(0); }
.gallery-lightbox-trigger:focus-visible { outline:3px solid rgba(201,154,52,.72); outline-offset:4px; border-radius:var(--radius-lg); }
.lightbox-modal .modal-dialog { width:min(1180px, calc(100vw - 2rem)); max-width:min(1180px, calc(100vw - 2rem)); }
.lightbox-modal .modal-content { position:relative; width:100%; max-width:100%; min-width:0; overflow:hidden; border:0; border-radius:var(--radius-xl); background:#15120d; box-shadow:0 32px 90px rgba(0,0,0,.46); }
.lightbox-stage { display:grid; place-items:center; width:100%; min-width:0; min-height:45vh; max-width:100%; overflow:hidden; background:radial-gradient(circle at 50% 15%, rgba(201,154,52,.18), transparent 22rem), #11100d; }
.lightbox-image { display:block; width:auto; max-width:100%; height:auto; max-height:82vh; object-fit:contain; }
.lightbox-caption { width:100%; max-width:100%; min-width:0; padding:1rem 1.25rem; color:#fff8ea; background:linear-gradient(180deg, rgba(21,18,13,.9), rgba(119,157,204,.96)); font-weight:800; line-height:1.35; white-space:normal; overflow-wrap:anywhere; }
.lightbox-close { position:absolute; z-index:3; top:.9rem; right:.9rem; width:3.25rem; height:3.25rem; min-width:44px; min-height:44px; border:2px solid #ffbd01; border-radius:999px; background:rgba(21,18,13,.68); background-image:none !important; color:#ffbd01; display:grid; place-items:center; padding:0; opacity:1; filter:none; cursor:pointer; touch-action:manipulation; box-shadow:0 12px 34px rgba(0,0,0,.34); transition:background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
.lightbox-close::before { content:"×"; display:block; font-family:Arial, Helvetica, sans-serif; font-size:2rem; font-weight:900; line-height:1; transform:translateY(-.04em); }
.lightbox-close:hover, .lightbox-close:focus-visible { background:#ffbd01; color:#15120d; transform:scale(1.06); box-shadow:0 16px 42px rgba(255,189,1,.28); }

.lightbox-nav { position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:3.25rem; height:3.25rem; min-width:44px; min-height:44px; border:2px solid #ffbd01; border-radius:999px; background:rgba(21,18,13,.68); color:#ffbd01; display:grid; place-items:center; font-family:Georgia,"Times New Roman",serif; font-size:2.85rem; line-height:1; cursor:pointer; touch-action:manipulation; box-shadow:0 12px 34px rgba(0,0,0,.34); transition:background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
.lightbox-nav span { display:block; transform:translateY(-.08em); }
.lightbox-nav:hover, .lightbox-nav:focus-visible { background:#ffbd01; color:#15120d; transform:translateY(-50%) scale(1.06); box-shadow:0 16px 42px rgba(255,189,1,.28); }
.lightbox-prev { left:1rem; }
.lightbox-next { right:1rem; }
.lightbox-modal.is-single-image .lightbox-nav { display:none; }

@media (max-width:575.98px) {
  .gallery-lightbox-trigger::after { opacity:1; transform:none; right:.6rem; bottom:.6rem; font-size:.68rem; }
  .lightbox-modal .modal-dialog { width:calc(100vw - 1rem); max-width:calc(100vw - 1rem); margin:.5rem; }
  .lightbox-modal .modal-content { border-radius:20px; }
  .lightbox-close { top:.65rem; right:.65rem; width:2.65rem; height:2.65rem; }
  .lightbox-close::before { font-size:1.75rem; }

  .lightbox-nav { width:2.65rem; height:2.65rem; font-size:2.3rem; }
  .lightbox-prev { left:.55rem; }
  .lightbox-next { right:.55rem; }
  .lightbox-stage { min-height:auto; }
  .lightbox-image { max-height:68vh; }
  .lightbox-caption { padding:.85rem 1rem; font-size:.92rem; line-height:1.35; overflow-wrap:anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}

/* Performance: bei mobilen Ansichten teures Hintergrund-Blurring vermeiden. */
@media (max-width: 991.98px) {
  .site-nav { background: rgba(250,246,238,.98); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (max-width: 575.98px) {
  /* Dekoratives, fest positioniertes Raster verursacht sonst Scroll-Repaints. */
  body::before { display: none; }
}
