/* Rentique Weiß — erzeugt von tools/build.py aus public/ds/. Nicht bearbeiten. */

/* ————— tokens/fonts.css ————— */
/* Rentique Weiß — Webfonts, selbst ausgeliefert (kein fremder Schriftdienst).
   Big Shoulders Display · SIL Open Font License 1.1 · https://github.com/xotypeco/big_shoulders
   Source Sans 3        · SIL Open Font License 1.1 · https://github.com/adobe-fonts/source-sans
   Beide Lizenzen erlauben Auslieferung vom eigenen Server, kommerziell, ohne Nennungspflicht
   im Interface. Lizenztexte in assets/fonts/LIZENZ.md. */

@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:400 900;font-display:swap;
  src:url("/ds/assets/fonts/BigShouldersDisplay-var-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:400 900;font-display:swap;
  src:url("/ds/assets/fonts/BigShouldersDisplay-var-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:300 800;font-display:swap;
  src:url("/ds/assets/fonts/SourceSans3-var-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:300 800;font-display:swap;
  src:url("/ds/assets/fonts/SourceSans3-var-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:300 800;font-display:swap;
  src:url("/ds/assets/fonts/SourceSans3-Italic-var-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}


/* ————— tokens/colors.css ————— */
/* Rentique Weiß — Farbe. Basiswerte oben, semantische Aliase unten.
   Regel: --copper hat auf Elfenbein nur 3,8:1 → NIE Fließtext. Kupferner Text
   auf hellem Grund immer --copper-ink. */
:root{
  /* — Blau-Metallic (lackierter Werkzeugstahl) — */
  --navy-900:#0C1B2E;   /* Logokern, tiefste Fläche */
  --navy-800:#14293F;   /* Kopfzeile, Fußzeile */
  --navy-700:#1E3D5A;   /* Verlaufsmitte */
  --navy-500:#2F5A82;   /* Verlaufslicht, Hover */
  --steel-500:#4E6B87;  /* Haarlinien auf Navy */
  --steel-300:#8FA6BC;  /* Sekundärtext auf Navy */

  /* — Weiß / Elfenbein — */
  --ivory:#F6F3EC;      /* Seitengrund, warm */
  --white:#FFFFFF;      /* Karten, erhöhte Flächen */
  --sand:#EFEADF;       /* eingesenkte Flächen auf Elfenbein */
  --line:#DDD5C6;       /* Trennlinien auf hellem Grund */
  --line-soft:#E9E2D5;  /* sehr leise Trennlinie */

  /* — Kupfer: Akzent, max. 5 % der Fläche, immer flach — */
  --copper:#A25A20;      /* Flächen/Knöpfe, weißer Text darauf 5,2:1 */
  --copper-ink:#8A4A1A;  /* kupferner TEXT auf hellem Grund 6,2:1 */
  --copper-glow:#D9944F; /* Kupfer auf dunklem Grund 6,9:1 */
  --copper-050:#F6EADF;  /* leiseste Kupfertönung, nur Flächen */
  --copper-press:#7C4217;/* Knopf gedrückt */

  /* — Text — */
  --text:#16202B;
  --text-soft:#4E5A66;
  --text-faint:#7A8592;

  /* — Zustand: frei / später / gesperrt / Fehler — */
  --green-700:#1F6B4A;  /* Text „frei" auf hellem Grund 5,8:1 */
  --green-glow:#6FBF95; /* auf Navy 8,0:1 */
  --green-050:#E6F0E9;
  --alert-ink:#9A2114;  /* Fehlertext auf hellem Grund 7,3:1 */
  --alert-glow:#E58C7D; /* auf Navy 6,9:1 */
  --alert-050:#FAE9E5;

  /* ————— semantische Aliase: hierüber gestalten, nicht über Basiswerte ————— */
  --surface-page:var(--ivory);
  --surface-card:var(--white);
  --surface-sunken:var(--sand);
  --surface-dark:var(--navy-900);
  --surface-dark-2:var(--navy-800);

  --text-body:var(--text);
  --text-muted:var(--text-soft);
  --text-on-dark:var(--ivory);
  --text-on-dark-muted:var(--steel-300);

  --border-subtle:var(--line-soft);
  --border:var(--line);
  --border-on-dark:var(--steel-500);
  --border-image:var(--copper);      /* die dünne Kupferlinie um Bilder */

  --accent:var(--copper);            /* Fläche: primärer Knopf, aktiver Navpunkt */
  --accent-text:var(--copper-ink);   /* Preis, Abschnitts-Vorzeile auf hell */
  --accent-on-dark:var(--copper-glow);
  --on-accent:var(--white);

  --status-free:var(--green-700);
  --status-free-surface:var(--green-050);
  --status-later:var(--copper-ink);
  --status-later-surface:var(--copper-050);
  --status-blocked:var(--text-soft);
  --status-blocked-surface:var(--sand);
  --error:var(--alert-ink);
  --error-surface:var(--alert-050);

  --focus-color:var(--copper-ink);
  --focus-color-on-dark:var(--copper-glow);

  --link:var(--copper-ink);
  --link-hover:var(--navy-700);
  --link-on-dark:var(--copper-glow);
  --link-on-dark-hover:var(--white);
}


/* ————— tokens/typography.css ————— */
/* Rentique Weiß — Typografie. Zwei Familien, keine mehr.
   Display = schmallaufende Grotesk, Versalien, leicht gesperrt (Schilderanmutung).
   Fließtext = humanistische Grotesk mit Tabellenziffern.
   Der Script des Logos wird in der Oberfläche NICHT wiederholt. */
:root{
  --font-display:"Big Shoulders Display","Arial Narrow",system-ui,sans-serif; /* @kind font */
  --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif; /* @kind font */
  /* Größen — responsiv über clamp(); Basis 17 px */
  --fs-hero:clamp(2.75rem,1.35rem+5.6vw,5.5rem); /* @kind font */   /* h1 Startbild */
  --fs-h1:clamp(2.25rem,1.5rem+3vw,3.5rem); /* @kind font */
  --fs-h2:clamp(1.75rem,1.3rem+1.9vw,2.625rem); /* @kind font */
  --fs-h3:clamp(1.25rem,1.1rem+0.7vw,1.5rem); /* @kind font */
  --fs-h4:1.0625rem; /* @kind font */
  --fs-lead:clamp(1.0625rem,1rem+0.45vw,1.25rem); /* @kind font */
  --fs-body:1.0625rem;   /* 17 px */
  --fs-sm:0.9375rem;     /* 15 px */
  --fs-xs:0.8125rem;     /* 13 px */
  --fs-micro:0.6875rem;  /* 11 px — Bildlabel, Fußnote */
  --fs-stamp:clamp(1.25rem,1.1rem+0.6vw,1.5rem); /* @kind font */ /* Zahl im Preisstempel */

  /* Zeilenhöhen */
  --lh-hero:0.92; /* @kind font */
  --lh-heading:1.06; /* @kind font */
  --lh-tight:1.3; /* @kind font */
  --lh-body:1.6; /* @kind font */
  --lh-table:1.45; /* @kind font */
  /* Sperrung */
  --tr-hero:0.005em; /* @kind font */
  --tr-heading:0.02em; /* @kind font */
  --tr-caps:0.08em; /* @kind font */
  --tr-eyebrow:0.16em; /* @kind font */
  --tr-nav:0.06em; /* @kind font */
  --tr-body:0; /* @kind font */
  /* Gewichte */
  --fw-display:700; /* @kind font */
  --fw-display-heavy:800; /* @kind font */
  --fw-body:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --prose-max:68ch;   /* max. ~70 Zeichen Zeilenlänge in Rechtstexten */
}
/* Ziffern in Preistabellen, Kalender und technischen Daten */
.rw-tabular,table,time,.rw-price,.rw-num{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}


/* ————— tokens/space.css ————— */
/* Rentique Weiß — Abstände (4-px-Raster), Maße, Umbruchpunkte. */
:root{
  --space-0:0;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --space-12:48px;
  --space-16:64px;
  --space-20:80px;
  --space-24:96px;
  --space-32:128px;

  --wrap-max:1120px; /* @kind spacing */
  --wrap-pad:clamp(20px,4vw,32px); /* @kind spacing */
  --panel-pad:clamp(20px,2.4vw,28px); /* @kind spacing */
  --section-y:clamp(48px,7vw,88px); /* @kind spacing */
  --grid-gap:clamp(16px,2.2vw,28px); /* @kind spacing */
  --header-h:64px;        /* schmal — auf dem Telefon zählt jeder Pixel */
  --header-h-lg:72px; /* @kind spacing */
  --scroll-offset:calc(var(--header-h) + 8px); /* scroll-margin-top für Anker */

  --tap-min:44px;         /* Mindestgröße für Bedienelemente */

  /* Umbruchpunkte — als Referenz; in @media als Literale schreiben */
  --bp-sm:620px; /* @kind spacing */
  --bp-lg:980px; /* @kind spacing */
  /* Bildformate */
  --ar-tile:4/3; /* @kind other */          /* Kachel */
  --ar-detail:3/2; /* @kind other */        /* Detailstrecke */
  --ar-badge:5/4; /* @kind other */         /* Badge-Bildrahmen */
}


/* ————— tokens/shape.css ————— */
/* Rentique Weiß — Radien, Linienstärken, Fokus. */
:root{
  --r-xs:6px;
  --r-sm:10px;
  --r-card:16px;      /* Karten: 14–18 px */
  --r-card-lg:18px;
  --r-pill:999px;     /* Knöpfe, Chips */
  --r-badge:50% / 42%; /* @kind radius *//* die Logo-Ovalform — Stempel, Siegel, Bildrahmen */

  --bw-hair:1px; /* @kind spacing */
  --bw:2px; /* @kind spacing */
  --bw-thick:3px; /* @kind spacing */
  --focus-width:3px; /* @kind spacing */
  --focus-offset:2px; /* @kind spacing */
  --hazard-h:6px;     /* Absperrband: 4–8 px, nie Fläche */
}


/* ————— tokens/elevation.css ————— */
/* Rentique Weiß — Schatten. Nur unter erhöhten Elementen, nie als Deko. */
:root{
  --sh-card:0 1px 2px rgba(12,27,46,.05),0 14px 30px -22px rgba(12,27,46,.30);
  --sh-card-hover:0 2px 4px rgba(12,27,46,.07),0 22px 44px -24px rgba(12,27,46,.38);
  --sh-header:0 1px 0 rgba(12,27,46,.10),0 10px 24px -20px rgba(12,27,46,.55);
  --sh-panel:0 24px 60px -30px rgba(12,27,46,.45);
  --sh-stamp:0 6px 16px -10px rgba(12,27,46,.45);
  --sh-inset-dark:inset 0 1px 0 rgba(246,243,236,.10); /* hauchdünne hellere Kante oben */
  --sh-inset-light:inset 0 1px 0 rgba(255,255,255,.7);
}


/* ————— tokens/motion.css ————— */
/* Rentique Weiß — Bewegung. Sparsam; kein Layoutsprung. */
:root{
  --dur-fast:120ms; /* @kind other */
  --dur:180ms; /* @kind other */
  --dur-slow:280ms; /* @kind other */
  --ease-out:cubic-bezier(.2,.7,.3,1); /* @kind other */
  --ease-standard:cubic-bezier(.4,0,.2,1); /* @kind other */
  --lift:-2px;          /* Hover-Anhebung von Karten und Knöpfen */
}
@media (prefers-reduced-motion:reduce){
  :root{
    --dur-fast:0ms; /* @kind other */
    --dur:0ms; /* @kind other */
    --dur-slow:0ms; /* @kind other */
    --lift:0px; /* @kind other */
  }
}


/* ————— tokens/texture.css ————— */
/* Rentique Weiß — Verläufe, Körnung, Absperrband, Bildschleier.
   Der Metallverlauf soll kaum auffallen — nur fehlen, wenn er weg ist. */
:root{
  --grad-metal:linear-gradient(158deg,var(--navy-900) 0%,var(--navy-700) 62%,var(--navy-800) 100%); /* @kind other */
  --grad-metal-flat:linear-gradient(180deg,var(--navy-800) 0%,var(--navy-900) 100%); /* @kind other */
  --grad-metal-light:linear-gradient(158deg,var(--navy-700) 0%,var(--navy-500) 100%); /* @kind other */
  /* Körnung gegen Banding — feines Rauschen, sehr niedrige Deckkraft */
  --grain:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); /* @kind other */
  --grain-opacity-dark:.055; /* @kind other */   /* auf Navy */
  --grain-opacity-paper:.035; /* @kind other */  /* Papierkörnung auf Elfenbein */

  /* Absperrband — 4–8 px hohes Trennband, Muster für gesperrte Kalendertage */
  --hazard:repeating-linear-gradient(135deg,var(--copper) 0 7px,var(--navy-800) 7px 14px); /* @kind other */
  --hazard-soft:repeating-linear-gradient(135deg,rgba(162,90,32,.30) 0 5px,rgba(20,41,63,.14) 5px 10px); /* @kind other */
  /* Navy-Verlauf am unteren Bildrand: macht Preisstempel bildunabhängig lesbar */
  --img-veil:linear-gradient(to top,rgba(12,27,46,.78) 0%,rgba(12,27,46,.42) 34%,rgba(12,27,46,0) 72%); /* @kind other */
}


/* ————— base/base.css ————— */
/* Rentique Weiß — Element-Grundlagen. Kein Framework, nur Basis.
   Alles über die Token aus tokens/*.css. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;background:var(--surface-page);color:var(--text-body);
  font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);
  font-weight:var(--fw-body);-webkit-font-smoothing:antialiased;
}
/* Papierkörnung auf dem Elfenbein-Grund — sehr dezent, nicht klickbar */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:var(--grain);opacity:var(--grain-opacity-paper);mix-blend-mode:multiply}
img,svg,video{display:block;max-width:100%}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-display);
  text-transform:uppercase;letter-spacing:var(--tr-heading);line-height:var(--lh-heading);
  color:var(--navy-900);margin:0 0 .45em;text-wrap:balance}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);letter-spacing:var(--tr-caps)}
