/* Hero variations styles */

.hv-stacked, .hv-contact, .hv-mast {
  width: 1280px;
  margin: 0 auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--shadow-2);
  overflow: hidden;
  box-sizing: border-box;
}
.hv-stacked *, .hv-contact *, .hv-mast * { box-sizing: border-box; }

/* ---- Stacked ---- */
.hv-stacked { padding: 60px 80px 80px; text-align: center; }
.hv-stacked__collage {
  position: relative;
  height: 420px;
  margin-bottom: 40px;
}
.hv-poster {
  position: absolute;
  top: 0; left: 50%; transform: translateX(-50%) rotate(-1.5deg);
  width: 480px; height: 400px;
  padding: 18px 18px 56px;
  background: linear-gradient(135deg, #F5C4B0 0%, #E8DCC8 60%, #C8E8E2 100%);
  border-radius: 4px;
}
.hv-poster::before {
  content: attr(data-name);
  position: absolute; bottom: 14px; left: 14px; right: 14px;
  font-family: 'Caveat', cursive; font-size: 16px; color: var(--text-mid);
  text-align: center; font-style: italic;
}
.hv-stacked__text { max-width: 720px; margin: 0 auto; }
.hv-h1 {
  font-size: 80px; line-height: 0.98; letter-spacing: -2px;
  margin: 16px 0 20px;
}
.hv-sub { font-size: 19px; color: var(--text-mid); margin-bottom: 32px; }

/* ---- Contact sheet ---- */
.hv-contact { position: relative; padding: 0; min-height: 560px; }
.hv-contact__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 4px;
  height: 560px;
  background: #333;
  padding: 4px;
}
.hv-contact__cell {
  position: relative;
  background: #222;
  overflow: hidden;
}
.hv-contact__cell img {
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.9) contrast(1.05);
  transition: all 300ms;
}
.hv-contact__cell:hover img { filter: saturate(1.2) contrast(1.1); }
.hv-contact__label {
  position: absolute; top: 10px; left: 12px;
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  color: #fff; background: rgba(0,0,0,0.5); padding: 3px 7px; border-radius: 3px;
}
.hv-contact__overlay {
  position: absolute;
  bottom: 40px; left: 40px;
  background: #fff;
  padding: 32px 40px;
  border-radius: 8px;
  box-shadow: var(--shadow-3);
  max-width: 520px;
  transform: rotate(-1deg);
}
.hv-contact__overlay::before {
  content: '';
  position: absolute;
  top: -14px; left: 40px;
  width: 100px; height: 26px;
  background: rgba(226, 138, 87, 0.5);
  transform: rotate(-4deg);
  border-left: 1px dashed rgba(0,0,0,0.08);
  border-right: 1px dashed rgba(0,0,0,0.08);
}
.hv-contact__overlay .hv-h1 { font-size: 52px; line-height: 1; letter-spacing: -1.2px; margin: 12px 0 24px; }

/* ---- Masthead ---- */
.hv-mast {
  padding: 40px 80px 60px;
  background: var(--cream);
  position: relative;
}
.hv-mast__header {
  display: flex; justify-content: space-between; align-items: center;
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  letter-spacing: 0.18em; color: var(--text-muted);
  margin-bottom: 14px;
}
.hv-mast__title {
  font-size: 180px; line-height: 0.88; text-align: center;
  color: var(--jm-pink); letter-spacing: -6px;
  margin: 0;
}
.hv-mast__rule {
  height: 3px; background: var(--text);
  margin: 8px 0 32px;
}
.hv-mast__cover {
  position: relative;
  height: 520px;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: var(--shadow-3);
}
.hv-mast__cover img { width: 100%; height: 100%; object-fit: cover; }
.hv-mast__cline {
  position: absolute;
  top: 50%; left: 40px;
  background: #fff;
  padding: 20px 28px;
  border-radius: 4px;
  max-width: 360px;
  transform: rotate(-2deg);
  box-shadow: var(--shadow-2);
}
.hv-mast__coverlines {
  display: flex; justify-content: space-between;
  margin-top: 24px;
  font-family: 'Caveat', cursive; font-size: 20px;
  color: var(--text);
}

/* ===== PLP ===== */
.plp { background: var(--cream); }
.plp *, .plp *::before, .plp *::after { box-sizing: border-box; }
.plp__banner {
  margin: 40px 80px 60px;
  padding: 56px 60px;
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--shadow-1);
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 60px;
  align-items: center;
}
.plp__banner::before {
  content: ''; position: absolute;
  top: -14px; left: 80px;
  width: 120px; height: 28px;
  background: rgba(226, 114, 151, 0.45);
  transform: rotate(-3deg);
  border-left: 1px dashed rgba(0,0,0,0.08);
  border-right: 1px dashed rgba(0,0,0,0.08);
}
.plp__banner-eyebrow {
  font-family: 'Nunito'; font-weight: 800; font-size: 12px;
  letter-spacing: 0.22em; color: var(--jm-yellow); margin-bottom: 16px;
}
.plp__banner-h1 { font-family: 'Nunito'; font-weight: 900; font-size: 64px; line-height: 1.02; letter-spacing: -1.5px; margin: 0 0 14px; }
.plp__banner-sub { font-size: 17px; color: var(--text-mid); max-width: 540px; }
.plp__banner-count {
  font-family: 'Caveat', cursive; font-size: 28px; color: var(--jm-pink);
  text-align: right;
}
.plp__banner-count strong { display: block; font-family: 'Nunito'; font-weight: 900; font-size: 72px; color: var(--jm-pink-dark, #C75B80); line-height: 1; letter-spacing: -2px; }

/* Underkategori-bånd (2026-07-30). Spænder over begge bannerkolonner, så det
   ligger under både titel og tælling. Banner-gap'et er delt op i column-gap
   for ikke at skyde 60px ind mellem titelrækken og båndet — banneret havde kun
   én række før, så eksisterende sider ser ud præcis som før. */
.plp__subcats { grid-column: 1 / -1; margin-top: 30px; padding-top: 22px; border-top: 1px dashed var(--border, #ECEAE6); }
.plp__subcats-eyebrow {
  display: block; margin-bottom: 12px;
  font-family: 'Nunito'; font-weight: 800; font-size: 12px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-mid);
}
.plp__subcats ul { display: flex; flex-wrap: wrap; gap: 8px 26px; list-style: none; margin: 0; padding: 0; }
.plp__subcats li { margin: 0; }
.plp__subcats a {
  display: inline-flex; align-items: baseline; gap: 6px;
  font-family: 'Nunito'; font-weight: 700; font-size: 15px;
  color: var(--text); text-decoration: none;
  border-bottom: 1px solid transparent;
}
.plp__subcats a:hover { color: var(--jm-pink-dark, #C75B80); border-bottom-color: currentColor; }
.plp__subcats-cnt { font-weight: 600; font-size: 12px; color: var(--text-mid); font-variant-numeric: tabular-nums; }

@media (max-width: 767px) {
  .plp__subcats { margin-top: 22px; padding-top: 18px; }
  .plp__subcats ul { gap: 6px 18px; }
  .plp__subcats a { font-size: 14px; }
}

.plp__toolbar {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0 80px 32px;
  border-bottom: 1px dashed var(--border);
  margin-bottom: 40px;
}
.plp__filters { display: flex; gap: 10px; flex-wrap: wrap; }
.plp__chip {
  font-family: 'Nunito'; font-weight: 700; font-size: 13px;
  padding: 10px 16px; border-radius: 999px;
  background: #fff; border: 1.5px solid var(--border); cursor: pointer;
  transition: all 200ms;
}
.plp__chip--active { background: var(--jm-pink); color: #fff; border-color: var(--jm-pink); }
.plp__chip:hover:not(.plp__chip--active) { border-color: var(--jm-pink); color: var(--jm-pink); }
.plp__sort {
  font-family: 'Nunito'; font-weight: 700; font-size: 14px;
  display: flex; align-items: center; gap: 8px; color: var(--text-mid);
}
.plp__sort select {
  font-family: 'Nunito'; font-weight: 700; font-size: 14px;
  padding: 10px 14px; border: 1.5px solid var(--border); border-radius: 10px;
  background: #fff;
}
.plp__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 48px 32px;
  padding: 0 80px 80px;
}
.plp__facets {
  margin: 0 80px 60px;
  background: #fff;
  padding: 28px 36px;
  border-radius: 14px;
  box-shadow: var(--shadow-1);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
}
.plp__facet h4 {
  font-family: 'Nunito'; font-weight: 800; font-size: 11px;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--jm-yellow);
  margin: 0 0 12px;
}
.plp__facet-list { display: flex; flex-direction: column; gap: 8px; }
.plp__facet-list label {
  font-size: 14px; color: var(--text-mid);
  display: flex; align-items: center; gap: 8px; cursor: pointer;
}
.plp__facet-list label:hover { color: var(--text); }

/* ===== PDP ===== */
.pdp { background: var(--cream); }
.pdp *, .pdp *::before, .pdp *::after { box-sizing: border-box; }
.pdp__breadcrumb {
  padding: 20px 80px 0;
  font-family: 'Nunito'; font-weight: 600; font-size: 13px; color: var(--text-muted);
  /* align with the capped container */
  max-width: calc(var(--container-max) + 160px);
  margin-inline: auto;
}
.pdp__breadcrumb a { color: var(--jm-pink); text-decoration: none; }
.pdp__main {
  display: grid; grid-template-columns: 1fr 520px;
  gap: 80px;
  padding: 40px 80px 80px;
  /* cap content (tracks = 1360 at wide screens, gallery stops ballooning) */
  max-width: calc(var(--container-max) + 160px);
  margin-inline: auto;
}
.pdp__gallery { position: relative; }
.pdp__hero-img {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--shadow-2);
  background: #fff; padding: 18px 18px 56px;
  border: 0; width: 100%; display: block;
  cursor: zoom-in; -webkit-appearance: none; appearance: none;
  font: inherit; color: inherit;
}
.pdp__hero-img:focus-visible { outline: 3px solid var(--jm-pink); outline-offset: 4px; }
.pdp__hero-zoom {
  position: absolute; top: 12px; right: 12px;
  width: 36px; height: 36px; border-radius: 999px;
  background: rgba(255,255,255,0.92); color: var(--text-mid);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
  opacity: 0; transition: opacity 180ms;
  pointer-events: none;
}
.pdp__hero-img:hover .pdp__hero-zoom,
.pdp__hero-img:focus-visible .pdp__hero-zoom { opacity: 1; }
.pdp__thumb { border: 0; font: inherit; }
.pdp__thumb:focus-visible { outline: 2px solid var(--jm-pink); outline-offset: 2px; }
.pdp__hero-img::before {
  content: ''; position: absolute;
  top: -14px; left: 80px;
  width: 120px; height: 26px;
  background: rgba(226, 138, 87, 0.45);
  transform: rotate(-3deg);
  border-left: 1px dashed rgba(0,0,0,0.08);
  border-right: 1px dashed rgba(0,0,0,0.08);
}
.pdp__hero-img img {
  width: 100%; height: 100%;
  object-fit: cover; border-radius: 6px;
  display: block;
}
.pdp__hero-cap {
  position: absolute; bottom: 14px; left: 18px; right: 18px;
  font-family: 'Caveat', cursive; font-size: 18px; color: var(--text-mid);
  text-align: center; font-style: italic;
}
.pdp__thumbs {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
  margin-top: 20px;
}
.pdp__thumb {
  aspect-ratio: 1/1; border-radius: 8px; overflow: hidden;
  background: #fff; padding: 6px;
  cursor: pointer; transition: transform 200ms;
}
.pdp__thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.pdp__thumb--active { box-shadow: 0 0 0 2px var(--jm-pink); }
.pdp__thumb:hover { transform: rotate(-2deg); }

.pdp__info {
  position: sticky; top: 20px; align-self: start;
  /* Bug 7 (ported fra fabricly e7541d1, 2026-07-02): aside ejer BEGGE grid-rækker
     i højre spor, så den aldrig maler hen over .pdp__info-pair når den er højere
     end galleriet. grid-column skal være eksplicit — definite-row + auto-column
     placeres FØR auto-flow galleriet og ville lande i kolonne 1 (layout-flip). */
  grid-row: 1 / span 2;
  grid-column: 2;
}
.pdp__info-eyebrow {
  font-family: 'Nunito'; font-weight: 800; font-size: 11px;
  letter-spacing: 0.22em; color: var(--jm-pink); margin-bottom: 12px;
}
.pdp__info-num {
  font-family: 'JetBrains Mono', monospace; font-size: 12px;
  color: var(--text-muted); margin-bottom: 6px;
}
.pdp__h1 {
  font-family: 'Nunito'; font-weight: 900;
  font-size: 48px; line-height: 1.05; letter-spacing: -1px;
  margin: 0 0 12px;
}
.pdp__h1 .sb-underline { position: relative; }
.pdp__sub {
  font-size: 15px; color: var(--text-muted); font-style: italic; margin-bottom: 28px;
}
.pdp__price-row {
  display: flex; align-items: baseline; gap: 12px;
  padding: 20px 0;
  border-top: 1px dashed var(--border);
  border-bottom: 1px dashed var(--border);
  margin-bottom: 28px;
}
.pdp__price {
  font-family: 'Nunito'; font-weight: 900; font-size: 36px;
  color: var(--jm-yellow-dark); letter-spacing: -0.5px;
}
.pdp__price-unit { font-size: 14px; color: var(--text-muted); }
.pdp__gots {
  margin-left: auto;
  font-family: 'Nunito'; font-weight: 700; font-size: 11px;
  color: var(--jm-pink); border: 1.5px solid var(--jm-pink);
  padding: 5px 10px; border-radius: 4px; letter-spacing: 0.12em;
}

.pdp__qty-block { margin-bottom: 24px; }
.pdp__qty-label {
  font-family: 'Nunito'; font-weight: 800; font-size: 14px;
  margin-bottom: 10px; display: flex; justify-content: space-between;
}
.pdp__qty-label .sb-hand { font-size: 16px; color: var(--text-muted); margin-left: 10px; }
.pdp__qty-options {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
}
.pdp__qty-opt {
  padding: 14px 10px; text-align: center;
  font-family: 'Nunito'; font-weight: 700; font-size: 14px;
  background: #fff; border: 1.5px solid var(--border);
  border-radius: 10px; cursor: pointer;
  transition: all 200ms;
}
.pdp__qty-opt--active { background: var(--jm-pink); color: #fff; border-color: var(--jm-pink); }
.pdp__qty-opt:hover:not(.pdp__qty-opt--active) { border-color: var(--jm-pink); }
.pdp__qty-steps {
  display: flex; align-items: center; justify-content: center; gap: 20px;
  background: #fff; border: 1.5px solid var(--border); border-radius: 10px;
  padding: 12px; margin-top: 12px;
}
.pdp__qty-steps button {
  width: 32px; height: 32px; border-radius: 6px;
  background: var(--jm-pink-light); border: none; cursor: pointer;
  font-size: 20px; color: var(--jm-pink-dark); font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  line-height: 1; padding: 0;
}
.pdp__qty-steps span { font-family: 'Nunito'; font-weight: 800; font-size: 18px; min-width: 60px; text-align: center; }

/* Stock + urgency block */
.pdp__stock {
  background: #fff;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 24px;
}
.pdp__stock-row {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Nunito'; font-size: 14px; color: var(--text);
  margin-bottom: 10px;
}
.pdp__stock-row strong { font-weight: 800; color: #2D8A3E; font-size: 15px; }
.pdp__stock-meters { color: var(--text-muted); font-size: 13px; }
.pdp__stock-meters em { font-style: normal; font-weight: 800; color: var(--jm-yellow-dark); }
.pdp__stock-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: #4CAF50;
  box-shadow: 0 0 0 3px rgba(76,175,80,0.2);
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(76,175,80,0.2); }
  50% { box-shadow: 0 0 0 5px rgba(76,175,80,0.1); }
}
.pdp__stock-bar {
  height: 6px; background: var(--cream-darker);
  border-radius: 999px; overflow: hidden;
  margin-bottom: 10px;
}
.pdp__stock-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--jm-yellow), var(--gold));
  border-radius: 999px;
}
.pdp__stock-note {
  display: flex; align-items: center; gap: 7px;
  font-family: 'Nunito'; font-weight: 600; font-size: 12px;
  color: var(--text-muted); font-style: italic;
}
.pdp__stock-note svg { color: var(--jm-yellow); }

