/* ==========================================================================
   expecta — Design-System für die Landingpage "Erben & Schenken"
   Farben und Maße aus dem Entwurf (Entwurf Erben schenken.pdf) abgeleitet.
   ========================================================================== */

:root {
  /* Marke — Werte der bestehenden expecta-Homepage */
  --exp-green:        #0CC85A;
  --exp-green-dark:   #0AA84B;
  --exp-green-light:  #E6FAEE;
  /* Das Marken-Grün ist für Text auf Weiß zu hell — dafür diese Abtönung. */
  --exp-green-text:   #07853B;
  --exp-navy:         #314256;
  --exp-navy-soft:    #3D5169;

  /* Flächen */
  --exp-white:        #FFFFFF;
  --exp-offwhite:     #F7F9FA;
  --exp-cream:        #EEF2F5;
  --exp-border:       #DCE3E8;
  --exp-border-soft:  #E8EDF1;

  /* Text */
  --exp-heading:      #1E3544;
  --exp-text:         #3A4A57;
  --exp-muted:        #6B7A87;

  /* Typografie — wie auf der Hauptseite */
  --exp-serif: "Gelasio", Georgia, serif;
  --exp-sans:  "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Layout */
  --exp-maxw:    1180px;
  --exp-pad:     24px;
  --exp-radius:  10px;
  --exp-radius-sm: 6px;

  /* Schatten */
  --exp-shadow-card: 0 2px 14px rgba(12, 37, 57, .06);
  --exp-shadow-lift: 0 14px 40px rgba(12, 37, 57, .13);
}

/* --------------------------------------------------------- Reset / Basis */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

/* Das Theme hängt eine mobile Sidebar an wp_footer, die sonst nur durch
   Flatsome-CSS verborgen ist — das laden wir hier nicht. */
.exp-page .mfp-hide { display: none !important; }

/* Gilt für den Inhaltsbereich — als <main> innerhalb des Theme-Rahmens
   ebenso wie für den <body> in der eigenständigen Vorschau. */