h4{font-size:var(--fs-h4);letter-spacing:var(--tr-caps)}
p{margin:0 0 1em;text-wrap:pretty}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{
  outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset);border-radius:var(--r-xs)}
:where(.rw-on-dark) a:focus-visible,:where(.rw-on-dark) button:focus-visible{outline-color:var(--focus-color-on-dark)}
[id]{scroll-margin-top:var(--scroll-offset)}
::selection{background:var(--copper-glow);color:var(--navy-900)}


/* ————— components/core/core.css ————— */
/* Rentique Weiß — Kern: Layout-Hilfen, Knopf, Chip, Badge-Stempel, Vorzeile,
   Absperrband, Icon. Reines CSS, keine Abhängigkeiten. */

/* ——— Layout-Hilfen ——— */
.rw-wrap{width:100%;max-width:var(--wrap-max);margin-inline:auto;padding-inline:var(--wrap-pad)}
.rw-section{padding-block:var(--section-y);position:relative}
.rw-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.rw-prose{max-width:var(--prose-max)}
.rw-prose h2{margin-top:1.6em}
.rw-prose h3{color:var(--accent-text);margin-top:1.4em}
.rw-prose strong{color:var(--text-body)}
.rw-stack{display:flex;flex-direction:column;gap:var(--space-4)}
.rw-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}