/* Trust block */
.pdp__trust { margin-top: 24px; }
.pdp__trust-row--ship {
  display: flex; align-items: center; gap: 14px;
  background: rgba(76,175,80,0.10);
  border: 1px solid rgba(76,175,80,0.22);
  padding: 16px 20px;
  border-radius: 12px;
  margin-bottom: 12px;
}
.pdp__trust-row--ship svg { color: #2D8A3E; stroke: currentColor; }
.pdp__trust-row--ship strong {
  font-family: 'Nunito'; font-weight: 800; font-size: 15px; color: var(--text);
  display: block;
}
.pdp__trust-row--ship span { font-family: 'Nunito'; font-weight: 500; font-size: 13px; color: var(--text-mid); }
.pdp__trust-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  background: #fff;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.pdp__trust-cell {
  display: flex; align-items: flex-start; gap: 10px;
  font-family: 'Nunito';
}
.pdp__trust-cell strong { font-weight: 800; font-size: 13px; line-height: 1.25; color: var(--text); display: block; margin-bottom: 2px; }
.pdp__trust-cell span { font-weight: 500; font-size: 11px; color: var(--text-muted); line-height: 1.35; }
.pdp__trust-badges {
  display: flex; flex-direction: column; gap: 8px;
  padding-left: 4px;
}
.pdp__trust-badge {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Nunito'; font-weight: 600; font-size: 13px;
  color: var(--text-mid); font-style: italic;
}
.pdp__trust-badge em { font-style: normal; font-weight: 800; color: var(--text); }
.pdp__flag { font-style: normal; }

.pdp__cta { width: 100%; font-size: 16px; padding: 20px; margin-bottom: 16px; justify-content: center; }
.pdp__fav {
  width: 100%; padding: 14px;
  background: transparent; border: 1.5px dashed var(--border);
  border-radius: 12px; cursor: pointer;
  font-family: 'Nunito'; font-weight: 700; font-size: 14px; color: var(--text-mid);
}

.pdp__info-pair {
  /* Bug 7 (2026-07-02): KUN venstre spor (var 1 / -1) — det fulde bånd gled
     ind under den sticky købskolonne når galleriet var kortere. */
  grid-column: 1;
  margin-top: 56px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
  align-items: start;
}
.pdp__info-pair > .pdp__details { margin-top: 0; }
.pdp__info-pair > .pdp__accordion { margin-top: 0; }
@media (max-width: 1279px) { /* Bug 7: parret sidder i det smallere venstre spor — stak kolonnerne tidligere */
  .pdp__info-pair { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 900px) {
  .pdp__info-pair { margin-top: 32px; }
}

.pdp__details {
  margin-top: 28px;
  background: #fff; border-radius: 14px;
  padding: 24px 28px; box-shadow: var(--shadow-1);
}
.pdp__detail-row {
  display: flex; justify-content: space-between; padding: 10px 0;
  border-bottom: 1px dashed var(--border-subtle);
  font-size: 14px;
}
.pdp__detail-row:last-child { border-bottom: none; }
.pdp__detail-row span:first-child { color: var(--text-muted); }
.pdp__detail-row span:last-child { font-family: 'Nunito'; font-weight: 700; color: var(--text); }
.pdp__details-more { margin-top: 4px; }
.pdp__details-more > summary {
  list-style: none; cursor: pointer;
  font-family: 'Nunito'; font-weight: 700; font-size: 13px;
  color: var(--jm-pink-dark); padding: 10px 0 4px;
  border-top: 1px dashed var(--border-subtle);
  display: flex; align-items: center; gap: 6px;
}
.pdp__details-more > summary::-webkit-details-marker { display: none; }
.pdp__details-more > summary::after {
  content: '+'; font-size: 16px; font-weight: 800; margin-left: auto;
  transition: transform 200ms;
}
.pdp__details-more[open] > summary::after { content: '−'; }
.pdp__details-more[open] > summary { border-bottom: 1px dashed var(--border-subtle); margin-bottom: 0; }

.pdp__story {
  padding: 56px 40px;
  background: #fff;
  margin: 0 80px 80px;
  border-radius: 16px;
  display: grid; grid-template-columns: 220px 1fr;
  gap: 60px;
  position: relative;
}
/* Width cap — DESKTOP ONLY (calc(100% - 160px) crushes the card on phones). */
@media (min-width: 900px) {
  .pdp__story { max-width: min(var(--container-max), calc(100% - 160px)); margin-inline: auto; }
}
/* 900-1279px: smallere købskolonne så venstre spor (galleri + info-pair)
   forbliver brugbart — med fast 520px aside skrumpede det til ~264px @1024
   (ported fra fabricly 61f658d, 2026-07-02). */
@media (min-width: 900px) and (max-width: 1279px) {
  .pdp__main { grid-template-columns: 1fr 400px; gap: 40px; padding: 24px 40px 48px; }
}
.pdp__story::before {
  content: ''; position: absolute;
  top: -14px; right: 120px;
  width: 100px; height: 26px;
  background: rgba(226, 138, 87, 0.45);
  transform: rotate(4deg);
  border-left: 1px dashed rgba(0,0,0,0.08);
  border-right: 1px dashed rgba(0,0,0,0.08);
}
.pdp__story-portrait {
  align-self: start;
  text-align: center;
}
.pdp__story-h { font-family: 'Nunito'; font-weight: 900; font-size: 32px; line-height: 1.15; margin: 0 0 16px; }
.pdp__story-naehnotiz {
  position: relative;
  background: #fff; border-radius: 14px;
  padding: 24px 28px;
  box-shadow: var(--shadow-1);
  margin: 6px 0 28px;
}
.pdp__story-naehnotiz-tape {
  top: -12px; left: 40px;
  width: 80px; height: 22px;
  transform: rotate(-3deg);
  background: rgba(226,114,151,0.45);
}
.pdp__story-naehnotiz-quote {
  font-size: 20px; line-height: 1.4;
  margin: 0 0 8px; color: var(--text);
}
.pdp__story-naehnotiz-attr {
  font-size: 13px; color: var(--text-muted); font-style: italic;
}
.pdp__story-p { font-size: 16px; line-height: 1.7; color: var(--text-mid); margin: 0 0 16px; }

.pdp__related {
  padding: 0 80px 100px;
}
.pdp__related-h {
  font-family: 'Nunito'; font-weight: 900; font-size: 36px;
  margin: 0 auto 36px; text-align: center;
  max-width: var(--container-max); /* shared content cap */
}
.pdp__related-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
  max-width: var(--container-max); margin: 0 auto; /* shared content cap */
}


