/**
 * R.E.SET Site-Header — eigenstaendige Navigation (design_handoff_navigation).
 * SELF-CONTAINED: alles unter .rsm-site-header gescoped (der Header erscheint
 * auch auf Konto-/Warenkorb-/Kassen-Seiten OHNE landingpage-master.css).
 * Palette-Variablen injiziert RSM_Header per Inline-Style (Fallback: Palette B).
 */
.rsm-site-header {
  /* Fallback Palette B (Injektion ueberschreibt spaeter) */
  --ink: #1C1D1F;
  --brass: #B5663F;
  --brass-soft: #CE8A67;
  --brass-ink: #8B4A29;
  --paper: #F3EEE5;
  --paper-warm: #ECE5D6;
  --line: #D5CCBA;
  --line-soft: #E2DAC8;
  --text-mid: #595B61;
  --text-dim: #8F919A;
  --on-ink: #F5F1E8;
  --ease: cubic-bezier(.4, 0, .2, 1);
  font-family: 'Inter Tight', sans-serif;
}
.rsm-site-header *, .rsm-site-header *::before, .rsm-site-header *::after { box-sizing: border-box; }

/* Theme-Header verstecken + Platz fuer die fixe 72px-Leiste.
   (Filter blocksy:header:template:id reicht je nach Bauweise nicht —
   Footer-Lehre v1.7.2; echte Blocksy-Selektoren + Elementor-Fallbacks.) */
body.rsm-has-site-header #header.ct-header,
body.rsm-has-site-header header#header,
body.rsm-has-site-header .ct-header,
body.rsm-has-site-header [data-elementor-type="header"],
body.rsm-has-site-header .elementor-location-header,
/* Block-Themes (Twenty Twenty-Five &amp; Co.): Header als Template-Part */
body.rsm-has-site-header .wp-site-blocks > header,
body.rsm-has-site-header header.wp-block-template-part { display: none !important; }
body.rsm-has-site-header { padding-top: 72px; }

/* Eingeloggt: WP-Adminbar sitzt fixed oben — Leiste + Overlays darunter. */
body.admin-bar .rsm-site-header .nav2 { top: 32px; }
body.admin-bar .rsm-site-header .nav2__dd,
body.admin-bar .rsm-site-header .msheet { top: 104px; }
body.admin-bar .rsm-site-header .nav2__scrim { inset: 104px 0 0; }
@media (max-width: 782px) {
  body.admin-bar .rsm-site-header .nav2 { top: 46px; }
  body.admin-bar .rsm-site-header .nav2__dd,
  body.admin-bar .rsm-site-header .msheet { top: 118px; }
  body.admin-bar .rsm-site-header .nav2__scrim { inset: 118px 0 0; }
}

/* Navigation — Konzept-Prototyp (Desktop-Dropdown + Mobile-Sheet) */

