/* ==========================================================================
   Klickdummy Vorschlag A «Vertraut» · bellevue-stadelhofen.ch
   Grundlage: projektplan/04-gestaltungsvorschlaege.md, Kap. 3.1 (Bauvorgabe Klickdummy A)
   Jede Komponente nennt im Kommentar das Avada-Element, das sie auf der Website umsetzt.
   ========================================================================== */

/* --- Tokens (Avada Global Options: Farbpalette color1–8, Typografie, Layout) --- */
:root{
  --c-bg:#ffffff; --c-surface:#f8f9fa; --c-dark:#333333;
  --c-text:#1c1c1c; --c-text-muted:#4f4e4d; --c-text-on-dark:#ffffff; --c-text-on-dark-muted:#e2e2e2;
  --c-graphite:#4f4e4d; --c-sky-light:#c9e1f5; --c-sky:#abd0f0;
  --c-link:#4f4e4d; --c-link-hover:#1c1c1c; --c-line:#e2e2e2; --c-border-ui:#8c8c8c; --c-placeholder:#767676;
  --c-focus:#1c1c1c; --c-focus-on-dark:#ffffff; --c-error:#b3261e; --c-success:#2e7d32;
  --overlay:rgba(28,28,28,.50);
  --font-head:"Exo 2",system-ui,sans-serif; --font-body:"Exo 2",system-ui,sans-serif; --font-ui:"Roboto",system-ui,sans-serif;
  --fs-h1:52px; --fs-h2:38px; --fs-h3:26px; --fs-h4:20px; --fs-lead:21px; --fs-body:18px; --fs-nav:15px; --fs-meta:14px; --fs-btn:15px;
  --fs-h1-m:34px; --fs-h2-m:28px; --fs-h3-m:22px; --fs-h4-m:19px; --fs-lead-m:19px; --fs-body-m:17px; --fs-nav-m:17px;
  --fw-head:600; --fw-body:400; --fw-lead:300; --lh-head:1.2; --lh-body:1.65;
  --radius-btn:0; --radius-card:0; --radius-img:0; --radius-input:0;
  --space:8px; --section-y:96px; --section-y-t:64px; --section-y-m:48px;
  --container:1170px; --container-text:760px; --gutter:30px; --page-pad:30px; --page-pad-m:20px;
  --shadow-menu:0 4px 16px rgba(0,0,0,.08); --shadow-card-hover:0 4px 16px rgba(0,0,0,.08);
  --header-h:88px; --header-h-sticky:64px; --header-h-m:72px; --logo-h:48px; --logo-h-m:40px;
  --hero-h:600px; --hero-h-m:360px; --titlebar-h:360px; --titlebar-h-m:220px;
  --btn-h:48px; --btn-pad:14px 28px; --input-h:50px; --focus-ring:2px solid var(--c-focus); --focus-offset:2px;
  /* Breakpoints: Menü ≤1100 · Tablet ≤1024 · Mobile ≤640 */

  /* abgeleitete Werte (nur Dummy) */
  --hh:var(--header-h);
  --pad:var(--page-pad);
  --section:var(--section-y);
  --consent-h:0px;
}
@media (max-width:1100px){ :root{ --hh:var(--header-h-m); } }
@media (max-width:1024px){ :root{ --section:var(--section-y-t); } }
@media (max-width:640px){ :root{ --pad:var(--page-pad-m); --section:var(--section-y-m); } }

/* --- Basis (Avada Global Options › Typografie) --- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:calc(var(--header-h-sticky) + 16px); }
body{
  margin:0; background:var(--c-bg); color:var(--c-text);
  font-family:var(--font-body); font-weight:var(--fw-body); font-size:var(--fs-body); line-height:var(--lh-body);
  overflow-x:hidden; overflow-wrap:break-word;
}
body.is-locked{ overflow:hidden; }
img{ max-width:100%; height:auto; display:block; }
h1,h2,h3,h4{ font-family:var(--font-head); font-weight:var(--fw-head); line-height:var(--lh-head); margin:0 0 .5em; color:var(--c-text); }
h1{ font-size:var(--fs-h1); }
h2{ font-size:var(--fs-h2); line-height:1.25; }
h3{ font-size:var(--fs-h3); line-height:1.3; }
h4{ font-size:var(--fs-h4); line-height:1.35; }
p{ margin:0 0 1em; }
.fee, .tile__text, .card__text, .member__addr, .checklist li{ -webkit-hyphens:auto; hyphens:auto; }
@media (max-width:640px){ .prose p:not(.lead), .prose li, .timeline dd{ -webkit-hyphens:auto; hyphens:auto; } }
ul,ol{ margin:0 0 1em; padding-left:1.25em; }
a{ color:var(--c-link); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover{ color:var(--c-link-hover); text-decoration-thickness:2px; }
strong{ font-weight:600; }
:focus-visible{ outline:var(--focus-ring); outline-offset:var(--focus-offset); }
main:focus, h1:focus, [tabindex="-1"]:focus{ outline:none; }
main:focus-visible, h1:focus-visible{ outline:var(--focus-ring); outline-offset:4px; }
.visually-hidden{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.lead{ font-size:var(--fs-lead); font-weight:var(--fw-lead); line-height:1.55; color:var(--c-text); }
.meta{ font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; color:var(--c-text-muted); line-height:1.45; }
.kicker{ display:block; font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--c-text-muted); margin:0 0 8px; }
.ext-icon{ display:inline-block; margin-left:.2em; text-decoration:none; }
.icon{ width:24px; height:24px; flex:none; display:inline-block; vertical-align:middle; }
.icon--sm{ width:18px; height:18px; }

@media (max-width:640px){
  body{ font-size:var(--fs-body-m); }
  h1{ font-size:var(--fs-h1-m); }
  h2{ font-size:var(--fs-h2-m); }
  h3{ font-size:var(--fs-h3-m); }
  h4{ font-size:var(--fs-h4-m); }
  .lead{ font-size:var(--fs-lead-m); }
}
@media (min-width:641px) and (max-width:1024px){
  h1{ font-size:44px; }
  h2{ font-size:32px; }
}

/* --- Layout (Avada Container: Site Width 1170 px) --- */
.container{ width:100%; max-width:calc(var(--container) + 2 * var(--pad)); margin:0 auto; padding:0 var(--pad); }
.container--text{ max-width:calc(var(--container-text) + 2 * var(--pad)); }
.section{ padding:var(--section) 0; }
.section--surface{ background:var(--c-surface); }
.section--tight{ padding-top:calc(var(--section) / 2); }
.section + .section:not(.section--surface):not(.cta-band){ padding-top:0; }
.section--surface + .section, .cta-band + .section{ padding-top:var(--section) !important; }
.section-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 32px; margin-bottom:32px; }
.section-head h2{ margin:0; }
.section-head p{ margin:0; }
.center{ text-align:center; }

