/*
 * NightHero Midnight Chic
 * Eigenständige Markenwelt: Logo-Nachtblau, Rot und Weiß – weich, warm und persönlich.
 */

:root {
  color-scheme: dark;
  --nh-cream: #030b20;
  --nh-logo-bg: #010924;
  --nh-paper: #0b1733;
  --nh-ink: #f8f9fd;
  --nh-red: #e20b2d;
  --nh-red-dark: #b90726;
  --nh-red-soft: rgba(226, 11, 45, .16);
  --nh-blue-soft: #101f40;
  --nh-line: rgba(255, 255, 255, .13);
  --nh-muted: #b8c3d8;
  --nh-green: #57d99a;
  --nh-danger: #ff8799;
  --nh-surface: rgba(11, 23, 51, .92);
  --nh-surface-2: rgba(18, 33, 66, .94);
  --nh-surface-soft: rgba(255, 255, 255, .055);
  --nh-shadow: 0 28px 80px rgba(0, 0, 0, .36);
  --nh-glow: 0 0 55px rgba(226, 11, 45, .2);
  --nh-display: "Trebuchet MS", "Segoe UI", Arial, sans-serif;
  --nh-editorial: Georgia, "Times New Roman", serif;
  --nh-ui: "Segoe UI", Arial, sans-serif;
}