/* ===== Topbar v2 ===== */
.rsm-site-header .nav2 { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(20px, 4vw, 48px); height: 72px; background: color-mix(in oklab, var(--paper) 88%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid transparent; transition: border-color .25s var(--ease); }
.rsm-site-header .nav2.scrolled { border-bottom-color: var(--line); }
.rsm-site-header .nav2__brand { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 26px; color: var(--ink); text-decoration: none; letter-spacing: -.01em; }
.rsm-site-header .nav2__brand .dot { color: var(--brass); }

.rsm-site-header .nav2__links { display: flex; align-items: center; gap: 4px; }
.rsm-site-header .nav2__link { position: relative; display: inline-flex; align-items: center; gap: 7px; font-family: 'Inter Tight', sans-serif; font-weight: 500; font-size: 14.5px; color: var(--text-mid); text-decoration: none; background: transparent; border: 0; cursor: pointer; padding: 10px 14px; transition: color .2s var(--ease); }
.rsm-site-header .nav2__link:hover, .rsm-site-header .nav2__link[aria-expanded="true"] { color: var(--ink); }
.rsm-site-header .nav2__link .chev { width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .25s var(--ease); }
.rsm-site-header .nav2__link[aria-expanded="true"] .chev { transform: rotate(225deg) translateY(-1px); }

.rsm-site-header .nav2__right { display: flex; align-items: center; gap: 14px; }
.rsm-site-header .nav2__account { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; color: var(--text-mid); border: 1px solid transparent; border-radius: 999px; transition: color .2s var(--ease), border-color .2s var(--ease); }
.rsm-site-header .nav2__account:hover { color: var(--ink); border-color: var(--line); }
.rsm-site-header .nav2__account--bg { border-color: transparent; }
.rsm-site-header .nav2__account--bg:hover { color: inherit; border-color: transparent; filter: brightness(.96); }
/* Designtes Konto-Symbol: Hover-Rueckmeldung auch ohne Hintergrund (inline border:0/color neutralisiert die Bestands-:hover-Regel). */
.rsm-site-header .nav2--designed .nav2__account:hover { filter: brightness(.93); }
.rsm-site-header .nav2__account svg { width: 20px; height: 20px; }
.rsm-site-header .nav2__cta { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 13.5px; color: var(--ink); text-decoration: none; border: 1px solid var(--ink); padding: 10px 18px; border-radius: 2px; transition: filter .2s var(--ease); white-space: nowrap; }
/* Minimaler Hover: dezentes Abdunkeln — wirkt auf den umrandeten UND den
   gefüllten Button (fertige Stile), nie ein Farbwechsel (kein unsichtbarer Text). */
.rsm-site-header .nav2__cta:hover { filter: brightness(.95); }

/* Burger (mobile) */
.rsm-site-header .nav2__burger { display: none; width: 42px; height: 42px; background: transparent; border: 1px solid var(--line); cursor: pointer; position: relative; }
.rsm-site-header .nav2__burger span { position: absolute; left: 11px; right: 11px; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease), opacity .2s var(--ease); }
.rsm-site-header .nav2__burger span:nth-child(1) { top: 14px; }
.rsm-site-header .nav2__burger span:nth-child(2) { top: 20px; }
.rsm-site-header .nav2__burger span:nth-child(3) { top: 26px; }
.rsm-site-header .nav2__burger.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.rsm-site-header .nav2__burger.open span:nth-child(2) { opacity: 0; }
.rsm-site-header .nav2__burger.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ===== Termine-Dropdown (Desktop) ===== */
.rsm-site-header .nav2__dd { position: fixed; top: 72px; left: 0; right: 0; z-index: 99; display: flex; justify-content: center; pointer-events: none; }
.rsm-site-header .nav2__ddcard { pointer-events: auto; width: min(1080px, calc(100vw - 48px)); background: var(--paper); border: 1px solid var(--line); border-top: 2px solid var(--brass); box-shadow: 0 30px 70px -25px rgba(0,0,0,.35); display: grid; grid-template-columns: repeat(4, 1fr); opacity: 0; transform: translateY(-8px); visibility: hidden; transition: opacity .22s var(--ease), transform .22s var(--ease), visibility 0s linear .22s; }
.rsm-site-header .nav2__dd:not(.open) .nav2__ddcard { pointer-events: none; }
.rsm-site-header .nav2__dd.open .nav2__ddcard { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
.rsm-site-header .ddoffer { display: block; text-decoration: none; padding: 26px 26px 20px; border-right: 1px solid var(--line); transition: background .2s var(--ease); }
.rsm-site-header .ddoffer:last-of-type { border-right: 0; }
.rsm-site-header .ddoffer:hover { background: var(--paper-warm); }
.rsm-site-header .ddoffer__k { font-family: 'JetBrains Mono', monospace; font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--brass-ink); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.rsm-site-header .ddoffer__k .free { color: #fff; background: var(--brass); padding: 2px 7px; letter-spacing: .08em; }
.rsm-site-header .ddoffer__k .soon { color: var(--brass-ink); border: 1px solid var(--brass); padding: 1px 6px; letter-spacing: .08em; }
[data-mode="dark"] .rsm-site-header .ddoffer__k .soon { color: var(--brass-soft); }
.rsm-site-header .ddoffer__t { display: block; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 22px; color: var(--ink); line-height: 1.12; margin-bottom: 6px; }
.rsm-site-header .ddoffer:hover .ddoffer__t { color: var(--brass-ink); }
.rsm-site-header .ddoffer__m { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: .04em; color: var(--text-dim); margin-bottom: 12px; }
.rsm-site-header .ddoffer__d { display: block; font-size: 13px; line-height: 1.55; color: var(--text-mid); margin-bottom: 16px; }
.rsm-site-header .ddoffer__ablauf { display: inline-block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--brass-ink); text-decoration: none; padding-top: 12px; border-top: 1px solid var(--line-soft); width: 100%; }
.rsm-site-header .ddoffer__ablauf:hover { color: var(--ink); }
.rsm-site-header .nav2__ddfoot { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 26px; border-top: 1px solid var(--line); background: var(--paper-warm); }
.rsm-site-header .nav2__ddfoot .l { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); }
.rsm-site-header .nav2__ddfoot a { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 13px; color: var(--brass-ink); text-decoration: none; }
.rsm-site-header .nav2__ddfoot a:hover { color: var(--ink); }
.rsm-site-header .nav2__scrim { position: fixed; inset: 72px 0 0; z-index: 98; background: color-mix(in oklab, var(--ink) 24%, transparent); opacity: 0; pointer-events: none; transition: opacity .25s var(--ease); }
.rsm-site-header .nav2__scrim.open { opacity: 1; pointer-events: auto; }

