/* invited · gemeinsame Basis-Styles (auf allen 8 Seiten geladen)
   Extrahiert 2026-06-04 (P1-09). Einzige Quelle der Wahrheit für Design-Tokens,
   Reset, A11y, Topbar/Nav, Mobile-Nav. Vereinheitlicht die zuvor pro Seite leicht
   gedrifteten Inline-Blöcke. rgba-Trennlinien auf Olive (111,108,67) korrigiert
   (vorher teils stale Navy 44,58,86 — P2-01). Seitenspezifisches CSS (Hero, Galerie,
   Formular, Akkordeon, Buttons, Footer, Print) bleibt inline in der jeweiligen Seite.
   Legal-Seiten (impressum/datenschutz): <body class="legal"> aktiviert die schmale
   Variante unten. */

:root{
  --navy:        #6F6C43;
  --white:       #ffffff;
  --sage:        #4C0000;
  --sage-soft:   #ACB090;
  --ice:         #F0EAD8;
  --muted:       #8a8a72;
  --display: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --gutter: clamp(24px, 5vw, 112px);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scrollbar-gutter: stable; }
html,body{ margin:0; padding:0; }
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body{
  background: var(--white);
  color: var(--navy);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.7;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
::selection{ background: var(--sage-soft); color: var(--navy); }

/* A11y — Focus & Reduced Motion */
:where(a, button, input, select, textarea):focus-visible{
  outline: 2px solid var(--sage);
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration: 0ms !important;
    transition-duration: 0ms !important;
  }
}
.skip-link{
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--navy);
  color: var(--white);
  padding: 10px 16px;
  z-index: 100;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.skip-link:focus{ left: 16px; top: 16px; }

.frame{
  max-width: 1680px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.frame--narrow{ max-width: 1040px; }

/* ————————————— Topbar ————————————— */
.topbar{
  position: sticky; top: 0; z-index: 50;
  background: var(--white);
  border-bottom: 1px solid rgba(111, 108, 67, 0.12);
}
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px clamp(8px, 1.5vw, 32px);
  gap: 32px;
}
.topbar__logo{ display:inline-flex; align-items: baseline; text-decoration: none; }
.topbar__logo--fallback{
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(34px, 4.5vw, 56px);
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--navy);
}
.topbar__logo--fallback .dot{ color: var(--navy); }
.nav{
  display:flex;
  gap: clamp(20px, 3vw, 48px);
  align-items: center;
}
.nav a{
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--navy);
  position: relative;
  padding: 8px 4px;
}
.nav a::after{
  content:"";
  position:absolute;
  left:4px; right:4px; bottom:2px;
  height: 1px;
  background: var(--sage);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 360ms ease-out;
}
.nav a:hover::after,
.nav a.is-active::after{ transform: scaleX(1); }

/* Mobile-Menü-Toggle ("Menü"-Text-Button) */
.nav-toggle{
  display: none;
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--navy);
  padding: 10px 4px;
  border-bottom: 1px solid transparent;
  transition: border-color 240ms ease-out;
}
.nav-toggle:hover{ border-color: var(--sage); }
.nav-close{ display: none; }

@media (max-width: 760px){
  .nav-toggle{ display: inline-flex; }
  .nav{ display: none; }
  .nav.is-open{
    display: flex;
    position: fixed;
    inset: 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 28px;
    padding: 80px 24px 32px;
    background: var(--white);
    z-index: 200;
    animation: nav-fade 240ms ease-out;
  }
  .nav.is-open a{
    font-size: 14px;
    letter-spacing: 0.32em;
    padding: 8px;
  }
  .nav.is-open a::after{ bottom: -2px; }
  .nav-close{
    display: inline-flex;
    position: absolute;
    top: clamp(18px, 4vw, 28px);
    right: var(--gutter);
    font-size: 11px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--navy);
    padding: 10px 4px;
  }
  .topbar__logo--fallback{ font-size: clamp(28px, 8vw, 40px); }
  @keyframes nav-fade{
    from{ opacity: 0; }
    to{ opacity: 1; }
  }
}
body.nav-open{ overflow: hidden; }

/* ————————————— Legal-Seiten (impressum, datenschutz): schmal + zentrierte Topbar —————————————
   Aktiviert über <body class="legal">. Reproduziert das bisherige Inline-Layout dieser
   beiden Seiten: 920px Content-Breite und eine auf 1680px begrenzte, stärker eingerückte
   Topbar (passend zur schmaleren Spalte). */
body.legal .frame{ max-width: 920px; }
body.legal .topbar{ padding: 14px 0; border-bottom: 1px solid rgba(111, 108, 67, 0.12); }
body.legal .topbar__inner{
  max-width: 1680px;
  margin: 0 auto;
  padding: 0 calc(var(--gutter) + clamp(8px, 1.5vw, 32px));
}