/* Blau-Metallic: flacher Verlauf, hellere Oberkante, Körnung gegen Banding */
.rw-metal{position:relative;background:var(--navy-900);background-image:var(--grad-metal);color:var(--text-on-dark);isolation:isolate}
.rw-metal::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
  background-image:var(--grain);opacity:var(--grain-opacity-dark)}
.rw-metal h1,.rw-metal h2,.rw-metal h3,.rw-metal h4{color:var(--text-on-dark)}
.rw-metal p{color:var(--text-on-dark-muted)}
.rw-raised{box-shadow:var(--sh-inset-dark),var(--sh-card)}

.rw-card{background:var(--surface-card);border:var(--bw-hair) solid var(--border-subtle);
  border-radius:var(--r-card);box-shadow:var(--sh-card)}
.rw-card--flat{box-shadow:none;border-color:var(--border)}
.rw-card--sunken{background:var(--surface-sunken);box-shadow:none;border-color:var(--border)}

/* ——— Vorzeile ——— */
.rw-eyebrow{display:inline-block;font-family:var(--font-display);font-size:.9375rem;
  font-weight:var(--fw-display);letter-spacing:var(--tr-eyebrow);text-transform:uppercase;
  color:var(--accent-text);margin:0 0 .5em}
.rw-eyebrow--on-dark{color:var(--accent-on-dark)}

/* ——— Absperrband: 4–8 px Trennband, nie Fläche ——— */
.rw-hazard{display:block;width:100%;height:var(--hazard-h);border:0;margin:0;padding:0;
  background:var(--hazard)}
.rw-hazard--thin{height:4px}

/* ——— Icon: externes SVG, über CSS-Maske gefärbt ——— */
.rw-icon{display:inline-block;flex:none;width:20px;height:20px;background-color:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain}

/* ——— Knopf ——— */
.rw-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:var(--tap-min);padding:0 26px;border-radius:var(--r-pill);
  border:var(--bw) solid transparent;background:none;
  font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--fw-display);
  letter-spacing:var(--tr-caps);text-transform:uppercase;text-decoration:none;
  line-height:1;cursor:pointer;text-align:center;
  transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),
    border-color var(--dur-fast) var(--ease-out),transform var(--dur) var(--ease-out),
    box-shadow var(--dur) var(--ease-out)}
.rw-btn--sm{min-height:38px;padding:0 18px;font-size:.9375rem;gap:7px}
.rw-btn--lg{min-height:54px;padding:0 34px;font-size:1.1875rem}
.rw-btn--block{width:100%}
.rw-btn .rw-icon{width:20px;height:20px}
.rw-btn--sm .rw-icon{width:16px;height:16px}

.rw-btn--primary{background-color:var(--accent);color:var(--on-accent)}
.rw-btn--primary:hover{background-color:var(--copper-press);transform:translateY(var(--lift))}
.rw-btn--primary:active{background-color:var(--copper-press);transform:translateY(0)}
.rw-btn--primary:focus-visible{outline-color:var(--copper-ink)}

.rw-btn--secondary{color:var(--navy-800);border-color:var(--navy-700)}
.rw-btn--secondary:hover{background-color:rgba(12,27,46,.06);color:var(--navy-900);transform:translateY(var(--lift))}
.rw-btn--secondary:active{background-color:rgba(12,27,46,.10);transform:translateY(0)}

.rw-btn--ghost{color:var(--accent-text);padding:0 14px}
.rw-btn--ghost:hover{background-color:var(--copper-050)}

/* auf dunklem Grund */
.rw-btn--on-dark.rw-btn--secondary{color:var(--text-on-dark);border-color:var(--steel-500)}
.rw-btn--on-dark.rw-btn--secondary:hover{background-color:rgba(246,243,236,.10);border-color:var(--steel-300)}
.rw-btn--on-dark.rw-btn--ghost{color:var(--accent-on-dark)}
.rw-btn--on-dark.rw-btn--ghost:hover{background-color:rgba(217,148,79,.14)}
.rw-btn--on-dark:focus-visible{outline-color:var(--focus-color-on-dark)}

/* Gefahr/Widerruf — bewusst nicht kupfern, damit die Kupferregel gilt */
.rw-btn--danger{color:var(--error);border-color:var(--error)}
.rw-btn--danger:hover{background-color:var(--error-surface)}

.rw-btn[disabled],.rw-btn[aria-disabled="true"]{background-color:var(--surface-sunken);
  color:var(--text-faint);border-color:transparent;box-shadow:none;transform:none;
  cursor:not-allowed;pointer-events:auto}