/* =========================================================
   CART DRAWER
   ========================================================= */
.cart-stage {
  position: relative;
  background: var(--cream);
  box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
}
.cart-stage * { box-sizing: border-box; }
.cart-stage__bg { position: absolute; inset: 0; background:
  radial-gradient(circle at 20% 30%, rgba(226, 138, 87,0.08), transparent 40%),
  radial-gradient(circle at 80% 70%, rgba(226,114,151,0.08), transparent 40%),
  var(--cream); }
.cart-stage__hero-tease { position: absolute; top: 100px; left: 80px; opacity: 0.4; }
.cart-stage__overlay { position: absolute; inset: 0; background: rgba(40,30,30,0.32); backdrop-filter: blur(2px); }

.cart-stage .cart {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: 480px;
  background: #fff;
  display: flex; flex-direction: column;
  box-shadow: -20px 0 60px rgba(0,0,0,0.18);
  background-image:
    linear-gradient(rgba(255,255,255,0.96), rgba(255,255,255,0.96)),
    repeating-linear-gradient(0deg, transparent 0 27px, rgba(226,114,151,0.06) 27px 28px);
}
.cart__header {
  padding: 28px 32px 20px;
  display: flex; justify-content: space-between; align-items: flex-start;
  border-bottom: 1px dashed var(--border);
}
.cart__eyebrow {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 11px; color: var(--jm-yellow);
}
.cart__title { font-size: 30px; margin: 4px 0 0; line-height: 1.1; }
.cart__close {
  background: var(--cream-dark); border: none; border-radius: 50%;
  width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--text-mid);
}

.cart__shipping {
  padding: 18px 32px;
  background: linear-gradient(90deg, rgba(226,114,151,0.06), rgba(226, 138, 87,0.06));
  border-bottom: 1px dashed var(--border);
}
.cart__shipping-row { font-size: 13px; color: var(--text-mid); margin-bottom: 8px; }
.cart__shipping-row strong { color: var(--jm-yellow); font-weight: 800; }
.cart__shipping-bar {
  height: 6px; border-radius: 3px;
  background: var(--cream-darker);
  position: relative;
}
.cart__shipping-fill {
  height: 100%; border-radius: 3px;
  background: linear-gradient(90deg, var(--jm-pink), var(--jm-yellow));
  transition: width 400ms ease-out;
}
.cart__shipping-marker { position: absolute; top: -4px; transform: translateX(-50%); }

.cart__items { flex: 1; overflow-y: auto; padding: 16px 32px; }
.cart-line {
  display: grid; grid-template-columns: 36px 80px 1fr 24px;
  gap: 14px; padding: 18px 0; border-bottom: 1px dashed var(--border);
  align-items: flex-start;
}
.cart-line:last-child { border-bottom: none; }
.cart-line__num {
  font-family: 'JetBrains Mono', monospace; font-size: 10px;
  color: var(--text-muted); letter-spacing: 0.08em;
  padding-top: 4px;
}
.cart-line__img {
  width: 80px; height: 80px; border-radius: 4px;
  overflow: hidden; background: var(--cream-dark);
  position: relative;
}
.cart-line__img img { width: 100%; height: 100%; object-fit: cover; }
.cart-line__title { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 15px; line-height: 1.25; }
.cart-line__sub { font-size: 11px; color: var(--text-muted); letter-spacing: 0.04em; margin: 2px 0 10px; }
.cart-line__qty-row { display: flex; justify-content: space-between; align-items: center; }
.cart-line__qty-stepper {
  display: flex; align-items: center; gap: 0;
  background: var(--cream-dark); border-radius: 999px; overflow: hidden;
  font-family: 'Nunito', sans-serif; font-weight: 700;
}
.cart-line__qty-stepper button {
  background: transparent; border: none; width: 26px; height: 26px;
  cursor: pointer; font-size: 14px; color: var(--text);
}
.cart-line__qty-stepper span { padding: 0 10px; font-size: 12px; min-width: 60px; text-align: center; }
.cart-line__price { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 15px; color: var(--jm-yellow); }
.cart-line__remove {
  background: transparent; border: none; cursor: pointer; color: var(--text-muted);
  padding: 4px;
}

.cart__camilla {
  position: relative;
  margin: 8px 24px 16px;
  padding: 18px 18px 16px;
  background: rgba(232, 248, 249, 0.5);
  border: 1px dashed var(--jm-pink);
  border-radius: 6px;
}

.cart__footer {
  border-top: 2px solid var(--text);
  padding: 22px 32px 26px;
  background: #fff;
}
.cart__totals { margin-bottom: 16px; }
.cart__totals-row {
  display: flex; justify-content: space-between;
  font-size: 14px; padding: 4px 0;
  font-family: 'Nunito', sans-serif; font-weight: 600;
}
.cart__totals-row--muted { color: var(--text-muted); font-size: 12px; }
.cart__totals-row--total {
  font-size: 22px; font-weight: 900; padding-top: 10px;
  border-top: 1px dashed var(--border); margin-top: 6px;
}
.cart__totals-row--total span:last-child { color: var(--jm-yellow); }
.cart__cta { width: 100%; justify-content: center; }
.cart__trust {
  display: flex; justify-content: space-between;
  margin-top: 14px; font-size: 10px; color: var(--text-muted);
  font-family: 'JetBrains Mono', monospace; letter-spacing: 0.04em;
}

/* =========================================================
   CHECKOUT
   ========================================================= */
.checkout {
  position: relative;
  background: var(--cream);
  padding-bottom: 60px;
}
.checkout__hdr {
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 60px;
  border-bottom: 1px dashed var(--border);
  background: rgba(255,255,255,0.6);
  position: relative; z-index: 1;
}
.checkout__back {
  font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 13px;
  color: var(--text-mid); cursor: pointer;
}

