
:root {
  --bg: #0e0d0b;
  --fg: #f5efe5;
  --muted: #b7aa99;
  --accent: #b69a6f;
  --surface-light: #eee5d7;
  --line: rgba(245,239,229,.18);

  --card-radius: 28px;
  --gallery-columns: 3;
  --hero-overlay: 0.35;

  --page-max-width: 1270px;
  --content-max-width: 840px;
  --page-padding: 24px;
  --section-spacing: 90px;

  --layout-margin-left: auto;
  --layout-margin-right: auto;
  --text-align-site: center;
  --hero-align-site: center;

  --menu-justify-self: end;
  --menu-justify-content: flex-end;
  --header-max-width: var(--page-max-width);
  --header-height: 76px;
  --header-padding: 24px;

  --font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-heading: Georgia, "Times New Roman", serif;
  --font-nav: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --font-size-base: 16px;
  --font-size-paragraph: 18px;
  --line-height-base: 1.65;
  --heading-weight: 400;
}

html,
body {
  background: var(--bg) !important;
  color: var(--fg) !important;
  font-family: var(--font-body) !important;
  font-size: var(--font-size-base) !important;
  line-height: var(--line-height-base) !important;
}

h1, h2, h3, h4,
.hero-copy h1,
.intro-head h2 {
  font-family: var(--font-heading) !important;
  font-weight: var(--heading-weight) !important;
}

p,
.text,
.intro-text,
.content {
  font-size: var(--font-size-paragraph);
  line-height: var(--line-height-base);
}

nav,
.cms-nav,
.brand,
.kicker,
.btn {
  font-family: var(--font-nav) !important;
}

header {
  width: 100%;
}

header > .wrap,
header nav {
  width: min(var(--header-max-width), calc(100% - (var(--header-padding) * 2))) !important;
  max-width: var(--header-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

header nav {
  min-height: var(--header-height) !important;
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  align-items: center !important;
  gap: 24px !important;
}

header .brand {
  justify-self: start !important;
}

header .cms-nav,
header .links {
  justify-self: var(--menu-justify-self) !important;
  justify-content: var(--menu-justify-content) !important;
}

.wrap,
.home-hero,
.intro-section,
.page-hero,
.contact-grid,
.subpage-hero .wrap,
.subpage-content .wrap,
.gallery-section .wrap {
  width: min(var(--page-max-width), calc(100% - (var(--page-padding) * 2))) !important;
  max-width: var(--page-max-width) !important;
  margin-left: var(--layout-margin-left) !important;
  margin-right: var(--layout-margin-right) !important;
}

.text,
.intro-text,
.content,
.subpage-content .wrap,
.contact-grid .text {
  max-width: var(--content-max-width) !important;
  text-align: var(--text-align-site) !important;
}

.hero-copy,
.page-hero,
.subpage-hero .wrap {
  text-align: var(--hero-align-site) !important;
}

.intro-section,
.subpage-content,
.gallery-section,
.contact-grid {
  padding-top: var(--section-spacing) !important;
  padding-bottom: var(--section-spacing) !important;
}

@media(max-width:760px) {
  header > .wrap,
  header nav,
  .wrap,
  .home-hero,
  .intro-section,
  .page-hero,
  .contact-grid,
  .subpage-hero .wrap,
  .subpage-content .wrap,
  .gallery-section .wrap {
    width: min(100% - 36px, var(--page-max-width)) !important;
  }

  header nav {
    grid-template-columns: 1fr !important;
  }
}


/* Header-/Menü-Korrektur: kein doppelter Container */
header > .wrap {
  width: min(var(--header-max-width), calc(100% - (var(--header-padding) * 2))) !important;
  max-width: var(--header-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

header > .wrap > nav {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

header nav {
  min-height: var(--header-height) !important;
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  align-items: center !important;
  gap: 24px !important;
}

header .brand {
  justify-self: start !important;
}

header .cms-nav,
header .links {
  justify-self: var(--menu-justify-self) !important;
  justify-content: var(--menu-justify-content) !important;
}

/* Hero-Texte auf Seiten sauber im gleichen Raster halten */
.page-hero .lead,
.subpage-hero .lead {
  max-width: var(--content-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}



/* Footer: Copyright links, Social mittig, Rechtliches rechts */
footer .foot {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  gap: 24px !important;
}

footer .footer-copy {
  justify-self: start !important;
}

footer .social-footer {
  justify-self: center !important;
}

footer .footer-legal {
  justify-self: end !important;
  display: inline-flex !important;
  gap: 18px !important;
  align-items: center !important;
}

@media(max-width:760px) {
  footer .foot {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  footer .footer-copy,
  footer .social-footer,
  footer .footer-legal {
    justify-self: start !important;
  }
}


/* page-hero-line-compact-v1 */

/* Unterseiten-Hero kompakter und ruhiger */
.page-hero {
  padding-top: clamp(72px, 7vw, 110px) !important;
  padding-bottom: clamp(28px, 4vw, 52px) !important;
  text-align: center !important;
}

.page-hero h1 {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

/* Seitennamen wie "GALERIEN", "KONTAKT", "RECHTLICHES" optisch durch Linie ersetzen */
.page-hero .kicker {
  font-size: 0 !important;
  line-height: 0 !important;
  letter-spacing: 0 !important;
  color: transparent !important;
  margin: 0 0 30px !important;
}

.page-hero .kicker::before {
  content: "";
  display: block;
  width: 150px;
  height: 2px;
  margin: 0 auto;
  border-radius: 999px;
  background: var(--accent, var(--gold, #b69a6f));
  opacity: .95;
}

/* Textbereich unter dem Hero deutlich kompakter */
.subpage-content {
  padding-top: clamp(18px, 2.5vw, 32px) !important;
  padding-bottom: clamp(24px, 3vw, 42px) !important;
}

.subpage-content .wrap,
.subpage-content .text {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Galerieübersicht näher an den Beschreibungstext ziehen */
.gallery-section {
  padding-top: clamp(28px, 4vw, 56px) !important;
}

/* Linie in Galerie-Karten etwas länger */
.gallery-card h2::before,
.gallery-card h3::before,
.card h2::before,
.card h3::before,
article h2::before,
article h3::before {
  width: 150px !important;
}