/* Spaltenzahl folgt der ANZAHL sichtbarer Karten — sonst bleibt bei einer
   ausgeblendeten/entfernten Karte der Gitterplatz leer stehen. data-count
   wird beim Rendern gesetzt (header.php + Menü-Designer). Fallback = 4. */
.rsm-site-header .nav2__ddcard[data-count="1"] { grid-template-columns: 1fr; }
.rsm-site-header .nav2__ddcard[data-count="2"] { grid-template-columns: repeat(2, 1fr); }
.rsm-site-header .nav2__ddcard[data-count="3"] { grid-template-columns: repeat(3, 1fr); }

/* 4 Karten → 2×2 auf mittleren Desktops (nur bei genau 4 Karten). */
@media (max-width: 1150px) and (min-width: 921px) {
.rsm-site-header .nav2__ddcard[data-count="4"] { grid-template-columns: 1fr 1fr; }
.rsm-site-header .nav2__ddcard[data-count="4"] .ddoffer:nth-of-type(2n) { border-right: 0; }
.rsm-site-header .nav2__ddcard[data-count="4"] .ddoffer:nth-of-type(-n+2) { border-bottom: 1px solid var(--line); }
}

/* ===== Mobile Sheet ===== */
.rsm-site-header .msheet { position: fixed; inset: 72px 0 0; z-index: 97; background: var(--paper); transform: translateX(100%); transition: transform .35s var(--ease); overflow-y: auto; padding: 28px clamp(20px, 5vw, 40px) 48px; }
.rsm-site-header .msheet.open { transform: none; }
.rsm-site-header .msheet__group { margin-bottom: 34px; }
.rsm-site-header .msheet__lbl { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--brass-ink); margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.rsm-site-header .msheet__lbl::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.rsm-site-header .msheet__offer { display: block; text-decoration: none; border: 1px solid var(--line); padding: 18px 20px; margin-bottom: 10px; background: var(--paper); }
.rsm-site-header .msheet__offer:active { background: var(--paper-warm); }
.rsm-site-header .msheet__offer .t { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 21px; color: var(--ink); line-height: 1.15; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.rsm-site-header .msheet__offer .t .p { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--brass-ink); white-space: nowrap; }
.rsm-site-header .msheet__offer .m { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: .04em; color: var(--text-dim); margin-top: 5px; }
/* „So läuft es ab" = eigene Aktion in der Karte: volle Breite mit feiner
   Oberlinie (wie das Desktop-Dropdown), damit klar wird, dass es NICHT die
   Buchung ist, sondern ein separater Link zur Ablauf-Seite. */