.rw-btn--loading{cursor:progress}
.rw-btn--loading .rw-btn__spin{width:14px;height:14px;border-radius:50%;
  border:2px solid currentColor;border-top-color:transparent;animation:rw-spin 700ms linear infinite}
@keyframes rw-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.rw-btn--loading .rw-btn__spin{animation-duration:2.4s}}

/* ——— Chip ——— */
.rw-chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-pill);
  font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-semibold);
  letter-spacing:var(--tr-nav);text-transform:uppercase;padding:5px 12px;
  border:var(--bw-hair) solid transparent;line-height:1.35;white-space:nowrap}
.rw-chip .rw-icon{width:14px;height:14px}
.rw-chip--neutral{background:var(--surface-sunken);color:var(--text-muted);border-color:var(--border)}
.rw-chip--copper{background:var(--copper-050);color:var(--copper-ink);border-color:#E6CFB6}
.rw-chip--free{background:var(--status-free-surface);color:var(--status-free);border-color:#C7DCD0}
.rw-chip--later{background:var(--status-later-surface);color:var(--status-later);border-color:#E6CFB6}
.rw-chip--blocked{background:var(--status-blocked-surface);color:var(--status-blocked);border-color:var(--border)}
.rw-chip--on-dark{background:rgba(246,243,236,.10);color:var(--text-on-dark-muted);border-color:var(--steel-500)}
.rw-chip--lg{font-size:var(--fs-sm);padding:7px 14px}
.rw-chip--lg .rw-icon{width:16px;height:16px}

/* Filter-Chip: echter Knopf, Zustand über aria-pressed + Häkchen, nicht nur Farbe */
button.rw-chip{cursor:pointer;min-height:38px;
  transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
button.rw-chip:hover{border-color:var(--copper);color:var(--copper-ink)}
button.rw-chip[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
button.rw-chip[aria-pressed="true"]:hover{background:var(--copper-press);color:var(--on-accent)}

/* ——— Badge-Stempel: die Logo-Ovalform ——— */
.rw-stamp{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;border-radius:var(--r-badge);border:var(--bw) solid currentColor;
  font-family:var(--font-display);line-height:1.02;padding:10px 18px;min-width:110px;
  aspect-ratio:5/4}
.rw-stamp__value{display:block;font-size:var(--fs-stamp);font-weight:var(--fw-display-heavy);
  letter-spacing:.01em}
.rw-stamp__label{display:block;margin-top:3px;font-family:var(--font-body);
  font-size:var(--fs-micro);font-weight:var(--fw-semibold);letter-spacing:var(--tr-caps);
  text-transform:uppercase}
.rw-stamp--light{background:var(--surface-card);color:var(--copper);box-shadow:var(--sh-stamp)}
.rw-stamp--light .rw-stamp__value{color:var(--copper-ink)}
.rw-stamp--light .rw-stamp__label{color:var(--text-muted)}
.rw-stamp--dark{background:var(--navy-900);background-image:var(--grad-metal);color:var(--copper-glow);
  box-shadow:var(--sh-stamp),var(--sh-inset-dark)}
.rw-stamp--dark .rw-stamp__value{color:var(--copper-glow)}
.rw-stamp--dark .rw-stamp__label{color:var(--text-on-dark-muted)}
.rw-stamp--copper{background:var(--accent);color:rgba(255,255,255,.6)}
.rw-stamp--copper .rw-stamp__value,.rw-stamp--copper .rw-stamp__label{color:var(--white)}
.rw-stamp--num{min-width:60px;padding:8px;aspect-ratio:5/4}
.rw-stamp--num .rw-stamp__value{font-size:1.375rem}
.rw-stamp--sm{min-width:88px;padding:8px 12px}
.rw-stamp--sm .rw-stamp__value{font-size:1.125rem}


/* ————— components/forms/forms.css ————— */
/* Rentique Weiß — Formularelemente. Fehler werden im Text benannt, nicht nur rot. */
.rw-field{display:block}
.rw-field+.rw-field{margin-top:var(--space-5)}
.rw-field__label{display:block;font-family:var(--font-display);font-size:.9375rem;
  font-weight:var(--fw-display);letter-spacing:var(--tr-caps);text-transform:uppercase;
  color:var(--navy-800);margin-bottom:6px}
.rw-field__req{color:var(--accent-text);margin-left:3px}
.rw-field__opt{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-body);
  letter-spacing:0;text-transform:none;color:var(--text-faint);margin-left:6px}
.rw-field__hint{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:6px}
.rw-field__error{display:flex;align-items:flex-start;gap:6px;margin-top:7px;
  font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--error)}
.rw-field__error .rw-icon{margin-top:2px}

.rw-input{width:100%;min-height:var(--tap-min);padding:10px 14px;
  font-family:var(--font-body);font-size:var(--fs-body);line-height:1.4;color:var(--text-body);
  background:var(--surface-card);border:var(--bw-hair) solid var(--border);
  border-radius:var(--r-sm);
  transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
.rw-input::placeholder{color:var(--text-faint)}
.rw-input:hover{border-color:#CDC2AE}
.rw-input[aria-invalid="true"]{border-color:var(--error);background:var(--error-surface)}
.rw-input[disabled]{background:var(--surface-sunken);color:var(--text-faint);cursor:not-allowed}
.rw-input--num{font-variant-numeric:tabular-nums lining-nums}
textarea.rw-input{min-height:132px;padding:12px 14px;line-height:var(--lh-body);resize:vertical}

.rw-select{position:relative;display:block}
select.rw-input{appearance:none;padding-right:44px;cursor:pointer}
.rw-select>.rw-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);
  pointer-events:none;color:var(--text-muted)}

/* Ankreuzoption — auch die Zubehör-Zeile mit Aufpreis */
.rw-option{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;min-height:var(--tap-min);
  background:var(--surface-card);border:var(--bw-hair) solid var(--border);border-radius:var(--r-sm);
  cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}
.rw-option:hover{border-color:#CDC2AE;background:var(--surface-sunken)}
.rw-option:has(input:checked){border-color:var(--accent);background:var(--copper-050)}
.rw-option:has(input:focus-visible){outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset)}
.rw-option:has(input[disabled]){cursor:not-allowed;opacity:.55}
.rw-option input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--copper)}
.rw-option__body{flex:1;min-width:0}
.rw-option__title{display:block;font-weight:var(--fw-semibold);color:var(--text-body);line-height:1.35}
.rw-option__desc{display:block;font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}
.rw-option__price{flex:none;font-weight:var(--fw-semibold);color:var(--accent-text);
  font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;padding-left:8px}
.rw-optiongroup{display:flex;flex-direction:column;gap:8px;border:0;margin:0;padding:0}
.rw-optiongroup>legend{padding:0;margin-bottom:8px;font-family:var(--font-display);
  font-size:.9375rem;font-weight:var(--fw-display);letter-spacing:var(--tr-caps);
  text-transform:uppercase;color:var(--navy-800)}


/* ————— components/media/media.css ————— */
/* Rentique Weiß — Bildflächen. Das Layout richtet sich NICHT nach dem Bild:
   feste Seitenverhältnisse, object-fit:cover, ein einheitlicher Rahmen. */
.rw-imgframe{position:relative;display:block;overflow:hidden;
  background:var(--navy-900);background-image:var(--grad-metal)}
.rw-imgframe--tile{aspect-ratio:var(--ar-tile)}
.rw-imgframe--detail{aspect-ratio:var(--ar-detail)}
.rw-imgframe--badgeratio{aspect-ratio:var(--ar-badge)}
.rw-imgframe--plain{border-radius:var(--r-card)}
.rw-imgframe--line{border:var(--bw-hair) solid var(--border-image);border-radius:var(--r-card)}
.rw-imgframe--badge{border:var(--bw-thick) solid var(--border-image);border-radius:var(--r-badge)}
.rw-imgframe--none{border-radius:0}
.rw-imgframe>img{width:100%;height:100%;object-fit:cover;object-position:center}
.rw-imgframe__veil{position:absolute;inset:0;pointer-events:none;background:var(--img-veil)}
.rw-imgframe__overlay{position:absolute;inset:auto 0 0 0;display:flex;align-items:flex-end;
  justify-content:space-between;gap:var(--space-3);padding:var(--space-4)}
.rw-imgframe__ai{position:absolute;right:10px;bottom:8px;font-size:var(--fs-micro);
  letter-spacing:.05em;color:var(--steel-300);pointer-events:none}
.rw-imgframe--badge .rw-imgframe__ai{right:18%;bottom:6%}
.rw-imgcap{display:block;margin-top:8px;font-size:var(--fs-xs);color:var(--text-muted)}

/* Platzhalter in Badge-Form: Navy, Kupferkontur — wird produktiv gebraucht */
.rw-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  width:100%;height:100%;padding:var(--space-5);text-align:center}
.rw-ph__oval{display:grid;place-items:center;width:66px;height:53px;
  border-radius:var(--r-badge);border:var(--bw) solid var(--copper);color:var(--copper-glow)}