html { background: #030b20; }

body {
  position: relative;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 88% 4%, rgba(226, 11, 45, .2), transparent 31rem),
    radial-gradient(circle at -8% 42%, rgba(94, 43, 111, .15), transparent 36rem),
    linear-gradient(155deg, #030b20 0%, #06112a 48%, #030918 100%);
  color: var(--nh-ink);
}

body.nh-home-page {
  background:
    linear-gradient(180deg, var(--nh-logo-bg) 0 31rem, rgba(1, 9, 36, .96) 36rem, rgba(1, 9, 36, 0) 48rem),
    radial-gradient(circle at 88% 4%, rgba(226, 11, 45, .2), transparent 31rem),
    radial-gradient(circle at -8% 42%, rgba(94, 43, 111, .15), transparent 36rem),
    linear-gradient(155deg, #030b20 0%, #06112a 48%, #030918 100%);
}

body::before {
  content: "";
  position: fixed;
  z-index: -1;
  right: -16rem;
  top: 34vh;
  width: 34rem;
  height: 34rem;
  border: 1px solid rgba(255, 255, 255, .05);
  border-radius: 50%;
  box-shadow: 0 0 0 90px rgba(226, 11, 45, .025), 0 0 0 180px rgba(255, 255, 255, .015);
}

body,
body p,
body li,
body dt,
body dd,
body label,
body address { color: var(--nh-ink); }

body small,
.nh-muted { color: var(--nh-muted); }

::selection { background: var(--nh-red); color: #fff; }

:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

.skip-link { background: var(--nh-red); border-radius: 999px; }

.nh-service-bar {
  min-height: 38px;
  background: linear-gradient(90deg, #8f061d, var(--nh-red), #9c061f);
  color: #fff;
  font-size: 12px;
  box-shadow: 0 8px 26px rgba(226, 11, 45, .18);
}

.nh-service-bar,
.nh-service-bar * { color: #fff; }
.nh-service-bar a { text-decoration: underline; text-underline-offset: 4px; }
.nh-live-dot { background: #fff; box-shadow: 0 0 0 5px rgba(255,255,255,.16); }
.nh-live-dot.is-closed { background: #ffd4dc; }

.nh-header {
  top: 0;
  min-height: 82px;
  padding-top: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.1);
  background: rgba(3, 11, 32, .84);
  box-shadow: 0 15px 45px rgba(0,0,0,.18);
  backdrop-filter: blur(22px) saturate(1.2);
}

.nh-brand { color: #fff; }
.nh-brand img {
  width: 112px;
  height: 58px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,.35));
}
.nh-brand-copy b { color: #fff; font-size: 24px; letter-spacing: .08em; }
.nh-brand-copy small { color: var(--nh-muted); }

.nh-nav { gap: 5px; }
.nh-nav a,
.nh-nav button,
.nh-utility {
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #dce4f3;
  padding: 9px 15px;
}
.nh-nav a:hover,
.nh-nav button:hover,
.nh-nav .active {
  border-color: rgba(226,11,45,.55);
  background: rgba(226,11,45,.13);
  color: #fff;
}

.nh-primary,
.primary,
.header-order,
.nh-cart-trigger {
  min-height: 48px;
  border-radius: 999px;
  border-color: var(--nh-red);
  background: linear-gradient(135deg, #f0163d, #c60729);
  color: #fff;
  box-shadow: 0 13px 30px rgba(226,11,45,.24);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.nh-primary:hover,
.primary:hover,
.header-order:hover,
.nh-cart-trigger:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #ff254b, #d20930);
  box-shadow: 0 18px 38px rgba(226,11,45,.34);
}
.nh-cart-trigger b {
  border-radius: 50%;
  background: #fff;
  color: var(--nh-red);
}
.nh-secondary,
.secondary {
  border-color: rgba(255,255,255,.25);
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  color: #fff;
  backdrop-filter: blur(10px);
}
.nh-secondary:hover,
.secondary:hover { border-color: #fff; background: rgba(255,255,255,.12); color: #fff; }

.nh-overline,
.eyebrow,
.product-category { color: #ff4967; }

.nh-home-main,
.delivery-page,
.help-main,
.nh-legal-main,
.nh-store-page { position: relative; z-index: 1; }

/* Startseite */
.nh-home-header {
  position: relative;
  grid-template-columns: 1fr;
  justify-items: center;
}
.nh-home-header .nh-nav { justify-self: center; }

.nh-home-logo {
  width: min(1540px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  place-items: center;
  padding: clamp(32px, 5vw, 72px) 0 0;
  background: var(--nh-logo-bg);
}
.nh-home-logo a {
  display: block;
  width: min(460px, 78vw);
}
.nh-home-logo img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 310px;
  object-fit: contain;
  filter: none;
}

.nh-home-hero {
  min-height: auto;
  grid-template-columns: 1fr;
  padding: clamp(32px, 4.5vw, 64px) 0 clamp(78px, 9vw, 132px);
  border: 0;
}
.nh-home-hero::before,
.nh-hero-copy::before { display: none; }
.nh-hero-copy {
  max-width: 1040px;
  margin: 0 auto;
  text-align: center;
}
.nh-hero-copy h1,
.nh-store-intro h1,
.delivery-hero h1,
.help-hero h1,
.nh-legal-hero h1 {
  color: #fff;
  font-family: var(--nh-display);
  font-weight: 800;
  letter-spacing: -.055em;
  text-transform: none;
}
.nh-hero-copy h1 { max-width: none; font-size: clamp(62px, 7.5vw, 112px); line-height: .9; }
.nh-hero-copy h1 em,
.nh-store-intro h1 span,
.delivery-hero h1 span,
.help-hero h1 span,
.nh-legal-hero h1 span {
  color: #ff3154;
  font-family: var(--nh-editorial);
  font-weight: 700;
  font-style: italic;
  letter-spacing: -.04em;
}
.nh-hero-lead,
.nh-store-intro p:not(.nh-overline),
.delivery-hero-copy > p:not(.nh-overline),
.help-hero > div > p:not(.nh-overline),
.nh-legal-hero > p:not(.nh-overline) {
  color: var(--nh-muted);
  font-size: 19px;
  font-weight: 500;
}
.nh-hero-lead { margin-inline: auto; }
.nh-hero-actions { justify-content: center; gap: 12px; margin-top: 34px; }

.nh-service-card {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 46px 46px 14px 46px;
  background:
    linear-gradient(145deg, rgba(18,33,66,.97), rgba(6,17,42,.96)),
    var(--nh-paper);
  box-shadow: var(--nh-shadow), var(--nh-glow);
  transform: rotate(1.2deg);
}
.nh-service-card::before { background: linear-gradient(90deg, #ff3154, var(--nh-red), transparent); }
.nh-service-head { border-bottom-color: rgba(255,255,255,.1); background: rgba(255,255,255,.035); }
.nh-service-head > span { border-radius: 999px; background: var(--nh-red); color: #fff; }
.nh-service-head b { color: #fff; }
.nh-service-head small { color: var(--nh-muted); }
.nh-route-stage {
  min-height: 330px;
  background:
    radial-gradient(circle at 52% 52%, rgba(226,11,45,.26), transparent 42%),
    linear-gradient(145deg, #081631, #030a1d);
}
.nh-route-stage::before { border-color: rgba(255,255,255,.12); }
.nh-route-stage img {
  width: min(90%, 510px);
  filter: drop-shadow(0 22px 30px rgba(0,0,0,.45));
}
.nh-route-label {
  border-color: rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(3,11,32,.82);
  color: #fff;
}
.nh-service-stats { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.025); }
.nh-service-stats div { border-color: rgba(255,255,255,.1); }
.nh-service-stats strong { color: #fff; }
.nh-service-stats span { color: var(--nh-muted); }
.nh-service-card > a { background: var(--nh-red); color: #fff; }
.nh-service-card > a:hover { background: #ff2149; }

.nh-brand-moment {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 48px 18px 48px 48px;
  background:
    radial-gradient(circle at 12% 22%, rgba(255,255,255,.12), transparent 24%),
    linear-gradient(125deg, #8f071f, var(--nh-red) 48%, #560417);
  box-shadow: 0 30px 80px rgba(98,3,22,.32);
}
.nh-brand-moment::before { opacity: .14; }
.nh-brand-moment::after { border-color: rgba(255,255,255,.12); }
.nh-brand-code span,
.nh-brand-code b,
.nh-brand-statement h2 { color: #fff; }
.nh-brand-code span { font-family: var(--nh-editorial); font-style: italic; text-transform: none; }
.nh-brand-code b { background: #fff; color: var(--nh-red); border-radius: 999px; padding: 2px 14px 8px; }
.nh-brand-statement .nh-overline { color: #ffd9e0; }
.nh-brand-statement > p:last-child { color: #fff; }
.nh-brand-moment > a { border-radius: 999px; }

.nh-home-section { border-color: var(--nh-line); }
.nh-section-heading h2,
.nh-contact-copy h2,
.area-title h2,
.delivery-cta h2,
.faq-heading h2,
.support-contact h2 {
  color: #fff;
  font-family: var(--nh-display);
  text-transform: none;
  letter-spacing: -.04em;
}
.nh-section-heading > p,
.area-title > p,
.faq-heading > p:last-child,
.support-contact p,
.delivery-cta p { color: var(--nh-muted); font-weight: 500; }

.nh-hours-panel,
.nh-area-panel,
.nh-trust-panel {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 34px;
  background: var(--nh-surface);
  box-shadow: 0 20px 55px rgba(0,0,0,.2);
}
.nh-hours-panel { border-radius: 38px 14px 38px 38px; }
.nh-area-panel { border-radius: 14px 38px 38px 38px; }
.nh-panel-title { border-color: var(--nh-line); }
.nh-panel-title > span { border-radius: 50%; background: var(--nh-red); color: #fff; }
.nh-panel-title b,
.nh-hours-panel dd { color: #fff; }
.nh-panel-title small,
.nh-hours-panel dt,
.nh-area-panel > p { color: var(--nh-muted); }
.nh-hours-panel dl div { border-color: var(--nh-line); }
.nh-hours-panel > a { background: rgba(226,11,45,.12); color: #fff; }
.nh-area-panel .area-groups { gap: 12px; }
.area-card {
  border-color: rgba(255,255,255,.1);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
}
.area-card b { color: #ff4967; }
.area-card p { color: #fff; }
.area-card small { color: var(--nh-muted); }

.nh-process-steps li {
  position: relative;
  border-color: var(--nh-line);
  border-radius: 0 28px 28px 0;
  background: linear-gradient(90deg, rgba(226,11,45,.1), transparent 72%);
  padding: 24px 26px;
}
.nh-process-steps li > span {
  inline-size: 58px;
  block-size: 58px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  align-self: start;
  justify-self: center;
  box-sizing: border-box;
  border-radius: 50%;
  background: var(--nh-red);
  color: #fff;
  font-size: 17px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
}
.nh-process-steps h3,
.nh-trust-panel h3,
.nh-trust-panel li b { color: #fff; }
.nh-process-steps p,
.nh-trust-panel li span { color: var(--nh-muted); }
.nh-trust-panel {
  border: 0;
  background: linear-gradient(145deg, #941026, #51051a);
  box-shadow: 0 24px 65px rgba(81,5,26,.3);
}
.nh-trust-panel li { border-color: rgba(255,255,255,.16); }

/* Allgemeine Unterseiten */
.delivery-hero,
.help-hero,
.nh-legal-hero {
  border-color: var(--nh-line);
}
.delivery-hero::after,
.help-hero::after,
.nh-legal-hero::after { color: rgba(255,255,255,.18); }
.delivery-hero h1,
.help-hero h1,
.nh-legal-hero h1 { line-height: .92; }

.delivery-order-panel,
.help-direct {
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 42px 42px 16px 42px;
  background:
    radial-gradient(circle at 90% 10%, rgba(226,11,45,.3), transparent 34%),
    linear-gradient(145deg, #111f41, #060f28);
  box-shadow: var(--nh-shadow);
}
.delivery-order-panel li { border-color: rgba(255,255,255,.14); }
.delivery-order-panel li b,
.help-direct > a span { color: #ff607a; }
.delivery-order-panel small,
.help-direct > p:not(.nh-overline) { color: var(--nh-muted); }

.live-window {
  border-color: rgba(87,217,154,.35);
  border-radius: 999px;
  background: rgba(87,217,154,.1);
  color: #83edb8;
}
.live-window.is-closed { border-color: rgba(255,90,116,.45); background: rgba(226,11,45,.13); color: #ff9bac; }

.time-overview article,
.delivery-notes article,
.help-cards article,
.help-cards > a,
.support-options > a,
.support-options > div {
  border-color: rgba(255,255,255,.11);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(18,33,66,.9), rgba(8,20,45,.9));
  box-shadow: 0 18px 50px rgba(0,0,0,.16);
}
.time-overview article:nth-child(2n),
.help-cards > a:nth-child(2n) { border-radius: 28px 10px 28px 28px; }
.time-overview span,
.help-cards article > span,
.help-cards > a > span,
.support-options span { color: #ff4967; }
.time-overview strong,
.delivery-notes b,
.help-cards b,
.support-options b { color: #fff; }
.time-overview small,
.delivery-notes p,
.help-cards p,
.support-options span + b + small { color: var(--nh-muted); }
.help-cards > a:hover,
.support-options > a:hover { border-color: rgba(255,49,84,.7); background: rgba(226,11,45,.12); }

.delivery-area-grid { gap: 18px; }
.delivery-area-card {
  border-color: rgba(255,255,255,.11);
  border-radius: 32px 12px 32px 32px;
  background: var(--nh-surface);
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
}
.delivery-area-card:nth-child(2n) { border-radius: 12px 32px 32px 32px; }
.delivery-area-card h3 {
  border-color: rgba(255,255,255,.1);
  background: linear-gradient(135deg, rgba(226,11,45,.25), rgba(226,11,45,.08));
  color: #fff;
}
.delivery-area-card ul { color: #fff; }
.delivery-area-card li::marker { color: var(--nh-red); }
.delivery-area-card li small,
.delivery-area-card > p { color: var(--nh-muted); }
.outside-area {
  border-color: rgba(255,255,255,.12);
  border-radius: 30px;
  background: rgba(255,255,255,.055);
}
.outside-area b { color: #fff; }
.outside-area p { color: var(--nh-muted); }
.outside-actions a { border-radius: 999px; }
.outside-actions a + a { border-color: rgba(255,255,255,.24); background: transparent; color: #fff; }
.delivery-cta { border-color: var(--nh-line); }

/* Hilfe: persönliche, weiche Akkordeons */
.faq-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 24px;
}
.faq-group,
.faq-group + .faq-group {
  margin-top: 0;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 34px;
  background: rgba(9,21,47,.75);
}
.faq-group:nth-child(2n) { border-radius: 34px 12px 34px 34px; }
.faq-group > header > span { border-radius: 50%; background: var(--nh-red); color: #fff; }
.faq-group > header h3 { color: #fff; text-transform: none; }
.faq-list details {
  border-color: rgba(255,255,255,.11);
  border-radius: 22px;
  background: rgba(255,255,255,.045);
}
.faq-list details[open] {
  border-color: rgba(255,49,84,.65);
  background: linear-gradient(145deg, rgba(226,11,45,.12), rgba(255,255,255,.045));
}
.faq-list summary { color: #fff; }
.faq-list summary::after { color: #ff4967; }
.faq-list details p { color: var(--nh-muted); font-weight: 500; }
.support-contact { border-color: var(--nh-line); }

/* Rechtliches: horizontale Kapitel, redaktionelle Lesespalte */
.nh-legal-layout {
  display: block;
  padding-top: 34px;
}
.nh-legal-nav {
  position: sticky;
  z-index: 45;
  top: 94px;
  display: block;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 28px;
  background: rgba(5,14,35,.92);
  box-shadow: 0 18px 45px rgba(0,0,0,.28);
  backdrop-filter: blur(18px);
}
.nh-legal-nav .nh-overline,
.nh-legal-nav > p:last-child { display: none; }
.nh-legal-nav nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.nh-legal-nav a {
  display: inline-flex !important;
  grid-template-columns: none !important;
  gap: 8px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 999px;
  background: rgba(255,255,255,.045);
  color: #fff;
  padding: 10px 15px;
}
.nh-legal-nav nav a span { color: #ff4967; }
.nh-legal-nav a:hover { background: var(--nh-red); color: #fff; }
.nh-legal-nav a:hover span { color: #fff; }
.nh-legal-content {
  width: min(940px, 100%);
  gap: 0;
  margin: 68px auto 0;
}
.nh-legal-section {
  position: relative;
  overflow: hidden;
  padding: clamp(34px, 6vw, 70px) clamp(22px, 6vw, 72px) clamp(44px, 7vw, 86px) clamp(38px, 8vw, 100px);
  border: 0;
  border-top: 1px solid rgba(255,255,255,.14);
  border-radius: 0;
  background: transparent;
}
.nh-legal-section::before {
  position: absolute;
  left: 0;
  top: 62px;
  color: rgba(255,49,84,.42);
  font-family: var(--nh-editorial);
  font-size: 30px;
  font-style: italic;
  font-weight: 700;
}
#impressum::before { content: "01"; }
#datenschutz::before { content: "02"; }
#agb::before { content: "03"; }
#widerruf::before { content: "04"; }
#adresspruefung::before { content: "05"; }
.nh-legal-section::after {
  content: "";
  position: absolute;
  left: 55px;
  top: 69px;
  bottom: 68px;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(var(--nh-red), rgba(226,11,45,.05));
}
.nh-legal-section h2 { color: #fff; text-transform: none; }
.nh-legal-section h3 { color: #fff; }
.nh-legal-section p,
.nh-legal-section address { color: var(--nh-muted); font-weight: 500; }
.nh-legal-section address {
  margin: 24px 0;
  padding: 26px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 30px 30px 10px 30px;
  background: linear-gradient(145deg, rgba(226,11,45,.14), rgba(255,255,255,.045));
  color: #fff;
  font-style: normal;
}
.nh-legal-section a { color: #ff6b82; }
.notice {
  border: 1px solid rgba(255,49,84,.35);
  border-left: 4px solid var(--nh-red);
  border-radius: 0 22px 22px 0;
  background: rgba(226,11,45,.12);
  color: #ffd8df !important;
}

/* Shop: Kategorien oben, vertikale Produktkarten */
body.nh-store {
  background:
    radial-gradient(circle at 50% -8%, rgba(226,11,45,.15), transparent 34rem),
    linear-gradient(180deg, #030b20 0%, #06112a 54%, #030918 100%);
  background-attachment: fixed;
}
body.nh-store::before { opacity: .32; }

.nh-store-intro {
  grid-template-columns: minmax(0, 1fr) minmax(410px, .8fr);
  align-items: center;
  gap: clamp(35px, 7vw, 100px);
  padding: 78px 0 62px;
  border: 0;
}
.nh-store-intro::after {
  right: auto;
  left: 0;
  bottom: 26px;
  width: 120px;
  height: 5px;
  border-radius: 999px;
  transform: none;
  background: var(--nh-red);
}
.nh-store-intro h1 { font-size: clamp(60px, 7vw, 104px); line-height: .9; }
.nh-search-panel {
  gap: 14px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 40px 40px 14px 40px;
  background: rgba(13,28,60,.78);
  box-shadow: var(--nh-shadow), var(--nh-glow);
  backdrop-filter: blur(12px);
}
.nh-search-panel > b { color: #fff; text-transform: none; }
.search {
  min-height: 66px;
  border: 1px solid rgba(255,49,84,.5);
  border-radius: 999px;
  background: #06112a;
  box-shadow: 0 12px 30px rgba(0,0,0,.22);
}
.search input { color: #fff; }
.search input::placeholder { color: #9cabc1; }
.nh-quick-actions { gap: 10px; }
.nh-quick-actions a,
.nh-quick-actions button {
  border-color: rgba(255,255,255,.1);
  border-radius: 20px;
  background: rgba(255,255,255,.055);
  color: #fff;
}
.nh-quick-actions small { color: var(--nh-muted); }
.nh-quick-actions a:hover,
.nh-quick-actions button:hover { border-color: rgba(255,49,84,.65); background: rgba(226,11,45,.12); }

.nh-store-layout {
  display: block;
  padding-top: 18px;
}
.nh-category-panel {
  position: relative;
  top: auto;
  max-height: none;
  overflow: visible;
  margin-bottom: 54px;
  padding: 28px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 34px;
  background: rgba(9,21,47,.78);
}
.nh-category-panel h2 { color: #fff; font-size: 40px; text-transform: none; }
.category-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}
.category-reset,
.category-strip .category-card {
  flex: 0 0 auto;
  width: auto;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: #fff;
  padding: 8px 18px;
  text-align: center;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.2;
  box-shadow: none;
  transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}
.category-strip .category-copy {
  position: static;
  min-height: 0;
  width: auto;
  display: block;
  padding: 0;
}
.category-strip .category-copy b {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.category-reset:hover,
.category-strip .category-card:hover {
  border-color: rgba(255,49,84,.78);
  background: rgba(226,11,45,.14);
  color: #fff;
  transform: translateY(-1px);
}
.category-reset.active,
.category-strip .category-card.active {
  border-color: var(--nh-red);
  background: var(--nh-red);
  color: #fff;
  box-shadow: 0 8px 20px rgba(226,11,45,.2);
}
.category-reset:focus-visible,
.category-strip .category-card:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.subcategory-strip[hidden] { display: none !important; }
.subcategory-strip:not([hidden]) {
  display: block;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  background: rgba(255,255,255,.045);
}
.subcategory-title { margin: 0 0 13px; color: #bfcadd; font-size: 13px; font-weight: 700; }
.subcategory-title b { color: #fff; }
.subcategory-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 8px;
}
.subcategory-options .category-subcategory {
  min-height: 42px;
  width: 100%;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  color: #fff;
  padding: 9px 13px;
  text-align: left;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}
.subcategory-options .category-subcategory:hover { border-color: rgba(255,49,84,.72); background: rgba(226,11,45,.14); color: #fff; }
.subcategory-options .category-subcategory.active { border-color: var(--nh-red); background: var(--nh-red); color: #fff; }
.subcategory-options .category-subcategory:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.nh-category-note { border-color: rgba(255,255,255,.12); color: var(--nh-muted); }
.nh-category-note b { color: #fff; }

.nh-catalog-top { border-color: var(--nh-line); }
.nh-catalog-top h2,
.shop-heading h2 { color: #fff; text-transform: none; }
#resultCount,
.sort-control { color: var(--nh-muted); }
.sort-control select,
.variant-select,
.deposit-choice select,
.cart-deposit-choice select {
  border-color: rgba(255,255,255,.18);
  border-radius: 999px;
  background: var(--nh-surface-2);
  color: #fff;
}
.section-toggle {
  border-color: var(--nh-red);
  border-radius: 999px;
  background: var(--nh-red);
  color: #fff;
}
.new-products,
.nh-extras { border-color: var(--nh-line); }

.product-grid {
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 18px;
}
.product-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
  border-color: rgba(255,255,255,.1);
  border-radius: 28px 28px 12px 28px;
  background: linear-gradient(155deg, rgba(18,33,66,.97), rgba(7,18,42,.97));
  box-shadow: 0 16px 45px rgba(0,0,0,.19);
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.product-card:nth-child(2n) { border-radius: 28px 12px 28px 28px; }
.product-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255,49,84,.55);
  box-shadow: 0 24px 60px rgba(0,0,0,.28), 0 0 35px rgba(226,11,45,.08);
}
.product-card.is-discounted { border-left: 1px solid rgba(255,49,84,.6); box-shadow: inset 0 4px 0 var(--nh-red), 0 16px 45px rgba(0,0,0,.19); }
.product-image {
  min-height: 0;
  aspect-ratio: 1.15;
  border: 10px solid transparent;
  border-right: 10px solid transparent;
  border-radius: 25px 25px 16px 16px;
  background: var(--nh-cream);
}
.product-image img { background: transparent; padding: 12px; }
.product-body { flex: 1; gap: 9px; padding: 17px; }
.product-category { color: #ff607a; }
.product-card h3 { min-height: 46px; color: #fff; }
.product-meta small,
.digital-code-note,
.deposit-choice small { color: var(--nh-muted); }
.product-info-button { color: #dbe3f2; }
.product-price { color: #fff; }
.regular-price { color: #98a5ba; }
.add-button,
.digital-configure-button,
.notify-button {
  min-width: 48px;
  width: auto;
  min-height: 46px;
  border-radius: 999px;
  border-color: var(--nh-red);
  background: var(--nh-red);
  color: #fff;
}
.add-button { width: 48px; padding: 0; }
.add-button::after { content: "+"; font-size: 25px; line-height: 1; }
.notify-button { background: transparent; color: #fff; }
.add-button:disabled { border-color: #394663; background: #263451; color: #8e9bb0; }
.favorite-button {
  border-color: rgba(255,255,255,.28);
  border-radius: 50%;
  background: rgba(3,11,32,.78);
  color: #fff;
}
.favorite-button.active { background: var(--nh-red); }
.stock-pill { border-radius: 999px; background: #07132c; }
.discount-badge { border-radius: 999px; background: rgba(226,11,45,.18); color: #ff8da0; }
.minimum-exclusion,
.deposit-choice,
.cart-deposit-choice,
.digital-fee-row,
.card-fee-note,
.digital-fulfillment-note,
.digital-code-info,
.payment-instructions {
  border-color: var(--nh-red);
  background: rgba(226,11,45,.1);
  color: #ffd9e0;
}

.loyalty-banner,
.wheel-promo {
  border-color: rgba(255,255,255,.11);
  border-radius: 32px;
  background: var(--nh-surface);
}
.loyalty-banner h2,
.wheel-promo h2,
.loyalty-steps b { color: #fff; }
.loyalty-banner p:not(.eyebrow),
.wheel-promo p:not(.eyebrow),
.loyalty-steps small,
.loyalty-note,
.wheel-promo > small { color: var(--nh-muted); }
.loyalty-icon,
.wheel-promo-symbol { border-radius: 50%; background: rgba(226,11,45,.16); color: #ff4967; }
.wheel-open { border-color: var(--nh-red); border-radius: 999px; background: var(--nh-red); }
.floating-cart { border-radius: 999px; box-shadow: 0 20px 55px rgba(226,11,45,.35); }

/* Shop-Dialoge und Formulare */
dialog {
  border-color: rgba(255,255,255,.14);
  background: #091630;
  color: #fff;
  box-shadow: 0 35px 100px rgba(0,0,0,.6);
}
dialog::backdrop { background: rgba(1,5,16,.78); backdrop-filter: blur(9px); }
.drawer,
.checkout-dialog,
.product-dialog,
.success-dialog,
.age-dialog,
.status-dialog,
.wheel-dialog,
.digital-code-dialog { border-radius: 34px; }
.drawer-head,
.cart-footer,
.checkout-progress { border-color: rgba(255,255,255,.1); background: #0a1833; }
.drawer-head h2,
.total-row strong,
.checkout-review h3,
.success-dialog h2,
.age-dialog h2,
.status-dialog h2,
.wheel-dialog h2,
.product-detail-layout h2,
legend { color: #fff; }
.icon-button {
  border-color: rgba(255,255,255,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  color: #fff;
}
.cart-row { border-color: rgba(255,255,255,.1); }
.cart-row b { color: #fff; }
.cart-row small,
.cart-footer > small,
.choice small,
.status-result small,
.product-detail-layout dt,
.product-detail-layout section p,
.product-data-note,
.legal { color: var(--nh-muted); }
.cart-deposit-choice small { color: var(--nh-muted); font-size: 12px !important; }
.cart-minimum-exclusion { color: #ff8da0 !important; }
.loyalty-success {
  border-radius: 0 16px 16px 0;
  background: rgba(226,11,45,.12);
  color: #ffd8df !important;
}
.cart-row img,
.cart-suggestions img,
.product-detail-layout > img {
  border-color: rgba(255,255,255,.1);
  background: var(--nh-cream);
}
.quantity button,
.cart-suggestions button,
.cart-deposit-choice select {
  border-color: rgba(255,255,255,.16);
  background: var(--nh-surface-2);
  color: #fff;
}
.cart-suggestions,
.cart-footer { border-color: rgba(255,255,255,.1); }
.cart-suggestions button { border-radius: 18px; }
.cart-bonus { border-color: var(--nh-red); background: rgba(226,11,45,.1); }
.checkout-progress span { border-color: #31405f; color: var(--nh-muted); }
.checkout-progress b { border-radius: 50%; background: #263754; color: #fff; }
.checkout-progress .active { border-color: var(--nh-red); color: #ff607a; }
.checkout-review,
.status-result,
.live-order-head,
.eta-card,
.route-live { border-color: rgba(255,255,255,.1); border-radius: 20px; background: rgba(255,255,255,.055); }
.checkout-dialog label:not(.choice):not(.adult-check),
.status-dialog label,
.digital-code-dialog label,
.adult-check { color: #d5deed; }
.checkout-dialog input:not([type=radio]):not([type=checkbox]),
.checkout-dialog textarea,
.checkout-dialog select,
.status-dialog input,
.status-dialog textarea,
.status-dialog select,
.digital-code-dialog input,
.digital-code-dialog select,
.product-dialog input,
.product-dialog select {
  border-color: rgba(255,255,255,.18);
  border-radius: 18px;
  background: #111f3e;
  color: #fff;
}
.checkout-dialog input::placeholder,
.checkout-dialog textarea::placeholder,
.status-dialog input::placeholder,
.digital-code-dialog input::placeholder { color: #8f9cb3; }
.choice {
  border-color: rgba(255,255,255,.14);
  border-radius: 20px;
  background: rgba(255,255,255,.045);
}
.choice:has(input:checked) { border-color: rgba(255,49,84,.72); background: rgba(226,11,45,.13); }
.choice b { color: #fff; }
.tip-box { border-color: rgba(255,49,84,.35) !important; background: rgba(226,11,45,.08); }
.tip-options span { border-color: rgba(255,255,255,.16); border-radius: 999px; background: #111f3e; color: #fff; }
.checkout-breakdown { border-color: rgba(255,255,255,.12); }
.checkout-breakdown span,
.checkout-breakdown strong { color: #fff; }
.checkout-breakdown .grand-total { border-color: #fff; color: #ff4967; }
.product-detail-layout dl div,
.product-detail-layout section { border-color: rgba(255,255,255,.1); }
.product-detail-layout dd { color: #fff; }
.live-order-card { border-color: var(--nh-red); border-radius: 24px; background: rgba(255,255,255,.045); }
.live-order-facts span { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.055); color: #fff; }
.order-cancelled { border-radius: 16px; background: rgba(226,11,45,.15); color: #ffb3c0; }
.toast { border-color: rgba(255,255,255,.18); border-radius: 999px; background: #fff; color: #08142d; }

/* Eigenständiger Abschluss statt Standard-Footer */
.nh-footer {
  width: min(1540px, calc(100% - 40px));
  overflow: hidden;
  margin: 90px auto 22px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 46px 46px 16px 46px;
  background:
    radial-gradient(circle at 8% 12%, rgba(226,11,45,.28), transparent 24rem),
    linear-gradient(145deg, #0e1c3b, #040d23);
  color: #fff;
  box-shadow: var(--nh-shadow);
}
.nh-footer-main {
  width: 100%;
  grid-template-columns: minmax(260px,.8fr) 1.4fr;
  align-items: end;
  padding: 52px;
}
.nh-footer-brand b { color: #fff; font-size: 42px; }
.nh-footer-brand p { color: var(--nh-muted); }
.nh-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
}
.nh-footer-links div {
  min-width: 180px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 24px;
  background: rgba(255,255,255,.045);
}
.nh-footer-links b { color: #ff607a; }
.nh-footer-links a { color: #e4eaf5; }
.nh-footer-bottom {
  width: auto;
  margin: 0 52px;
  border-color: rgba(255,255,255,.11);
  color: var(--nh-muted);
}

.nh-mobile-nav {
  border-color: rgba(255,255,255,.12);
  background: rgba(3,11,32,.95);
  box-shadow: 0 -16px 40px rgba(0,0,0,.34);
}
.nh-mobile-nav a,
.nh-mobile-nav button { color: #aeb9cd; }
.nh-mobile-nav b { color: inherit; font-size: 11px; }
.nh-mobile-nav .active { color: #ff4967; }

@media (max-width: 1240px) {
  .product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .nh-store-intro { grid-template-columns: 1fr; }
  .product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .faq-list { grid-template-columns: 1fr; }
  .nh-legal-nav { position: static; }
  .nh-footer-main { grid-template-columns: 1fr; align-items: start; }
  .nh-footer-links { justify-content: flex-start; }
}

@media (max-width: 760px) {
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .nh-service-bar { min-height: 34px; }
  .nh-home-header { display: none; }
  .nh-header { min-height: 66px; padding: 8px 13px; }
  .nh-brand img { width: 88px; height: 48px; }
  .nh-brand-copy { display: none; }
  .nh-cart-trigger { min-height: 43px; }
  .nh-home-logo { width: min(100% - 28px, 1540px); padding-top: 28px; }
  .nh-home-logo a { width: min(360px, 82vw); }
  .nh-home-hero { min-height: auto; padding: 30px 0 74px; }
  .nh-hero-copy h1 { font-size: clamp(51px, 15vw, 74px); }
  .nh-hero-lead { font-size: 17px; }
  .nh-service-card { transform: none; border-radius: 34px 34px 10px 34px; }
  .nh-route-stage { min-height: 245px; }
  .nh-brand-moment { border-radius: 34px 12px 34px 34px; }
  .delivery-order-panel,
  .help-direct { border-radius: 34px 34px 10px 34px; }
  .time-overview,
  .delivery-notes,
  .help-cards { grid-template-columns: 1fr; }
  .delivery-area-grid { grid-template-columns: 1fr; }
  .outside-area { grid-template-columns: 1fr; }
  .outside-actions { grid-column: 1; grid-row: auto; flex-wrap: wrap; }
  .nh-process-steps li > span { inline-size: 44px; block-size: 44px; font-size: 14px; }

  .nh-store-page { width: min(100% - 24px, 1540px); }
  .nh-store-intro { padding: 48px 0 42px; }
  .nh-store-intro h1 { font-size: clamp(48px, 14vw, 70px); }
  .nh-search-panel { padding: 18px; border-radius: 30px 30px 10px 30px; }
  .nh-quick-actions { grid-template-columns: 1fr; }
  .nh-category-panel { padding: 18px; border-radius: 26px; }
  .nh-category-panel h2 { font-size: 32px; }
  .category-strip { gap: 8px; }
  .category-reset,
  .category-strip .category-card { min-height: 40px; padding: 7px 13px; font-size: 13px; }
  .subcategory-options { grid-template-columns: 1fr; }
  .subcategory-strip:not([hidden]) { padding: 15px; border-radius: 19px; }
  .nh-category-note { display: block; }
  .nh-catalog-top { align-items: flex-start; }
  .product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .product-card,
  .product-card:nth-child(2n) { display: flex; border-radius: 22px 22px 8px 22px; }
  .product-image { min-height: 0; aspect-ratio: 1; border-width: 7px; }
  .product-body { padding: 12px; }
  .product-card h3 { min-height: 44px; font-size: 15px; }
  .product-meta small,
  .product-info-button { font-size: 11px; }
  .product-price { font-size: 18px; }
  .add-button { width: 43px; min-width: 43px; min-height: 43px; }
  .floating-cart { bottom: calc(78px + env(safe-area-inset-bottom)); }
  .drawer { border-radius: 30px 30px 0 0; }
  .checkout-dialog { height: 100dvh; max-height: 100dvh; border-radius: 0; }
  .checkout-dialog form { max-height: 100dvh; padding-bottom: calc(22px + env(safe-area-inset-bottom)); }

  .nh-legal-hero h1 { font-size: clamp(48px, 14vw, 74px); }
  .nh-legal-nav { overflow-x: auto; border-radius: 20px; }
  .nh-legal-nav nav { width: max-content; flex-wrap: nowrap; }
  .nh-legal-section { padding-left: 50px; padding-right: 16px; }
  .nh-legal-section::before { left: 0; font-size: 22px; }
  .nh-legal-section::after { left: 34px; }

  .nh-footer { width: min(100% - 20px, 1540px); border-radius: 34px 34px 10px 34px; }
  .nh-footer-main { width: 100%; padding: 34px 22px; }
  .nh-footer-links { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .nh-footer-links div { min-width: 0; }
  .nh-footer-bottom { width: auto; margin: 0 22px; }
}

@media (max-width: 600px) {
  .product-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .product-grid { grid-template-columns: 1fr; }
  .product-card,
  .product-card:nth-child(2n) {
    display: grid;
    grid-template-columns: 118px minmax(0,1fr);
    border-radius: 24px 12px 24px 24px;
  }
  .product-image { height: 100%; min-height: 185px; aspect-ratio: auto; border-radius: 20px; }
  .product-card h3 { min-height: 0; }
  .nh-footer-links { grid-template-columns: 1fr; }
}

/* Klarer Shop-Katalog: Kategorien wie Karten, Unterkategorien direkt am Eintrag. */
.nh-store-intro { padding-top: 46px; padding-bottom: 40px; }
.nh-store-intro h1 { font-size: clamp(54px, 6vw, 84px); }
.nh-category-panel { margin-bottom: 34px; }
.category-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  align-items: stretch;
  gap: 13px;
}
.category-menu { position: relative; min-width: 0; }
.category-reset.category-tile,
.category-strip .category-card {
  width: 100%;
  min-height: 94px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 17px 18px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px 22px 8px 22px;
  background: radial-gradient(circle at 92% 8%, rgba(226,11,45,.2), transparent 45%), linear-gradient(145deg, rgba(19,36,72,.98), rgba(7,18,42,.98));
  color: #fff;
  text-align: left;
  box-shadow: 0 14px 34px rgba(0,0,0,.2);
}
.category-reset.category-tile:hover,
.category-strip .category-card:hover { border-color: rgba(255,49,84,.72); background: linear-gradient(145deg, rgba(36,43,77,.98), rgba(11,23,48,.98)); }
.category-reset.category-tile.active,
.category-strip .category-card.active { border-color: var(--nh-red); background: linear-gradient(145deg, var(--nh-red), #a80624); }
.category-reset .category-copy,
.category-strip .category-copy { display: block; width: 100%; min-height: 0; padding: 0; }
.category-reset .category-copy b,
.category-strip .category-copy b { display: block; color: inherit; font-size: 17px; font-weight: 900; line-height: 1.2; }
.category-reset .category-copy small,
.category-strip .category-copy small { display: block; margin-top: 7px; color: var(--nh-muted); font-size: 11px; font-weight: 750; }
.category-reset.active .category-copy small,
.category-strip .category-card.active .category-copy small { color: #ffe6eb; }
.category-flyout {
  position: absolute;
  z-index: 30;
  top: calc(100% + 8px);
  left: 0;
  width: min(360px, 86vw);
  display: none;
  gap: 5px;
  padding: 14px;
  border: 1px solid rgba(255,49,84,.45);
  border-radius: 18px;
  background: #0b1933;
  box-shadow: 0 22px 55px rgba(0,0,0,.42);
}
.category-menu:hover > .category-flyout,
.category-menu:focus-within > .category-flyout { display: grid; }
.category-flyout > b { padding: 3px 5px 8px; color: #fff; }
.category-flyout .category-subcategory {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: rgba(255,255,255,.055);
  color: #fff;
  text-align: left;
}
.category-flyout .category-subcategory:hover,
.category-flyout .category-subcategory:focus-visible { border-color: rgba(255,49,84,.55); background: rgba(226,11,45,.17); }
.category-flyout .category-subcategory small { color: var(--nh-muted); }
.load-more-products {
  min-height: 50px;
  display: block;
  margin: 24px auto 0;
  padding: 0 24px;
  border: 1px solid var(--nh-red);
  border-radius: 999px;
  background: rgba(226,11,45,.13);
  color: #fff;
  font-weight: 900;
}
.load-more-products:hover { background: var(--nh-red); }
.recommendations { margin-top: 58px; padding-top: 30px; border-top: 1px solid var(--nh-line); }

@media (min-width: 761px) {
  #subcategories { display: none !important; }
}

@media (max-width: 760px) {
  .nh-store-intro { padding: 30px 0 28px; }
  .nh-store-intro h1 { font-size: clamp(43px, 13vw, 62px); }
  .category-strip { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
  .category-reset.category-tile,
  .category-strip .category-card { min-height: 76px; padding: 13px; border-radius: 17px 17px 6px 17px; }
  .category-reset .category-copy b,
  .category-strip .category-copy b { font-size: 14px; }
  .category-flyout { display: none !important; }
  .recommendations { margin-top: 42px; padding-top: 24px; }
}

@media (max-width: 460px) {
  .category-strip { grid-template-columns: 1fr; }
}