.exp-page {
  margin: 0;
  font-family: var(--exp-sans);
  font-size: 17px;
  line-height: 1.65;
  color: var(--exp-text);
  background: var(--exp-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.exp-page img { max-width: 100%; height: auto; display: block; }
.exp-page svg { display: block; }

.exp-page h1, .exp-page h2, .exp-page h3, .exp-page h4 {
  font-family: var(--exp-serif);
  color: var(--exp-heading);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.005em;
  margin: 0 0 .5em;
}

.exp-page h1 { font-size: clamp(2.15rem, 1.35rem + 2.6vw, 3.4rem); }
.exp-page h2 { font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.6rem); }
.exp-page h3 { font-size: clamp(1.15rem, 1rem + .5vw, 1.4rem); }
.exp-page h4 { font-size: 1.05rem; }

.exp-page p { margin: 0 0 1.1em; }
.exp-page p:last-child { margin-bottom: 0; }

/* Buttons bringen ihre eigene Farbe mit — hier nicht mitfärben. */
.exp-page a:not(.exp-btn) { color: var(--exp-green-text); text-decoration: none; }
.exp-page a:not(.exp-btn):hover { color: var(--exp-navy); text-decoration: underline; }

.exp-page ul { margin: 0; padding: 0; list-style: none; }

/* Sichtbarer Fokus für Tastaturnutzung */
.exp-page :focus-visible {
  outline: 2px solid var(--exp-green);
  outline-offset: 2px;
  border-radius: 3px;
}

.exp-sr {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------- Layout */

.exp-wrap {
  width: 100%;
  max-width: var(--exp-maxw);
  margin-inline: auto;
  padding-inline: var(--exp-pad);
}

.exp-section { padding-block: clamp(56px, 4vw + 30px, 92px); }

/* Wellenübergang wie auf der Hauptseite (Flatsome-Shape-Divider "waves").
   Die Welle sitzt am unteren Rand und ist in der Farbe des FOLGENDEN
   Abschnitts eingefärbt, damit der Übergang fließt. */
.exp-section, .exp-usps, .exp-kontaktleiste { position: relative; }

.exp-wave {
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  line-height: 0;
  pointer-events: none;
  z-index: 1;
}
.exp-wave svg { display: block; width: 100%; height: clamp(38px, 5vw, 78px); }
.exp-wave path { fill: var(--exp-white); }

.exp-wave--to-cream path    { fill: var(--exp-cream); }
.exp-wave--to-offwhite path { fill: var(--exp-offwhite); }
.exp-wave--to-white path    { fill: var(--exp-white); }
.exp-wave--to-navy path     { fill: var(--exp-navy); }

/* Damit Inhalte nicht unter der Welle liegen */
.exp-section > .exp-wrap { position: relative; z-index: 2; }
.exp-has-wave { padding-bottom: clamp(90px, 8vw, 150px); }
.exp-section--tight { padding-block: clamp(40px, 3vw + 20px, 64px); }
.exp-section--cream { background: var(--exp-cream); }
.exp-section--offwhite { background: var(--exp-offwhite); }
.exp-section--navy { background: var(--exp-navy); color: #D5DEE5; }
.exp-section--navy h2, .exp-section--navy h3 { color: #fff; }

/* Kopfzeile einer Sektion: Kicker + Überschrift (+ Beitext) */
.exp-kicker {
  font-family: var(--exp-sans);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--exp-green-text);
  margin: 0 0 .9em;
}

.exp-head--center { text-align: center; max-width: 720px; margin-inline: auto; }
.exp-head--center .exp-kicker { color: var(--exp-muted); }
.exp-head h2 { margin-bottom: .35em; }
.exp-head p { color: var(--exp-muted); }

/* -------------------------------------------------------------- Buttons */

/* Das Theme setzt Schaltflächen in Großbuchstaben und mit Sperrung —
   für unsere Buttons und Reiter nehmen wir das zurück. */
.exp-page .exp-btn,
.exp-page .exp-tab {
  text-transform: none;
  letter-spacing: normal;
  min-height: 0;
  box-shadow: none;
  text-shadow: none;
}

.exp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55em;
  font-family: var(--exp-sans);
  font-size: .97rem;
  font-weight: 500;
  line-height: 1.2;
  padding: 15px 26px;
  border-radius: var(--exp-radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  text-align: center;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.exp-btn:hover { text-decoration: none; }

.exp-btn--primary { background: var(--exp-green); color: #fff; }
.exp-btn--primary:hover { background: var(--exp-green-dark); color: #fff; }

.exp-btn--ghost {
  background: transparent;
  color: var(--exp-heading);
  border-color: var(--exp-border);
}
.exp-btn--ghost:hover { background: var(--exp-white); border-color: var(--exp-green); color: var(--exp-green); }

.exp-btn--outline-green {
  background: transparent;
  color: var(--exp-green-text);
  border-color: var(--exp-green);
}
.exp-btn--outline-green:hover { background: var(--exp-green); color: #fff; }

.exp-btn--on-navy { background: var(--exp-green); color: #fff; }
.exp-btn--on-navy:hover { background: #4A8073; color: #fff; }

.exp-btn--block { width: 100%; }

/* ------------------------------------------------------- Häkchen-Listen */

.exp-checks { display: grid; gap: 13px; }

.exp-checks li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 12px;
  align-items: start;
  font-size: .98rem;
}

.exp-check-dot {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--exp-green);
  display: grid; place-items: center;
  margin-top: 1px;
  flex: none;
}
.exp-check-dot svg { width: 12px; height: 12px; stroke: #fff; stroke-width: 2.4; fill: none; }

/* Schlanke Variante: nur Haken, kein gefüllter Kreis */
.exp-checks--plain .exp-check-dot { background: transparent; }
.exp-checks--plain .exp-check-dot svg { stroke: var(--exp-green); }

/* ---------------------------------------------------------------- Karten */

.exp-card {
  background: var(--exp-white);
  border: 1px solid var(--exp-border-soft);
  border-radius: var(--exp-radius);
  padding: 30px 26px;
}

.exp-grid { display: grid; gap: 24px; }
.exp-grid--2 { grid-template-columns: repeat(2, 1fr); }
.exp-grid--3 { grid-template-columns: repeat(3, 1fr); }
.exp-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* Icon im Kreis-Umriss, wie im Entwurf */
.exp-icon-circle {
  width: 52px; height: 52px;
  border-radius: 50%;
  border: 1px solid var(--exp-border);
  display: grid; place-items: center;
  color: var(--exp-green);
  flex: none;
}
.exp-icon-circle svg { width: 24px; height: 24px; stroke: currentColor; stroke-width: 1.5; fill: none; }

/* ================================================================= HEADER */

.exp-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(140%) blur(6px);
  border-bottom: 1px solid var(--exp-border-soft);
}

.exp-header__inner {
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: 78px;
}

.exp-header__logo { flex: none; }
.exp-header__logo img { height: 38px; width: auto; }

.exp-nav { margin-left: auto; }
.exp-nav ul { display: flex; align-items: center; gap: 26px; }

.exp-nav a {
  font-size: .95rem;
  color: var(--exp-heading);
  padding-block: 6px;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.exp-nav a:hover { color: var(--exp-green); text-decoration: none; }
.exp-nav .is-current > a { color: var(--exp-green); border-bottom-color: var(--exp-green); }

.exp-header__cta { flex: none; }
.exp-header__cta .exp-btn { padding: 12px 22px; font-size: .92rem; }

/* Mobile-Navigation */
.exp-burger {
  display: none;
  margin-left: auto;
  width: 44px; height: 44px;
  background: none; border: 1px solid var(--exp-border);
  border-radius: var(--exp-radius-sm);
  cursor: pointer;
  padding: 0;
  place-items: center;
}
.exp-burger svg { width: 22px; height: 22px; stroke: var(--exp-heading); stroke-width: 1.8; fill: none; }

/* ================================================================= FOOTER */

.exp-usps {
  background: var(--exp-cream);
  padding-block: 30px;
}
.exp-usps ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.exp-usps li {
  display: flex; align-items: center; gap: 14px;
  font-size: .92rem; color: var(--exp-text);
}
.exp-usps .exp-icon-circle { width: 42px; height: 42px; border-color: #D9D2CB; }
.exp-usps .exp-icon-circle svg { width: 19px; height: 19px; }

.exp-footer {
  background: var(--exp-navy);
  color: #A9B8C4;
  padding-block: 54px 40px;
  font-size: .92rem;
}
.exp-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr auto;
  gap: 36px;
  align-items: start;
}
/* Das Logo ist dunkel angelegt — auf der Navy-Fläche wird es weiß gestellt. */
.exp-footer__logo img {
  height: 34px; width: auto;
  margin-bottom: 16px;
  filter: brightness(0) invert(1);
}
.exp-footer h4 {
  font-family: var(--exp-sans);
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 16px;
}
.exp-footer ul { display: grid; gap: 9px; }
.exp-footer a { color: #A9B8C4; }
.exp-footer a:hover { color: #fff; text-decoration: none; }
.exp-footer__contact li { display: flex; gap: 9px; align-items: baseline; }
.exp-footer__contact svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 1.6; fill: none; flex: none; position: relative; top: 2px; }

.exp-footer__seal {
  display: flex; align-items: center; gap: 12px;
  color: #fff; font-size: .82rem; line-height: 1.4;
}
.exp-footer__seal .exp-icon-circle {
  border-color: rgba(255,255,255,.35);
  color: #fff;
  width: 46px; height: 46px;
}

.exp-footer__bar {
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; gap: 8px 22px;
  align-items: center;
  font-size: .85rem;
}
.exp-footer__bar nav { margin-left: auto; display: flex; gap: 22px; flex-wrap: wrap; }

/* ============================================================ Responsive */

@media (max-width: 1040px) {
  .exp-footer__grid { grid-template-columns: 1fr 1fr 1fr; row-gap: 34px; }
  .exp-footer__seal { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .exp-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .exp-usps ul { grid-template-columns: repeat(2, 1fr); }
}

/* Logo + fünf Menüpunkte + Button brauchen Platz — darunter Burger-Menü. */
@media (max-width: 1100px) {
  .exp-nav, .exp-header__cta { display: none; }
  .exp-burger { display: grid; }

  .exp-header.is-open .exp-nav {
    display: block;
    position: absolute;
    left: 0; right: 0; top: 100%;
    background: #fff;
    border-bottom: 1px solid var(--exp-border-soft);
    box-shadow: var(--exp-shadow-card);
    padding: 10px var(--exp-pad) 22px;
  }
  .exp-header.is-open .exp-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .exp-header.is-open .exp-nav li { border-bottom: 1px solid var(--exp-border-soft); }
  .exp-header.is-open .exp-nav a { display: block; padding: 14px 0; border-bottom: 0; }
  .exp-header.is-open .exp-header__cta {
    display: block;
    position: absolute;
    left: var(--exp-pad); right: var(--exp-pad);
    top: calc(100% + 250px);
  }
}

@media (max-width: 720px) {
  .exp-page { font-size: 16px; }
  .exp-grid--2, .exp-grid--3, .exp-grid--4 { grid-template-columns: 1fr; }
  .exp-footer__grid { grid-template-columns: 1fr 1fr; }
  .exp-usps ul { grid-template-columns: 1fr; gap: 16px; }
  .exp-footer__bar nav { margin-left: 0; }
}

@media (max-width: 480px) {
  .exp-footer__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .exp-page * { transition: none !important; animation: none !important; }
}