.checkout__steps {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; padding: 24px 60px 12px;
  position: relative; z-index: 1;
}
.checkout__step { display: flex; align-items: center; gap: 8px; color: var(--text-muted); font-family: 'Nunito'; font-weight: 700; font-size: 13px; }
.checkout__step--active { color: var(--jm-yellow); }
.checkout__step--done { color: var(--jm-pink); }
.checkout__step-num {
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--cream-darker); color: var(--text-muted);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800;
}
.checkout__step--active .checkout__step-num { background: var(--jm-yellow); color: #fff; }
.checkout__step--done .checkout__step-num { background: var(--jm-pink); color: #fff; }
.checkout__step-line { width: 60px; height: 1px; border-top: 1px dashed var(--border); }
.checkout__step-line--done { border-top: 1px solid var(--jm-pink); }

.checkout__main {
  display: grid; grid-template-columns: 1fr 460px;
  gap: 40px; padding: 24px 60px;
  position: relative; z-index: 1;
}
.checkout__forms { display: flex; flex-direction: column; gap: 16px; }
.checkout__panel {
  background: #fff; border-radius: 6px;
  padding: 22px 26px;
  border: 1px solid var(--border-subtle);
  box-shadow: 0 2px 12px rgba(0,0,0,0.03);
}
.checkout__panel-h {
  font-family: 'Nunito', sans-serif; font-weight: 800;
  font-size: 14px; color: var(--text);
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 16px; letter-spacing: 0.04em;
}
.checkout__row { display: flex; gap: 12px; margin-bottom: 12px; }
.checkout__row:last-child { margin-bottom: 0; }
.checkout__field {
  flex: 1; display: flex; flex-direction: column; gap: 4px;
}
.checkout__field--full { flex: 1 1 100%; }
.checkout__field span {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  font-size: 11px; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: 0.1em;
}
.checkout__field input, .checkout__field select {
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 4px;
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  background: var(--cream);
}
.checkout__field input:focus, .checkout__field select:focus {
  outline: none; border-color: var(--jm-yellow); background: #fff;
  box-shadow: 0 0 0 3px rgba(226, 138, 87,0.12);
}
.checkout__check {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13px; color: var(--text-mid); margin-top: 12px;
  cursor: pointer;
}
.checkout__check em { color: var(--text-muted); font-style: italic; font-size: 11px; }

.checkout__express {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  margin-bottom: 14px;
}
.checkout__express-btn {
  padding: 14px;
  border: none; border-radius: 4px;
  font-family: 'Nunito', sans-serif; font-weight: 800;
  font-size: 14px; cursor: pointer;
  transition: transform 150ms;
}
.checkout__express-btn:hover { transform: translateY(-1px); }
.checkout__express-btn--apple { background: #000; color: #fff; }
.checkout__express-btn--klarna { background: #FFA8CD; color: #17120F; }
.checkout__or {
  text-align: center; position: relative;
  font-family: 'Caveat', cursive; font-size: 16px; color: var(--text-muted);
  font-style: italic; padding: 8px 0;
}
.checkout__or::before, .checkout__or::after {
  content: ''; position: absolute; top: 50%;
  width: 35%; border-top: 1px dashed var(--border);
}
.checkout__or::before { left: 0; }
.checkout__or::after { right: 0; }

.checkout__ship-options { display: flex; flex-direction: column; gap: 10px; }
.checkout__ship-opt {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  transition: all 150ms;
}
.checkout__ship-opt--active {
  border-color: var(--jm-yellow);
  background: rgba(226, 138, 87,0.04);
  box-shadow: 0 0 0 3px rgba(226, 138, 87,0.08);
}
.checkout__ship-opt input { accent-color: var(--jm-yellow); }
.checkout__ship-body { flex: 1; }
.checkout__ship-title { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 14px; }
.checkout__ship-sub { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.checkout__ship-price { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 14px; color: var(--jm-pink-dark); }

.checkout__pay { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.checkout__pay-opt {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  border: 1.5px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
  font-family: 'Nunito', sans-serif;
  transition: all 150ms;
}
.checkout__pay-opt--active {
  border-color: var(--jm-yellow);
  background: rgba(226, 138, 87,0.04);
}
.checkout__pay-opt input { accent-color: var(--jm-yellow); }
.checkout__pay-name { flex: 1; font-weight: 700; font-size: 14px; }
.checkout__pay-icons {
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  color: var(--text-muted); letter-spacing: 0.06em;
}
.checkout__card-row { margin-bottom: 12px; }

.checkout__summary {
  background: #fff;
  border-radius: 6px;
  padding: 26px;
  border: 1px solid var(--border-subtle);
  position: relative;
  height: fit-content;
  position: sticky; top: 24px;
}
.checkout__summary-h {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 14px;
  margin-bottom: 18px; letter-spacing: 0.04em;
}
.checkout__summary-edit {
  font-size: 11px; color: var(--jm-yellow); cursor: pointer;
  text-decoration: underline; font-weight: 700;
}
.checkout__summary-items {
  display: flex; flex-direction: column; gap: 14px;
  padding-bottom: 18px; border-bottom: 1px dashed var(--border);
}
.checkout__summary-item { display: flex; gap: 12px; align-items: center; }
.checkout__summary-img {
  width: 60px; height: 60px; border-radius: 4px;
  overflow: hidden; background: var(--cream-dark);
  position: relative; flex-shrink: 0;
}
.checkout__summary-img img { width: 100%; height: 100%; object-fit: cover; }
.checkout__summary-qty {
  position: absolute; top: -6px; right: -6px;
  background: var(--text); color: #fff;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 10px;
  padding: 2px 6px; border-radius: 999px;
}
.checkout__summary-info { flex: 1; min-width: 0; }
.checkout__summary-name { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 13px; line-height: 1.25; }
.checkout__summary-sub { font-size: 10px; color: var(--text-muted); margin-top: 2px; letter-spacing: 0.04em; }
.checkout__summary-price { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 13px; }

.checkout__promo {
  display: flex; gap: 8px;
  padding: 14px 0;
  border-bottom: 1px dashed var(--border);
}
.checkout__promo input {
  flex: 1; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: 4px;
  font-family: 'Poppins', sans-serif; font-size: 12px;
  background: var(--cream);
}
.checkout__promo button {
  padding: 10px 14px;
  background: transparent; border: 1.5px solid var(--text);
  border-radius: 4px;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 12px;
  cursor: pointer;
}

.checkout__totals { padding: 14px 0; border-bottom: 1px dashed var(--border); }
.checkout__totals-row {
  display: flex; justify-content: space-between;
  font-family: 'Nunito', sans-serif; font-weight: 600;
  font-size: 13px; padding: 4px 0;
}
.checkout__totals-row--muted { color: var(--text-muted); font-size: 11px; }
.checkout__totals-row--total {
  font-size: 24px; font-weight: 900;
  padding-top: 12px; margin-top: 6px;
  border-top: 2px solid var(--text);
}
.checkout__totals-row--total span:last-child { color: var(--jm-yellow); }

.checkout__place {
  width: 100%; justify-content: center;
  margin-top: 18px;
}

.checkout__camilla-note {
  margin-top: 16px;
  padding: 14px 16px;
  background: rgba(232,248,249,0.4);
  border: 1px dashed var(--jm-pink);
  border-radius: 4px;
}

.checkout__trust-stack {
  margin-top: 16px;
  display: flex; flex-direction: column; gap: 8px;
}
.checkout__trust-item {
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; color: var(--text-mid);
  font-family: 'Nunito', sans-serif; font-weight: 600;
}

/* =========================================================
   MOBILE PDP & PLP
   ========================================================= */
.m-pdp, .m-plp {
  font-family: 'Poppins', sans-serif;
  background: var(--cream);
  position: relative;
  min-height: 812px;
}
.m-pdp *, .m-plp * { box-sizing: border-box; }

.m-pdp__hdr {
  position: sticky; top: 0; z-index: 10;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  background: rgba(250, 247, 242, 0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border-subtle);
}
.m-pdp__back {
  width: 36px; height: 36px;
  border: none; background: transparent;
  display: flex; align-items: center; justify-content: center;
  color: var(--text); cursor: pointer;
}
.m-pdp__hdr-right { display: flex; align-items: center; gap: 12px; }

.m-pdp__gallery {
  position: relative;
  background: linear-gradient(180deg, #FAF7F2 0%, #F5F0EB 100%);
  padding: 30px 24px 20px;
}
.m-pdp__gallery-img {
  position: relative;
  aspect-ratio: 1;
  background: var(--cream-darker);
  border-radius: 4px;
  overflow: hidden;
}
.m-pdp__gallery-img img {
  width: 100%; height: 100%; object-fit: cover;
}
.m-pdp__gallery-dots {
  display: flex; justify-content: center; gap: 6px; margin-top: 14px;
}
.m-pdp__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--border);
}
.m-pdp__dot--active { background: var(--jm-yellow); width: 18px; border-radius: 999px; }

.m-pdp__body { padding: 24px 20px 0; }
.m-pdp__eyebrow {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.16em;
  font-size: 10px; color: var(--jm-yellow);
  margin-bottom: 10px;
}
.m-pdp__num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; color: var(--text-muted);
  letter-spacing: 0.06em; margin-bottom: 6px;
}
.m-pdp__h1 {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 30px; line-height: 1.05; letter-spacing: -0.5px;
  margin: 0 0 6px;
}
.m-pdp__sub { font-size: 13px; color: var(--text-muted); margin-bottom: 14px; }
.m-pdp__price-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 0; border-top: 1px dashed var(--border);
  border-bottom: 1px dashed var(--border);
}
.m-pdp__price { font-family: 'Nunito', sans-serif; font-weight: 900; font-size: 26px; color: var(--jm-yellow); }
.m-pdp__price-unit { font-size: 12px; color: var(--text-muted); margin-left: 6px; }
.m-pdp__gots {
  background: var(--jm-pink-light); color: var(--jm-pink-dark);
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 11px;
  padding: 5px 10px; border-radius: 4px; letter-spacing: 0.08em;
}

.m-pdp__stock {
  margin: 18px 0;
  padding: 14px 16px;
  background: rgba(232, 248, 249, 0.5);
  border-radius: 6px;
  border: 1px dashed var(--jm-pink);
}
.m-pdp__stock-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-family: 'Nunito', sans-serif; margin-bottom: 8px;
}
.m-pdp__stock-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #5BBA6F;
  box-shadow: 0 0 0 3px rgba(91, 186, 111, 0.25);
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(91,186,111,0.25); }
  50% { box-shadow: 0 0 0 5px rgba(91,186,111,0.1); }
}
.m-pdp__stock-bar {
  height: 5px; background: var(--cream-darker); border-radius: 3px; overflow: hidden;
}
.m-pdp__stock-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--jm-yellow), var(--gold));
  border-radius: 3px;
}
.m-pdp__stock-note {
  display: flex; align-items: center; gap: 6px;
  margin-top: 8px;
  font-size: 11px; color: var(--text-muted); font-style: italic;
}

.m-pdp__qty { margin: 24px 0; }
.m-pdp__qty-label {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 10px;
}
.m-pdp__qty-label strong { font-family: 'Nunito'; font-weight: 800; font-size: 14px; }
.m-pdp__qty-options {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
  margin-bottom: 12px;
}
.m-pdp__qty-opt {
  padding: 12px 0;
  text-align: center;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-family: 'Nunito', sans-serif; font-weight: 800;
  font-size: 14px;
  cursor: pointer;
  transition: all 120ms;
}
.m-pdp__qty-opt--active {
  border-color: var(--jm-yellow);
  background: var(--jm-yellow);
  color: #fff;
  box-shadow: var(--shadow-cta);
}
.m-pdp__qty-steps {
  display: flex; align-items: center; justify-content: center; gap: 0;
  background: var(--cream-dark); border-radius: 999px; overflow: hidden;
  font-family: 'Nunito', sans-serif; font-weight: 800;
  width: fit-content; margin: 0 auto;
}
.m-pdp__qty-steps button {
  background: transparent; border: none;
  width: 40px; height: 40px;
  font-size: 18px; cursor: pointer; color: var(--text);
}
.m-pdp__qty-steps span { padding: 0 18px; font-size: 14px; min-width: 80px; text-align: center; }

.m-pdp__nahnotiz {
  position: relative;
  margin: 24px 0;
  padding: 22px 18px 18px;
  background: rgba(232,248,249,0.6);
  border: 1px dashed var(--jm-pink);
  border-radius: 6px;
}
.m-pdp__nahnotiz-eyebrow {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.14em;
  font-size: 10px; color: var(--jm-pink-dark);
  margin-bottom: 8px;
}

.m-pdp__trust {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  margin: 20px 0;
}
.m-pdp__trust-cell {
  display: flex; flex-direction: column; gap: 4px;
  padding: 14px;
  background: #fff;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  text-align: left;
}
.m-pdp__trust-cell strong { font-family: 'Nunito'; font-weight: 800; font-size: 13px; margin-top: 4px; }
.m-pdp__trust-cell span { font-size: 11px; color: var(--text-muted); }

.m-pdp__details {
  margin: 24px 0;
  padding: 4px 0;
}
.m-pdp__detail-row {
  display: flex; justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px dashed var(--border);
  font-size: 13px;
}
.m-pdp__detail-row span:first-child { color: var(--text-muted); font-family: 'Nunito'; font-weight: 600; }
.m-pdp__detail-row span:last-child { font-family: 'Nunito'; font-weight: 700; }

.m-pdp__story {
  display: flex; gap: 14px; align-items: flex-start;
  margin: 24px 0 32px;
  padding: 20px 16px;
  background: var(--cream-dark);
  border-radius: 6px;
}
.m-pdp__story-portrait { flex-shrink: 0; }

.m-pdp__bar-spacer { height: 90px; }
.m-pdp__bar {
  position: sticky; bottom: 0;
  display: flex; gap: 10px; padding: 14px 16px 18px;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--border);
  z-index: 10;
}
.m-pdp__bar-fav {
  width: 56px; height: 56px;
  border: 2px solid var(--text);
  background: #fff;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--text);
}
.m-pdp__bar-cta {
  flex: 1; justify-content: center;
  padding: 16px;
  font-size: 16px;
}

/* PLP */
.m-plp__banner {
  padding: 36px 20px 24px;
  background: linear-gradient(180deg, #FAF7F2 0%, #F5F0EB 100%);
  position: relative;
}
.m-plp__banner-eyebrow {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.16em;
  font-size: 10px; color: var(--jm-yellow);
}
.m-plp__banner-h1 {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 38px; line-height: 1; letter-spacing: -1px;
  margin: 8px 0 12px;
}
.m-plp__banner-meta {
  font-size: 13px; color: var(--text-mid);
}
.m-plp__banner-meta strong { font-family: 'Nunito'; font-weight: 900; font-size: 18px; color: var(--jm-yellow); margin-right: 4px; }

.m-plp__filter-bar {
  position: sticky; top: 64px;
  display: flex; gap: 8px; padding: 12px 16px;
  background: rgba(250,247,242,0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border-subtle);
  z-index: 9;
}
.m-plp__filter-btn, .m-plp__sort-btn {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  background: #fff;
  border: 1.5px solid var(--text);
  border-radius: 999px;
  font-family: 'Nunito', sans-serif; font-weight: 800;
  font-size: 13px;
  cursor: pointer;
}
.m-plp__sort-btn { border-color: var(--border); color: var(--text-mid); }
.m-plp__filter-count {
  background: var(--jm-yellow); color: #fff;
  width: 18px; height: 18px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 900;
}
.m-plp__chips {
  display: flex; gap: 8px; padding: 12px 16px 4px;
  overflow-x: auto;
  scrollbar-width: none;
}
.m-plp__chips::-webkit-scrollbar { display: none; }
.m-plp__chip {
  flex-shrink: 0;
  padding: 7px 14px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
  color: var(--text-mid);
}
.m-plp__chip--active {
  background: var(--text); color: #fff; border-color: var(--text);
}

.m-plp__mood-strip {
  padding: 20px 20px 8px;
}

.m-plp__grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 14px; padding: 12px 16px 32px;
}
.m-plp__sku {
  position: relative;
  background: #fff;
  border-radius: 6px;
  padding: 8px 8px 12px;
  border: 1px solid var(--border-subtle);
}
.m-plp__sku-num {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; color: rgba(255,255,255,0.9);
  background: rgba(0,0,0,0.4);
  padding: 3px 6px;
  border-radius: 3px;
  letter-spacing: 0.08em;
}
.m-plp__sku-tag {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  background: var(--jm-yellow); color: #fff;
  font-family: 'Nunito'; font-weight: 800; font-size: 9px;
  padding: 3px 7px; border-radius: 3px;
  letter-spacing: 0.06em;
}
.m-plp__sku-img {
  position: relative;
  aspect-ratio: 1;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 8px;
}
.m-plp__sku-img img { width: 100%; height: 100%; object-fit: cover; position: relative; z-index: 1; }
.m-plp__sku-mood {
  font-family: 'Caveat', cursive; font-size: 14px;
  color: var(--jm-yellow); font-style: italic;
  margin: 4px 4px 2px;
}
.m-plp__sku-title {
  font-family: 'Nunito', sans-serif; font-weight: 800;
  font-size: 13px; line-height: 1.2;
  margin: 0 4px 8px;
}
.m-plp__sku-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0 4px;
}
.m-plp__sku-price { font-family: 'Nunito'; font-weight: 800; font-size: 13px; color: var(--text); }
.m-plp__sku-add {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--jm-yellow); color: #fff;
  border: none; cursor: pointer;
  font-size: 16px; font-weight: 700;
  box-shadow: var(--shadow-cta);
}

