/* Erzeugt von scripts/v4-css.mjs – nicht von Hand ändern. Selektoren mit „html body“, damit Elementors Kit-Stile sie nicht überschreiben. */
/* src/v4/styles/base.css (Buttons, .nm-kicker, .nm-link) */
html body :where(.nmp-page,.pt-hero,.pt-browse,.pt-svc,.pt-repairs,.pt-hub,.pt-brandlist,.pt-results,.pt-side,.bc,.sp-pd,.sp-usp,.ad,.pg-list,.pg-articles,.pt-hubcards,.pt-hublinks,.rg-points,.vo-steps,.vo-facts,.vo-area,.pr-steps,.wy-steps,.wy-places,.lc-list,.ft,.hd,.hd-sheet,.gr-steps,.gr-flow,.gr-facts,.pg-stats,.pg-contact,.rv-track,.pg-prices,.pt-faq) :is(ul,ol,dl){margin:0;padding:0;list-style:none}html body :where(.pc-steps,.pc-options,.pt-models,.pt-replist,.pt-otherrep,.pt-coffee,.pt-flow,.pt-facts,.pt-includes,.pt-brandgrid,.pt-variants-help,.pt-ranges,.bc,.sp-usp,.pg-list,.pg-articles,.pt-hubcards,.rg-points,.vo-steps,.vo-facts,.pr-steps,.wy-steps,.wy-places,.lc-list,.gr-steps,.gr-flow,.pg-stats,.pg-contact,.rv-track,.ad-list):is(ul,ol){margin:0;padding:0;list-style:none}
html body :where(.nmp-page,.pt-hero,.pt-browse,.pt-svc,.pt-repairs,.pt-hub,.pt-brandlist,.pt-results,.pt-side,.sp-pd,.sp-card,.ad,.pg-cta,.pt-hublinks,.pg-article,.rg-onsite,.rg-places,.vo-area,.vo-other,.gr-grid,.gr-how,.wy-steps,.pr-card,.pr-steps,.rv-track,.rv-score,.lc-map,.lc-list,.ft,.hd,.hd-sheet,.pg-photo,.pg-stats,.pg-contact) :is(h1,h2,h3,h4,p,figure,blockquote){margin:0}
html body .nm-wrap{
  width: 100%;
  max-width: calc(var(--nm-container) + 2 * var(--nm-gutter));
  margin-inline: auto;
  padding-inline: var(--nm-gutter);
}

/* Elementor: Container-Padding oben/unten für Sektionen */
html body .nm-section{
  padding-block: var(--nm-section);
}

html body .nm-lead{
  font-size: var(--nm-fs-lead);
  line-height: 1.5;
  color: var(--nm-text-2);
}

html body .nm-kicker{
  font-weight: 600;
  color: var(--nm-brand);
}

html body .nm-link{
  color: var(--nm-brand);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

html body .nm-link:hover{
  text-decoration-thickness: 2px;
}


html body .nm-btn{background:transparent}
html body .nm-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 24px;
  border-radius: var(--nm-r-pill);
  border: 1.5px solid transparent;
  font-family: var(--nm-font-text);
  font-weight: 650;
  font-size: 1rem;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color var(--nm-t-fast) ease,
    color var(--nm-t-fast) ease,
    border-color var(--nm-t-fast) ease,
    transform var(--nm-t-fast) ease;
}

html body .nm-btn:active{
  transform: scale(0.98);
}

html body .nm-btn[disabled],
html body .nm-btn[aria-disabled='true']{
  opacity: 0.45;
  pointer-events: none;
}

html body .nm-btn--lg{
  min-height: 56px;
  padding: 14px 30px;
  font-size: 1.0625rem;
}

html body .nm-btn--sm{
  min-height: 40px;
  padding: 8px 16px;
  font-size: 0.9375rem;
}

html body .nm-btn--primary{
  background: var(--nm-brand);
  color: var(--nm-on-brand);
}

html body .nm-btn--primary:hover{
  background: var(--nm-brand-strong);
}

html body .nm-btn--secondary{
  background: var(--nm-surface);
  border-color: var(--nm-line-strong);
  color: var(--nm-text);
}

html body .nm-btn--secondary:hover{
  border-color: var(--nm-brand);
  color: var(--nm-brand);
}

html body .nm-btn--ghost{
  color: var(--nm-brand);
  padding-inline: 8px;
}

html body .nm-btn--ghost:hover{
  text-decoration: underline;
  text-underline-offset: 4px;
}

html body .nm-btn--block{
  width: 100%;
}


/* src/v4/components/Ui.css */
/* Elementor: Custom CSS am jeweiligen Heading-/Text-Widget */
html body .ui-head{
  display: grid;
  gap: 14px;
  max-width: 760px;
  margin-bottom: clamp(32px, 5vw, 56px);
}

html body .ui-head--center{
  margin-inline: auto;
  text-align: center;
  justify-items: center;
}

html body .ui-tag{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  padding: 3px 10px;
  border-radius: var(--nm-r-pill);
  font-size: 0.8125rem;
  font-weight: 650;
  line-height: 1.5;
  max-width: 100%;
}

html body .ui-tag--freigegeben{
  background: var(--nm-success-bg);
  color: var(--nm-success);
}

html body .ui-tag--preisliste{
  background: var(--nm-warning-bg);
  color: var(--nm-warning);
}

html body .ui-tag--anfrage,
html body .ui-tag--demo{
  background: var(--nm-surface-2);
  color: var(--nm-text-2);
}

html body .ui-tag--demo::before{
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--nm-cyan);
}

/* src/v4/components/DeviceRender.css */
/* Elementor: Custom CSS am Image-Widget (Schatten der Geräte-Renderings) */
html body .dr{
  width: 100%;
  height: auto;
  filter: drop-shadow(0 30px 40px rgba(15, 23, 48, 0.22));
}

html body .dr-crack{
  stroke: #ffffff;
  stroke-opacity: 0.85;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* src/v4/components/DeviceSearch.css */
/* Elementor: Custom CSS am HTML-Widget „Gerätesuche“ */
html body .ds{
  position: relative;
  width: 100%;
}

html body .ds-field{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 10px 0 20px;
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  border-radius: var(--nm-r-pill);
  box-shadow: var(--nm-shadow-float);
  color: var(--nm-text-2);
  transition: border-color var(--nm-t-fast) ease;
}

html body .ds-field:focus-within{
  border-color: var(--nm-brand);
  outline: 3px solid color-mix(in srgb, var(--nm-brand) 25%, transparent);
}

html body .ds-input{
  flex: 1;
  min-width: 0;
  height: 60px;
  border: 0;
  background: transparent;
  color: var(--nm-text);
  font-size: 1.125rem;
  outline: none;
}

html body .ds--md .ds-input{
  height: 48px;
  font-size: 1rem;
}

html body .ds-input::placeholder{
  color: var(--nm-text-3);
}

html body .ds-kbd{
  flex: none;
  padding: 4px 10px;
  border: 1px solid var(--nm-line-strong);
  border-radius: 8px;
  font-family: var(--nm-font-text);
  font-size: 0.75rem;
  color: var(--nm-text-3);
}

html body .ds-pop{
  position: absolute;
  z-index: 40;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  padding: 10px;
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  border-radius: var(--nm-r-lg);
  box-shadow: var(--nm-shadow-float);
  text-align: left;
  animation: ds-in var(--nm-t-med) var(--nm-ease);
}

@keyframes ds-in {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
}

html body .ds-pop-title{
  padding: 6px 12px;
  font-size: 0.8125rem;
  font-weight: 650;
  color: var(--nm-text-3);
}

html body .ds-opt{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0 16px;
  padding: 10px 12px;
  border-radius: 12px;
  cursor: pointer;
}

html body .ds-opt.is-active{
  background: var(--nm-surface-2);
}

html body .ds-opt-name{
  font-weight: 650;
  color: var(--nm-text);
}

html body .ds-opt-meta{
  grid-column: 1;
  font-size: 0.8125rem;
  color: var(--nm-text-3);
}

html body .ds-opt-price{
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  font-weight: 650;
  font-size: 0.9375rem;
  color: var(--nm-brand);
}

html body .ds-empty{
  padding: 8px 12px 12px;
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

@media (max-width: 599px) {
  html body .ds-kbd{
    display: none;
  }
}

html body .ds-all{
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px;
  border-top: 1px solid var(--nm-line);
  font-weight: 650;
  font-size: 0.9375rem;
  color: var(--nm-brand);
  text-align: left;
}

html body .ds-all:hover{
  text-decoration: underline;
}

/* src/v4/sections/home/Hero.css */
/* Elementor: Custom CSS am Hero-Container */
html body .hr{
  position: relative;
  padding-block: clamp(28px, 5vw, 72px) clamp(56px, 8vw, 112px);
  overflow: clip;
}

html body .hr-grid{
  display: grid;
  gap: clamp(40px, 6vw, 72px);
  align-items: center;
}

@media (min-width: 1000px) {
  html body .hr-grid{
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  }
}

html body .hr-copy{
  display: grid;
  gap: 24px;
  justify-items: start;
}

html body .hr-status{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px 6px 10px;
  border-radius: var(--nm-r-pill);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--nm-text-2);
}

html body .hr-dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nm-text-3);
}

html body .hr-status.is-open .hr-dot{
  background: var(--nm-success);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--nm-success) 20%, transparent);
}

html body .hr-title{
  font-size: var(--nm-fs-hero);
  line-height: 0.98;
  letter-spacing: -0.045em;
  max-width: 11ch;
}

html body .hr-copy .nm-lead{
  max-width: 54ch;
}

html body .hr-search{
  display: grid;
  gap: 14px;
  width: 100%;
  max-width: 600px;
}

html body .hr-quick{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html body .hr-quick a{
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 6px 14px;
  border-radius: var(--nm-r-pill);
  background: var(--nm-surface-2);
  color: var(--nm-text);
  font-size: 0.9375rem;
  font-weight: 560;
  text-decoration: none;
  transition: background-color var(--nm-t-fast) ease;
}

html body .hr-quick a:hover{
  background: color-mix(in srgb, var(--nm-brand) 16%, var(--nm-surface-2));
}

html body .hr-ctas{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

html body .hr-rating{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.9375rem;
  color: var(--nm-text-2);
  text-decoration: none;
}

html body .hr-rating .stars{
  display: inline-flex;
  color: var(--nm-star);
}

html body .hr-rating strong{
  color: var(--nm-text);
}

/* Bühne */
html body .hr-stage{
  position: relative;
  aspect-ratio: 1 / 1.02;
  max-width: 580px;
  width: 100%;
  margin-inline: auto;
  border-radius: var(--nm-r-xl);
  background: radial-gradient(120% 90% at 70% 10%, var(--nm-stage-b), var(--nm-stage-a));
  border: 1px solid var(--nm-line);
  isolation: isolate;
}

html body .hr-glow{
  position: absolute;
  inset: 18% 22% 18% 22%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--nm-cyan) 45%, transparent), transparent);
  filter: blur(30px);
  opacity: 0.55;
}

