/* =========================================================================
   gm-Theme — Branding-Layer auf Bootstrap 5 (SwiftyEdit-Basis)
   Legt den gm-Look (Marineblau, Serifen-Headlines) ueber das default-Theme.
   Inkl. A11y-Korrekturen aus dem Audit (Fokus, Kontrast, reduce-motion).
   ========================================================================= */

body {
  font-family: var(--gm-font-body);
  color: var(--gm-text);
  line-height: var(--gm-lh-body);
}

/* Headings: EB Garamond, Marineblau */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--gm-font-head);
  color: var(--gm-heading);
  font-weight: 800;
  line-height: 1.2;
}
h1, .h1 { font-size: var(--gm-fs-h1); }
h2, .h2 { font-size: var(--gm-fs-h2); }
h3, .h3 { font-size: var(--gm-fs-h3); }
h4, .h4 { font-size: var(--gm-fs-h4); }
h5, .h5 { font-size: var(--gm-fs-h5); }
h6, .h6 { font-size: var(--gm-fs-h6); }

/* Links — kein Underline-Hover (nur Farbwechsel zum Akzent).
   Buttons (.btn) ausgenommen -> behalten ihren Bootstrap-Hover. */
a { color: var(--gm-primary); text-decoration: none; }
a:not(.btn):not(.gmbtn):not(.gm-tile):not(.se-download):hover, a:not(.btn):not(.gmbtn):not(.gm-tile):not(.se-download):focus { color: var(--gm-accent); text-decoration: none; }

/* Links NIE unterstreichen (Betreiber-Regel). A11y 1.4.1: Fließtext-Links sind
   nicht nur farblich, sondern zusätzlich durch Fettung erkennbar (kein Underline).
   Navigation/Buttons/Karten/CTAs ausgenommen. */
section.no-padding :is(p, li, td, dd) a:not(.btn):not(.gmbtn):not(.gm-tile):not(.gm-event-card):not(.gm-events-all),
#content :is(p, li, td, dd) a:not(.btn):not(.gmbtn):not(.gm-tile):not(.gm-event-card) {
  text-decoration: none;
  font-weight: 600;
}
/* generell: niemals Unterstreichung auf Links */
a, a:hover, a:focus { text-decoration: none; }