.rsm-site-header .msheet__offer .ab { display: block; width: 100%; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line-soft); font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--brass-ink); }
.rsm-site-header .msheet__offer .ab:active { color: var(--ink); }
.rsm-site-header .msheet__link { display: flex; align-items: center; justify-content: space-between; text-decoration: none; font-family: 'Inter Tight', sans-serif; font-weight: 500; font-size: 17px; color: var(--ink); padding: 16px 2px; border-bottom: 1px solid var(--line-soft); }
.rsm-site-header .msheet__link .arr { color: var(--text-dim); }
.rsm-site-header .msheet__cta { display: block; text-align: center; margin-top: 10px; }

/* Breakpoint */
@media (max-width: 920px) {
.rsm-site-header .nav2__links, .rsm-site-header .nav2__cta { display: none; }
.rsm-site-header .nav2__burger { display: block; }
}
@media (min-width: 921px) {
.rsm-site-header .msheet { display: none; }
}


/* ── Blocksy-Button-Bleed-Haertung (Termine-Button + Burger sind <button>) ── */
.rsm-site-header button.nav2__link:not(.nav2__link--bg) {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  min-height: 0 !important;
  color: var(--text-mid) !important;
  border-radius: 0 !important;
}
.rsm-site-header button.nav2__link:not(.nav2__link--bg):hover,
.rsm-site-header button.nav2__link:not(.nav2__link--bg)[aria-expanded="true"] { color: var(--ink) !important; background: transparent !important; }
/* Termine-Knopf MIT fertigem Stil: Reset zaehmt nur Rahmen/Schatten, Hintergrund (nb-*) und Textfarbe (inline) duerfen wirken. */
.rsm-site-header button.nav2__link--bg { border: 0 !important; box-shadow: none !important; min-height: 0 !important; }
.rsm-site-header button.nav2__burger {
  background: transparent !important;
  background-image: none !important;
  border: 1px solid var(--line) !important;
  box-shadow: none !important;
  min-height: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* ── Mobile-Sheet-CTA (self-contained, kein .btn aus landingpage-master) ── */
.rsm-site-header .msheet__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 10px;
  padding: 16px 20px;
  background: var(--brass);
  color: #fff;
  text-decoration: none;
  font-family: 'Inter Tight', sans-serif;
  font-weight: 600;
  font-size: 15px;
  text-align: center;
  transition: background .2s var(--ease);
}
.rsm-site-header .msheet__cta:hover { background: var(--brass-ink); color: #fff; }
.rsm-site-header .msheet__cta-arrow { line-height: 1; }

/* Fusszeilen-Hinweis ohne Link (gedimmt, kein Cursor) */
.rsm-site-header .ddoffer__ablauf.is-plain { opacity: .6; cursor: default; }
.rsm-site-header .ddoffer__ablauf[role="link"],
.rsm-site-header .msheet__offer .ab[role="link"] { cursor: pointer; }

/* Defensive Härtung gegen Theme-Link-Bleed (Blocksy setzt Underline/Farbe auf
   a:hover): unsere Anchors bringen ihre Farbe selbst mit, hier nur die
   Unterstreichung neutralisieren (die Farbe gewinnt via 0,2,0-Scope ohnehin). */
.rsm-site-header a { text-decoration: none; }

/* ── Variables Menü (v1.154.0): Hintergrund je Punkt + Hervorhebungs-Badges ── */
.rsm-site-header .nav2__link--bg { border-radius: 7px; }
.rsm-site-header .nb-warm   { background: var(--paper-warm); color: var(--ink); }
.rsm-site-header .nb-soft   { background: color-mix(in oklab, var(--brass) 16%, var(--paper)); color: var(--brass-ink); }
.rsm-site-header .nb-accent { background: var(--brass); color: var(--on-ink, #fff); }
.rsm-site-header .nb-ink    { background: var(--ink); color: var(--on-ink, #fff); }
.rsm-site-header .nb-accentdeep { background: var(--brass-ink); color: var(--on-ink, #fff); }
.rsm-site-header .nav2__link--bg:hover { color: inherit; filter: brightness(.96); }
.rsm-site-header .nav2__link.nb-warm:hover { color: var(--ink); }

/* Hervorhebungs-Badge (klein, hinter dem Label) */
.rsm-site-header .nav2__badge { display: inline-flex; align-items: center; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; padding: 2px 6px; border-radius: 3px; margin-left: 3px; color: #fff; white-space: nowrap; }
.rsm-site-header .nav2__badge--neu    { background: #4E7A55; }
.rsm-site-header .nav2__badge--info   { background: #3E6DA6; }
.rsm-site-header .nav2__badge--update { background: var(--brass); color: var(--on-ink, #fff); }
.rsm-site-header .nav2__badge--hot    { background: #B5502F; }
/* Hervorhebung auf farbiger/dunkler Karte: heller Chip statt Kupfer-auf-Kupfer. */
.rsm-site-header .ddoffer.nb-accent .nav2__badge:not(.nav2__badge--dot),
.rsm-site-header .ddoffer.nb-accentdeep .nav2__badge:not(.nav2__badge--dot),
.rsm-site-header .ddoffer.nb-ink .nav2__badge:not(.nav2__badge--dot) { background: var(--paper); color: var(--brass-ink); }
.rsm-site-header .nav2__badge--dot { width: 7px; height: 7px; padding: 0; border-radius: 999px; margin-left: 5px; }
.rsm-site-header .nav2__badge--pulse { animation: rsm-nav-pulse 1.8s ease-in-out infinite; }
@keyframes rsm-nav-pulse { 0%,100% { box-shadow: 0 0 0 0 var(--pc, #B5502F); } 50% { box-shadow: 0 0 0 4px transparent; } }
@media (prefers-reduced-motion: reduce) { .rsm-site-header .nav2__badge--pulse { animation: none; } }

/* Mobil-Sheet: Hintergrund-Punkt als abgerundete Zeile; Badge inline vor dem Pfeil */
.rsm-site-header .msheet__link--bg { border-bottom: 0; border-radius: 10px; padding-left: 14px; padding-right: 14px; margin: 4px 0; }
.rsm-site-header .msheet__link .nav2__badge { margin-left: 8px; }
.rsm-site-header .msheet__link .arr { margin-left: auto; }

/* ── Menü-Designer: Design-Ebene (nur aktiv, wenn im Designer eingeschaltet) ── */
.rsm-site-header .rsm-navbanner{display:flex;align-items:center;justify-content:center;text-align:center;padding:9px 16px;font-family:'Inter Tight',sans-serif;font-size:13px;font-weight:500;letter-spacing:.01em}
.rsm-site-header .nav2--designed .nav2__brand,.rsm-site-header .nav2--designed .nav2__link,.rsm-site-header .nav2--designed .nav2__account,.rsm-site-header .nav2--designed .nav2__cta{color:inherit}
/* Designte Angebots-Karten: Hintergrund-Pillen + heller Text auf dunklem Grund */
/* Scharfe Ecken — R.E.SET-Designlinie (Karten NICHT abgerundet). */
.rsm-site-header .nav2__ddcard--designed .ddoffer{border-radius:0}
/* Hover: KEIN Hintergrundwechsel (Karte behält ihre Farbe — der Grund kommt inline,
   schlägt die alte paper-warm-Regel). Nur ein dezentes, lesbares Abdunkeln. */
.rsm-site-header .nav2__ddcard--designed .ddoffer{transition:filter .2s var(--ease)}
.rsm-site-header .nav2__ddcard--designed .ddoffer:hover{filter:brightness(.96)}
.rsm-site-header .nav2__ddcard--designed .ddoffer.nb-warm,.rsm-site-header .nav2__ddcard--designed .ddoffer.nb-soft,.rsm-site-header .nav2__ddcard--designed .ddoffer.nb-accent,.rsm-site-header .nav2__ddcard--designed .ddoffer.nb-accentdeep,.rsm-site-header .nav2__ddcard--designed .ddoffer.nb-ink{padding:14px 16px}