.rw-ph__name{font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-display);
  letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--steel-300);
  max-width:22ch;line-height:1.15}
.rw-ph__note{font-size:var(--fs-micro);color:var(--steel-500)}
.rw-ph--sm{gap:6px}
.rw-ph--sm .rw-ph__oval{width:44px;height:35px}


/* ————— components/catalog/catalog.css ————— */
/* Rentique Weiß — Sortiment: Produktkachel, Kategorie-Kachel, Verfügbarkeitszeile,
   Preisstaffel. Regel im ganzen Block: Datum vor Preis. */

/* ——— Verfügbarkeitszeile: der Blickfang der Kachel ——— */
.rw-avail{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:var(--r-sm);
  border:var(--bw-hair) solid transparent;font-size:var(--fs-sm);font-weight:var(--fw-semibold);
  line-height:1.3}
.rw-avail__text{min-width:0}
.rw-avail__date{margin-left:auto;padding-left:8px;white-space:nowrap;
  font-variant-numeric:tabular-nums lining-nums}
.rw-avail--free{background:var(--status-free-surface);color:var(--status-free);border-color:#C7DCD0}
.rw-avail--later{background:var(--status-later-surface);color:var(--status-later);border-color:#E6CFB6}
.rw-avail--request{background:var(--status-blocked-surface);color:var(--status-blocked);border-color:var(--border)}
.rw-avail--booked{position:relative;overflow:hidden;padding-left:20px;
  background:var(--status-blocked-surface);color:var(--text-body);border-color:var(--border)}
.rw-avail--booked::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;
  background:var(--hazard)}
.rw-avail--lg{font-size:var(--fs-body);padding:13px 14px}
.rw-avail--lg.rw-avail--booked{padding-left:24px}

/* ——— Produktkachel ——— */
.rw-pcard{display:flex;flex-direction:column;overflow:hidden;
  background:var(--surface-card);border:var(--bw-hair) solid var(--border-subtle);
  border-radius:var(--r-card-lg);box-shadow:var(--sh-card);
  transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}
.rw-pcard:hover{transform:translateY(var(--lift));box-shadow:var(--sh-card-hover)}
.rw-pcard:focus-within{box-shadow:var(--sh-card-hover)}
.rw-pcard__media{position:relative;display:block}
.rw-pcard__media .rw-imgframe{border-radius:0;border:0;border-bottom:var(--bw-hair) solid var(--copper)}
.rw-pcard__seal{position:absolute;top:10px;right:10px}
.rw-pcard__body{display:flex;flex-direction:column;gap:10px;flex:1;
  padding:var(--space-5) var(--space-5) var(--space-5)}
.rw-pcard__name{margin:0;font-size:1.1875rem;line-height:1.1;letter-spacing:var(--tr-caps);
  overflow-wrap:break-word;hyphens:auto}
.rw-pcard__name a{color:inherit;text-decoration:none}
.rw-pcard__name a:hover{color:var(--copper-ink)}
.rw-pcard__claim{margin:0;font-size:var(--fs-sm);color:var(--text-muted)}
.rw-pcard__chips{display:flex;flex-wrap:wrap;gap:6px}
.rw-pcard__foot{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding-top:2px}
.rw-pcard--out .rw-pcard__media{filter:saturate(.7)}

/* ——— Kategorie-Kachel ——— */
.rw-cat{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit;
  background:var(--surface-card);border:var(--bw-hair) solid var(--border-subtle);
  border-radius:var(--r-card-lg);box-shadow:var(--sh-card);
  transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}
.rw-cat:hover{transform:translateY(var(--lift));box-shadow:var(--sh-card-hover)}
.rw-cat .rw-imgframe{border-radius:0;border:0;border-bottom:var(--bw-hair) solid var(--copper)}
.rw-cat__body{display:flex;align-items:center;gap:14px;padding:15px 18px}
.rw-cat__oval{flex:none;display:grid;place-items:center;width:56px;height:46px;
  border-radius:var(--r-badge);background:var(--navy-900);background-image:var(--grad-metal);
  border:var(--bw) solid var(--copper);color:var(--copper-glow);box-shadow:var(--sh-inset-dark)}
.rw-cat__text{min-width:0}
.rw-cat__name{margin:0;font-family:var(--font-display);font-size:1.125rem;
  font-weight:var(--fw-display);text-transform:uppercase;letter-spacing:var(--tr-caps);
  line-height:1.1;color:var(--navy-900)}
.rw-cat__meta{display:block;margin-top:3px;font-size:var(--fs-xs);color:var(--text-muted);
  font-variant-numeric:tabular-nums lining-nums}
.rw-cat__go{flex:none;margin-left:auto;color:var(--accent-text);
  transition:transform var(--dur) var(--ease-out)}
.rw-cat:hover .rw-cat__go{transform:translateX(3px)}

/* ——— Preisstaffel ——— */
.rw-ptable{width:100%;border-collapse:collapse;
  font-variant-numeric:tabular-nums lining-nums;line-height:var(--lh-table)}
.rw-ptable caption{text-align:left;font-family:var(--font-display);font-size:.9375rem;
  font-weight:var(--fw-display);letter-spacing:var(--tr-eyebrow);text-transform:uppercase;
  color:var(--accent-text);padding-bottom:8px}
.rw-ptable th,.rw-ptable td{padding:11px 12px;text-align:left;font-size:var(--fs-sm);
  border-bottom:var(--bw-hair) solid var(--line-soft)}
.rw-ptable thead th{font-family:var(--font-display);font-size:var(--fs-xs);
  font-weight:var(--fw-display);letter-spacing:var(--tr-caps);text-transform:uppercase;
  color:var(--text-muted);border-bottom:var(--bw-hair) solid var(--border)}
.rw-ptable td:last-child,.rw-ptable th:last-child{text-align:right}
.rw-ptable__amount{font-weight:var(--fw-semibold);font-size:var(--fs-body);color:var(--accent-text)}
.rw-ptable__ask{font-weight:var(--fw-medium);color:var(--text-muted)}
.rw-ptable tbody tr[aria-selected="true"]{background:var(--copper-050)}
.rw-ptable tbody tr[aria-selected="true"] td:first-child{box-shadow:inset 3px 0 0 var(--copper)}
.rw-ptable tbody tr[aria-selected="true"] td:first-child::after{content:" — gewählt";
  font-size:var(--fs-xs);color:var(--copper-ink);font-weight:var(--fw-semibold)}
.rw-ptable__deposit td{background:var(--surface-sunken);border-top:var(--bw-hair) solid var(--border);
  font-weight:var(--fw-semibold);color:var(--text-body)}
.rw-ptable__notes{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.rw-ptable__notes li{display:flex;align-items:flex-start;gap:7px;font-size:var(--fs-xs);
  color:var(--text-muted)}
.rw-ptable__notes .rw-icon{margin-top:1px;color:var(--text-faint)}


/* ————— components/booking/booking.css ————— */
/* Rentique Weiß — Verfügbarkeitskalender, Bestellübersicht, Widerruf.
   Kein Mengenfeld, sondern eine Zeitraumauswahl: es gibt je Gerät ein Exemplar. */

.rw-cal{background:var(--surface-card);border:var(--bw-hair) solid var(--border-subtle);
  border-radius:var(--r-card);box-shadow:var(--sh-card);padding:var(--space-4)}
.rw-cal__head{display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-bottom:var(--space-3)}
.rw-cal__month{font-family:var(--font-display);font-size:1.125rem;font-weight:var(--fw-display);
  letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--navy-900);
  font-variant-numeric:tabular-nums lining-nums}
.rw-cal__nav{display:flex;gap:6px}
.rw-cal__navbtn{display:grid;place-items:center;width:40px;height:40px;padding:0;
  border:var(--bw-hair) solid var(--border);border-radius:var(--r-pill);
  background:var(--surface-card);color:var(--navy-800);cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.rw-cal__navbtn:hover{border-color:var(--copper);color:var(--copper-ink)}
.rw-cal__navbtn[disabled]{opacity:.4;cursor:not-allowed}

.rw-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.rw-cal__dow{text-align:center;padding-bottom:5px;font-family:var(--font-display);
  font-size:var(--fs-xs);font-weight:var(--fw-display);letter-spacing:var(--tr-caps);
  text-transform:uppercase;color:var(--text-muted)}
.rw-cal__day{position:relative;display:grid;place-items:center;aspect-ratio:1;min-height:40px;
  padding:0;border:var(--bw-hair) solid var(--line-soft);border-radius:10px;
  background:var(--surface-card);font-family:var(--font-body);font-size:var(--fs-sm);
  font-weight:var(--fw-medium);color:var(--text-body);cursor:pointer;
  font-variant-numeric:tabular-nums lining-nums;
  transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.rw-cal__day>span{position:relative;z-index:1}
.rw-cal__day--pad{visibility:hidden;pointer-events:none}
.rw-cal__day:hover:not([aria-disabled="true"]){border-color:var(--copper);background:var(--copper-050)}
/* Wochenende: eigener Tarif → eigene Markierung, nicht nur Farbe */
.rw-cal__day--we{box-shadow:inset 0 -3px 0 var(--steel-300)}
/* Vergangenheit */
.rw-cal__day--past{color:var(--text-faint);background:var(--surface-sunken);
  border-color:transparent;cursor:not-allowed;text-decoration:line-through}
/* belegt: Absperrbandmuster, damit der Zustand nicht an der Farbe hängt */
.rw-cal__day--booked{color:var(--text-faint);background:var(--surface-sunken);
  border-color:var(--border);cursor:not-allowed;overflow:hidden}
.rw-cal__day--booked::before{content:"";position:absolute;inset:0;background:var(--hazard-soft)}
/* Übergabetag: halb belegt — Abholung mittags möglich */
.rw-cal__day--handover{overflow:hidden;color:var(--text-body);background:var(--surface-card)}
.rw-cal__day--handover::before{content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,transparent 0 49.6%,var(--steel-300) 49.6% 50.4%,rgba(239,234,223,.9) 50.4% 100%)}
/* gewählt */
.rw-cal__day--in{background:var(--copper-050);border-color:#E6CFB6;color:var(--copper-ink)}
.rw-cal__day--sel{background:var(--accent);border-color:var(--accent);color:var(--on-accent);
  font-weight:var(--fw-semibold)}
.rw-cal__day--sel::after{content:"";position:absolute;inset:3px;border-radius:7px;
  border:var(--bw) solid rgba(255,255,255,.55)}
.rw-cal__day--sel:hover{background:var(--copper-press);border-color:var(--copper-press)}

.rw-cal__range{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:var(--space-4);padding:11px 13px;border-radius:var(--r-sm);
  background:var(--surface-sunken);font-size:var(--fs-sm);
  font-variant-numeric:tabular-nums lining-nums}
.rw-cal__range strong{font-weight:var(--fw-semibold)}
.rw-cal__range--empty{color:var(--text-muted)}
.rw-cal__price{margin-left:auto;font-weight:var(--fw-semibold);color:var(--accent-text);
  font-size:var(--fs-body)}
.rw-cal__legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:var(--space-4) 0 0;padding:0;
  list-style:none;font-size:var(--fs-xs);color:var(--text-muted)}
.rw-cal__legend li{display:flex;align-items:center;gap:7px}
.rw-cal__key{position:relative;flex:none;width:20px;height:20px;border-radius:6px;
  border:var(--bw-hair) solid var(--line-soft);background:var(--surface-card);overflow:hidden}
.rw-cal__key--booked{border-color:var(--border);background:var(--surface-sunken)}
.rw-cal__key--booked::before{content:"";position:absolute;inset:0;background:var(--hazard-soft)}
.rw-cal__key--sel{background:var(--accent);border-color:var(--accent)}
.rw-cal__key--we{box-shadow:inset 0 -3px 0 var(--steel-300)}
.rw-cal__key--handover::before{content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,transparent 0 49%,var(--steel-300) 49% 51%,rgba(239,234,223,.9) 51% 100%)}
@media (max-width:620px){.rw-cal{padding:var(--space-3)}.rw-cal__grid{gap:3px}.rw-cal__day{min-height:38px}}

/* ——— Bestellübersicht ——— */
.rw-summary{background:var(--surface-card);border:var(--bw-hair) solid var(--border-subtle);
  border-radius:var(--r-card);box-shadow:var(--sh-card);overflow:hidden}
.rw-summary__head{display:flex;align-items:center;gap:10px;padding:var(--space-4) var(--panel-pad);
  background:var(--navy-900);background-image:var(--grad-metal);color:var(--text-on-dark);
  box-shadow:var(--sh-inset-dark)}
.rw-summary__title{margin:0;font-family:var(--font-display);font-size:1.0625rem;
  font-weight:var(--fw-display);letter-spacing:var(--tr-caps);text-transform:uppercase;
  color:var(--text-on-dark)}
.rw-summary__body{padding:var(--panel-pad)}
.rw-summary__lines{margin:0;padding:0;list-style:none;
  font-variant-numeric:tabular-nums lining-nums}
.rw-summary__lines li{display:flex;gap:12px;align-items:baseline;padding:9px 0;
  border-bottom:var(--bw-hair) solid var(--line-soft);font-size:var(--fs-sm)}
.rw-summary__lines li:first-child{padding-top:0}
.rw-summary__lbl{color:var(--text-muted)}
.rw-summary__val{margin-left:auto;font-weight:var(--fw-medium);color:var(--text-body);
  white-space:nowrap}
.rw-summary__total{display:flex;align-items:baseline;gap:12px;padding:var(--space-4) 0 0;
  font-variant-numeric:tabular-nums lining-nums}
.rw-summary__total dt{font-family:var(--font-display);font-size:1.0625rem;
  font-weight:var(--fw-display);letter-spacing:var(--tr-caps);text-transform:uppercase;
  color:var(--navy-900)}
.rw-summary__total dd{margin:0 0 0 auto;font-family:var(--font-display);
  font-size:1.75rem;font-weight:var(--fw-display-heavy);color:var(--accent-text);line-height:1}
.rw-summary__fine{margin:var(--space-3) 0 var(--space-4);font-size:var(--fs-xs);
  color:var(--text-muted)}
.rw-summary__actions{display:flex;flex-direction:column;gap:10px}
.rw-summary__alt{margin:var(--space-4) 0 0;padding-top:var(--space-4);
  border-top:var(--bw-hair) solid var(--border);font-size:var(--fs-sm);color:var(--text-muted)}
.rw-summary--confirmed .rw-summary__head{background:var(--navy-900);background-image:var(--grad-metal)}

/* ——— Widerruf: zweistufig, dauerhaft erreichbar ——— */
.rw-revoke{border:var(--bw-hair) solid var(--border);border-radius:var(--r-card);
  background:var(--surface-card);padding:var(--panel-pad)}
.rw-revoke__title{margin:0 0 6px;font-size:var(--fs-h4)}
.rw-revoke__text{margin:0 0 var(--space-4);font-size:var(--fs-sm);color:var(--text-muted)}
.rw-revoke__confirm{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--r-sm);
  background:var(--error-surface);border:var(--bw-hair) solid #E9C4BC}
.rw-revoke__confirm p{margin:0 0 var(--space-3);font-size:var(--fs-sm);color:var(--text-body)}
.rw-revoke__row{display:flex;gap:10px;flex-wrap:wrap}


/* ————— components/feedback/feedback.css ————— */
/* Rentique Weiß — Hinweise, leere Zustände, Ladezustände, Einwilligung.
   Hier sitzt der Witz (Mikrotexte) — nicht in Überschriften. */
.rw-notice{display:flex;gap:12px;padding:14px 16px;border-radius:var(--r-sm);
  border:var(--bw-hair) solid var(--border);background:var(--surface-card);
  font-size:var(--fs-sm);line-height:1.5;color:var(--text-body)}
.rw-notice__ico{flex:none;margin-top:2px;color:var(--text-muted)}
.rw-notice__title{display:block;margin-bottom:3px;font-family:var(--font-display);
  font-size:.9375rem;font-weight:var(--fw-display);letter-spacing:var(--tr-caps);
  text-transform:uppercase;color:var(--navy-900)}
.rw-notice p{margin:0}
.rw-notice--safety{background:var(--copper-050);border-color:#E6CFB6}
.rw-notice--safety .rw-notice__ico{color:var(--copper-ink)}
.rw-notice--error{background:var(--error-surface);border-color:#E9C4BC}
.rw-notice--error .rw-notice__ico{color:var(--error)}
.rw-notice--success{background:var(--status-free-surface);border-color:#C7DCD0}
.rw-notice--success .rw-notice__ico{color:var(--status-free)}
.rw-notice--on-dark{background:rgba(246,243,236,.07);border-color:var(--steel-500);
  color:var(--text-on-dark-muted)}
.rw-notice--on-dark .rw-notice__title{color:var(--text-on-dark)}
.rw-notice--on-dark .rw-notice__ico{color:var(--copper-glow)}

.rw-empty{display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:var(--space-4);padding:var(--space-12) var(--space-6);
  background:var(--surface-sunken);border:var(--bw-hair) dashed var(--border);
  border-radius:var(--r-card)}
.rw-empty__oval{display:grid;place-items:center;width:92px;height:74px;
  border-radius:var(--r-badge);border:var(--bw) solid var(--copper);
  background:var(--navy-900);background-image:var(--grad-metal);color:var(--copper-glow);
  box-shadow:var(--sh-inset-dark)}
.rw-empty__title{margin:0;font-size:var(--fs-h3)}
.rw-empty__text{margin:0;max-width:48ch;font-size:var(--fs-sm);color:var(--text-muted)}
.rw-empty--lg{padding:var(--space-20) var(--space-6)}
.rw-empty--lg .rw-empty__title{font-size:var(--fs-h2)}

.rw-skel{display:flex;flex-direction:column;gap:10px}
.rw-skel__line{height:12px;border-radius:6px;background-color:var(--sand);
  background-image:linear-gradient(90deg,var(--sand) 0%,#FAF7F1 50%,var(--sand) 100%);
  background-size:200% 100%;animation:rw-shim 1400ms linear infinite}
.rw-skel__note{display:flex;align-items:center;gap:7px;margin:0;font-size:var(--fs-xs);
  color:var(--text-muted)}
@keyframes rw-shim{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.rw-skel__line{animation:none}}

.rw-consent{position:fixed;inset:auto 0 0 0;z-index:100;padding:var(--wrap-pad)}
.rw-consent__panel{max-width:var(--wrap-max);margin-inline:auto;padding:var(--panel-pad);
  display:grid;gap:var(--space-4);align-items:center;grid-template-columns:1fr;
  background:var(--navy-900);background-image:var(--grad-metal);color:var(--text-on-dark);
  border-radius:var(--r-card);box-shadow:var(--sh-panel),var(--sh-inset-dark)}
@media (min-width:980px){.rw-consent__panel{grid-template-columns:1fr auto}}
.rw-consent__title{margin:0 0 4px;font-size:var(--fs-h4);color:var(--text-on-dark)}
.rw-consent__text{margin:0;font-size:var(--fs-sm);color:var(--text-on-dark-muted);max-width:70ch}
.rw-consent__text a{color:var(--link-on-dark)}
.rw-consent__actions{display:flex;gap:10px;flex-wrap:wrap}


/* ————— components/navigation/navigation.css ————— */
/* Rentique Weiß — Kopfzeile, Fußzeile, Downloadzeile. */
.rw-header{position:sticky;top:0;z-index:50;background:var(--navy-900);
  background-image:var(--grad-metal-flat);border-bottom:var(--bw-thick) solid var(--copper);
  box-shadow:var(--sh-header)}
@supports (backdrop-filter:blur(8px)){
  .rw-header{background-color:rgba(12,27,46,.92);backdrop-filter:blur(8px)}}
.rw-header__bar{display:flex;align-items:center;gap:var(--space-3);height:var(--header-h)}
.rw-header__logo{flex:none;display:flex;align-items:center}
.rw-header__logo img{height:38px;width:auto}
.rw-header__region{display:none;align-items:center;gap:6px;font-size:var(--fs-xs);
  color:var(--text-on-dark-muted);white-space:nowrap}
.rw-nav{display:none;gap:2px}
.rw-nav__link{padding:9px 14px;border-radius:var(--r-pill);text-decoration:none;
  font-family:var(--font-display);font-size:1rem;font-weight:var(--fw-display);
  letter-spacing:var(--tr-nav);text-transform:uppercase;color:var(--text-on-dark-muted);
  transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.rw-nav__link:hover{color:var(--text-on-dark);background:rgba(246,243,236,.09)}
.rw-nav__link[aria-current="page"]{background:var(--accent);color:var(--on-accent)}
.rw-header__actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.rw-header__ico{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;
  border-radius:var(--r-pill);border:var(--bw-hair) solid var(--steel-500);background:none;
  color:var(--text-on-dark);cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.rw-header__ico:hover{border-color:var(--copper-glow);color:var(--copper-glow)}
.rw-header__cta{display:none}
.rw-drawer{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) 0 var(--space-5);
  border-top:var(--bw-hair) solid var(--steel-500)}
.rw-drawer .rw-nav__link{display:block;padding:13px 14px}
.rw-drawer__cta{margin-top:var(--space-3)}
@media (min-width:980px){
  .rw-header__bar{height:var(--header-h-lg)}
  .rw-header__logo img{height:46px}
  .rw-header__region{display:flex;margin-left:var(--space-4)}
  .rw-nav{display:flex;margin-left:auto}
  .rw-header__actions{margin-left:var(--space-4)}
  .rw-header__cta{display:inline-flex}
  .rw-header__burger{display:none}
  .rw-drawer{display:none}
}

.rw-footer{background:var(--navy-800);background-image:var(--grad-metal);
  color:var(--text-on-dark-muted);font-size:var(--fs-sm);
  padding:var(--space-16) 0 var(--space-6)}
.rw-footer__grid{display:grid;gap:var(--space-8);grid-template-columns:1fr;
  margin-bottom:var(--space-10)}
.rw-footer h3{margin:0 0 .9em;font-size:1rem;letter-spacing:var(--tr-caps);color:var(--text-on-dark)}
.rw-footer p{color:var(--text-on-dark-muted)}
.rw-footer__logo{height:54px;width:auto;margin-bottom:var(--space-4)}
.rw-footer__links a{display:block;padding:4px 0;color:var(--text-on-dark-muted);text-decoration:none}
.rw-footer__links a:hover{color:var(--link-on-dark)}
.rw-footer__contact{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.rw-footer__contact li{display:flex;align-items:center;gap:9px}
.rw-footer__contact a{color:var(--text-on-dark);text-decoration:none}
.rw-footer__contact a:hover{color:var(--link-on-dark)}
.rw-footer__bottom{display:flex;flex-wrap:wrap;gap:10px var(--space-6);
  padding-top:var(--space-5);border-top:var(--bw-hair) solid var(--steel-500);
  font-size:var(--fs-xs);color:var(--steel-500)}
.rw-footer__bottom a{color:var(--steel-300);text-decoration:none}
.rw-footer__bottom a:hover{color:var(--link-on-dark)}
@media (min-width:620px){.rw-footer__grid{grid-template-columns:1fr 1fr}}
@media (min-width:980px){.rw-footer__grid{grid-template-columns:1.5fr 1fr 1fr 1.1fr}}

.rw-dl{display:flex;align-items:center;gap:var(--space-4);padding:13px 16px;
  text-decoration:none;color:inherit;background:var(--surface-card);
  border:var(--bw-hair) solid var(--border-subtle);border-radius:var(--r-sm);
  transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur) var(--ease-out)}
.rw-dl:hover{border-color:var(--copper);box-shadow:var(--sh-card)}
.rw-dl__ico{flex:none;display:grid;place-items:center;width:46px;height:37px;
  border-radius:var(--r-badge);border:var(--bw) solid var(--copper);
  background:var(--navy-900);background-image:var(--grad-metal);color:var(--copper-glow)}
.rw-dl__text{min-width:0}
.rw-dl__name{display:block;font-weight:var(--fw-semibold);color:var(--text-body);line-height:1.3}
.rw-dl__meta{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--text-muted);
  font-variant-numeric:tabular-nums lining-nums}
.rw-dl__go{flex:none;margin-left:auto;color:var(--accent-text)}
.rw-dllist{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