/* Primaer-Flächen/Buttons (Bootstrap-Komponenten auf gm-Farbe) */
.bg-theme, .bg-primary { background-color: var(--gm-primary) !important; color: #fff; }
.text-theme-color, .text-primary { color: var(--gm-primary) !important; }

/* .btn-primary: BS5 nutzt feste Komponenten-Build-Variablen (--bs-btn-bg:#32477a),
   NICHT --bs-primary. Auf die verbindliche Markenfarbe #323E52 mappen. */
.btn-primary {
  --bs-btn-bg: var(--gm-primary);
  --bs-btn-border-color: var(--gm-primary);
  --bs-btn-hover-bg: var(--gm-primary-hover);
  --bs-btn-hover-border-color: var(--gm-primary-hover);
  --bs-btn-active-bg: var(--gm-primary-hover);
  --bs-btn-active-border-color: var(--gm-primary-hover);
  --bs-btn-disabled-bg: var(--gm-primary);
  --bs-btn-disabled-border-color: var(--gm-primary);
  /* Schutz gegen zur Laufzeit injizierten BS4-Stil (.btn-primary{background:#007bff}):
     Markenfarbe direkt + !important erzwingen, nicht nur via BS5-Variable. */
  background-color: var(--gm-primary) !important;
  border-color: var(--gm-primary) !important;
  color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus-visible, .btn-primary:active {
  background-color: var(--gm-primary-hover) !important;
  border-color: var(--gm-primary-hover) !important;
  color: #fff !important;
}

/* === DS-IBE-Widget: Schutz gegen Widget->Host-Leak ===
   Das Widget injiziert zur Laufzeit ein globales <style> in den Body mit u.a.
   `.container{padding:0!important}` (fuer seine Buchungsseite gedacht) und zerstoert
   damit ALLE Host-Container (Topbar-Inhalte kleben am Rand). Host-Container-Padding
   mit hoeherer Spezifitaet zuruecksetzen (Widget selbst nutzt twng-, kein .container). */
/* Hero-/Content-.container gegen den Widget-Leak schuetzen (Topbar/Header nutzen
   stattdessen .gm-container und sind dadurch ohnehin immun). */
body .container { padding-left: 25px !important; padding-right: 25px !important; }
@media (max-width:575px){ body .container { padding-left: 15px !important; padding-right: 15px !important; } }
/* Widget-Leak des Widget-Blocks bändigen, ABER Karten-Schatten nicht am Rand
   abschneiden: clip mit 32px Margin -> Schatten (max ~24px) bleibt sichtbar,
   horizontaler Ueberlauf wird trotzdem verhindert (clip erlaubt kein Scrollen). */
body section.no-padding { overflow: clip !important; overflow-clip-margin: 32px; }

/* gm-eigener Button (kommt im migrierten Content vor) */
.gmbtn {
  display: inline-block;
  background: var(--gm-primary);
  color: #fff;
  font-weight: 700;
  letter-spacing: 1px;
  font-size: .875rem;
  padding: 12px 28px;
  border-radius: var(--gm-radius);
  text-transform: uppercase;
  border: 1px solid var(--gm-primary);
  transition: background-color .2s ease, color .2s ease;
}
.gmbtn:hover, .gmbtn:focus { background: var(--gm-primary-hover); border-color: var(--gm-primary-hover); color: #fff; text-decoration: none; }
.gmbtn.white { background: #fff; color: var(--gm-primary); }
.gmbtn.white:hover { background: var(--gm-primary); color: #fff; }
.gmbtn.transparent { background: transparent; color: var(--gm-primary); border-color: var(--gm-border); }
.gmbtn.transparent:hover { background: var(--gm-primary); color: #fff; }
.gmbtn.small { padding: 8px 18px; }

/* Navigation: gm-Marineblau-Balken */
.menu_area, .navbar.bg-theme { background: var(--gm-primary); }
.navbar .nav-link { color: #fff; text-transform: uppercase; font-weight: 500; font-size: .875rem; }
.navbar .nav-link:hover, .navbar .nav-link:focus, .navbar .nav-link.active { color: rgba(255,255,255,.8); }

/* Footer (Kontrast A11y-konform) */
.footer-area, footer { background: var(--gm-footer-bg); color: var(--gm-footer-text); }
/* footer h3 wird vollstaendig in gm-layout.css (Footer-Goldstandard) gestylt */

/* A11y: sichtbarer Tastatur-Fokus (Audit A12 — kein outline:0!) */
a:focus-visible, button:focus-visible, .btn:focus-visible, .gmbtn:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--gm-primary);
  outline-offset: 2px;
}

/* A11y: Bewegung reduzieren (Audit A16) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

.container { max-width: 1200px; }

/* =========================================================================
   REGEL: FontAwesome ausschliesslich Classic Light.
   Erzwingt Light (weight 300, Family "Font Awesome 7 Pro") fuer ALLE
   Icon-Stilklassen — auch fuer migrierten Alt-Content (fas/far/fa-solid …).
   Ausnahme: .fab/.fa-brands (Marken-Logos existieren nur als Brands).
   ========================================================================= */
.fa, .fas, .far, .fal, .fat, .fad,
.fa-solid, .fa-regular, .fa-light, .fa-thin, .fa-duotone,
.fa-sharp, .fa-sharp-solid, .fa-sharp-regular, .fa-sharp-light, .fa-sharp-thin,
i[class*="fa-"]:not(.fab):not(.fa-brands) {
  font-family: "Font Awesome 7 Pro" !important;
  font-weight: 300 !important;
  --fa-style: 300;
  --fa-family: "Font Awesome 7 Pro";
}
/* Brands behalten ihre eigene Familie */
.fab, .fa-brands {
  font-family: "Font Awesome 7 Brands" !important;
  font-weight: 400 !important;
}

/* sr-only: visuell versteckt, aber fuer Screenreader/Suchmaschinen vorhanden
   (.visually-hidden ist im gepurgten default.css nicht enthalten). */
.gm-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* A11y (WCAG 2.4.1): Skip-Link — erstes fokussierbares Element (index.tpl),
   springt zu <main id="main">. Unsichtbar bis Tastatur-Fokus, dann als Pill
   oben links UEBER der fixierten Topbar/Navbar (deshalb hoher z-index). */
.gm-skip-link{position:fixed;top:-100px;left:1rem;z-index:2147483600;background:var(--gm-primary);color:#fff;font-weight:600;padding:.7rem 1.2rem;border-radius:0 0 var(--gm-radius) var(--gm-radius);transition:top .15s ease;}
.gm-skip-link:focus,.gm-skip-link:focus-visible{top:0;color:#fff;}
/* Sprungziel: kein Outline auf dem gesamten <main> nach programmatischem Fokus */
#main:focus{outline:none;}

/* Seiten-Eyebrow: sichtbares seitenspezifisches h1 am Kopf des dunklen Claim-Balkens —
   zentriert, weisse Outline-Pill mit weisser Schrift, softes Einblenden (Betreiber-Vorgabe). */
.gm-page-eyebrow{text-align:center;background:var(--gm-primary);margin:0;padding:calc(2.6rem + 10px) 0 1rem;}
.gm-page-eyebrow h1{display:inline-block;margin:0;font-family:var(--gm-font-body);font-style:normal;font-weight:400;font-size:.9rem;letter-spacing:.02em;text-transform:none;color:var(--gm-white);background:transparent;border:1px solid var(--gm-white);padding:.35rem .9rem;border-radius:100px;animation:gmEyebrowIn .7s ease-out both;}
@keyframes gmEyebrowIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){.gm-page-eyebrow h1{animation:none;}}

/* Service-Panel: dezenter Zusatz-Hinweis neben dem Titel */
.gm-service-hint{font-family:var(--gm-font-body,inherit);font-size:.7rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--gm-text);opacity:.7;white-space:nowrap;}