html body .hr-dev{
  position: absolute;
  height: auto;
}

html body .hr-back{
  width: 36%;
  left: 14%;
  top: 14%;
  transform: rotate(-8deg);
  opacity: 0.9;
}

html body .hr-main{
  width: 42%;
  right: 16%;
  top: 18%;
}

html body .hr-chip{
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: var(--nm-r-md);
  background: var(--nm-glass);
  backdrop-filter: blur(16px) saturate(1.5);
  -webkit-backdrop-filter: blur(16px) saturate(1.5);
  border: 1px solid var(--nm-line);
  box-shadow: var(--nm-shadow-float);
  font-size: 0.875rem;
  color: var(--nm-text);
}

html body .hr-chip svg{
  flex: none;
  color: var(--nm-brand);
}

html body .hr-chip span{
  display: grid;
  line-height: 1.25;
}

html body .hr-chip small{
  color: var(--nm-text-2);
  font-size: 0.8125rem;
}

html body .hr-chip--state{
  left: 50%;
  bottom: 6%;
  translate: -50% 0;
  display: grid;
  min-width: 190px;
  justify-items: center;
  font-weight: 650;
}

html body .hr-chip--state > span{
  grid-area: 1 / 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

html body .hr-state-broken{
  color: var(--nm-danger);
}

html body .hr-state-fixed{
  color: var(--nm-success);
  opacity: 0;
}

/* Ohne Bewegung: direkt den Endzustand zeigen */
@media (prefers-reduced-motion: reduce) {
  html body .hr-state-broken{
    opacity: 0;
  }
  html body .hr-state-fixed{
    opacity: 1;
  }
}

html body .hr-chip--time{
  left: 5%;
  bottom: 22%;
}

html body .hr-chip--warranty{
  right: 5%;
  top: 7%;
}




@media (max-width: 520px) {
  html body .hr-chip{
    padding: 8px 10px;
    font-size: 0.8125rem;
  }
}

@media (max-width: 999px) {
  html body .hr-stage{
    aspect-ratio: 1 / 0.82;
    max-width: 460px;
  }
  html body .hr-back{
    width: 30%;
    left: 18%;
    top: 12%;
  }
  html body .hr-main{
    width: 34%;
    right: 20%;
    top: 10%;
  }
  html body .hr-chip--state{
    bottom: 5%;
  }
}

@media (max-width: 520px) {
  html body .hr-copy{
    gap: 20px;
  }
  html body .hr-rating{
    display: none;
  }
}

/* src/v4/sections/home/Ways.css */
/* Elementor: Custom CSS an den beiden Spalten-Containern */
html body .wy-grid{
  display: grid;
  gap: 16px;
}

@media (min-width: 960px) {
  html body .wy-grid{
    grid-template-columns: 1fr 1fr;
  }
}

html body .wy-card{
  display: grid;
  gap: 18px;
  align-content: start;
  padding: clamp(24px, 4vw, 40px);
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .wy-card--mail{
  background: linear-gradient(160deg, var(--nm-navy), #12193a);
  border-color: transparent;
  color: #eef2f9;
  --nm-text-2: #b0bcd2;
}

html body .wy-icon{
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: var(--nm-surface-2);
  color: var(--nm-brand);
}

html body .wy-card--mail .wy-icon{
  background: rgba(0, 212, 250, 0.14);
  color: var(--nm-cyan);
}

html body .wy-text{
  color: var(--nm-text-2);
}

html body .wy-status{
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 650;
}

html body .wy-status span{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--nm-text-3);
}

html body .wy-status.is-open{
  color: var(--nm-success);
}

html body .wy-status.is-open span{
  background: var(--nm-success);
}

html body .wy-hours{
  display: grid;
  margin: 0;
  font-size: 0.9688rem;
}

html body .wy-hours div{
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--nm-line);
}

html body .wy-hours dt{
  color: var(--nm-text-2);
}

html body .wy-hours dd{
  margin: 0;
  font-variant-numeric: tabular-nums;
}

html body .wy-hours small{
  color: var(--nm-text-2);
  font-size: var(--nm-fs-small);
}

html body .wy-hours .is-today dt,
html body .wy-hours .is-today dd{
  font-weight: 700;
  color: var(--nm-text);
}

html body .wy-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

html body .wy-card--mail .nm-btn--primary{
  background: var(--nm-cyan);
  color: #0b1124;
}

html body .wy-card--mail .nm-btn--primary:hover{
  background: #6be6fd;
}

html body .wy-map{
  width: 100%;
  height: auto;
  margin-block: 4px;
}

html body .wy-state{
  fill: rgba(255, 255, 255, 0.06);
  stroke: rgba(255, 255, 255, 0.18);
  stroke-width: 1.5;
}

html body .wy-route{
  fill: none;
  stroke: var(--nm-cyan);
  stroke-width: 3;
  stroke-linecap: round;
  opacity: 0.8;
}

html body .wy-city{
  fill: #eef2f9;
}

html body .wy-home{
  fill: var(--nm-cyan);
  stroke: rgba(0, 212, 250, 0.3);
  stroke-width: 14;
}

html body .wy-steps{
  display: grid;
  gap: 14px;
  counter-reset: s;
}

html body .wy-steps li{
  display: grid;
  grid-template-columns: 32px 1fr;
  column-gap: 14px;
  counter-increment: s;
}

html body .wy-steps li::before{
  content: counter(s);
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  font-weight: 700;
  font-size: 0.875rem;
}

html body .wy-steps span{
  color: var(--nm-text-2);
  font-size: 0.9688rem;
}

/* Vor-Ort-Service: über die volle Breite, zwischen Werkstatt und Einsenden */
html body .wy-card--onsite{
  background: var(--nm-surface-2);
  border-color: transparent;
}

@media (min-width: 960px) {
  html body .wy-card--onsite{
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 40px;
  }
}

html body .wy-onsite-text{
  display: grid;
  gap: 16px;
  align-content: start;
}

html body .wy-card--onsite .wy-icon{
  background: var(--nm-surface);
}

html body .wy-places{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html body .wy-places li{
  padding: 6px 14px;
  border-radius: var(--nm-r-pill);
  background: var(--nm-surface);
  font-size: 0.9375rem;
  font-weight: 560;
}

html body .wy-places-more{
  background: transparent !important;
  color: var(--nm-text-2);
}

/* src/v4/sections/home/Praemie.css */
/* Elementor: Custom CSS am Container „Geräte-Retter-Prämie“ */
html body .pr{
  background: linear-gradient(180deg, var(--nm-bg), var(--nm-surface-2));
}

html body .pr-grid{
  display: grid;
  gap: 40px;
  align-items: center;
}

@media (min-width: 1000px) {
  html body .pr-grid{
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 72px;
  }
}

html body .pr-copy{
  display: grid;
  gap: 20px;
}

html body .pr-num{
  color: var(--nm-brand);
  white-space: nowrap;
}

html body .pr-steps{
  display: grid;
  gap: 0;
  counter-reset: s;
  margin-top: 8px;
}

html body .pr-steps li{
  position: relative;
  display: grid;
  gap: 2px;
  padding: 0 0 20px 52px;
  counter-increment: s;
}

html body .pr-steps li::before{
  content: counter(s);
  position: absolute;
  left: 0;
  top: -2px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--nm-brand);
  color: var(--nm-on-brand);
  font-weight: 700;
  font-size: 0.9375rem;
}

/* Verbindungslinie zwischen den Schritten */
html body .pr-steps li:not(:last-child)::after{
  content: '';
  position: absolute;
  left: 16px;
  top: 36px;
  bottom: 2px;
  width: 2px;
  background: var(--nm-line-strong);
}

html body .pr-steps span{
  color: var(--nm-text-2);
}

html body .pr-note{
  display: flex;
  gap: 10px;
  padding: 14px 16px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

html body .pr-note svg{
  flex: none;
  margin-top: 2px;
  color: var(--nm-brand);
}

html body .pr-card{
  display: grid;
  gap: 18px;
  padding: clamp(24px, 4vw, 36px);
  border-radius: var(--nm-r-xl);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  box-shadow: var(--nm-shadow-float);
}

html body .pr-card-head{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

html body .pr-card dl{
  display: grid;
  margin: 0;
}

html body .pr-card dl div{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--nm-line);
}

html body .pr-card dt{
  color: var(--nm-text-2);
}

html body .pr-card dd{
  margin: 0;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

html body .pr-grant dd{
  color: var(--nm-success);
}

html body .pr-net{
  border-bottom: 0 !important;
}

html body .pr-net dt{
  color: var(--nm-text);
  font-weight: 650;
}

html body .pr-net dd{
  font-family: var(--nm-font-display);
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

html body .pr-cap{
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .pr-card .nm-btn{
  white-space: normal;
  text-align: center;
}

/* src/v4/pages/shop/Shop.css */
/* Shop – Elementor: Custom CSS an den WooCommerce-Widgets (Products, Single Product, Cart, Checkout) */
html body .sp-hero-in{
  display: grid;
  gap: 16px;
  justify-items: start;
}

html body .sp-usp{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  font-size: 0.9375rem;
  font-weight: 560;
}

html body .sp-usp li{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

html body .sp-usp svg{
  color: var(--nm-brand);
}

html body .sp-list{
  padding-top: 24px;
}

html body .sp-toolbar{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

html body .sp-filter{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html body .sp-sort{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

html body .sp-sort .nm-select{
  width: auto;
  min-height: 44px;
  font-size: 0.9375rem;
}

html body .sp-grid{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}

html body .sp-card{
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  overflow: hidden;
  transition: border-color var(--nm-t-fast) ease;
}

html body .sp-card:hover{
  border-color: var(--nm-brand);
}

html body .sp-art{
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  padding: 32px;
  background: linear-gradient(180deg, var(--nm-stage-a), var(--nm-stage-b));
}

html body .sp-art .dr{
  width: auto;
  max-height: 220px;
  transition: transform var(--nm-t-med) var(--nm-ease);
}

html body .sp-card:hover .sp-art .dr{
  transform: scale(1.04);
}

html body .sp-badge{
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 3px 10px;
  border-radius: var(--nm-r-pill);
  background: var(--nm-glass);
  backdrop-filter: blur(8px);
  font-size: 0.8125rem;
  font-weight: 650;
  color: var(--nm-text-2);
}

html body .sp-body{
  display: grid;
  gap: 4px;
  align-content: start;
  padding: 18px 20px 20px;
}

html body .sp-cond{
  font-size: var(--nm-fs-small);
  font-weight: 650;
  color: var(--nm-brand);
}

html body .sp-body h2,
html body .sp-body h3{
  font-size: 1.25rem;
}

html body .sp-link{
  color: inherit;
  text-decoration: none;
}

html body .sp-link::after{
  content: '';
  position: absolute;
  inset: 0;
}

html body .sp-meta{
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

html body .sp-bat{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

html body .sp-bat svg{
  color: var(--nm-success);
}

html body .sp-buy{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}

html body .sp-buy strong{
  font-family: var(--nm-font-display);
  font-size: 1.5rem;
  letter-spacing: -0.02em;
}

html body .sp-add{
  position: relative;
  z-index: 1;
}

/* Produktdetail */
html body .sp-pd{
  padding-bottom: var(--nm-section);
}

html body .sp-pd-grid{
  display: grid;
  gap: 32px;
  align-items: start;
}

@media (min-width: 960px) {
  html body .sp-pd-grid{
    grid-template-columns: 1.1fr 0.9fr;
    gap: 64px;
  }
  html body .sp-gallery{
    position: sticky;
    top: calc(var(--nm-header-h) + 24px);
  }
}

html body .sp-gallery{
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  padding: 12%;
  border-radius: var(--nm-r-xl);
  background: radial-gradient(120% 90% at 70% 10%, var(--nm-stage-b), var(--nm-stage-a));
  border: 1px solid var(--nm-line);
}

html body .sp-gallery .dr{
  width: auto;
  max-height: 100%;
}

html body .sp-info{
  display: grid;
  gap: 10px;
  justify-items: start;
}

html body .sp-price{
  margin-top: 8px;
  font-family: var(--nm-font-display);
  font-size: clamp(2.25rem, 1.8rem + 2vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}

html body .sp-actions{
  display: grid;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
}

html body .sp-trust{
  display: grid;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
  padding: 18px 20px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  font-size: 0.9688rem;
}

html body .sp-trust li{
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

html body .sp-trust svg{
  flex: none;
  margin-top: 2px;
  color: var(--nm-brand);
}

html body .sp-specs{
  width: 100%;
  margin: 12px 0 0;
}

html body .sp-specs div{
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--nm-line);
}

html body .sp-specs dt{
  color: var(--nm-text-2);
}

html body .sp-specs dd{
  margin: 0;
  display: grid;
  gap: 2px;
  font-weight: 600;
}

html body .sp-specs small{
  font-weight: 400;
  color: var(--nm-text-2);
  font-size: var(--nm-fs-small);
}

/* Warenkorb & Kasse */
html body .sp-cart-head{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  margin: 16px 0 32px;
}

html body .sp-cart-grid{
  display: grid;
  gap: 32px;
  align-items: start;
}

@media (min-width: 960px) {
  html body .sp-cart-grid{
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 48px;
  }
  html body .sp-summary{
    position: sticky;
    top: calc(var(--nm-header-h) + 24px);
  }
}

html body .sp-lines{
  display: grid;
  gap: 12px;
}

html body .sp-line{
  display: grid;
  grid-template-columns: 72px 1fr auto auto 44px;
  gap: 16px;
  align-items: center;
  padding: 14px 16px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

@media (max-width: 640px) {
  html body .sp-line{
    grid-template-columns: 64px 1fr 44px;
  }
  html body .sp-qty{
    grid-column: 2;
  }
  html body .sp-line-price{
    grid-column: 2;
  }
  html body .sp-remove{
    grid-row: 1;
    grid-column: 3;
  }
}

html body .sp-line-art{
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border-radius: 12px;
  background: linear-gradient(180deg, var(--nm-stage-a), var(--nm-stage-b));
  padding: 8px;
}

html body .sp-line-art .dr{
  max-height: 100%;
  width: auto;
  filter: none;
}

html body .sp-line-info{
  display: grid;
  min-width: 0;
}

html body .sp-line-name{
  font-weight: 650;
  color: var(--nm-text);
  text-decoration: none;
}

html body .sp-line-info span{
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .sp-qty{
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--nm-line-strong);
  border-radius: var(--nm-r-pill);
}

html body .sp-qty button{
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
}

html body .sp-qty button:disabled{
  opacity: 0.35;
  cursor: not-allowed;
}

html body .sp-qty span{
  min-width: 20px;
  text-align: center;
  font-weight: 650;
}

html body .sp-line-price{
  font-variant-numeric: tabular-nums;
}

html body .sp-remove{
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--nm-text-2);
}

html body .sp-remove:hover{
  background: var(--nm-danger-bg);
  color: var(--nm-danger);
}

html body .sp-summary{
  display: grid;
  gap: 14px;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .sp-summary h2{
  font-size: 1.375rem;
}

html body .sp-summary dl{
  margin: 0;
}

html body .sp-summary dl div{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--nm-line);
}

html body .sp-summary dt{
  color: var(--nm-text-2);
}

html body .sp-summary dd{
  margin: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

html body .sp-sum-total{
  border-bottom: 0 !important;
}

html body .sp-sum-total dt{
  color: var(--nm-text);
  font-weight: 700;
}

html body .sp-sum-total dd{
  font-family: var(--nm-font-display);
  font-size: 1.5rem;
  font-weight: 700;
}

html body .sp-mini{
  display: grid;
  gap: 10px;
}

html body .sp-mini li{
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

html body .sp-mini span{
  display: grid;
  font-weight: 600;
}

html body .sp-mini small{
  font-weight: 400;
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .sp-empty,
html body .sp-done{
  display: grid;
  gap: 16px;
  justify-items: center;
  padding: 48px 16px;
  text-align: center;
}

html body .sp-empty svg,
html body .sp-done svg{
  color: var(--nm-brand);
}

html body .sp-form{
  display: grid;
  gap: 24px;
  padding: clamp(20px, 4vw, 32px);
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .sp-modes{
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  margin-top: 6px;
}

html body .sp-mode{
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border-radius: var(--nm-r-sm);
  border: 1.5px solid var(--nm-line-strong);
  cursor: pointer;
}

html body .sp-mode:has(input:checked){
  border-color: var(--nm-brand);
  background: color-mix(in srgb, var(--nm-brand) 8%, transparent);
}

html body .sp-mode:has(input:disabled){
  opacity: 0.5;
  cursor: not-allowed;
}

html body .sp-mode input{
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--nm-brand);
}

html body .sp-mode svg{
  color: var(--nm-brand);
}

html body .sp-mode span{
  display: grid;
}

html body .sp-mode small{
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .sp-fields{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

html body .sp-pay{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html body .sp-pay span{
  padding: 10px 16px;
  border-radius: var(--nm-r-sm);
  border: 1px dashed var(--nm-line-strong);
  color: var(--nm-text-2);
  font-size: 0.9375rem;
}

html body .sp-done h1{
  font-size: var(--nm-fs-h2);
}

html body .sp-cart-grid > *,
html body .sp-pd-grid > *{
  min-width: 0;
}

/* Formularspalten dürfen auf schmalen Geräten schrumpfen */
html body .sp-form > *{
  min-width: 0;
}

/* Zubehör */
html body .sp-acc{
  margin-top: 48px;
}

html body .sp-model{
  width: 100%;
  margin-top: 8px;
}

html body .sp-back{
  margin-top: 24px;
}

/* Zubehör-Vorschlag im Warenkorb: unter der Artikelliste */
@media (min-width: 960px) {
  html body .sp-cart-cross{
    grid-column: 1;
  }
  html body .sp-cart-grid > .sp-summary{
    grid-column: 2;
    grid-row: 1 / span 2;
  }
}

html body .sp-cart-cross .ad--shop{
  margin-top: 0;
}

/* src/v4/sections/home/Reviews.css */
/* Elementor: Custom CSS am Testimonial-Widget */
html body .rv{
  overflow: hidden;
}

html body .rv-head{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 40px;
}

html body .rv-head > div{
  display: grid;
  gap: 14px;
}

html body .rv-score{
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
}

html body .rv-score > span:last-child{
  display: grid;
}

html body .rv-score strong{
  font-size: 1.125rem;
}

html body .rv-score small{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--nm-text-2);
}

html body .rv-stars .stars{
  display: inline-flex;
  gap: 2px;
  color: var(--nm-star);
}

html body .rv-track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(86vw, 400px);
  gap: 16px;
  padding-inline: max(var(--nm-gutter), calc((100vw - var(--nm-container)) / 2));
  padding-bottom: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: max(var(--nm-gutter), calc((100vw - var(--nm-container)) / 2));
  scrollbar-width: thin;
}

html body .rv-track li{
  scroll-snap-align: start;
}

html body .rv-track figure{
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 16px;
  height: 100%;
  margin: 0;
  padding: 28px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .rv-track blockquote{
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.6;
}

html body .rv-track figcaption{
  display: grid;
  grid-template-columns: 40px 1fr;
  column-gap: 12px;
  align-items: center;
  font-weight: 650;
}

html body .rv-avatar{
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--nm-surface-2);
  color: var(--nm-brand);
}

html body .rv-track figcaption small{
  font-weight: 400;
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

/* src/v4/sections/home/Location.css */
/* Elementor: Custom CSS am Container „Standort“ */
html body .lc-grid{
  display: grid;
  gap: 40px;
  align-items: center;
}

@media (min-width: 960px) {
  html body .lc-grid{
    grid-template-columns: 1fr 1.1fr;
    gap: 64px;
  }
}

html body .lc-list{
  display: grid;
  gap: 20px;
}

html body .lc-list li{
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  align-items: start;
}

html body .lc-list svg{
  box-sizing: content-box;
  padding: 11px;
  border-radius: 12px;
  background: var(--nm-surface-2);
  color: var(--nm-brand);
}

html body .lc-list span{
  display: grid;
  color: var(--nm-text-2);
}

html body .lc-list strong,
html body .lc-list a{
  font-weight: 650;
  color: var(--nm-text);
  text-decoration: none;
}

html body .lc-list a:hover{
  color: var(--nm-brand);
}

html body .lc-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

html body .lc-map{
  aspect-ratio: 4 / 3;
  border-radius: var(--nm-r-xl);
  overflow: hidden;
  border: 1px solid var(--nm-line);
  background:
    radial-gradient(circle at 60% 45%, color-mix(in srgb, var(--nm-brand) 18%, transparent), transparent 40%),
    repeating-linear-gradient(0deg, transparent 0 38px, var(--nm-line) 38px 39px),
    repeating-linear-gradient(90deg, transparent 0 38px, var(--nm-line) 38px 39px),
    var(--nm-surface);
}

html body .lc-map iframe{
  width: 100%;
  height: 100%;
  border: 0;
}

html body .lc-consent{
  display: grid;
  gap: 14px;
  place-content: center;
  justify-items: center;
  height: 100%;
  padding: 24px;
  text-align: center;
}

html body .lc-consent svg{
  color: var(--nm-brand);
}

html body .lc-consent p{
  display: grid;
  color: var(--nm-text-2);
}

html body .lc-consent strong{
  color: var(--nm-text);
}

/* src/v4/components/Footer.css */
/* Elementor: Custom CSS am Footer-Container */
html body .ft{
  padding-block: clamp(56px, 7vw, 88px) 32px;
  background: var(--nm-surface);
  border-top: 1px solid var(--nm-line);
  font-size: 0.9688rem;
  color: var(--nm-text-2);
}

html body .ft-grid{
  display: grid;
  gap: 40px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

html body .ft-brand{
  display: grid;
  gap: 16px;
  align-content: start;
  max-width: 320px;
}

html body .ft-brand img{
  height: 38px;
  width: auto;
}

:root[data-theme='dark'] .ft-brand img {
  filter: invert(1);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .ft-brand img {
    filter: invert(1);
  }
}

html body .ft-social{
  display: flex;
  gap: 4px;
}

html body .ft-social a{
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
}

html body .ft-social a:hover{
  border-color: var(--nm-brand);
  color: var(--nm-brand);
}

html body .ft-title{
  margin-bottom: 14px;
  font-family: var(--nm-font-text);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--nm-text);
}

html body .ft ul li + li{
  margin-top: 4px;
}

html body .ft a{
  color: inherit;
  text-decoration: none;
}

html body .ft nav a,
html body .ft address a{
  display: inline-block;
  padding-block: 4px;
}

html body .ft a:hover{
  color: var(--nm-brand);
}

html body .ft address{
  font-style: normal;
  line-height: 1.6;
}

html body .ft-hours{
  display: grid;
  gap: 4px;
  margin: 16px 0 0;
}

html body .ft-hours div{
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 8px;
}

html body .ft-hours dt{
  font-weight: 650;
  color: var(--nm-text);
}

html body .ft-hours dd{
  margin: 0;
}

html body .ft-bottom{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid var(--nm-line);
  font-size: var(--nm-fs-small);
}

html body .ft-bottom ul{
  display: flex;
  gap: 20px;
}

html body .ft-bottom ul li + li{
  margin-top: 0;
}

html body .ft-regions a{
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* src/v4/components/Header.css */
/* Elementor: Custom CSS am Header-Container (Glas-Effekt, Sticky) */
html body .hd{
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--nm-glass);
  backdrop-filter: saturate(1.6) blur(18px);
  -webkit-backdrop-filter: saturate(1.6) blur(18px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--nm-t-med) ease;
}

html body .hd.is-scrolled{
  border-bottom-color: var(--nm-line);
}

@media (prefers-reduced-transparency: reduce) {
  html body .hd{
    background: var(--nm-surface);
    backdrop-filter: none;
  }
}

html body .hd-in{
  display: flex;
  align-items: center;
  gap: 16px;
  height: var(--nm-header-h);
}

html body .hd-logo img{
  height: 34px;
  width: auto;
  object-fit: contain;
  object-position: left center;
}

@media (min-width: 600px){
  html body .hd-logo img{
    height: 44px;
  }
}

/* Kleine Laptops: Menü enger, damit das Logo nicht gestaucht wird */
@media (min-width: 1080px) and (max-width: 1279px){
  html body .hd .hd-nav a,
  html body .hd .hd-nav .hd-mega-btn{
    padding-inline: 7px;
  }
}

/* Logo ist schwarz auf transparent – im Dark Mode invertieren */
:root[data-theme='dark'] .hd-logo img {
  filter: invert(1);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .hd-logo img {
    filter: invert(1);
  }
}

html body .hd-nav{
  display: none;
  margin-inline: auto;
}

html body .hd-nav ul{
  display: flex;
  gap: 2px;
}

html body .hd-nav a{
  display: block;
  padding: 8px 14px;
  border-radius: var(--nm-r-pill);
  font-size: 0.9375rem;
  font-weight: 560;
  color: var(--nm-text-2);
  text-decoration: none;
  transition:
    color var(--nm-t-fast) ease,
    background-color var(--nm-t-fast) ease;
}

html body .hd-nav a:hover{
  color: var(--nm-text);
}

html body .hd-nav a[aria-current='page']{
  color: var(--nm-text);
  background: var(--nm-surface-2);
}

html body .hd-actions{
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}

html body .hd-icon{
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--nm-text);
  text-decoration: none;
}

html body .hd-icon:hover{
  background: var(--nm-surface-2);
}

html body .hd-badge{
  position: absolute;
  top: 6px;
  right: 4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--nm-brand);
  color: var(--nm-on-brand);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}

html body .hd-cta{
  display: none;
  margin-left: 6px;
}

@media (min-width: 640px) {
  html body .hd-cta{
    display: inline-flex;
  }
}

@media (min-width: 1080px) {
  html body .hd-nav{
    display: block;
  }
  html body .hd-actions{
    margin-left: 0;
  }
  html body .hd-burger{
    display: none;
  }
  html body .hd-sheet{
    display: none !important;
  }
}

/* Mobile Sheet */
html body .hd-sheet{
  position: fixed;
  inset: var(--nm-header-h) 0 0 0;
  z-index: 49;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  padding: 16px var(--nm-gutter) calc(24px + env(safe-area-inset-bottom));
  background: var(--nm-bg);
  overflow-y: auto;
}

html body .hd-sheet[hidden]{
  display: none;
}

html body .hd-sheet-nav li{
  border-bottom: 1px solid var(--nm-line);
  animation: hd-item 420ms var(--nm-ease) both;
}

@keyframes hd-item {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
}

html body .hd-sheet-nav a{
  display: block;
  padding: 14px 0;
  font-family: var(--nm-font-display);
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--nm-text);
  text-decoration: none;
}

html body .hd-sheet-nav a[aria-current='page']{
  color: var(--nm-brand);
}

html body .hd-sheet-foot{
  display: grid;
  gap: 12px;
}

html body .hd-status{
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

html body .hd-status span{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nm-line-strong);
}

html body .hd-status.is-open{
  color: var(--nm-success);
}

html body .hd-status.is-open span{
  background: var(--nm-success);
}

/* Such-Overlay */
html body .hd-search{
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  align-items: start;
  justify-items: center;
  padding: 12vh var(--nm-gutter) 24px;
  background: color-mix(in srgb, var(--nm-bg) 70%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  animation: hd-fade var(--nm-t-med) var(--nm-ease);
}

@keyframes hd-fade {
  from {
    opacity: 0;
  }
}

html body .hd-search-box{
  display: grid;
  gap: 8px;
  justify-items: end;
  width: min(680px, 100%);
}

/* src/v4/components/Breadcrumbs.css */
/* Elementor: Custom CSS am Breadcrumbs-Widget */
html body .bc ol{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 0;
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .bc li + li::before{
  content: '/';
  margin-inline: 8px;
  color: var(--nm-text-3);
}

html body .bc a{
  color: inherit;
  text-decoration: none;
}

html body .bc a:hover{
  color: var(--nm-brand);
  text-decoration: underline;
}

html body .bc [aria-current]{
  color: var(--nm-text);
  font-weight: 600;
}

/* src/v4/pages/Pages.css */
/* Inhaltsseiten – Elementor: Custom CSS an den jeweiligen Seiten-Containern/Widgets */
html body .pg-head{
  display: grid;
  gap: 16px;
  justify-items: start;
  max-width: 760px;
  margin: 16px 0 clamp(32px, 5vw, 48px);
}

html body .pg-crumbs{
  padding-top: 24px;
}

html body .pg-narrow{
  max-width: 860px;
}

html body .pg-split{
  display: grid;
  gap: 32px;
  align-items: start;
}

@media (min-width: 960px) {
  html body .pg-split{
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 48px;
  }
  html body .pg-split > aside{
    position: sticky;
    top: calc(var(--nm-header-h) + 24px);
  }
}

html body .pg-wide{
  grid-column: 1 / -1;
}

html body .pg-formhead{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

html body .pg-formhead h2{
  font-size: var(--nm-fs-h3);
}

html body .pg-done{
  max-width: 640px;
  margin-inline: auto;
}

html body .pg-addr{
  display: flex;
  gap: 8px;
  font-size: 0.9375rem;
}

html body .pg-addr svg{
  flex: none;
  margin-top: 3px;
  color: var(--nm-brand);
}

/* Termin */
html body .tm-days{
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 2px 6px;
  margin-top: 6px;
  scrollbar-width: thin;
}

html body .tm-day{
  flex: none;
  min-height: 48px;
  padding: 8px 16px;
  border-radius: var(--nm-r-sm);
  border: 1.5px solid var(--nm-line-strong);
  font-weight: 600;
  white-space: nowrap;
}

html body .tm-day[aria-pressed='true']{
  border-color: var(--nm-brand);
  background: var(--nm-brand);
  color: var(--nm-on-brand);
}

html body .tm-slots{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
  gap: 8px;
  margin-top: 6px;
}

html body .tm-slot{
  display: grid;
  place-items: center;
  min-height: 44px;
  border-radius: var(--nm-r-sm);
  border: 1.5px solid var(--nm-line);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
}

html body .tm-slot input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

html body .tm-slot:has(input:checked){
  border-color: var(--nm-brand);
  background: color-mix(in srgb, var(--nm-brand) 12%, transparent);
  color: var(--nm-brand);
}

html body .tm-slot:has(input:focus-visible){
  outline: 3px solid var(--nm-brand);
  outline-offset: 2px;
}

/* Versand */
html body .pg-steps{
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  counter-reset: s;
}

html body .pg-steps li{
  display: grid;
  gap: 4px;
  align-content: start;
  padding: 22px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  counter-increment: s;
}

html body .pg-steps li::before{
  content: counter(s);
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: var(--nm-brand);
  color: var(--nm-on-brand);
  font-weight: 700;
  font-size: 0.9375rem;
}

html body .pg-steps span{
  color: var(--nm-text-2);
  font-size: 0.9688rem;
}

html body .pg-formsec{
  padding-top: 0;
}

/* Über uns */
html body .pg-about{
  display: grid;
  gap: 32px;
  align-items: center;
}

@media (min-width: 960px) {
  html body .pg-about{
    grid-template-columns: 1.1fr 0.9fr;
    gap: 64px;
  }
}

html body .pg-about .pg-head p:not(.nm-lead):not(.nm-kicker){
  color: var(--nm-text-2);
}

html body .pg-photo{
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 12px;
  padding: 24px;
  border-radius: var(--nm-r-xl);
  border: 1px dashed var(--nm-line-strong);
  background: linear-gradient(180deg, var(--nm-stage-a), var(--nm-stage-b));
  color: var(--nm-text-2);
  text-align: center;
  font-size: 0.9375rem;
}

html body .pg-photo p{
  display: grid;
  gap: 4px;
  max-width: 36ch;
}

html body .pg-photo strong{
  color: var(--nm-text);
}

html body .pg-stats{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  margin-block: clamp(40px, 6vw, 72px);
}

html body .pg-stats li{
  display: grid;
  gap: 4px;
  padding-top: 20px;
  border-top: 2px solid var(--nm-text);
}

html body .pg-stats strong{
  font-family: var(--nm-font-display);
  font-size: clamp(2.25rem, 1.6rem + 2vw, 3.25rem);
  letter-spacing: -0.03em;
  line-height: 1;
}

html body .pg-stats span{
  color: var(--nm-text-2);
}

html body .pg-photos{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}

/* Standort */
html body .pg-remote{
  background: var(--nm-surface);
}

html body .pg-remote-in{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 28px;
}

html body .pg-remote-in > svg{
  color: var(--nm-brand);
}

html body .pg-remote-in > div{
  flex: 1 1 280px;
}

html body .pg-remote-in p{
  color: var(--nm-text-2);
}

/* Kontakt */
html body .pg-contact{
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  margin-bottom: 40px;
}

html body .pg-contact a{
  display: grid;
  gap: 4px;
  height: 100%;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
  transition: border-color var(--nm-t-fast) ease;
}

html body .pg-contact a:hover{
  border-color: var(--nm-brand);
}

html body .pg-contact svg{
  margin-bottom: 10px;
  color: var(--nm-brand);
}

html body .pg-contact strong{
  font-size: 1.125rem;
  overflow-wrap: anywhere;
}

html body .pg-contact span{
  color: var(--nm-text-2);
  font-size: 0.9375rem;
}

/* FAQ */
html body .pg-faqgroup + .pg-faqgroup{
  margin-top: 48px;
}

html body .pg-faqgroup h2{
  margin-bottom: 12px;
  font-size: var(--nm-fs-h3);
}

/* Ratgeber */
html body .pg-articles{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
}

html body .pg-article{
  display: grid;
  gap: 8px;
  align-content: start;
  height: 100%;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
  transition: border-color var(--nm-t-fast) ease;
}

html body .pg-article:hover{
  border-color: var(--nm-brand);
}

html body .pg-article strong{
  font-family: var(--nm-font-display);
  font-size: 1.375rem;
  line-height: 1.2;
  letter-spacing: -0.015em;
}

html body .pg-article > span:not(.nm-kicker){
  color: var(--nm-text-2);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

html body .pg-article em{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  font-style: normal;
  font-weight: 650;
  color: var(--nm-brand);
}

html body article.pg .pg-narrow > section{
  margin-top: 40px;
}

html body article.pg h2{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  font-size: var(--nm-fs-h3);
}

html body article.pg h2 svg{
  color: var(--nm-brand);
}

html body .pg-cols{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

html body .pg-cols > section{
  margin-top: 0 !important;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .pg-list{
  display: grid;
  gap: 8px;
}

html body .pg-list li{
  position: relative;
  padding-left: 20px;
  color: var(--nm-text-2);
}

html body .pg-list li::before{
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nm-brand);
}

html body .pg-what p{
  color: var(--nm-text-2);
  font-size: var(--nm-fs-lead);
}

html body .pg-prices ul{
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  margin-bottom: 12px;
}

html body .pg-prices a{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--nm-r-sm);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
}

html body .pg-prices a:hover{
  border-color: var(--nm-brand);
}

html body .pg-prices strong{
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

html body .pg-cta{
  display: grid;
  gap: 16px;
  justify-items: start;
  margin-top: 48px;
  padding: clamp(24px, 4vw, 40px);
  border-radius: var(--nm-r-xl);
  background: var(--nm-surface-2);
}

html body .pg-standort-title{
  margin-top: 16px;
}

html body .pg-crumbs + .nm-section{
  padding-top: clamp(32px, 5vw, 56px);
}

html body .pg-split > *,
html body .pg-about > *{
  min-width: 0;
}

/* Regionsseiten */
html body .rg-points{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

html body .rg-points li{
  display: grid;
  gap: 6px;
  align-content: start;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .rg-points svg{
  margin-bottom: 6px;
  color: var(--nm-success);
}

html body .rg-points span{
  color: var(--nm-text-2);
}

html body .rg-places{
  display: grid;
  gap: 10px;
  margin-top: 40px;
}

html body .rg-places h2{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.25rem;
}

html body .rg-places h2 svg{
  color: var(--nm-brand);
}

html body .rg-places p{
  color: var(--nm-text-2);
  line-height: 1.8;
}

html body .pg-faqtitle{
  margin-bottom: 12px;
  font-size: var(--nm-fs-h3);
}

html body .rg-call{
  margin-top: 24px;
  color: var(--nm-text-2);
}

/* 404 */
html body .nf-in{
  display: grid;
  gap: 18px;
  justify-items: center;
  max-width: 720px;
  text-align: center;
}

html body .nf-code{
  font-family: var(--nm-font-display);
  font-size: clamp(5rem, 3rem + 10vw, 9rem);
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: 0.9;
  background: linear-gradient(160deg, var(--nm-brand), var(--nm-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

html body .nf-in code{
  overflow-wrap: anywhere;
}

html body .nf-search{
  width: 100%;
  max-width: 600px;
  text-align: left;
}

html body .nf-links{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 24px;
}

html body .tm-slots--wish{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 360px;
}

/* Vor-Ort-Service */
html body .vo-steps{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

html body .vo-steps li{
  display: grid;
  gap: 6px;
  align-content: start;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .vo-steps svg{
  margin-bottom: 8px;
  color: var(--nm-brand);
}

html body .vo-steps span{
  color: var(--nm-text-2);
}

html body .vo-area{
  display: grid;
  gap: 16px;
  margin-top: 40px;
  padding: clamp(20px, 4vw, 32px);
  border-radius: var(--nm-r-xl);
  background: var(--nm-surface-2);
}

html body .vo-area h2{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--nm-fs-h3);
}

html body .vo-area h2 svg{
  color: var(--nm-brand);
}

html body .vo-area h3{
  font-size: 1.0625rem;
  margin-bottom: 4px;
}

html body .vo-area p:not(.nm-hint){
  color: var(--nm-text-2);
  line-height: 1.8;
}

html body .vo-facts{
  display: grid;
  gap: 12px;
}

html body .vo-facts li{
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

html body .vo-facts svg{
  flex: none;
  margin-top: 3px;
  color: var(--nm-success);
}

html body .rg-onsite{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 32px;
  margin-top: 32px;
  padding: clamp(20px, 4vw, 32px);
  border-radius: var(--nm-r-xl);
  background: var(--nm-surface-2);
}

html body .rg-onsite > div{
  display: grid;
  gap: 6px;
  flex: 1 1 320px;
}

html body .rg-onsite h2{
  font-size: var(--nm-fs-h3);
}

html body .rg-onsite p{
  color: var(--nm-text-2);
}

html body .vo-other{
  display: grid;
  gap: 8px;
  margin-top: 24px;
  padding: 20px 24px;
  border-radius: var(--nm-r-lg);
  border: 1px solid var(--nm-line);
  background: var(--nm-surface);
}

html body .vo-other p{
  color: var(--nm-text-2);
}

html body .vo-other .pt-ctas{
  margin-top: 6px;
}

html body .rg-group + .rg-group{
  margin-top: 40px;
}

html body .rg-group h2{
  margin-bottom: 14px;
  font-size: var(--nm-fs-h3);
}

html body .pg-sub2{
  margin-top: 48px;
}

html body .pg-guide-sec p{
  color: var(--nm-text-2);
  font-size: 1.0625rem;
  line-height: 1.7;
  max-width: 68ch;
}

html body .pg-guide-sec p + p,
html body .pg-guide-sec p + ul{
  margin-top: 12px;
}

html body .pg-more{
  margin-top: 40px;
}

/* src/v4/pages/portal/Portal.css */
/* Reparaturportal – Elementor: Custom CSS an den jeweiligen Vorlagen-Containern bzw. Plugin-Widgets */

/* Kopfbereich */
html body .pt-hero{
  padding-block: clamp(20px, 3vw, 32px) clamp(24px, 4vw, 48px);
}

html body .pt-hero-in{
  display: grid;
  gap: 18px;
  justify-items: start;
}

html body .pt-hero-in h1{
  max-width: 18ch;
}

html body .pt-hero-in .nm-lead{
  max-width: 60ch;
}

html body .pt-search{
  width: 100%;
  max-width: 640px;
  margin-top: 8px;
}

/* Gerätekopf mit Rendering */
html body .pt-hero--device{
  background: linear-gradient(180deg, var(--nm-bg), var(--nm-surface-2));
  border-bottom: 1px solid var(--nm-line);
  overflow: hidden;
}

html body .pt-device{
  display: grid;
  gap: 24px;
  align-items: center;
}

@media (min-width: 900px) {
  html body .pt-device{
    grid-template-columns: 1.3fr 0.7fr;
  }
}

html body .pt-device-copy{
  display: grid;
  gap: 16px;
  justify-items: start;
}

html body .pt-device-art{
  display: grid;
  place-items: center;
  max-height: 340px;
}

html body .pt-device-art .dr{
  width: auto;
  max-width: 100%;
  max-height: 320px;
}

@media (max-width: 899px) {
  html body .pt-device-art{
    display: none;
  }
}

html body .pt-facts{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html body .pt-facts li{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: var(--nm-r-pill);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  font-size: 0.9375rem;
  font-weight: 560;
}

html body .pt-facts svg{
  color: var(--nm-brand);
}

html body .pt-ctas{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* Filter */
html body .pt-browse{
  padding-top: clamp(16px, 3vw, 32px);
}

html body .pt-tabbar{
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  padding: 4px;
  border-radius: var(--nm-r-pill);
  background: var(--nm-surface-2);
  margin-bottom: 20px;
}

html body .pt-tabs{
  display: contents;
}

html body .pt-tab{
  min-height: 44px;
  padding: 8px 20px;
  border-radius: var(--nm-r-pill);
  font-weight: 650;
  color: var(--nm-text-2);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

html body .pt-tab[aria-pressed='true']{
  background: var(--nm-surface);
  color: var(--nm-text);
  box-shadow: var(--nm-shadow-card), 0 1px 3px rgba(15, 23, 48, 0.08);
}

html body .pt-tab:hover{
  color: var(--nm-text);
}

html body .pt-brands{
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  margin-bottom: 16px;
  scrollbar-width: none;
}

html body .pt-chip{
  flex: none;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: var(--nm-r-pill);
  border: 1px solid var(--nm-line-strong);
  background: var(--nm-surface);
  font-weight: 560;
  font-size: 0.9375rem;
}

html body .pt-chip[aria-pressed='true']{
  background: var(--nm-text);
  border-color: var(--nm-text);
  color: var(--nm-bg);
}

html body .pt-count{
  margin-bottom: 16px;
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

/* Modellkacheln (Loop Grid) */
html body .pt-models{
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
}

html body .pt-model{
  display: flex;
  align-items: center;
  gap: 14px;
  height: 100%;
  padding: 14px 16px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
  transition: border-color var(--nm-t-fast) ease, transform var(--nm-t-fast) ease;
}

html body .pt-model:hover{
  border-color: var(--nm-brand);
  transform: translateY(-2px);
}

html body .pt-model-art{
  flex: none;
  display: grid;
  place-items: center;
  width: 52px;
  height: 64px;
  border-radius: 12px;
  background: linear-gradient(180deg, var(--nm-stage-a), var(--nm-stage-b));
  padding: 8px 10px;
}

html body .pt-model-art .dr{
  max-height: 100%;
  width: auto;
  filter: none;
}

html body .pt-model-text{
  display: grid;
  min-width: 0;
}

html body .pt-model-text strong{
  line-height: 1.3;
}

html body .pt-model-text small{
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .pt-more{
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

html body .pt-group + .pt-group{
  margin-top: 40px;
}

html body .pt-group-title{
  margin-bottom: 16px;
  font-size: var(--nm-fs-h3);
}

/* Herstellerliste */
html body .pt-brandlist{
  background: var(--nm-surface);
}

html body .pt-brandlist h2{
  margin-bottom: 24px;
}

html body .pt-brandgrid{
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
}

html body .pt-brandcard{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 18px 20px;
  border-radius: var(--nm-r-md);
  border: 1px solid var(--nm-line);
  background: var(--nm-bg);
  color: var(--nm-text);
  text-decoration: none;
}

html body .pt-brandcard span{
  grid-column: 1;
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .pt-brandcard svg{
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--nm-brand);
}

html body .pt-brandcard:hover{
  border-color: var(--nm-brand);
}

/* Reparaturliste */
html body .pt-repairs{
  padding-top: clamp(32px, 5vw, 64px);
}

html body .pt-repairs-grid{
  display: grid;
  gap: 32px;
  align-items: start;
}

@media (min-width: 1000px) {
  html body .pt-repairs-grid{
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 48px;
  }
  html body .pt-side{
    position: sticky;
    top: calc(var(--nm-header-h) + 24px);
  }
}

html body .pt-repairs h2{
  font-size: var(--nm-fs-h3);
}

html body .pt-sub{
  margin-top: 6px;
  color: var(--nm-text-2);
}

html body .pt-replist{
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

html body .pt-rep{
  display: grid;
  grid-template-columns: 1fr auto 20px;
  gap: 16px;
  align-items: center;
  padding: 18px 20px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
  transition: border-color var(--nm-t-fast) ease;
}

html body .pt-rep:hover{
  border-color: var(--nm-brand);
}

html body .pt-rep-main{
  display: grid;
  gap: 2px;
  min-width: 0;
}

html body .pt-rep-main strong{
  font-size: 1.125rem;
}

html body .pt-rep-main small{
  color: var(--nm-text-2);
  font-size: 0.9375rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

html body .pt-rep-price{
  display: grid;
  justify-items: end;
  gap: 4px;
  text-align: right;
}

html body .pt-rep-price strong{
  font-size: 1.125rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

html body .pt-rep-price small{
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .pt-rep-arrow{
  color: var(--nm-text-3);
}

@media (max-width: 600px) {
  html body .pt-rep{
    grid-template-columns: 1fr auto;
  }
  html body .pt-rep-main{
    grid-column: 1 / -1;
  }
  html body .pt-rep-price{
    grid-column: 1;
    justify-items: start;
    text-align: left;
    grid-auto-flow: column;
    align-items: center;
  }
  html body .pt-rep-arrow{
    grid-column: 2;
    grid-row: 2;
  }
}

html body .pt-side{
  display: grid;
  gap: 16px;
}

html body .pt-sidecard{
  display: grid;
  gap: 12px;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .pt-sidecard p{
  color: var(--nm-text-2);
}

html body .pt-sidetitle{
  font-size: 1.25rem;
}

html body .pt-praemie{
  display: flex;
  gap: 12px;
  padding: 18px 20px;
  border-radius: var(--nm-r-md);
  border: 1px solid var(--nm-line);
  background: var(--nm-surface);
  font-size: 0.9375rem;
}

html body .pt-praemie > svg{
  flex: none;
  margin-top: 2px;
}

html body .pt-praemie p{
  margin-top: 4px;
  color: var(--nm-text-2);
}

html body .pt-praemie.is-ja{
  background: var(--nm-success-bg);
  border-color: transparent;
}

html body .pt-praemie.is-ja > svg{
  color: var(--nm-success);
}

html body .pt-praemie.is-unklar{
  background: var(--nm-warning-bg);
  border-color: transparent;
}

html body .gr-frist{
  margin-top: 20px;
}

html body .pt-praemie.is-unklar > svg{
  color: var(--nm-warning);
}

/* Einzelne Reparatur */
html body .pt-svc{
  padding-bottom: var(--nm-section);
}

html body .pt-svc-grid{
  display: grid;
  gap: 40px;
  align-items: start;
}

@media (min-width: 1000px) {
  html body .pt-svc-grid{
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 64px;
  }
  html body .pt-svc-side{
    position: sticky;
    top: calc(var(--nm-header-h) + 24px);
  }
}

html body .pt-svc-main{
  display: grid;
  gap: clamp(40px, 5vw, 56px);
}

html body .pt-svc-head{
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 24px;
  align-items: center;
}

@media (min-width: 700px) {
  html body .pt-svc-head{
    grid-template-columns: 160px 1fr;
    gap: 36px;
  }
}

html body .pt-svc-art{
  display: grid;
  place-items: center;
  aspect-ratio: 3 / 4;
  padding: 16px 20px;
  border-radius: var(--nm-r-lg);
  background: linear-gradient(180deg, var(--nm-stage-a), var(--nm-stage-b));
}

html body .pt-svc-art .dr{
  max-height: 100%;
  width: auto;
}

html body .pt-svc-head > div:last-child{
  display: grid;
  gap: 14px;
}

html body .pt-svc-title{
  font-size: var(--nm-fs-h2);
}

html body .pt-svc-head strong{
  color: var(--nm-text);
}

html body .pt-block{
  display: grid;
  gap: 16px;
}

html body .pt-block h2{
  font-size: var(--nm-fs-h3);
}

html body .pt-block > p{
  color: var(--nm-text-2);
  max-width: 65ch;
}

html body .pt-flow{
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  counter-reset: s;
}

html body .pt-flow li{
  display: grid;
  gap: 4px;
  padding: 20px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  counter-increment: s;
}

html body .pt-flow li::before{
  content: counter(s);
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: var(--nm-surface-2);
  color: var(--nm-brand);
  font-weight: 700;
  font-size: 0.875rem;
}

html body .pt-flow span{
  color: var(--nm-text-2);
  font-size: 0.9375rem;
}

html body .pt-variants-help{
  display: grid;
  gap: 0;
  margin: 0;
}

html body .pt-variants-help div{
  display: grid;
  gap: 4px;
  padding: 14px 0;
  border-bottom: 1px solid var(--nm-line);
}

@media (min-width: 640px) {
  html body .pt-variants-help div{
    grid-template-columns: 200px 1fr;
    gap: 16px;
  }
}

html body .pt-variants-help dt{
  font-weight: 650;
}

html body .pt-variants-help dd{
  margin: 0;
  color: var(--nm-text-2);
}

html body .pt-faq{
  border-top: 1px solid var(--nm-line);
}

html body .pt-faq details{
  border-bottom: 1px solid var(--nm-line);
}

html body .pt-faq summary{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  font-weight: 650;
  cursor: pointer;
  list-style: none;
}

html body .pt-faq summary::-webkit-details-marker{
  display: none;
}

html body .pt-faq summary::after{
  content: '+';
  flex: none;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--nm-brand);
  transition: transform var(--nm-t-fast) ease;
}

html body .pt-faq details[open] summary::after{
  transform: rotate(45deg);
}

html body .pt-faq details p{
  padding-bottom: 18px;
  color: var(--nm-text-2);
  max-width: 65ch;
}

html body .pt-otherrep{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  gap: 8px;
}

html body .pt-otherrep a{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--nm-r-sm);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
}

html body .pt-otherrep a:hover{
  border-color: var(--nm-brand);
}

html body .pt-otherrep a span:last-child{
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

html body .pt-svc-side{
  display: grid;
  gap: 16px;
}

html body .pt-pricebox{
  display: grid;
  gap: 14px;
  padding: 24px;
  border-radius: var(--nm-r-xl);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  box-shadow: var(--nm-shadow-float);
}

html body .pt-pricebox-label{
  font-weight: 650;
  color: var(--nm-text-2);
}

html body .pt-pricebox-price{
  font-family: var(--nm-font-display);
  font-size: clamp(2.5rem, 2rem + 2vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

html body .pt-variants{
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
}

html body .pt-variant{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  min-height: 52px;
  padding: 10px 16px;
  border-radius: var(--nm-r-sm);
  border: 1.5px solid var(--nm-line-strong);
  cursor: pointer;
  transition: border-color var(--nm-t-fast) ease, background-color var(--nm-t-fast) ease;
}

html body .pt-variant:has(input:checked){
  border-color: var(--nm-brand);
  background: color-mix(in srgb, var(--nm-brand) 8%, transparent);
}

html body .pt-variant input{
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--nm-brand);
}

html body .pt-variant strong{
  font-variant-numeric: tabular-nums;
}

html body .pt-includes{
  display: grid;
  gap: 8px;
  padding-block: 6px;
  font-size: 0.9375rem;
}

html body .pt-includes li{
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

html body .pt-includes svg{
  flex: none;
  margin-top: 3px;
  color: var(--nm-success);
}

html body .pt-pricebox .nm-btn{
  white-space: normal;
}

/* Kaffeemaschinen */
html body .pt-coffee{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

html body .pt-coffee li{
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .pt-coffee svg{
  color: var(--nm-brand);
}

html body .pt-coffee h2{
  font-size: 1.25rem;
}

html body .pt-coffee p{
  color: var(--nm-text-2);
}

html body .pt-coffee small{
  font-weight: 650;
  color: var(--nm-brand);
}

/* Grid-Spalten dürfen schrumpfen (sonst Überlauf durch lange Inhalte auf Mobil) */
html body .pt-repairs-grid > *,
html body .pt-svc-grid > *,
html body .pt-device > *{
  min-width: 0;
}

/* Mobile Buchungsleiste */
html body .pt-mbar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px var(--nm-gutter) calc(10px + env(safe-area-inset-bottom));
  background: var(--nm-glass);
  backdrop-filter: blur(18px) saturate(1.6);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  border-top: 1px solid var(--nm-line);
}

html body .pt-mbar span{
  display: grid;
  line-height: 1.2;
}

html body .pt-mbar small{
  font-size: 0.8125rem;
  color: var(--nm-text-2);
}

html body .pt-mbar strong{
  font-size: 1.25rem;
  font-variant-numeric: tabular-nums;
}

@media (min-width: 1000px) {
  html body .pt-mbar{
    display: none;
  }
}

@media (max-width: 999px) {
  html body .pt-svc{
    padding-bottom: calc(var(--nm-section) + 72px);
  }
}

html body .pt-results{
  padding-top: 8px;
  padding-bottom: 24px;
}

html body .pt-noresult{
  display: grid;
  gap: 16px;
  max-width: 620px;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .pt-noresult p{
  color: var(--nm-text-2);
}

html body .pt-ranges{
  display: flex;
  flex-wrap: wrap;
  gap: 12px 40px;
  margin: 8px 0 0;
}

html body .pt-ranges div{
  display: grid;
}

html body .pt-ranges dt{
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .pt-ranges dd{
  margin: 0;
  font-family: var(--nm-font-display);
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

html body .pt-brandfaq{
  display: grid;
  gap: 20px;
  max-width: 860px;
}

html body .pt-brandfaq h2{
  font-size: var(--nm-fs-h3);
}

@media (max-width: 999px) {
  body:has(.pt-mbar) .ft {
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }
}

html body .pt-onsite-note{
  margin-top: -6px;
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
  text-align: center;
}

/* Preislisten */
html body .pt-hub h2{
  font-size: var(--nm-fs-h3);
}

html body .pt-hub-group{
  margin-top: 28px;
}

html body .pt-hub-group h3{
  margin-bottom: 10px;
  font-size: 1.125rem;
}

html body .pt-table{
  width: 100%;
  border-collapse: collapse;
  border-radius: var(--nm-r-md);
  overflow: hidden;
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  font-variant-numeric: tabular-nums;
}

html body .pt-table th,
html body .pt-table td{
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid var(--nm-line);
}

html body .pt-table thead th{
  font-size: var(--nm-fs-small);
  font-weight: 650;
  color: var(--nm-text-2);
  background: var(--nm-surface-2);
}

html body .pt-table td{
  text-align: right;
  font-weight: 650;
  white-space: nowrap;
}

html body .pt-table thead th:not(:first-child){
  text-align: right;
}

html body .pt-table tbody tr:last-child > *{
  border-bottom: 0;
}

html body .pt-table tbody th{
  font-weight: 560;
}

html body .pt-table a{
  color: var(--nm-text);
  text-decoration: none;
}

html body .pt-table a:hover{
  color: var(--nm-brand);
  text-decoration: underline;
}

html body .pt-hublinks{
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  margin-top: 16px;
}

html body .pt-hublinks h3{
  margin-bottom: 8px;
  font-size: 1.0625rem;
}

html body .pt-hublinks ul{
  display: grid;
  gap: 4px;
}

html body .pt-hublinks a{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-block: 6px;
  color: var(--nm-brand);
  font-weight: 600;
  text-decoration: none;
}

html body .pt-hublinks a:hover{
  text-decoration: underline;
}

html body .pt-hubcards{
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
  width: 100%;
  margin-top: 8px;
}

html body .pt-hubcard{
  display: grid;
  grid-template-columns: 1fr auto;
  padding: 16px 18px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
}

html body .pt-hubcard span{
  grid-column: 1;
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .pt-hubcard svg{
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  color: var(--nm-brand);
}

html body .pt-hubcard:hover{
  border-color: var(--nm-brand);
}

html body .pt-total{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--nm-line);
}

html body .pt-total span{
  color: var(--nm-text-2);
  font-weight: 600;
}

html body .pt-total strong{
  font-family: var(--nm-font-display);
  font-size: 1.5rem;
  font-variant-numeric: tabular-nums;
}

/* src/v4/pages/PraemieRechner.css */
/* Elementor: Custom CSS am HTML-Widget „Prämien-Rechner“ */
html body .gr-grid{
  display: grid;
  gap: 32px;
  align-items: start;
}

@media (min-width: 1000px) {
  html body .gr-grid{
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    column-gap: 56px;
  }
  html body .gr-head{
    grid-column: 1 / -1;
  }
  html body .gr-result{
    position: sticky;
    top: calc(var(--nm-header-h) + 24px);
  }
}

html body .gr-head{
  display: grid;
  gap: 14px;
  max-width: 760px;
}

html body .gr-form{
  display: grid;
  gap: 24px;
  padding: clamp(20px, 4vw, 36px);
  border-radius: var(--nm-r-xl);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .gr-cats{
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
  margin-top: 6px;
}

html body .gr-cat{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  min-height: 56px;
  padding: 10px 14px;
  border-radius: var(--nm-r-sm);
  border: 1.5px solid var(--nm-line-strong);
  font-weight: 600;
  cursor: pointer;
}

html body .gr-cat input{
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--nm-brand);
}

html body .gr-cat:has(input:checked){
  border-color: var(--nm-brand);
  background: color-mix(in srgb, var(--nm-brand) 8%, transparent);
}

html body .gr-cat.is-ja svg{
  color: var(--nm-success);
}

html body .gr-cat.is-nein svg{
  color: var(--nm-danger);
}

html body .gr-cat.is-unklar svg{
  color: var(--nm-warning);
}

html body .gr-elig{
  display: flex;
  gap: 12px;
  padding: 16px 18px;
  border-radius: var(--nm-r-md);
}

html body .gr-elig svg{
  flex: none;
  margin-top: 1px;
}

html body .gr-elig p{
  margin-top: 2px;
  color: var(--nm-text-2);
}

html body .gr-elig.is-ja{
  background: var(--nm-success-bg);
  color: var(--nm-success);
}

html body .gr-elig.is-nein{
  background: var(--nm-danger-bg);
  color: var(--nm-danger);
}

html body .gr-elig.is-unklar{
  background: var(--nm-warning-bg);
  color: var(--nm-warning);
}

html body .gr-inputs{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

html body .gr-money{
  position: relative;
  display: block;
}

html body .gr-money input{
  padding-right: 40px;
  font-variant-numeric: tabular-nums;
}

html body .gr-money > span{
  position: absolute;
  right: 16px;
  top: 50%;
  translate: 0 -50%;
  color: var(--nm-text-2);
}

html body .gr-examples{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

html body .gr-ex{
  min-height: 36px;
  padding: 6px 14px;
  border-radius: var(--nm-r-pill);
  border: 1px dashed var(--nm-line-strong);
  color: var(--nm-text);
  font-size: 0.9375rem;
}

html body .gr-ex[aria-pressed='true']{
  border-style: solid;
  border-color: var(--nm-brand);
  color: var(--nm-brand);
}

html body .gr-alt{
  display: grid;
  gap: 16px;
  justify-items: start;
}

html body .gr-alt p{
  color: var(--nm-text-2);
}

html body .gr-result{
  display: grid;
  gap: 16px;
  padding: clamp(20px, 4vw, 32px);
  border-radius: var(--nm-r-xl);
  background: linear-gradient(160deg, var(--nm-navy), #12193a);
  color: #eef2f9;
  --nm-text-2: #b0bcd2;
}

html body .gr-result-head{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

html body .gr-result-head h2{
  font-size: 1.5rem;
}

html body .gr-result .ui-tag--demo{
  background: rgba(255, 255, 255, 0.1);
  color: #eef2f9;
}

html body .gr-result .ui-tag--freigegeben{
  background: rgba(111, 214, 160, 0.16);
  color: #6fd6a0;
}

html body .gr-warn{
  display: flex;
  gap: 8px;
  font-size: 0.9375rem;
  color: #f2b45a;
}

html body .gr-warn svg{
  flex: none;
  margin-top: 2px;
}

html body .gr-flow{
  display: grid;
}

html body .gr-flow li{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

html body .gr-flow span{
  color: var(--nm-text-2);
}

html body .gr-flow strong{
  font-variant-numeric: tabular-nums;
}

html body .gr-flow .is-grant strong{
  color: #6fd6a0;
}

html body .gr-flow .is-net{
  border-bottom: 0;
  align-items: baseline;
}

html body .gr-flow .is-net span{
  color: #fff;
  font-weight: 650;
}

html body .gr-flow .is-net strong{
  font-family: var(--nm-font-display);
  font-size: 2.5rem;
  letter-spacing: -0.03em;
}

html body .gr-cap,
html body .gr-small{
  font-size: var(--nm-fs-small);
  color: var(--nm-text-2);
}

html body .gr-result .nm-btn--primary{
  background: var(--nm-cyan);
  color: #0b1124;
}

html body .gr-empty{
  display: grid;
  gap: 8px;
  padding-block: 16px;
}

html body .gr-empty p:last-child{
  color: var(--nm-text-2);
}

html body .gr-big{
  font-family: var(--nm-font-display);
  font-size: clamp(3rem, 2rem + 4vw, 4.5rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--nm-cyan);
}

html body .gr-how{
  background: var(--nm-surface);
}

html body .gr-how h2{
  margin-bottom: 28px;
}

html body .gr-steps{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  counter-reset: s;
}

html body .gr-steps li{
  display: grid;
  gap: 6px;
  align-content: start;
  padding: 24px;
  border-radius: var(--nm-r-lg);
  background: var(--nm-bg);
  border: 1px solid var(--nm-line);
  counter-increment: s;
}

html body .gr-steps li::before{
  content: counter(s);
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: var(--nm-brand);
  color: var(--nm-on-brand);
  font-weight: 700;
}

html body .gr-steps span{
  color: var(--nm-text-2);
}

html body .gr-facts{
  display: grid;
  gap: 32px;
  margin-top: 48px;
}

@media (min-width: 800px) {
  html body .gr-facts{
    grid-template-columns: 1.3fr 0.7fr;
  }
}

html body .gr-facts h3{
  margin-bottom: 14px;
}

html body .gr-facts ul:not(.gr-sources){
  display: grid;
  gap: 10px;
}

html body .gr-facts ul:not(.gr-sources) li{
  position: relative;
  padding-left: 22px;
  color: var(--nm-text-2);
}

html body .gr-facts ul:not(.gr-sources) li::before{
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nm-brand);
}

html body .gr-sources{
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}

html body .gr-sources a{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* src/v4/components/AddonPicker.css */
/* Elementor: Custom CSS am Zusatzverkauf-Block des Preisfinder-Widgets */
html body .ad{
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

html body .ad-title{
  margin-bottom: 8px;
  font-weight: 650;
}

html body .ad-list{
  display: grid;
  gap: 8px;
}

html body .ad-item{
  display: grid;
  grid-template-columns: auto 40px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 10px 14px;
  border-radius: var(--nm-r-sm);
  border: 1.5px solid var(--nm-line);
  cursor: pointer;
  transition: border-color var(--nm-t-fast) ease, background-color var(--nm-t-fast) ease;
}

html body .ad-item:hover{
  border-color: var(--nm-line-strong);
}

html body .ad-item:has(input:checked){
  border-color: var(--nm-brand);
  background: color-mix(in srgb, var(--nm-brand) 8%, transparent);
}

html body .ad-item input{
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--nm-brand);
}

html body .ad-art{
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: linear-gradient(180deg, var(--nm-stage-a), var(--nm-stage-b));
}

html body .ad-art .dr{
  width: 30px;
  height: 30px;
  filter: none;
}

html body .ad-text{
  display: grid;
  min-width: 0;
  line-height: 1.3;
}

html body .ad-text small{
  font-size: 0.8125rem;
  color: var(--nm-text-2);
}

html body .ad-price{
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

html body .ad-note{
  font-size: 0.8125rem;
  color: var(--nm-text-3);
}

html body .ad--shop{
  width: 100%;
  margin-top: 16px;
  padding: 18px 20px;
  border-radius: var(--nm-r-md);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
}

html body .ad--shop .ad-title{
  margin-bottom: 4px;
  font-family: var(--nm-font-text);
  font-size: 1rem;
  letter-spacing: 0;
}

html body .ad-item--btn{
  grid-template-columns: 40px 1fr auto 44px;
  cursor: default;
}

html body .ad-add{
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--nm-surface-2);
  color: var(--nm-brand);
}

html body .ad-add:hover:not(:disabled){
  background: var(--nm-brand);
  color: var(--nm-on-brand);
}

html body .ad-add:disabled{
  color: var(--nm-success);
  cursor: default;
}

/* src/v4/pages/Preisrechner.css */
/* Elementor: Custom CSS am Plugin-Widget „Preisrechner“ */
html body .pc-wrap{
  display: grid;
  gap: 28px;
  max-width: 1040px;
}

html body .pc-head{
  display: grid;
  gap: 14px;
  text-align: center;
  justify-items: center;
}

html body .pc-head .nm-lead{
  max-width: 56ch;
}

html body .pc-steps{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

html body .pc-steps button{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 8px 12px;
  border-radius: var(--nm-r-pill);
  background: var(--nm-surface-2);
  color: var(--nm-text-2);
  font-weight: 600;
  font-size: 0.9375rem;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

html body .pc-steps button:disabled{
  cursor: default;
}

html body .pc-steps span{
  flex: none;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--nm-surface);
  font-size: 0.8125rem;
  font-weight: 700;
}

html body .pc-steps .is-current button{
  background: var(--nm-brand);
  color: var(--nm-on-brand);
}

html body .pc-steps .is-current span{
  background: rgba(255, 255, 255, 0.2);
  color: inherit;
}

html body .pc-steps .is-done button{
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  color: var(--nm-text);
}

html body .pc-steps .is-done button:hover{
  border-color: var(--nm-brand);
}

html body .pc-steps .is-done span{
  background: var(--nm-success-bg);
  color: var(--nm-success);
}

@media (max-width: 640px) {
  html body .pc-steps button{
    justify-content: center;
    padding: 8px;
    font-size: 0;
  }
  html body .pc-steps span{
    font-size: 0.8125rem;
  }
  html body .pc-steps .is-current button{
    font-size: 0.875rem;
  }
}

html body .pc-panel{
  display: grid;
  gap: 20px;
  padding: clamp(20px, 4vw, 40px);
  border-radius: var(--nm-r-xl);
  background: var(--nm-surface);
  border: 1px solid var(--nm-line);
  box-shadow: var(--nm-shadow-float);
}

html body .pc-back{
  justify-self: start;
  margin-left: -8px;
}

html body .pc-q{
  font-size: var(--nm-fs-h3);
}

html body .pc-options{
  display: grid;
  gap: 10px;
}

html body .pc-options--brands{
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr));
}

html body .pc-options--models{
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
  max-height: 520px;
  overflow-y: auto;
  padding: 2px;
}

html body .pc-options--repairs{
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
}

html body .pc-option{
  display: grid;
  gap: 2px;
  width: 100%;
  height: 100%;
  min-height: 64px;
  padding: 14px 18px;
  border-radius: var(--nm-r-md);
  border: 1.5px solid var(--nm-line);
  background: var(--nm-bg);
  color: var(--nm-text);
  text-align: left;
  text-decoration: none;
  transition: border-color var(--nm-t-fast) ease, background-color var(--nm-t-fast) ease;
}

html body .pc-option:hover{
  border-color: var(--nm-brand);
  background: var(--nm-surface);
}

html body .pc-option small{
  color: var(--nm-text-2);
  font-size: var(--nm-fs-small);
}

html body .pc-option--model{
  grid-template-columns: 36px 1fr;
  align-items: center;
  gap: 12px;
}

html body .pc-art .dr{
  height: 44px;
  width: auto;
  filter: none;
}

html body .pc-option--repair em{
  margin-top: 8px;
  font-style: normal;
  font-weight: 700;
  color: var(--nm-brand);
}

html body .pc-empty{
  color: var(--nm-text-2);
}

html body .pc-result{
  display: grid;
  gap: 32px;
}

@media (min-width: 880px) {
  html body .pc-result{
    grid-template-columns: 1.2fr 0.8fr;
    gap: 40px;
  }
}

html body .pc-result-main{
  display: grid;
  gap: 20px;
  align-content: start;
}

html body .pc-result-head{
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 20px;
  align-items: center;
}

html body .pc-result-art{
  display: grid;
  place-items: center;
  aspect-ratio: 3 / 4;
  padding: 12px;
  border-radius: var(--nm-r-md);
  background: linear-gradient(180deg, var(--nm-stage-a), var(--nm-stage-b));
}

html body .pc-result-art .dr{
  max-height: 100%;
  width: auto;
}

html body .pc-result-head > div{
  display: grid;
  gap: 6px;
}

html body .pc-result-label{
  font-weight: 650;
  color: var(--nm-text-2);
}

html body .pc-result-price{
  font-family: var(--nm-font-display);
  font-size: clamp(2.75rem, 2rem + 3vw, 4rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

html body .pc-variants{
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
}

html body .pc-variants legend{
  margin-bottom: 8px;
  font-weight: 650;
}

html body .pc-variant{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border-radius: var(--nm-r-sm);
  border: 1.5px solid var(--nm-line-strong);
  cursor: pointer;
}

html body .pc-variant:has(input:checked){
  border-color: var(--nm-brand);
  background: color-mix(in srgb, var(--nm-brand) 8%, transparent);
}

html body .pc-variant input{
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--nm-brand);
}

html body .pc-variant span{
  display: grid;
}

html body .pc-variant small{
  color: var(--nm-text-2);
  font-size: var(--nm-fs-small);
}

html body .pc-variant b{
  font-variant-numeric: tabular-nums;
}

html body .pc-incl{
  font-size: 0.9375rem;
  color: var(--nm-text-2);
}

html body .pc-book{
  display: grid;
  gap: 10px;
  align-content: start;
}

html body .pc-book-title{
  font-size: 1.25rem;
  margin-bottom: 4px;
}

html body .pc-way{
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border-radius: var(--nm-r-md);
  border: 1.5px solid var(--nm-line);
  color: var(--nm-text);
  text-decoration: none;
  transition: border-color var(--nm-t-fast) ease;
}

html body .pc-way:first-of-type{
  border-color: var(--nm-brand);
  background: color-mix(in srgb, var(--nm-brand) 6%, transparent);
}

html body .pc-way:hover{
  border-color: var(--nm-brand);
}

html body .pc-way svg{
  box-sizing: content-box;
  padding: 11px;
  border-radius: 12px;
  background: var(--nm-surface-2);
  color: var(--nm-brand);
}

html body .pc-way span{
  display: grid;
}

html body .pc-way small{
  color: var(--nm-text-2);
  font-size: var(--nm-fs-small);
}

html body .pc-foot{
  text-align: center;
  color: var(--nm-text-2);
}

html body .pc-steps em{font-style:normal}html body .pc-option,html body .pc-steps button,html body .pc-back{font-family:inherit;line-height:inherit}html body .pc-option{color:var(--nm-text);font-size:1.0625rem;font-weight:400}html body [data-nmrs-rechner] [hidden]{display:none!important}html body .pt-table{font-size:inherit;margin:0}html body .pt-table.pt-table th,html body .pt-table.pt-table td{line-height:inherit;vertical-align:middle;border-width:0 0 1px;border-style:solid;border-color:var(--nm-line);background:transparent}html body .pt-table.pt-table thead th{background:var(--nm-surface-2)}html body .pt-table.pt-table thead:first-child tr:first-child th{border-top:0}html body .pt-table.pt-table tbody tr:last-child>*{border-bottom:0}html body .pt-chip{color:var(--nm-text);line-height:1.55;font-family:inherit}html body .pt-tab{background:transparent;border:0;line-height:1.55;font-family:inherit;font-size:inherit}html body .gr-ex,html body .ad-add,html body .pt-more button{font-family:inherit}html body .gr-ex{background:transparent;line-height:1.55}html body .rv-track figcaption{font-size:inherit;color:inherit;line-height:inherit;margin:0}html body .rv-track blockquote{padding:0;border:0;font-style:normal}html body .stars{display:inline-flex;gap:2px;color:var(--nm-star)}html body .stars svg{display:block}html body .pc-option{white-space:normal;overflow-wrap:anywhere;line-height:1.55}html body .pc-option:is(:hover,:focus){color:var(--nm-text);background:var(--nm-surface)}html body .pt-chip:not([aria-pressed='true']):is(:hover,:focus){color:var(--nm-text);background:var(--nm-surface)}html body .pt-chip[aria-pressed='true']:is(:hover,:focus){color:var(--nm-bg);background:var(--nm-text)}html body .pt-tab:not([aria-pressed='true']):is(:hover,:focus){background:transparent}html body .pt-tab[aria-pressed='true']:is(:hover,:focus){background:var(--nm-surface);color:var(--nm-text)}html body .gr-ex:not([aria-pressed='true']):is(:hover,:focus){color:var(--nm-text);background:transparent}html body .gr-ex[aria-pressed='true']:is(:hover,:focus){color:var(--nm-brand)}html body .ds-all:is(:hover,:focus){color:var(--nm-brand)}html body .hd-icon:is(:hover,:focus){color:var(--nm-text)}html body .hd-icon:focus:not(:hover){background:transparent}html body .sp-remove:focus:not(:hover){color:var(--nm-text-2);background:transparent}html body .ad-add:focus:not(:hover){background:var(--nm-surface-2);color:var(--nm-brand)}html body .pc-steps li:not(.is-done):not(.is-current) button:is(:hover,:focus){background:var(--nm-surface-2);color:var(--nm-text-2)}html body .pc-steps .is-current button:is(:hover,:focus){background:var(--nm-brand);color:var(--nm-on-brand)}html body .pc-steps .is-done button:is(:hover,:focus){background:var(--nm-surface);color:var(--nm-text)}html body :is(.e-con,.elementor-widget):not(.elementor-location-header *):has(form.ds .nmp-pop:not([hidden])){position:relative;z-index:30}html body .e-con.e-parent:not(.elementor-location-header *):has(form.ds .nmp-pop:not([hidden])){overflow:visible;clip-path:inset(0 0 -100vh 0)}html body .pt-nachbau{display:grid;gap:12px;margin-top:20px;padding:20px 22px;border-radius:var(--nm-r-md);background:var(--nm-warning-bg);border:1px solid color-mix(in srgb,var(--nm-warning) 22%,transparent)}html body .pt-nachbau h3{margin:0;font-size:1.0625rem;line-height:1.35}html body .pt-nachbau ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}html body .pt-nachbau li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;color:var(--nm-text);font-size:.9688rem;line-height:1.5}html body .pt-nachbau li svg{margin-top:3px;color:var(--nm-warning)}html body .pt-nachbau p{margin:0;color:var(--nm-text-2);font-size:.9375rem}html body .pc-result-main .pt-nachbau{margin-top:0}html body .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}