/* =========================================================
   STOFFKUNDE
   ========================================================= */
.stk {
  background: var(--cream);
  position: relative;
  padding: 0 0 60px;
  font-family: 'Poppins', sans-serif;
}
.stk * { box-sizing: border-box; }

.stk__hdr {
  display: flex; justify-content: space-between; align-items: center;
  padding: 22px 60px;
  border-bottom: 1px dashed var(--border);
  position: relative; z-index: 2;
}
.stk__hdr-l { display: flex; align-items: center; gap: 16px; }
.stk__nav { display: flex; gap: 28px; }
.stk__nav a {
  font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 14px;
  color: var(--text-mid); cursor: pointer; letter-spacing: 0.02em;
}
.stk__nav-active { color: var(--jm-yellow) !important; position: relative; }
.stk__nav-active::after {
  content: ''; position: absolute; bottom: -6px; left: 0; right: 0;
  height: 2px; background: var(--jm-yellow);
  background: repeating-linear-gradient(to right, var(--jm-yellow) 0 6px, transparent 6px 10px);
}

.stk__hero {
  display: grid; grid-template-columns: 1fr 360px;
  gap: 60px;
  padding: 60px 80px 40px;
  position: relative; z-index: 2;
}
.stk__h1 {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 86px; line-height: 0.96; letter-spacing: -2.5px;
  margin: 16px 0 24px;
}
.stk__lede {
  font-size: 18px; line-height: 1.55; color: var(--text-mid);
  max-width: 560px; margin-bottom: 28px;
}
.stk__lede em { color: var(--text); font-style: italic; }
.stk__hero-search {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px;
  background: #fff;
  border: 2px solid var(--text);
  border-radius: 12px;
  max-width: 560px;
  margin-bottom: 16px;
}
.stk__hero-search input {
  flex: 1; border: none; outline: none;
  font-family: 'Poppins', sans-serif; font-size: 15px;
  background: transparent;
}
.stk__hero-meta {
  display: flex; gap: 14px;
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  color: var(--text-muted); letter-spacing: 0.04em;
}
.stk__hero-meta strong { color: var(--text); font-weight: 700; }

.stk__hero-r {
  position: relative;
  background: rgba(232,248,249,0.5);
  border: 1px dashed var(--jm-pink);
  border-radius: 6px;
  padding: 28px 24px 24px;
}

.stk__h2 {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 42px; line-height: 1.05; letter-spacing: -1px;
  margin: 8px 0 0;
}

/* Calc */
.stk__calc {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 50px;
  margin: 40px 80px;
  padding: 50px 60px;
  background: #fff;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-1);
  position: relative;
}
.stk__calc-form {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 24px;
}
.stk__calc-field {
  display: flex; flex-direction: column; gap: 6px;
}
.stk__calc-field span {
  font-family: 'Nunito'; font-weight: 700; font-size: 12px;
  color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.1em;
}
.stk__calc-field select {
  padding: 14px 16px;
  border: 1.5px solid var(--border);
  border-radius: 6px;
  font-family: 'Poppins'; font-size: 14px;
  background: var(--cream);
}
.stk__calc-result {
  display: flex; align-items: center; gap: 20px;
  padding: 22px 24px;
  background: linear-gradient(90deg, rgba(244,169,127,0.10), rgba(226,138,87,0.10));
  border-left: 4px solid var(--jm-yellow);
  border-radius: 6px;
}
.stk__calc-num {
  font-family: 'Nunito'; font-weight: 900;
  font-size: 56px; line-height: 1; color: var(--jm-yellow);
  letter-spacing: -1.5px;
}
.stk__calc-label { flex: 1; }
.stk__calc-label strong { display: block; font-family: 'Nunito'; font-weight: 800; font-size: 14px; }
.stk__calc-label span { font-size: 12px; color: var(--text-muted); }
.stk__calc-r { display: flex; align-items: center; }
.stk__calc-sketch {
  position: relative;
  width: 100%;
  background: var(--cream);
  border-radius: 6px;
  padding: 24px;
  border: 1px dashed var(--border);
}

.stk__section-h { padding: 40px 80px 24px; }
.stk__section-h h2 { margin-top: 4px; }

/* Topics */
.stk__topic-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  padding: 8px 80px 32px;
}
.stk__topic {
  display: block;
  position: relative;
  padding: 28px 26px 22px;
  background: #fff;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
  cursor: pointer;
  transition: all 200ms;
  text-decoration: none;
  color: inherit;
}
.stk__topic:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-2);
  border-color: var(--jm-yellow);
}
.stk__topic-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--text-muted);
  letter-spacing: 0.1em; margin-bottom: 10px;
}
.stk__topic-icon {
  width: 56px; height: 56px;
  background: var(--cream-dark);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
.stk__topic-title {
  font-family: 'Nunito'; font-weight: 800;
  font-size: 22px; margin: 0 0 6px; line-height: 1.1;
}
.stk__topic-sub {
  font-size: 13px; line-height: 1.5;
  color: var(--text-mid); margin: 0 0 16px;
}
.stk__topic-foot {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 12px;
  border-top: 1px dashed var(--border);
  font-family: 'Nunito'; font-weight: 700; font-size: 12px;
  color: var(--text-muted);
}
.stk__topic-arrow { color: var(--jm-yellow); font-size: 16px; }

/* Feature */
.stk__feature-grid {
  display: grid; grid-template-columns: 1.4fr 1fr;
  gap: 24px;
  padding: 0 80px 32px;
}
.stk__feature-big {
  position: relative;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--shadow-1);
}
.stk__feature-img {
  height: 320px;
  position: relative;
}
.stk__feature-num {
  position: absolute; top: 24px; left: 24px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; color: rgba(255,255,255,0.85);
  letter-spacing: 0.1em;
}
.stk__feature-body { padding: 28px 32px 32px; }
.stk__feature-title {
  font-family: 'Nunito'; font-weight: 900;
  font-size: 30px; line-height: 1.1; letter-spacing: -0.5px;
  margin: 8px 0 12px;
}
.stk__feature-body p { font-size: 14px; line-height: 1.6; color: var(--text-mid); margin: 0 0 16px; }
.stk__feature-cta {
  font-family: 'Nunito'; font-weight: 800; font-size: 13px;
  color: var(--jm-yellow); cursor: pointer; letter-spacing: 0.04em;
  text-decoration: none;
  display: inline-flex; align-items: center; gap: 6px;
}

.stk__feature-side { display: flex; flex-direction: column; gap: 12px; }
.stk__article {
  display: flex; align-items: center; gap: 14px;
  padding: 14px;
  background: #fff;
  border-radius: 6px;
  border: 1px solid var(--border-subtle);
  cursor: pointer;
  transition: all 150ms;
}
.stk__article:hover { transform: translateX(2px); border-color: var(--jm-yellow); }
.stk__article-thumb {
  width: 56px; height: 56px;
  border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.stk__article-thumb span {
  color: rgba(255,255,255,0.95);
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  letter-spacing: 0.06em;
}
.stk__article-body { flex: 1; min-width: 0; }
.stk__article-title {
  font-family: 'Nunito'; font-weight: 800; font-size: 15px;
  line-height: 1.2; margin: 4px 0 0;
}
.stk__article-arrow { color: var(--jm-yellow); font-size: 18px; font-weight: 700; }

/* Glossary */
.stk__glossary {
  position: relative;
  margin: 32px 80px;
  padding: 40px 50px;
  background: #fff;
  border-radius: 8px;
  border: 1px solid var(--border-subtle);
}
.stk__glossary-h {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 28px;
}
.stk__glossary-all {
  font-family: 'Nunito'; font-weight: 800; font-size: 13px;
  color: var(--jm-yellow); cursor: pointer; letter-spacing: 0.04em;
}
.stk__glossary-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 28px 32px;
}
.stk__gloss-item {
  border-left: 2px solid var(--cream-darker);
  padding-left: 14px;
}
.stk__gloss-item:hover { border-left-color: var(--jm-yellow); }
.stk__gloss-k {
  font-family: 'Nunito'; font-weight: 800; font-size: 14px;
  margin-bottom: 4px;
}
.stk__gloss-d { font-size: 12px; line-height: 1.5; color: var(--text-mid); }