/* --- Skip-Link --- */
.skip-link{
  position:absolute; left:16px; top:-100px; z-index:1000; background:var(--c-text); color:#fff;
  font-family:var(--font-ui); font-weight:500; padding:12px 18px; text-decoration:none;
}
.skip-link:focus{ top:12px; outline:2px solid var(--c-focus-on-dark); outline-offset:2px; }

/* --- Buttons (Avada Button-Element: Global Options › Buttons, Radius 0) --- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:var(--btn-h); padding:var(--btn-pad); border:1px solid transparent; border-radius:var(--radius-btn);
  font-family:var(--font-head); font-weight:600; font-size:var(--fs-btn); line-height:1.2; letter-spacing:.01em;
  text-decoration:none; cursor:pointer; text-align:center; background:none;
  transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover{ text-decoration:none; }
.btn--primary{ background:var(--c-sky-light); color:var(--c-text); border-color:var(--c-graphite); }
.btn--primary:hover{ background:var(--c-text); color:#fff; border-color:var(--c-text); }
.btn--secondary{ background:var(--c-text); color:#fff; border-color:var(--c-text); }
.btn--secondary:hover{ background:var(--c-graphite); border-color:var(--c-graphite); color:#fff; }
.btn--outline{ background:#fff; color:var(--c-graphite); border-color:var(--c-graphite); }
.btn--outline:hover{ background:var(--c-sky-light); color:var(--c-text); }
.btn--sm{ min-height:44px; padding:10px 16px; font-size:14px; }
.btn--block{ width:100%; }
.btn-row{ display:flex; flex-wrap:wrap; gap:16px; margin-top:32px; }
.btn-row--center{ justify-content:center; }
.link-arrow{ font-family:var(--font-ui); font-weight:500; font-size:var(--fs-nav); display:inline-flex; align-items:center; gap:6px; min-height:44px; }

/* --- Badge für Optionen O1–O3 --- */
.badge{ display:inline-block; font-family:var(--font-ui); font-size:12px; font-weight:500; padding:3px 8px; background:var(--c-text); color:#fff; vertical-align:middle; }

/* ==========================================================================
   Header (Avada Layout Builder › Header-Layout: Container + Menu-Element + Button-Element)
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:100; background:#fff; border-bottom:1px solid var(--c-line);
  transition:box-shadow .2s ease;
}
.site-header.is-scrolled{ box-shadow:var(--shadow-menu); }
.header-bar{ display:flex; align-items:center; gap:24px; height:var(--hh); transition:height .2s ease; }
.site-header.is-scrolled .header-bar{ height:var(--header-h-sticky); }
.brand{ display:flex; align-items:center; flex:none; min-height:44px; }
.brand img{ height:var(--logo-h); width:auto; transition:height .2s ease; }
.site-header.is-scrolled .brand img{ height:40px; }
@media (max-width:1100px){
  .brand img{ height:var(--logo-h-m); }
  .site-header.is-scrolled .brand img{ height:36px; }
}
@media (max-width:640px){
  .header-bar{ gap:12px; }
  .brand{ flex:0 1 auto; min-width:0; }
  .brand img, .site-header.is-scrolled .brand img{ height:auto; max-height:var(--logo-h-m); max-width:100%; }
  .site-header.is-scrolled .brand img{ max-height:36px; }
  .menu-button{ flex:none; padding:0 12px; }
}

/* Menü (Avada Menu-Element, Mega-Menü aktiviert) */
.main-nav{ margin-left:auto; height:100%; }
.nav-list{ list-style:none; margin:0; padding:0; display:flex; align-items:stretch; height:100%; }
.nav-item{ display:flex; align-items:stretch; }
.nav-link{
  position:relative; display:flex; align-items:center; gap:6px; padding:0 14px; min-height:44px;
  font-family:var(--font-ui); font-size:var(--fs-nav); font-weight:500; color:var(--c-graphite);
  text-decoration:none; background:none; border:0; cursor:pointer; white-space:nowrap;
}
.nav-link::after{
  content:""; position:absolute; left:14px; right:14px; bottom:0; height:2px; background:transparent;
}
.nav-link:hover{ color:var(--c-text); text-decoration:none; }
.nav-link:hover::after{ background:var(--c-line); }
.nav-link[aria-current="page"], .nav-link.is-active{ color:var(--c-text); }
.nav-link[aria-current="page"]::after, .nav-link.is-active::after, .nav-link[aria-expanded="true"]::after{ background:var(--c-sky); height:2px; }
.nav-link .chev{ width:14px; height:14px; transition:transform .15s ease; }
.nav-link[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.header-actions{ display:flex; align-items:center; gap:12px; flex:none; }
.header-actions .btn{ min-height:44px; padding:10px 18px; }
.lang{ display:flex; align-items:center; font-family:var(--font-ui); font-size:var(--fs-nav); font-weight:500; color:var(--c-graphite); }
.lang__current{ display:inline-flex; align-items:center; min-height:44px; padding:0 6px; color:var(--c-text); }
.lang__sep{ color:var(--c-border-ui); }
.lang__btn{ min-height:44px; min-width:36px; padding:0 6px; background:none; border:0; font:inherit; color:var(--c-graphite); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.lang__btn:hover{ color:var(--c-text); }
.menu-button{
  display:none; align-items:center; gap:8px; min-height:44px; padding:0 14px; margin-left:auto;
  background:#fff; border:1px solid var(--c-graphite); color:var(--c-text);
  font-family:var(--font-ui); font-weight:500; font-size:16px; cursor:pointer;
}
.menu-button:hover{ background:var(--c-sky-light); }
@media (max-width:1100px){
  .main-nav, .header-actions{ display:none; }
  .menu-button{ display:inline-flex; }
}
@media (min-width:1101px) and (max-width:1240px){
  .nav-link{ padding:0 9px; }
  .nav-link::after{ left:9px; right:9px; }
  .header-bar{ gap:16px; }
  .header-actions{ gap:8px; }
  .header-actions .btn{ padding:10px 14px; }
  .brand img, .site-header.is-scrolled .brand img{ height:38px; }
}

/* Mega-Menü-Panel (Avada Mega-Menü: Spalten mit Bild je Eintrag) */
.mega{
  position:absolute; left:0; right:0; top:100%; background:#fff; border-top:1px solid var(--c-line);
  box-shadow:var(--shadow-menu); padding:32px 0 36px;
}
.mega[hidden]{ display:none; }
.mega-inner{ display:grid; grid-template-columns:220px 1fr; gap:32px; align-items:start; }
.mega-intro .kicker{ margin-bottom:4px; }
.mega-intro p.mega-title{ font-family:var(--font-head); font-weight:600; font-size:24px; line-height:1.25; margin:0 0 8px; }
.mega-intro p{ font-size:15px; line-height:1.5; color:var(--c-text-muted); }
.mega-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.mega-grid--6{ grid-template-columns:repeat(6,minmax(0,1fr)); }
.mega-tile{ display:block; height:100%; text-decoration:none; color:var(--c-text); border:1px solid var(--c-line); background:#fff; transition:background-color .15s ease, box-shadow .15s ease; }
.mega-tile:hover{ background:var(--c-sky-light); box-shadow:var(--shadow-card-hover); color:var(--c-text); }
.mega-tile__img{ aspect-ratio:4/3; overflow:hidden; background:var(--c-surface); display:flex; align-items:center; justify-content:center; color:var(--c-graphite); }
.mega-tile__img img{ width:100%; height:100%; object-fit:cover; }
.mega-tile__img .icon{ width:40px; height:40px; }
.mega-tile__title{ display:block; padding:10px 12px 12px; font-family:var(--font-ui); font-weight:500; font-size:var(--fs-nav); line-height:1.35; }
.mega-tile:hover .mega-tile__title{ text-decoration:underline; text-underline-offset:3px; }

/* --- Off-Canvas (Avada Off Canvas Builder, Menü-Element als Akkordeon) --- */
.offcanvas{ position:fixed; inset:0; z-index:400; }
.offcanvas[hidden]{ display:none; }
.offcanvas__backdrop{ position:absolute; inset:0; background:rgba(28,28,28,.55); }
.offcanvas__panel{
  position:absolute; top:0; right:0; bottom:0; width:min(420px, 100%); background:#fff;
  display:flex; flex-direction:column; overflow-y:auto; overscroll-behavior:contain;
  transform:translateX(100%); transition:transform .25s ease;
}
.offcanvas.is-open .offcanvas__panel{ transform:none; }
@media (max-width:640px){ .offcanvas__panel{ width:100%; } }
.offcanvas__head{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:var(--header-h-m); padding:0 var(--pad); border-bottom:1px solid var(--c-line); }
.offcanvas__head img{ height:auto; max-height:32px; width:auto; max-width:calc(100% - 140px); }
.icon-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:44px; min-height:44px; padding:0 10px;
  background:#fff; border:1px solid var(--c-graphite); color:var(--c-text); cursor:pointer;
  font-family:var(--font-ui); font-weight:500; font-size:16px;
}
.icon-btn:hover{ background:var(--c-sky-light); }
.oc-list{ list-style:none; margin:0; padding:8px var(--pad); }
.oc-item{ border-bottom:1px solid var(--c-line); }
.oc-link, .oc-acc{
  display:flex; align-items:center; justify-content:space-between; width:100%; min-height:56px; padding:8px 0;
  font-family:var(--font-ui); font-weight:500; font-size:var(--fs-nav-m); color:var(--c-text);
  text-decoration:none; background:none; border:0; cursor:pointer; text-align:left;
}
.oc-link[aria-current="page"]{ box-shadow:inset 4px 0 0 var(--c-sky); padding-left:14px; }
.oc-acc .chev{ width:20px; height:20px; transition:transform .15s ease; }
.oc-acc[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.oc-sub{ list-style:none; margin:0 0 12px; padding:0 0 0 16px; border-left:2px solid var(--c-sky); }
.oc-sub[hidden]{ display:none; }
.oc-sub a{ display:flex; align-items:center; min-height:48px; font-family:var(--font-ui); font-size:16px; color:var(--c-graphite); }
.oc-sub a[aria-current="page"]{ color:var(--c-text); font-weight:500; }
.oc-footer{ margin-top:auto; padding:24px var(--pad) 32px; display:grid; gap:16px; background:var(--c-surface); border-top:1px solid var(--c-line); }
.oc-footer .lang{ justify-content:center; }

/* ==========================================================================
   Hero-Slider (Avada Slider-Element, Fade, ohne Text)
   ========================================================================== */
.hero{ position:relative; height:var(--hero-h); background:var(--c-dark); overflow:hidden; }
@media (max-width:1024px){ .hero{ height:480px; } }
@media (max-width:640px){ .hero{ height:var(--hero-h-m); } }
.hero__track{ position:absolute; inset:0; margin:0; padding:0; list-style:none; touch-action:pan-y; }
.hero__slide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .9s ease, visibility 0s linear .9s; }
.hero__slide.is-active{ opacity:1; visibility:visible; transition:opacity .9s ease, visibility 0s; }
.hero__slide img{ width:100%; height:100%; object-fit:cover; }
.hero__ctrl{
  position:absolute; z-index:2; display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; background:#fff; color:var(--c-text); border:1px solid var(--c-graphite); cursor:pointer; padding:0;
}
.hero__ctrl:hover{ background:var(--c-sky-light); }
.hero__ctrl:focus-visible{ outline:2px solid #fff; outline-offset:2px; box-shadow:0 0 0 4px var(--c-text); }
.hero__prev{ left:var(--pad); top:50%; transform:translateY(-50%); }
.hero__next{ right:var(--pad); top:50%; transform:translateY(-50%); }
.hero__pause{ right:var(--pad); bottom:20px; width:44px; height:44px; }
.hero__dots{ position:absolute; z-index:2; left:50%; bottom:20px; transform:translateX(-50%); display:flex; gap:0; margin:0; padding:0 4px; list-style:none; background:rgba(28,28,28,.55); }
.hero__dot{ width:44px; height:44px; padding:0; border:0; background:none; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.hero__dot span{ display:block; width:12px; height:12px; border:2px solid #fff; background:transparent; }
.hero__dot[aria-current="true"] span{ background:#fff; }
.hero__dot:focus-visible{ outline:2px solid #fff; outline-offset:-4px; }
@media (max-width:640px){
  .hero__prev, .hero__next{ width:44px; height:44px; }
  .hero__dots{ bottom:20px; }
}
@media (max-width:460px){
  .hero__dot{ width:32px; }
}

/* --- Intro Startseite (Avada Title-Element + Text-Element) --- */
.intro{ text-align:center; max-width:calc(880px + 2 * var(--pad)); }
.intro h1{ margin-bottom:12px; }
.intro .lead{ margin-bottom:20px; }
.intro p:last-child{ margin-bottom:0; }

/* ==========================================================================
   Title Bar (Avada Layout Builder › Page Title Bar, dynamisches Beitragsbild, Breadcrumbs)
   ========================================================================== */
.titlebar{ position:relative; min-height:var(--titlebar-h); display:flex; align-items:flex-end; background:var(--c-dark); color:#fff; overflow:hidden; }
@media (max-width:640px){ .titlebar{ min-height:var(--titlebar-h-m); } }
.titlebar__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* Overlay 50 % für den Titel (≥ 24 px), unten bis 78 % für die Breadcrumb in normaler Grösse (≥ 65 %) */
.titlebar::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, var(--overlay) 0%, var(--overlay) 45%, rgba(28,28,28,.78) 100%); }
.titlebar__inner{ position:relative; z-index:2; padding-top:48px; padding-bottom:28px; width:100%; }
.titlebar h1{ color:#fff; margin:0 0 16px; max-width:900px; text-wrap:balance; }
.titlebar .titlebar__meta{ font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; color:#fff; margin:0 0 12px; }
.breadcrumb ol{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; align-items:center; font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; }
.breadcrumb li{ display:flex; align-items:center; color:#fff; }
.breadcrumb li + li::before{ content:"/"; margin:0 10px; color:var(--c-text-on-dark-muted); }
.breadcrumb a{ color:#fff; display:inline-flex; align-items:center; min-height:32px; }
.breadcrumb a:hover{ color:#fff; text-decoration-thickness:2px; }
.breadcrumb a:focus-visible, .titlebar a:focus-visible{ outline-color:var(--c-focus-on-dark); }
.breadcrumb [aria-current="page"]{ color:var(--c-text-on-dark-muted); }

/* --- Unternavigation (Avada Menu-Element, horizontal) --- */
.subnav{ border-bottom:1px solid var(--c-line); background:#fff; }
.subnav ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:0 8px; }
.subnav a{ display:flex; align-items:center; min-height:52px; padding:0 12px; white-space:nowrap; font-family:var(--font-ui); font-weight:500; font-size:var(--fs-nav); color:var(--c-graphite); text-decoration:none; box-shadow:inset 0 -2px 0 transparent; }
.subnav a:hover{ color:var(--c-text); box-shadow:inset 0 -2px 0 var(--c-line); }
.subnav a[aria-current="page"]{ color:var(--c-text); box-shadow:inset 0 -2px 0 var(--c-sky); }
@media (max-width:640px){ .subnav ul{ gap:0 2px; } .subnav a{ min-height:44px; padding:0 8px; font-size:15px; } }

/* ==========================================================================
   Branchen-Kacheln (Avada Content Boxes, Layout «Icon on top», Font-Awesome-Icon)
   ========================================================================== */
.tiles{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--gutter); }
.tiles--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.tile{
  display:flex; flex-direction:column; align-items:center; text-align:center; height:100%; padding:32px 20px 28px;
  border:1px solid var(--c-line); background:#fff; color:var(--c-text); text-decoration:none;
  transition:background-color .15s ease, box-shadow .15s ease, border-color .15s ease;
}
a.tile:hover{ background:var(--c-sky-light); border-color:var(--c-graphite); box-shadow:var(--shadow-card-hover); color:var(--c-text); }
.tile__icon{ display:flex; align-items:center; justify-content:center; width:64px; height:64px; border:1px solid var(--c-graphite); color:var(--c-graphite); margin-bottom:18px; background:#fff; }
.tile__icon .icon{ width:30px; height:30px; }
.tile__title{ font-size:var(--fs-h4); margin:0 0 6px; }
.tile__body{ display:block; }
.tile__meta{ display:block; font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; color:var(--c-text-muted); margin:0; }
.tile__text{ font-size:16px; line-height:1.55; color:var(--c-text-muted); margin:8px 0 20px; }
.tile .btn{ margin-top:auto; }
a.tile .tile__title{ text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; }
a.tile:hover .tile__title{ text-decoration-color:currentColor; }
@media (max-width:1024px){
  .tiles{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
}
@media (max-width:640px){
  .tiles, .tiles--3{ grid-template-columns:1fr; gap:12px; }
  .tiles .tile{ flex-direction:row; text-align:left; padding:14px 16px; gap:16px; }
  .tiles .tile__icon{ width:52px; height:52px; margin:0; }
  .tiles .tile__icon .icon{ width:26px; height:26px; }
  .tiles .tile__title{ font-size:19px; margin:0; }
  .tiles--3 .tile{ flex-direction:column; align-items:flex-start; padding:20px; }
  .tiles--3 .tile__icon{ margin-bottom:12px; }
  .tiles--3 .tile .btn{ margin-top:0; }
}

/* ==========================================================================
   Karten (Avada Post Cards für News und Veranstaltungen)
   ========================================================================== */
.cards{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gutter); }
@media (max-width:1024px){ .cards{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; } }
@media (max-width:640px){ .cards{ grid-template-columns:1fr; } }
.card{ position:relative; display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid var(--c-line); transition:box-shadow .2s ease, transform .2s ease; }
.card:hover{ box-shadow:var(--shadow-card-hover); }
.card__media{ aspect-ratio:3/2; overflow:hidden; background:var(--c-surface); }
.card__media img{ width:100%; height:100%; object-fit:cover; }
.card__media--empty{ display:flex; align-items:center; justify-content:center; color:var(--c-graphite); }
.card__media--empty .icon{ width:48px; height:48px; }
.card__body{ display:flex; flex-direction:column; flex:1; padding:20px 22px 22px; }
.card__meta{ font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; color:var(--c-text-muted); margin:0 0 8px; display:flex; align-items:center; gap:6px; }
.card__title{ font-size:22px; line-height:1.3; margin:0 0 10px; }
.card__title a{ color:var(--c-text); text-decoration:none; }
.card__title a::after{ content:""; position:absolute; inset:0; z-index:1; }
.card__title a:hover{ text-decoration:underline; }
.card:focus-within{ box-shadow:var(--shadow-card-hover); }
.card__text{ font-size:16px; line-height:1.6; color:var(--c-text); margin:0 0 16px; }
.card__more{ margin-top:auto; font-family:var(--font-ui); font-weight:500; font-size:var(--fs-nav); color:var(--c-graphite); text-decoration:underline; text-underline-offset:3px; }
.card__more .icon{ width:16px; height:16px; }
.card__text--pre{ white-space:pre-line; }

/* Neuester Beitrag gross (Avada Post Cards, 1 Spalte, Bild 7/12 – Text 5/12) */
.feature{ position:relative; display:grid; grid-template-columns:7fr 5fr; background:#fff; border:1px solid var(--c-line); margin-bottom:var(--gutter); transition:box-shadow .2s ease; }
.feature:hover, .feature:focus-within{ box-shadow:var(--shadow-card-hover); }
.feature__media{ aspect-ratio:3/2; overflow:hidden; background:var(--c-surface); }
.feature__media img{ width:100%; height:100%; object-fit:cover; }
.feature__body{ padding:40px; display:flex; flex-direction:column; justify-content:center; }
.feature__body h2{ font-size:var(--fs-h3); }
.feature__body h2 a{ color:var(--c-text); text-decoration:none; }
.feature__body h2 a::after{ content:""; position:absolute; inset:0; z-index:1; }
.feature__body h2 a:hover{ text-decoration:underline; }
@media (max-width:1024px){ .feature{ grid-template-columns:1fr; } .feature__body{ padding:24px; } }

/* --- Text/Bild (Avada Container 1/2 + 1/2: Image-Element + Title/Text/Button) --- */
.media-text{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.media-text--reverse .media-text__img{ order:2; }
.media-text__img img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.media-text__body p:last-of-type{ margin-bottom:0; }
@media (max-width:1024px){ .media-text{ gap:40px; } }
@media (max-width:820px){ .media-text{ grid-template-columns:1fr; gap:28px; } .media-text--reverse .media-text__img{ order:0; } }

/* --- Galerie (Avada Gallery-Element mit Lightbox, 3 Spalten, 4:3) --- */
.gallery{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.gallery__item{ display:block; width:100%; padding:0; border:0; background:var(--c-surface); cursor:zoom-in; aspect-ratio:4/3; overflow:hidden; position:relative; }
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition:transform .3s ease, opacity .2s ease; }
.gallery__item:hover img{ transform:scale(1.03); }
.gallery__item:focus-visible{ outline:var(--focus-ring); outline-offset:3px; }
.gallery__zoom{ position:absolute; right:8px; bottom:8px; width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:#fff; color:var(--c-text); opacity:0; transition:opacity .15s ease; }
.gallery__item:hover .gallery__zoom, .gallery__item:focus-visible .gallery__zoom{ opacity:1; }
@media (max-width:640px){ .gallery{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } }
.quarter{ display:grid; grid-template-columns:7fr 5fr; gap:56px; align-items:start; }
@media (max-width:1024px){ .quarter{ grid-template-columns:1fr; gap:36px; } }

/* --- Checkliste (Avada Checklist-Element, Icon fa-check) --- */
.checklist{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.checklist li{ display:grid; grid-template-columns:32px 1fr; gap:12px; align-items:start; line-height:1.55; }
.checklist__icon{ width:32px; height:32px; display:flex; align-items:center; justify-content:center; background:var(--c-sky-light); border:1px solid var(--c-graphite); color:var(--c-text); }
.checklist__icon .icon{ width:18px; height:18px; }

/* ==========================================================================
   CTA-Band (Avada Global Element, Container Hintergrund Hellblau)
   ========================================================================== */
.cta-band{ background:var(--c-sky-light); padding:64px 0; }
.cta-band__inner{ display:grid; grid-template-columns:1fr auto; gap:24px 48px; align-items:center; }
.cta-band h2{ margin:0 0 8px; white-space:pre-line; }
.cta-band p{ margin:0; max-width:680px; color:var(--c-text); }
@media (max-width:820px){ .cta-band__inner{ grid-template-columns:1fr; } .cta-band{ padding:48px 0; } }

/* ==========================================================================
   Mitglieder-Karte (Avada Library-Container; mit O1 Post-Card-Layout)
   ========================================================================== */
.count-line{ font-family:var(--font-body); font-size:var(--fs-lead); font-weight:var(--fw-lead); line-height:1.5; margin:0 0 32px; }
.count-line strong{ font-weight:600; }
.count-line span{ font-weight:var(--fw-lead); }
@media (max-width:640px){ .count-line{ font-size:var(--fs-lead-m); } }
.members{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gutter); }
@media (max-width:1024px){ .members{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; } }
@media (max-width:640px){ .members{ grid-template-columns:1fr; } }
.member{ display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid var(--c-line); transition:box-shadow .2s ease; }
.member:hover{ box-shadow:var(--shadow-card-hover); }
.member__logo{ aspect-ratio:3/2; background:#fff; border-bottom:1px solid var(--c-line); padding:24px; display:flex; align-items:center; justify-content:center; }
.member__logo img{ width:100%; height:100%; object-fit:contain; }
.member__logo--empty{ font-family:var(--font-head); font-weight:600; font-size:22px; color:var(--c-graphite); text-align:center; background:var(--c-surface); }
.member__body{ display:flex; flex-direction:column; flex:1; padding:20px 22px 22px; }
.member__name{ font-size:22px; line-height:1.3; margin:0 0 10px; }
.member__addr{ font-style:normal; white-space:pre-line; margin:0 0 10px; font-size:16px; line-height:1.55; }
.member__contact{ list-style:none; margin:0 0 18px; padding:0; font-size:16px; }
.member__contact li{ display:flex; align-items:center; gap:8px; }
.member__contact a{ display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
.member__contact .icon{ width:18px; height:18px; color:var(--c-graphite); }
.member__actions{ margin-top:auto; display:flex; flex-wrap:wrap; gap:10px; }
.member__actions .btn{ flex:1 1 auto; }

/* ==========================================================================
   Vorstand (Avada Person-Element)
   ========================================================================== */
.board-lead{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gutter); margin-bottom:64px; }
.person-lead{ display:grid; grid-template-columns:220px 1fr; gap:28px; align-items:start; border:1px solid var(--c-line); padding:24px; background:#fff; }
.person-lead img, .person img{ width:100%; aspect-ratio:1/1; object-fit:cover; object-position:50% 20%; background:var(--c-surface); }
.person-lead h3{ margin:0 0 4px; }
.person__role{ font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; color:var(--c-text-muted); text-transform:uppercase; letter-spacing:.06em; margin:0 0 4px; }
.person__org{ margin:0 0 12px; }
.person-lead address{ font-style:normal; font-size:16px; line-height:1.55; }
.person-lead address a{ display:inline-flex; align-items:center; gap:8px; min-height:44px; overflow-wrap:anywhere; }
.board-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--gutter); }
.person h3{ font-size:20px; margin:16px 0 4px; }
.person p{ margin:0; font-size:16px; color:var(--c-text-muted); }
@media (max-width:1024px){ .board-lead{ grid-template-columns:1fr; } .board-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .person-lead{ grid-template-columns:1fr; } .person-lead img{ max-width:240px; } .board-grid{ gap:20px; } .person h3{ font-size:18px; } }

/* ==========================================================================
   Jahresberichte (Avada Content Boxes 3 Spalten + Toggles-Element)
   ========================================================================== */
.reports{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px var(--gutter); }
.report{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; height:100%; padding:24px; border:1px solid var(--c-line); background:#fff; }
.report h3{ font-size:22px; margin:0; display:flex; align-items:center; gap:10px; }
.report h3 .icon{ color:var(--c-graphite); }
.report .btn{ margin-top:auto; }
@media (max-width:1024px){ .reports{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .reports{ grid-template-columns:1fr; } }
.disclosure{ margin-top:40px; border-top:1px solid var(--c-line); }
.disclosure__btn{
  display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:64px; padding:12px 0;
  background:none; border:0; border-bottom:1px solid var(--c-line); cursor:pointer; text-align:left;
  font-family:var(--font-head); font-weight:600; font-size:var(--fs-h4); color:var(--c-text);
}
.disclosure__btn:hover{ color:var(--c-graphite); }
.disclosure__btn .chev{ width:22px; height:22px; transition:transform .15s ease; }
.disclosure__btn[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.disclosure__panel{ padding:28px 0 8px; }
.disclosure__panel[hidden]{ display:none; }

/* ==========================================================================
   Veranstaltungen (Avada Post Cards gruppiert nach Monat + Toggle)
   ========================================================================== */
.month{ margin-bottom:56px; }
.month:last-child{ margin-bottom:0; }
.month h2, .month .h-month{ font-size:var(--fs-h3); padding-bottom:12px; border-bottom:2px solid var(--c-sky); margin-bottom:28px; }
@media (max-width:640px){ .month h2, .month .h-month{ font-size:var(--fs-h3-m); } }
.card--past .card__media img{ filter:grayscale(.6); }
.empty-note{ padding:24px; border:1px dashed var(--c-border-ui); background:var(--c-surface); }

/* ==========================================================================
   Pagination (Avada Post Cards › Pagination «Pagination»)
   ========================================================================== */
.pagination{ margin-top:48px; }
.pagination ol{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.pagination a, .pagination span{
  display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0 12px;
  font-family:var(--font-ui); font-weight:500; font-size:var(--fs-nav); border:1px solid var(--c-graphite); color:var(--c-graphite); text-decoration:none; background:#fff;
}
.pagination a:hover{ background:var(--c-sky-light); color:var(--c-text); }
.pagination [aria-current="page"]{ background:var(--c-text); color:#fff; border-color:var(--c-text); }
.pagination .is-disabled{ border-color:var(--c-line); color:var(--c-placeholder); }

/* ==========================================================================
   Textseite / Beitrag (Avada Text-Element 760 px)
   ========================================================================== */
.prose{ max-width:var(--container-text); }
.prose h2{ margin-top:1.6em; }
.prose h3{ margin-top:1.5em; }
.prose h4{ margin-top:1.4em; }
.prose > :first-child, .prose > .kicker + h2{ margin-top:0; }
.prose ul li, .prose ol li{ margin-bottom:.4em; }
.prose .pre{ white-space:pre-line; }
.prose .caps{ font-size:18px; letter-spacing:.06em; }
.post-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; margin:0 0 28px; font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; color:var(--c-text-muted); }
.post-meta span{ display:inline-flex; align-items:center; gap:6px; }
.post-gallery{ margin-top:56px; }
.post-gallery h2{ font-size:var(--fs-h3); }
.post-nav{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; margin-top:56px; padding-top:28px; border-top:1px solid var(--c-line); }
.timeline{ margin:24px 0 0; padding:0; border-left:2px solid var(--c-sky); }
.timeline__row{ display:grid; grid-template-columns:96px 1fr; gap:16px; padding:0 0 22px 24px; position:relative; }
.timeline__row::before{ content:""; position:absolute; left:-7px; top:9px; width:12px; height:12px; background:#fff; border:2px solid var(--c-graphite); }
.timeline dt{ font-family:var(--font-head); font-weight:600; font-size:var(--fs-h4); line-height:1.35; }
.timeline dd{ margin:0; white-space:pre-line; }
.timeline dd p{ margin:0 0 .4em; }
@media (max-width:640px){ .timeline__row{ grid-template-columns:1fr; gap:2px; } }
.doc-links{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.page-images{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:32px; }
.page-images img{ width:100%; border:1px solid var(--c-line); }
@media (max-width:640px){ .page-images{ grid-template-columns:1fr; } }
.notice{ padding:20px 24px; background:var(--c-surface); border-left:4px solid var(--c-graphite); margin:0 0 24px; }
.notice p:last-child{ margin:0; }
.fee-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gutter); margin:28px 0 0; padding:0; list-style:none; }
.fee{ border:1px solid var(--c-graphite); padding:24px; background:#fff; }
.fee__amount{ font-family:var(--font-head); font-weight:600; font-size:var(--fs-h3); line-height:1.2; display:block; margin-bottom:6px; }
.steps{ counter-reset:step; list-style:none; margin:28px 0 0; padding:0; display:grid; gap:16px; }
.steps li{ counter-increment:step; display:grid; grid-template-columns:44px 1fr; gap:16px; align-items:start; }
.steps li::before{ content:counter(step); display:flex; align-items:center; justify-content:center; width:44px; height:44px; background:var(--c-sky-light); border:1px solid var(--c-graphite); font-family:var(--font-head); font-weight:600; }
@media (max-width:640px){ .fee-list{ grid-template-columns:1fr; gap:16px; } }

/* --- Webcam 2-Klick-Platzhalter (Avada Container 16:9 + Button; Complianz-Platzhalter) --- */
.webcam{ position:relative; aspect-ratio:16/9; background:var(--c-dark); color:#fff; overflow:hidden; margin-top:8px; }
.webcam__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; }
.webcam__inner{ position:relative; z-index:1; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:24px; gap:16px; background:rgba(28,28,28,.55); }
.webcam__inner > .icon{ width:48px; height:48px; }
.webcam__inner p{ margin:0; max-width:520px; color:#fff; font-size:16px; }
.webcam__inner .btn-row{ margin:0; justify-content:center; }
.webcam .btn--outline{ background:transparent; color:#fff; border-color:#fff; }
.webcam .btn--outline:hover{ background:#fff; color:var(--c-text); }
.webcam a:focus-visible, .webcam button:focus-visible{ outline-color:var(--c-focus-on-dark); }
.webcam__notice{ background:#fff; color:var(--c-text); padding:16px 20px; border-left:4px solid var(--c-sky); max-width:520px; font-size:16px; }
.webcam__notice[hidden]{ display:none; }
@media (max-width:640px){ .webcam{ aspect-ratio:auto; min-height:320px; } }

/* ==========================================================================
   Kontakt (Avada Container 5/12 + 7/12, Content Boxes «Icon links», Avada Forms)
   ========================================================================== */
.contact-grid{ display:grid; grid-template-columns:5fr 7fr; gap:64px; align-items:start; }
@media (max-width:1024px){ .contact-grid{ grid-template-columns:1fr; gap:48px; } }
.contact-list{ list-style:none; margin:0 0 24px; padding:0; display:grid; gap:4px; }
.contact-list li{ display:grid; grid-template-columns:44px 1fr; gap:12px; align-items:center; }
.contact-list .contact-icon{ width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid var(--c-line); color:var(--c-graphite); }
.contact-list a{ display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
.contact-list address{ font-style:normal; }

/* --- Formulare (Avada Forms: Labels über dem Feld, Fehlertext unter dem Feld) --- */
.form{ max-width:var(--container-text); }
.form-section{ border:0; padding:0; margin:0 0 36px; min-width:0; }
.form-section > legend, .form-section > h3{ font-family:var(--font-head); font-weight:600; font-size:22px; line-height:1.3; padding:0; margin:0 0 6px; }
.form-section > legend h3{ font-size:22px; margin:0 0 12px; }
.form-section__hint{ font-size:16px; color:var(--c-text-muted); margin:0 0 16px; }
.form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.form-grid .field--full{ grid-column:1 / -1; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.field{ margin:0 0 20px; min-width:0; }
.field label, .field .label{ display:block; font-family:var(--font-ui); font-weight:500; font-size:var(--fs-meta); color:var(--c-text); margin:0 0 6px; }
.req{ color:var(--c-error); margin-left:2px; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field input[type="url"], .field textarea{
  width:100%; min-height:var(--input-h); padding:12px 14px; border:1px solid var(--c-border-ui); border-radius:var(--radius-input);
  font-family:var(--font-ui); font-size:16px; color:var(--c-text); background:#fff;
}
.field textarea{ min-height:160px; resize:vertical; line-height:1.5; }
.field input::placeholder, .field textarea::placeholder{ color:var(--c-placeholder); }
.field input:focus, .field textarea:focus{ outline:var(--focus-ring); outline-offset:0; border-color:var(--c-text); }
.field__error{ display:flex; align-items:flex-start; gap:6px; margin:6px 0 0; font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; color:var(--c-error); }
.field__error[hidden]{ display:none; }
.field__error .icon{ width:16px; height:16px; margin-top:1px; }
.field--invalid input, .field--invalid textarea{ border:2px solid var(--c-error); padding:11px 13px; }
.choice{ display:grid; gap:8px; }
.choice label{ display:grid; grid-template-columns:24px 1fr; gap:12px; align-items:start; min-height:44px; padding:10px 14px; border:1px solid var(--c-line); font-family:var(--font-body); font-weight:400; font-size:16px; line-height:1.45; cursor:pointer; margin:0; }
.choice label:hover{ border-color:var(--c-graphite); }
.choice input{ width:22px; height:22px; margin:0; accent-color:var(--c-text); }
.choice input:focus-visible{ outline:var(--focus-ring); outline-offset:2px; }
.choice--invalid label{ border-color:var(--c-error); }
.form__note{ font-size:16px; color:var(--c-text-muted); }
.form__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:8px; }
.form__summary{ border:2px solid var(--c-error); padding:16px 20px; margin:0 0 28px; background:#fff; }
.form__summary h3{ font-size:19px; color:var(--c-error); margin:0 0 8px; }
.form__summary ul{ margin:0; }
.form__summary a{ color:var(--c-error); }
.form__success{ border:2px solid var(--c-success); padding:24px; background:#fff; }
.form__success h3{ color:var(--c-success); display:flex; align-items:center; gap:10px; font-size:22px; margin:0 0 8px; }
.form__success p:last-child{ margin:0; }
.form-dummy-hint{ font-family:var(--font-ui); font-size:13px; color:var(--c-text-muted); margin-top:16px; }

/* ==========================================================================
   Footer (Avada Layout Builder › Footer-Layout, 4 Spalten, Hintergrund #333)
   ========================================================================== */
.site-footer{ background:var(--c-dark); color:var(--c-text-on-dark-muted); font-size:16px; }
.site-footer a{ color:#fff; }
.site-footer a:hover{ color:var(--c-sky); }
.site-footer :focus-visible{ outline-color:var(--c-focus-on-dark); }
.footer-main{ padding:64px 0 48px; }
.footer-brand{ margin-bottom:40px; }
.footer-brand img{ height:44px; width:auto; }
.footer-brand p{ margin:12px 0 0; color:var(--c-text-on-dark-muted); }
.footer-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:40px var(--gutter); }
.footer-col h2{ font-family:var(--font-ui); font-weight:500; font-size:15px; letter-spacing:.08em; text-transform:uppercase; color:#fff; margin:0 0 14px; padding-bottom:10px; border-bottom:2px solid var(--c-sky); display:inline-block; }
.footer-col ul{ list-style:none; margin:0; padding:0; }
.footer-col li a, .footer-col li button{ display:inline-flex; align-items:center; gap:6px; min-height:40px; }
.footer-col address{ font-style:normal; line-height:1.6; }
.footer-col address a{ display:inline-flex; align-items:center; min-height:40px; }
.link-btn{ background:none; border:0; padding:0; font:inherit; color:#fff; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.link-btn:hover{ color:var(--c-sky); }
.footer-bottom{ border-top:1px solid #4a4a4a; padding:20px 0 24px; font-family:var(--font-ui); font-size:var(--fs-meta); }
.footer-bottom .container{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; }
.footer-bottom p{ margin:0; }
.site-footer .lang, .site-footer .lang__current, .site-footer .lang__btn{ color:#fff; }
.site-footer .lang__sep{ color:var(--c-text-on-dark-muted); }
.site-footer .lang__btn:hover{ color:var(--c-sky); }
.footer-bottom .lang__current, .footer-bottom .lang__btn{ min-height:44px; }
@media (max-width:1024px){ .footer-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .footer-grid{ grid-template-columns:1fr; gap:32px; } .footer-main{ padding:48px 0 32px; } .footer-bottom{ padding-bottom:72px; } }

/* ==========================================================================
   Consent-Banner (Complianz, gestaltet mit den Tokens von A; drei gleichwertige Buttons)
   ========================================================================== */
.consent{ position:fixed; left:0; right:0; bottom:0; z-index:300; background:#fff; border-top:2px solid var(--c-graphite); box-shadow:0 -4px 16px rgba(0,0,0,.08); }
.consent[hidden]{ display:none; }
.consent__inner{ display:grid; grid-template-columns:1fr auto; gap:16px 40px; align-items:center; padding-top:24px; padding-bottom:24px; }
.consent h2{ font-size:20px; margin:0 0 6px; }
.consent p{ font-size:16px; margin:0; line-height:1.5; }
.consent__actions{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.consent__actions .btn{ min-height:44px; padding:10px 16px; white-space:nowrap; }
.consent__prefs{ grid-column:1 / -1; border-top:1px solid var(--c-line); padding-top:16px; }
.consent__prefs[hidden]{ display:none; }
.consent__prefs .choice{ grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:12px; }
.consent__prefs .choice label small{ display:block; color:var(--c-text-muted); font-size:14px; }
@media (max-width:1100px){ .consent__inner{ grid-template-columns:1fr; } }
@media (max-width:640px){
  .consent__inner{ padding-top:16px; padding-bottom:20px; }
  .consent__actions{ grid-template-columns:1fr; }
  .consent__prefs .choice{ grid-template-columns:1fr; }
  .consent{ max-height:85vh; overflow-y:auto; }
}

/* --- Hinweis-Toast (EN-Hinweis, Webcam-Hinweis) --- */
.toast{ position:fixed; z-index:470; left:50%; top:calc(var(--hh) + 16px); transform:translateX(-50%); width:min(520px, calc(100% - 32px)); background:var(--c-text); color:#fff; padding:16px 56px 16px 20px; box-shadow:var(--shadow-menu); font-size:16px; line-height:1.5; }
.toast[hidden]{ display:none; }
.toast strong{ display:block; font-family:var(--font-ui); font-weight:500; margin-bottom:2px; }
.toast__close{ position:absolute; top:6px; right:6px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:none; border:0; color:#fff; cursor:pointer; }
.toast__close:focus-visible{ outline-color:#fff; }

/* ==========================================================================
   Lightbox (Avada Lightbox / Gallery-Element)
   ========================================================================== */
.lightbox{ position:fixed; inset:0; z-index:500; background:rgba(20,20,20,.95); color:#fff; display:flex; flex-direction:column; }
.lightbox[hidden]{ display:none; }
.lightbox__top{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; font-family:var(--font-ui); font-size:var(--fs-meta); font-weight:500; }
.lightbox__stage{ flex:1; display:flex; align-items:center; justify-content:center; padding:0 72px; min-height:0; touch-action:pan-y; }
.lightbox__figure{ margin:0; max-width:100%; max-height:100%; display:flex; flex-direction:column; align-items:center; }
.lightbox__img{ max-width:100%; max-height:calc(100vh - 160px); width:auto; height:auto; object-fit:contain; }
.lightbox__caption{ padding:12px 16px 20px; text-align:center; font-size:16px; color:#fff; }
.lightbox__btn{ width:48px; height:48px; display:inline-flex; align-items:center; justify-content:center; background:transparent; color:#fff; border:1px solid rgba(255,255,255,.7); cursor:pointer; padding:0; }
.lightbox__btn:hover{ background:#fff; color:var(--c-text); }
.lightbox__btn:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.lightbox__prev, .lightbox__next{ position:absolute; top:50%; transform:translateY(-50%); }
.lightbox__prev{ left:12px; }
.lightbox__next{ right:12px; }
@media (max-width:640px){
  .lightbox__stage{ padding:0 8px; }
  .lightbox__prev, .lightbox__next{ top:auto; bottom:16px; transform:none; }
  .lightbox__img{ max-height:calc(100vh - 210px); }
  .lightbox__caption{ padding-bottom:76px; }
}

/* --- Etikett «Klickdummy · Vorschlag A» --- */
.dummy-label{
  position:fixed; right:12px; bottom:calc(12px + var(--consent-h)); z-index:450;
  display:inline-flex; align-items:center; min-height:44px; padding:0 14px;
  background:var(--c-text); color:#fff; font-family:var(--font-ui); font-size:13px; font-weight:500; text-decoration:none;
  box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.dummy-label:hover{ color:#fff; background:var(--c-graphite); text-decoration:underline; }
.dummy-label:focus-visible{ outline:2px solid var(--c-text); outline-offset:2px; box-shadow:0 0 0 4px #fff; }
.lightbox-open .dummy-label, .is-locked .dummy-label{ display:none; }

/* Markierung ergänzter Kurztexte (nur sichtbar mit ?dummy im Hash, siehe app.js) */
.show-dummy [data-dummy-text]{ outline:2px dashed #b3261e; outline-offset:2px; }

/* --- Reduzierte Bewegung --- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ transition-duration:0s !important; animation-duration:0s !important; scroll-behavior:auto !important; }
  .gallery__item:hover img{ transform:none; }
}

/* --- Druck --- */
@media print{
  .site-header, .site-footer, .consent, .dummy-label, .hero__ctrl, .hero__dots{ display:none !important; }
}