/* Newsletter */
.stk__news {
  margin: 32px 80px 0;
  display: grid; grid-template-columns: 1fr 360px;
  gap: 50px;
  padding: 50px 60px;
  background: linear-gradient(135deg, var(--jm-yellow) 0%, var(--jm-yellow-dark, #B14A6F) 100%);
  border-radius: 12px;
  position: relative; overflow: hidden;
}
.stk__news::before {
  content: ''; position: absolute;
  top: -50px; right: -50px; width: 240px; height: 240px;
  border: 2px dashed rgba(255,255,255,0.2);
  border-radius: 50%;
}
.stk__news-form { display: flex; gap: 10px; max-width: 460px; }
.stk__news-form input {
  flex: 1; padding: 14px 18px;
  border: none; border-radius: 8px;
  font-family: 'Poppins'; font-size: 14px;
}
.stk__news-r { position: relative; }
.stk__news-card {
  background: #fff;
  border-radius: 8px;
  padding: 20px;
  transform: rotate(2deg);
  box-shadow: 0 12px 40px rgba(0,0,0,0.15);
}

.stk__foot { margin-top: 48px; }


/* =========================================================
   BUNDLE / NÄHPAKET-RABATT MECHANIC
   ========================================================= */
.cart-line__price-stack { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; position: relative; }
.cart-line__price-orig {
  font-family: 'Nunito'; font-size: 11px; color: var(--text-muted);
  text-decoration: line-through;
}
.cart-line__price-badge {
  background: #2DAE5C; color: #fff;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 10px;
  padding: 2px 6px; border-radius: 3px;
  letter-spacing: 0.04em; margin-top: 2px;
}
.cart-line--uni .cart-line__num,
.cart-line--bundchen .cart-line__num {
  background: var(--jm-pink-light); color: var(--jm-pink-dark);
  font-family: 'Nunito', sans-serif; font-weight: 800;
  padding: 4px 6px; border-radius: 3px; height: fit-content;
  letter-spacing: 0.06em;
}
.cart-line__cross {
  display: inline-block; margin-top: 8px;
  font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 11px;
  color: var(--jm-pink-dark); cursor: pointer;
  letter-spacing: 0.02em;
}
.cart-line__cross:hover { color: var(--jm-yellow); }

.cart__truck { display: inline-flex; vertical-align: middle; margin-right: 8px; color: var(--jm-pink-dark); }

/* Bundle suggestion panel */
.bundle {
  margin: 4px 24px 12px;
  border-radius: 8px;
  background: linear-gradient(135deg, #FCEBDD 0%, #FADFC9 100%);
  border: 1.5px dashed var(--jm-pink, #E27297);
  overflow: hidden;
}
.bundle__head {
  display: flex; align-items: center; gap: 12px;
  width: 100%; padding: 14px 16px;
  background: transparent; border: none; cursor: pointer;
  text-align: left;
  font-family: 'Nunito', sans-serif;
}
.bundle__icon {
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(226, 138, 87, 0.2);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.bundle__head-text { flex: 1; }
.bundle__title { font-weight: 800; font-size: 14px; color: #9C5B2B; line-height: 1.2; }
.bundle__sub { font-size: 11px; color: #B4713F; margin-top: 2px; font-weight: 600; }
.bundle__body {
  padding: 4px 16px 16px;
  border-top: 1px dashed rgba(217, 168, 0, 0.4);
}
.bundle__group-title {
  font-family: 'Nunito'; font-weight: 800; font-size: 11px;
  color: var(--text-muted); letter-spacing: 0.14em;
  margin: 12px 0 8px;
}
.bundle__item {
  display: grid; grid-template-columns: 44px 1fr auto auto;
  gap: 12px; align-items: center;
  padding: 8px 0;
}
.bundle__item-img {
  width: 44px; height: 44px; border-radius: 4px; overflow: hidden;
  background: var(--cream-darker);
}
.bundle__item-img img { width: 100%; height: 100%; object-fit: cover; }
.bundle__item-title { font-family: 'Nunito'; font-weight: 800; font-size: 13px; line-height: 1.2; }
.bundle__item-sub { font-size: 10px; color: var(--text-muted); margin-top: 1px; }
.bundle__item-price { font-family: 'Nunito'; font-weight: 800; font-size: 13px; color: var(--text); }
.bundle__item-add {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--jm-pink); color: #fff; border: none;
  font-size: 17px; font-weight: 700; cursor: pointer;
  box-shadow: var(--jm-shadow-pink);
  transition: transform 120ms;
}
.bundle__item-add:hover { transform: scale(1.1); background: var(--jm-pink-dark); }
.bundle__more {
  display: block; padding: 8px 0 4px;
  text-align: center;
  font-family: 'Nunito'; font-weight: 800; font-size: 12px;
  color: var(--jm-pink-dark); cursor: pointer;
  border-top: 1px dashed rgba(217, 168, 0, 0.3);
  margin-top: 4px;
}

.bundle--maxed {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px;
  background: linear-gradient(135deg, #E8F5E0 0%, #D4ECC4 100%);
  border-color: #5BBA6F;
  color: #2D6F3F;
}
.bundle--maxed .bundle__title { color: #2D6F3F; }
.bundle--maxed .bundle__sub { color: #4A8F5C; }

/* Discount totals row */
.cart__totals-row--discount {
  color: #2DAE5C !important;
  font-weight: 800 !important;
}
.cart__totals-row--discount span:last-child { font-weight: 800; }

.checkout__totals-row--discount {
  color: #2DAE5C !important;
  font-weight: 800 !important;
}

/* Delivery prediction box */
.cart__delivery, .checkout__delivery {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px;
  background: rgba(226, 114, 151, 0.08);
  border: 1px solid rgba(226, 114, 151, 0.25);
  border-radius: 6px;
  font-size: 13px; color: var(--text);
  font-family: 'Nunito', sans-serif; font-weight: 600;
  margin-bottom: 14px;
}
.cart__delivery strong, .checkout__delivery strong { font-weight: 800; }
.checkout__delivery { margin: 14px 0 0; }
.checkout__delivery--summary { margin: 14px 0 0; }

/* Cart secondary view link */
.cart__view-link {
  display: block; text-align: center;
  margin-top: 12px;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 13px;
  color: var(--jm-pink-dark); cursor: pointer;
  letter-spacing: 0.02em;
}

/* =========================================================
   PAYMENT & SHIPPING LOGOS
   ========================================================= */
.pay-logos { display: flex; gap: 6px; align-items: center; }
.pay-logo {
  display: inline-flex; align-items: center; justify-content: center;
  height: 24px; min-width: 38px;
  border-radius: 3px;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-weight: 900; font-size: 11px;
  letter-spacing: 0.02em;
  padding: 0 6px;
  background: #fff;
  border: 1px solid var(--border);
}
.pay-logo--visa { color: #1A1F71; font-style: italic; letter-spacing: 0.06em; }
.pay-logo--amex { background: #006FCF; color: #fff; border-color: #006FCF; font-size: 9px; letter-spacing: 0.06em; }
.pay-logo--mc {
  position: relative;
  width: 42px;
  background: #fff;
}
.pay-logo--mc .pay-logo__mc-r,
.pay-logo--mc .pay-logo__mc-y {
  width: 14px; height: 14px; border-radius: 50%;
  display: inline-block;
}
.pay-logo--mc .pay-logo__mc-r { background: #EB001B; margin-right: -4px; }
.pay-logo--mc .pay-logo__mc-y { background: #F79E1B; mix-blend-mode: multiply; }
.pay-logo--klarna { background: #FFA8CD; color: #17120F; border-color: #FFA8CD; font-family: 'Nunito', sans-serif; }

.ship-logo {
  display: inline-flex; align-items: center; justify-content: center;
  height: 32px; min-width: 44px;
  padding: 0 8px;
  border-radius: 4px;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-weight: 900; font-size: 13px;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.ship-logo--gls { background: #fff; color: #061AB1; border: 1px solid var(--border); }
.ship-logo--ups { background: #351C15; color: #FFB500; }

/* Override checkout summary price layout for new structure */
.checkout__summary-price-stack {
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px;
}
.checkout__summary-price-orig {
  font-size: 10px; color: var(--text-muted);
  text-decoration: line-through;
  font-family: 'Nunito', sans-serif; font-weight: 600;
}
.checkout__summary-badge {
  background: #2DAE5C; color: #fff;
  font-family: 'Nunito'; font-weight: 800; font-size: 9px;
  padding: 1px 5px; border-radius: 2px;
  letter-spacing: 0.04em;
}
.checkout__summary-sep { color: var(--text-muted); font-weight: 600; font-size: 11px; }

/* Checkout ship-opt — accommodate logo */
.checkout__ship-opt > input + .ship-logo { margin-right: 4px; }


/* =========================================================
   MOBILE PDP v2 — Shop-first, compact, scannable
   ========================================================= */
.m-pdp--v2 .m-pdp__hero {
  position: relative;
  padding: 16px 20px 12px;
  background: linear-gradient(180deg, #FAF7F2 0%, #F5F0EB 100%);
}
.m-pdp--v2 .m-pdp__hero-img {
  position: relative;
  width: 100%;
  height: 250px;
  aspect-ratio: 4 / 3;
  background: var(--cream-darker);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: var(--shadow-image);
}
.m-pdp--v2 .m-pdp__hero-img img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
.m-pdp--v2 .m-pdp__hero-dots {
  display: flex; justify-content: center; gap: 6px; margin-top: 10px;
}

/* Buy block — densest, most critical */
.m-pdp__buy {
  padding: 16px 20px 12px;
  background: #fff;
  border-bottom: 1px solid var(--border-subtle);
}
.m-pdp__head-row {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 12px; margin-bottom: 10px;
}
.m-pdp__head-l { flex: 1; min-width: 0; }
.m-pdp__head-r {
  flex-shrink: 0; text-align: right;
  display: flex; align-items: baseline; gap: 2px;
}
.m-pdp--v2 .m-pdp__eyebrow {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.14em;
  font-size: 10px; color: var(--jm-yellow);
  margin-bottom: 4px;
}
.m-pdp--v2 .m-pdp__h1 {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 22px; line-height: 1.05; letter-spacing: -0.5px;
  margin: 0;
}
.m-pdp--v2 .m-pdp__price {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 22px; color: var(--jm-yellow); line-height: 1;
}
.m-pdp--v2 .m-pdp__price-unit {
  font-size: 12px; color: var(--text-muted); margin-left: 2px;
}

.m-pdp__stockline {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--text-mid);
  font-family: 'Nunito', sans-serif; font-weight: 600;
  padding: 4px 0 14px;
  flex-wrap: wrap;
}
.m-pdp__stockline strong { color: var(--text); font-weight: 800; }
.m-pdp__stockline em { color: var(--jm-yellow-dark); font-style: normal; font-weight: 800; }
.m-pdp__stockline-sep { color: var(--text-muted); }

/* Compact qty block */
.m-pdp--v2 .m-pdp__qty-block { margin: 0; }
.m-pdp--v2 .m-pdp__qty-label {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 8px;
}
.m-pdp--v2 .m-pdp__qty-label strong {
  font-family: 'Nunito'; font-weight: 800; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.06em;
}
.m-pdp__qty-toggle {
  background: transparent; border: none;
  color: var(--jm-pink-dark);
  font-family: 'Nunito', sans-serif; font-weight: 700;
  font-size: 11px; letter-spacing: 0.04em;
  cursor: pointer; padding: 0;
  text-decoration: underline;
}
.m-pdp--v2 .m-pdp__qty-options {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
  margin: 0;
}
.m-pdp--v2 .m-pdp__qty-opt {
  padding: 11px 0;
  font-size: 13px;
  border-radius: 6px;
}
.m-pdp--v2 .m-pdp__qty-steps {
  width: 100%;
  border-radius: 8px;
  background: var(--cream-dark);
  height: 44px;
}
.m-pdp--v2 .m-pdp__qty-steps button { width: 44px; height: 44px; font-size: 20px; }
.m-pdp--v2 .m-pdp__qty-steps span { flex: 1; padding: 0; font-size: 14px; }

/* Trust strip — single row, monochrome */
.m-pdp__truststrip {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  padding: 12px 16px;
  background: var(--cream);
  border-bottom: 1px solid var(--border-subtle);
}
.m-pdp__truststrip-cell {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 8px 4px;
  text-align: center;
}
.m-pdp__truststrip-cell svg { color: var(--text-mid); }
.m-pdp__truststrip-cell span:not(:first-child) {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  font-size: 10px; color: var(--text-mid);
  letter-spacing: 0.02em;
  line-height: 1;
}

/* Camilla note — combined, 1 short paragraph */
.m-pdp__note {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 18px 20px;
  background: rgba(232, 248, 249, 0.4);
  border-bottom: 1px solid var(--border-subtle);
}
.m-pdp__note > div { flex: 1; min-width: 0; }
.m-pdp__note-eyebrow {
  font-family: 'Nunito', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.14em;
  font-size: 10px; color: var(--jm-pink-dark);
  margin-bottom: 6px;
}
.m-pdp__note-text {
  font-family: 'Caveat', cursive;
  font-size: 17px; line-height: 1.35;
  color: var(--text); margin: 0;
}

/* Accordions */
.m-pdp__acc-list { padding: 0; }
.m-pdp__acc {
  border-bottom: 1px solid var(--border-subtle);
  background: #fff;
}
.m-pdp__acc summary {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px;
  font-family: 'Nunito', sans-serif; font-weight: 800;
  font-size: 14px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.m-pdp__acc summary::-webkit-details-marker { display: none; }
.m-pdp__acc-icon {
  font-family: 'Nunito', sans-serif; font-weight: 600; font-size: 22px;
  color: var(--text-muted);
  width: 24px; text-align: center; line-height: 1;
}
.m-pdp__acc[open] .m-pdp__acc-icon { color: var(--jm-yellow); }
.m-pdp__acc-body { padding: 0 20px 16px; }
.m-pdp__acc-row {
  display: flex; justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px dashed var(--border);
  font-size: 13px;
}
.m-pdp__acc-row:last-child { border-bottom: none; }
.m-pdp__acc-row span:first-child { color: var(--text-muted); font-family: 'Nunito'; font-weight: 600; }
.m-pdp__acc-row span:last-child { font-family: 'Nunito'; font-weight: 700; }
.m-pdp__acc-link {
  display: block; padding: 10px 0 4px;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 12px;
  color: var(--jm-pink-dark); cursor: pointer;
}

/* Better sticky bar — clearer hierarchy */
.m-pdp--v2 .m-pdp__bar {
  box-shadow: 0 -8px 24px rgba(0,0,0,0.08);
  border-top: none;
  padding: 12px 16px 16px;
}
.m-pdp--v2 .m-pdp__bar-cta {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px;
  font-size: 15px;
}
.m-pdp--v2 .m-pdp__bar-cta strong {
  font-weight: 900;
  font-size: 16px;
}


/* Hybrid bottom bar — replaces site nav on PDP */
.m-pdp--v2 .m-pdp__bar--hybrid {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 8px;
  align-items: stretch;
  padding: 10px 12px 14px;
}
.m-pdp__bar-menu {
  display: flex; align-items: center; justify-content: center;
  width: 48px; height: 52px;
  background: var(--cream-dark);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
}
.m-pdp__bar-menu::after {
  content: '';
  position: absolute;
  top: 6px; right: 6px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--jm-yellow);
}
.m-pdp--v2 .m-pdp__bar--hybrid .m-pdp__bar-fav {
  width: 48px; height: 52px;
  flex-shrink: 0;
}
.m-pdp--v2 .m-pdp__bar--hybrid .m-pdp__bar-cta {
  height: 52px;
  padding: 0 16px;
  font-size: 14px;
  width: 100%;
}
.m-pdp--v2 .m-pdp__bar--hybrid .m-pdp__bar-cta strong {
  font-size: 15px;
}


/* =========================================================
   MOBILE PLP v2 — Shop-first
   ========================================================= */
.m-plp--v2 .m-plp__banner--v2 {
  padding: 18px 20px 14px;
  position: relative;
}
.m-plp--v2 .m-plp__banner-h1 {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 28px; line-height: 1.05; margin: 6px 0 8px;
  letter-spacing: -0.5px;
}
.m-plp--v2 .m-plp__banner-meta {
  font-size: 11px; color: var(--text-muted);
  font-family: 'Nunito', sans-serif; font-weight: 600;
}
.m-plp--v2 .m-plp__banner-meta strong { color: var(--text); font-weight: 800; }

.m-plp__filter-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  padding: 0 16px 12px;
  background: #fff;
  position: sticky; top: 56px; z-index: 5;
  border-bottom: 1px solid var(--border-subtle);
  padding-top: 4px;
}
.m-plp__filter-pill {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 6px;
  height: 44px;
  background: #fff;
  border: 1.5px solid var(--text);
  border-radius: 22px;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 13px;
  color: var(--text);
  cursor: pointer;
}
.m-plp__filter-pill--filter { background: var(--text); color: #fff; border-color: var(--text); }
.m-plp__filter-pill-count {
  background: var(--jm-yellow); color: #fff;
  font-size: 10px; font-weight: 800;
  padding: 2px 7px; border-radius: 10px;
  margin-left: 4px;
}

.m-plp__chips--v2 {
  display: flex; gap: 8px;
  padding: 12px 16px;
  overflow-x: auto;
  background: #fff;
  scrollbar-width: none;
}
.m-plp__chips--v2::-webkit-scrollbar { display: none; }
.m-plp__chips--v2 .m-plp__chip {
  flex-shrink: 0;
  padding: 9px 16px;
  background: var(--cream-dark);
  border: 1px solid var(--border);
  border-radius: 18px;
  font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 12px;
  color: var(--text-mid);
  cursor: pointer;
  white-space: nowrap;
}
.m-plp__chips--v2 .m-plp__chip--active {
  background: var(--jm-yellow); color: #fff; border-color: var(--jm-yellow);
}

.m-plp__mood-strip--v2 {
  padding: 12px 18px 10px;
  display: flex; flex-direction: column; gap: 2px;
  background: var(--cream);
}

.m-plp__grid--v2 {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 14px;
  padding: 14px 14px 24px;
  background: var(--cream);
}
.m-plp__sku--v2 {
  position: relative;
  background: #fff;
  border-radius: 6px;
  padding: 10px 10px 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.m-plp__sku--v2 .m-plp__sku-num {
  position: absolute; top: 14px; left: 14px;
  background: rgba(255,255,255,0.95);
  padding: 3px 7px; border-radius: 3px;
  font-family: 'Nunito'; font-weight: 800; font-size: 10px;
  color: var(--text);
  z-index: 2;
}
.m-plp__sku--v2 .m-plp__sku-tag {
  position: absolute; top: 14px; right: 14px;
  background: var(--gold); color: #fff;
  padding: 3px 7px; border-radius: 3px;
  font-family: 'Nunito'; font-weight: 800; font-size: 9px;
  letter-spacing: 0.04em;
  z-index: 2;
}
.m-plp__sku--v2 .m-plp__sku-img {
  position: relative;
  width: 100%; aspect-ratio: 1; height: auto;
  border-radius: 4px; overflow: hidden;
  background: var(--cream-darker);
  margin-bottom: 8px;
}
.m-plp__sku--v2 .m-plp__sku-img img {
  width: 100%; height: 100%; object-fit: cover;
}
.m-plp__sku-fav {
  position: absolute; bottom: 8px; right: 8px;
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(255,255,255,0.95);
  border: none;
  display: flex; align-items: center; justify-content: center;
  color: var(--text);
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
  z-index: 2;
}
.m-plp__sku--v2 .m-plp__sku-mood {
  font-family: 'Caveat', cursive; font-size: 12px;
  color: var(--jm-yellow); margin-bottom: 1px;
  font-style: italic;
}
.m-plp__sku--v2 .m-plp__sku-title {
  font-family: 'Nunito', sans-serif; font-weight: 800;
  font-size: 12px; line-height: 1.2;
  color: var(--text);
  margin-bottom: 6px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 28px;
}
.m-plp__sku--v2 .m-plp__sku-row {
  display: flex; justify-content: space-between; align-items: center;
}
.m-plp__sku--v2 .m-plp__sku-price {
  font-family: 'Nunito', sans-serif; font-weight: 900;
  font-size: 13px; color: var(--text);
}
.m-plp__sku--v2 .m-plp__sku-unit {
  font-size: 10px; font-weight: 600; color: var(--text-muted);
}
.m-plp__sku--v2 .m-plp__sku-add {
  width: 32px; height: 32px;
  background: var(--jm-pink); color: #fff;
  border: none; border-radius: 50%;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--jm-shadow-pink);
}

/* Site nav bar (PLP, Stoffkunde) */
.m-plp__bar--site {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 0 !important;
  padding: 8px 4px 12px !important;
  border-top: 1px solid var(--border) !important;
}
.m-plp__navbar-item {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px;
  padding: 6px 2px;
  background: transparent; border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 9px;
  letter-spacing: 0.02em;
}
.m-plp__navbar-item--active { color: var(--jm-yellow); }
.m-plp__navbar-item span { line-height: 1; }


/* MOBILE CART */
.m-cart__ship { padding: 12px 16px; background: var(--cream); border-bottom: 1px solid var(--border-subtle); }
.m-cart__ship-row { display: flex; align-items: center; gap: 8px; font-size: 12px; font-family: 'Nunito'; font-weight: 600; margin-bottom: 8px; }
.m-cart__ship-row strong { font-weight: 800; color: var(--jm-yellow-dark); }
.m-cart__ship-bar { height: 4px; background: var(--cream-darker); border-radius: 2px; overflow: hidden; }
.m-cart__ship-fill { height: 100%; background: linear-gradient(90deg, var(--jm-pink) 0%, var(--jm-yellow) 100%); transition: width 300ms; }

.m-cart__items { padding: 4px 16px; background: #fff; }
.m-cart__line { display: grid; grid-template-columns: 70px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px dashed var(--border); }
.m-cart__line-img { position: relative; width: 70px; height: 70px; border-radius: 5px; overflow: hidden; background: var(--cream-darker); }
.m-cart__line-img img { width: 100%; height: 100%; object-fit: cover; }
.m-cart__line-num { position: absolute; top: 4px; left: 4px; background: rgba(255,255,255,0.95); padding: 2px 5px; border-radius: 2px; font-family: 'Nunito'; font-weight: 800; font-size: 9px; }
.m-cart__line--uni .m-cart__line-num { background: var(--jm-pink-light); color: var(--jm-pink-dark); }
.m-cart__line-title { font-family: 'Nunito'; font-weight: 800; font-size: 13px; line-height: 1.2; }
.m-cart__line-sub { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.m-cart__line-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.m-cart__qty { display: inline-flex; align-items: center; background: var(--cream-dark); border-radius: 4px; }
.m-cart__qty button { width: 28px; height: 28px; background: transparent; border: none; font-size: 16px; font-weight: 700; cursor: pointer; }
.m-cart__qty span { padding: 0 8px; font-family: 'Nunito'; font-weight: 800; font-size: 12px; }
.m-cart__line-price-stack { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.m-cart__line-orig { font-size: 10px; color: var(--text-muted); text-decoration: line-through; font-family: 'Nunito'; font-weight: 600; }
.m-cart__line-price { font-family: 'Nunito'; font-weight: 800; font-size: 14px; }
.m-cart__line-badge { background: #2DAE5C; color: #fff; font-family: 'Nunito'; font-weight: 800; font-size: 9px; padding: 1px 5px; border-radius: 2px; }

.m-cart__bundle { display: grid; grid-template-columns: 32px 1fr auto; gap: 10px; align-items: center; margin: 12px 16px; padding: 12px; background: linear-gradient(135deg, var(--jm-yellow-light, #FAEDF2) 0%, #F6DCE7 100%); border: 1.5px dashed var(--jm-pink, #E27297); border-radius: 6px; }
.m-cart__bundle-icon { width: 32px; height: 32px; border-radius: 50%; background: rgba(226,138,87,0.2); display: flex; align-items: center; justify-content: center; }
.m-cart__bundle-text { display: flex; flex-direction: column; gap: 2px; }
.m-cart__bundle-text strong { font-family: 'Nunito'; font-weight: 800; font-size: 13px; color: #9C5B2B; }
.m-cart__bundle-text span { font-size: 11px; color: #B4713F; font-weight: 600; }
.m-cart__bundle-cta { background: var(--text); color: #fff; border: none; padding: 8px 12px; border-radius: 4px; font-family: 'Nunito'; font-weight: 800; font-size: 11px; cursor: pointer; }

.m-cart__totals { padding: 16px; background: var(--cream); }
.m-cart__totals-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 13px; font-family: 'Nunito'; font-weight: 600; }
.m-cart__totals-row--discount { color: #2DAE5C; font-weight: 800; }
.m-cart__totals-row--muted { color: var(--text-muted); font-size: 11px; }
.m-cart__totals-row--total { padding-top: 10px; margin-top: 6px; border-top: 1px solid var(--border); font-size: 16px; font-weight: 900; color: var(--text); }
.m-cart__delivery { display: flex; align-items: center; gap: 8px; padding: 10px 14px; margin: 0 16px 14px; background: rgba(226,114,151,0.08); border: 1px solid rgba(226,114,151,0.25); border-radius: 5px; font-size: 12px; font-family: 'Nunito'; font-weight: 600; }
.m-cart__delivery strong { font-weight: 800; }


/* MOBILE CHECKOUT */
.m-checkout__steps { display: flex; align-items: center; gap: 0; padding: 14px 16px; background: #fff; border-bottom: 1px solid var(--border-subtle); }
.m-checkout__step { display: flex; flex-direction: column; align-items: center; gap: 4px; flex-shrink: 0; }
.m-checkout__step span:first-child { width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--border); background: #fff; display: flex; align-items: center; justify-content: center; font-family: 'Nunito'; font-weight: 800; font-size: 11px; color: var(--text-muted); }
.m-checkout__step span:last-child { font-size: 9px; font-family: 'Nunito'; font-weight: 700; color: var(--text-muted); letter-spacing: 0.04em; text-transform: uppercase; }
.m-checkout__step--done span:first-child { background: var(--jm-pink); border-color: var(--jm-pink); color: #fff; }
.m-checkout__step--active span:first-child { background: var(--jm-yellow); border-color: var(--jm-yellow); color: #fff; }
.m-checkout__step--active span:last-child { color: var(--jm-yellow); }
.m-checkout__step-line { flex: 1; height: 2px; background: var(--border); margin: 0 6px; margin-top: -16px; }
.m-checkout__step-line--done { background: var(--jm-pink); }

.m-checkout__sum-toggle { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: var(--cream); border: none; border-bottom: 1px solid var(--border-subtle); cursor: pointer; font-family: 'Nunito'; font-weight: 700; font-size: 13px; color: var(--text); text-align: left; }
.m-checkout__sum-toggle strong { font-weight: 800; }
.m-checkout__sum-toggle-r { display: flex; align-items: center; }
.m-checkout__sum-body { padding: 12px 16px; background: var(--cream); border-bottom: 1px solid var(--border-subtle); }
.m-checkout__sum-item { display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; padding: 6px 0; font-size: 12px; }
.m-checkout__sum-img { position: relative; width: 44px; height: 44px; border-radius: 4px; overflow: hidden; background: var(--cream-darker); }
.m-checkout__sum-img img { width: 100%; height: 100%; object-fit: cover; }
.m-checkout__sum-img span { position: absolute; bottom: 2px; right: 2px; background: rgba(0,0,0,0.7); color: #fff; font-size: 8px; padding: 1px 3px; border-radius: 2px; font-family: 'Nunito'; font-weight: 700; }
.m-checkout__sum-name { font-family: 'Nunito'; font-weight: 700; font-size: 12px; }
.m-checkout__sum-price { font-family: 'Nunito'; font-weight: 800; font-size: 12px; }
.m-checkout__sum-totals { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border); }
.m-checkout__sum-totals > div { display: flex; justify-content: space-between; font-size: 11px; padding: 3px 0; font-family: 'Nunito'; font-weight: 600; }
.m-checkout__sum-totals-discount { color: #2DAE5C; font-weight: 800 !important; }

.m-checkout__sec { padding: 16px; background: #fff; border-bottom: 1px solid var(--border-subtle); }
.m-checkout__sec-h { font-family: 'Nunito'; font-weight: 800; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text); margin-bottom: 12px; }
.m-checkout__field { display: flex; flex-direction: column; gap: 4px; flex: 1; margin-bottom: 10px; }
.m-checkout__field span { font-family: 'Nunito'; font-weight: 700; font-size: 10px; color: var(--text-muted); letter-spacing: 0.04em; text-transform: uppercase; }
.m-checkout__field input, .m-checkout__field select { padding: 11px 12px; border: 1px solid var(--border); border-radius: 5px; font-family: 'Nunito'; font-size: 14px; background: #fff; }
.m-checkout__row-2 { display: flex; gap: 10px; }
.m-checkout__row-2 .m-checkout__field { margin-bottom: 10px; }

.m-checkout__express { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
.m-checkout__express-btn { padding: 12px 8px; border: 1px solid var(--border); border-radius: 5px; font-family: 'Nunito'; font-weight: 800; font-size: 11px; cursor: pointer; background: #fff; }
.m-checkout__express-btn--apple { background: #000; color: #fff; border-color: #000; }
.m-checkout__express-btn--klarna { background: #FFA8CD; color: #17120F; }
.m-checkout__or { display: flex; align-items: center; gap: 10px; margin-top: 14px; font-size: 11px; color: var(--text-muted); font-style: italic; }
.m-checkout__or::before, .m-checkout__or::after { content: ''; flex: 1; height: 1px; background: var(--border); }

.m-checkout__ship, .m-checkout__pay { display: grid; grid-template-columns: auto auto 1fr auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1.5px solid var(--border); border-radius: 6px; margin-bottom: 8px; cursor: pointer; }
.m-checkout__ship--active, .m-checkout__pay--active { border-color: var(--jm-yellow); background: rgba(232,127,114,0.06); }
.m-checkout__ship input, .m-checkout__pay input { margin: 0; }
.m-checkout__ship-name { font-family: 'Nunito'; font-weight: 800; font-size: 12px; }
.m-checkout__ship-sub { font-size: 10px; color: var(--text-muted); font-family: 'Nunito'; font-weight: 600; }
.m-checkout__ship-price { font-family: 'Nunito'; font-weight: 800; font-size: 13px; }
.m-checkout__pay { grid-template-columns: auto 1fr auto; }
.m-checkout__pay-name { font-family: 'Nunito'; font-weight: 700; font-size: 13px; }

.m-checkout__camilla { padding: 16px; background: rgba(232,248,249,0.4); border-bottom: 1px solid var(--border-subtle); text-align: center; }
.m-checkout__trust { display: flex; justify-content: space-around; padding: 12px 16px; font-size: 11px; font-family: 'Nunito'; font-weight: 700; color: var(--text-mid); background: #fff; }


/* MOBILE STOFFKUNDE */
.m-stk__hero { padding: 18px 20px 16px; position: relative; background: var(--cream); border-bottom: 1px solid var(--border-subtle); }
.m-stk__h1 { font-family: 'Nunito', sans-serif; font-weight: 900; font-size: 26px; line-height: 1.1; letter-spacing: -0.4px; margin: 6px 0 8px; }
.m-stk__lede { font-size: 13px; color: var(--text-mid); line-height: 1.5; margin-bottom: 14px; }
.m-stk__search { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #fff; border: 1.5px solid var(--text); border-radius: 24px; }
.m-stk__search input { flex: 1; border: none; outline: none; background: transparent; font-family: 'Nunito'; font-size: 13px; }
.m-stk__search input::placeholder { color: var(--text-muted); font-style: italic; }

.m-stk__calc { margin: 14px 16px; padding: 16px; background: #fff; border: 2px solid var(--text); border-radius: 8px; box-shadow: 4px 4px 0 var(--gold); }
.m-stk__calc-eyebrow { font-family: 'Nunito'; font-weight: 800; font-size: 10px; letter-spacing: 0.12em; color: var(--jm-yellow); text-transform: uppercase; }
.m-stk__calc-h { font-family: 'Nunito'; font-weight: 900; font-size: 17px; margin: 4px 0 12px; }
.m-stk__calc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
.m-stk__calc-row label { display: flex; flex-direction: column; gap: 3px; }
.m-stk__calc-row span { font-family: 'Nunito'; font-weight: 700; font-size: 10px; letter-spacing: 0.04em; color: var(--text-muted); text-transform: uppercase; }
.m-stk__calc-row select { padding: 10px; border: 1px solid var(--border); border-radius: 4px; font-family: 'Nunito'; font-weight: 700; font-size: 13px; background: #fff; }
.m-stk__calc-result { display: flex; align-items: baseline; gap: 8px; padding: 12px; background: var(--cream); border-radius: 5px; }
.m-stk__calc-result-num { font-family: 'Nunito'; font-weight: 900; font-size: 28px; color: var(--jm-yellow); }
.m-stk__calc-result-sub { font-size: 11px; color: var(--text-mid); font-family: 'Nunito'; font-weight: 600; }

.m-stk__sec-h { padding: 20px 18px 10px; font-family: 'Nunito'; font-weight: 800; font-size: 11px; letter-spacing: 0.14em; color: var(--text); text-transform: uppercase; }

.m-stk__topics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 16px; }
.m-stk__topic { display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center; padding: 12px; background: #fff; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.m-stk__topic-icon { width: 36px; height: 36px; border-radius: 50%; background: var(--cream-dark); display: flex; align-items: center; justify-content: center; }
.m-stk__topic-label { font-family: 'Nunito'; font-weight: 800; font-size: 12px; line-height: 1.2; }
.m-stk__topic-count { font-size: 10px; color: var(--text-muted); font-family: 'Nunito'; font-weight: 600; margin-top: 2px; }

.m-stk__feat { margin: 0 16px 14px; padding: 0 0 14px; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.m-stk__feat-img { width: 100%; aspect-ratio: 16/9; background: var(--cream-darker); overflow: hidden; }
.m-stk__feat-img img { width: 100%; height: 100%; object-fit: cover; }
.m-stk__feat-eyebrow { padding: 12px 16px 0; font-family: 'Nunito'; font-weight: 800; font-size: 10px; letter-spacing: 0.1em; color: var(--jm-yellow); text-transform: uppercase; }
.m-stk__feat-h { padding: 4px 16px; font-family: 'Nunito'; font-weight: 900; font-size: 18px; line-height: 1.2; margin: 0; }
.m-stk__feat-text { padding: 4px 16px 8px; font-size: 13px; line-height: 1.5; color: var(--text-mid); }
.m-stk__feat-link { padding: 0 16px; font-family: 'Nunito'; font-weight: 800; font-size: 12px; color: var(--jm-yellow); cursor: pointer; }

.m-stk__feat-list { padding: 0 16px; display: flex; flex-direction: column; gap: 8px; }
.m-stk__feat-mini { padding: 12px; background: #fff; border: 1px solid var(--border); border-radius: 5px; cursor: pointer; }
.m-stk__feat-mini-eyebrow { font-family: 'Nunito'; font-weight: 800; font-size: 10px; letter-spacing: 0.08em; color: var(--text-muted); text-transform: uppercase; margin-bottom: 4px; }
.m-stk__feat-mini-h { font-family: 'Nunito'; font-weight: 800; font-size: 14px; line-height: 1.3; }

.m-stk__news { padding: 20px 16px; }
.m-stk__news-card { padding: 18px; background: var(--text); color: #fff; border-radius: 8px; }
.m-stk__news-eyebrow { font-family: 'Nunito'; font-weight: 800; font-size: 10px; letter-spacing: 0.14em; color: var(--gold); text-transform: uppercase; }
.m-stk__news-h { font-family: 'Nunito'; font-weight: 900; font-size: 22px; line-height: 1.1; margin: 8px 0 14px; }
.m-stk__news-card input { width: 100%; padding: 12px; border: none; border-radius: 5px; font-family: 'Nunito'; font-size: 14px; }
.m-stk__news-fine { font-size: 10px; color: rgba(255,255,255,0.6); margin-top: 8px; font-style: italic; }
