/* ─────────────────────────────────────────────────────────────
   V4 Fitness — Layout & Komponenten (token-basiert)
   Mobile-first, app-artig. Verbraucht ausschließlich Tokens aus tokens.css.
   Rot (var(--v4-action)) NUR für Aktionen.
   ───────────────────────────────────────────────────────────── */

/* [hidden] muss auch inline-display schlagen (Checkout-Toggles etc.) */
[hidden] { display: none !important; }

*, *::before, *::after { box-sizing: border-box; }

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3 { margin: 0 0 0.5em; letter-spacing: -0.035em; font-weight: 800; }
h1 { font-size: clamp(2.5rem, 7vw, 5rem); line-height: 0.96; }
h2 { font-size: clamp(2rem, 4.5vw, 3.25rem); line-height: 1.0; }
h3 { font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.15; }
p  { margin: 0 0 1rem; }

/* Kursiv-Serif-Akzentwort in Headlines (KONGYM-Signature) */
.serif-accent { font-family: var(--v4-font-serif); font-style: italic; font-weight: 400; color: var(--v4-action); letter-spacing: 0; }

.v4-container {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1.25rem;
}

.screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.v4-skip-link:focus {
  position: fixed; top: 1rem; left: 1rem; width: auto; height: auto; clip: auto;
  background: var(--v4-action); color: var(--v4-on-action); padding: 0.5rem 1rem;
  border-radius: var(--v4-radius-sm); z-index: 999;
}

/* ── Buttons ──────────────────────────────────────────── */
.v4-btn-action {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: var(--v4-action); color: var(--v4-on-action);
  border: 0; border-radius: 999px;
  padding: 0.85rem 1.6rem; font-weight: 600; font-size: 0.98rem;
  cursor: pointer; text-decoration: none; transition: background .15s ease, transform .15s ease;
}
.v4-btn-action:hover { background: var(--v4-action-hover); }

.v4-btn-ghost {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: transparent; color: var(--v4-fg);
  border: 1.5px solid var(--v4-border); border-radius: 999px;
  padding: 0.85rem 1.6rem; font-weight: 600; text-decoration: none;
}
.v4-btn-ghost:hover { border-color: var(--v4-fg); }

/* ── Header ───────────────────────────────────────────── */
.v4-site-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--v4-bg) 88%, transparent);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--v4-border);
}
.v4-site-header__inner {
  display: flex; align-items: center; gap: 1.5rem;
  max-width: 1200px; margin-inline: auto; padding: 0.85rem 1.25rem;
}
.v4-site-title {
  font-weight: 900; font-size: 1.25rem; letter-spacing: 0.04em;
  text-decoration: none; color: var(--v4-fg); white-space: nowrap;
}
.v4-site-title b { color: var(--v4-action); }
.v4-nav { display: none; gap: 1.5rem; list-style: none; margin: 0; padding: 0; flex: 1; }
.v4-nav a { color: var(--v4-fg); text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.v4-nav a:hover { color: var(--v4-action); }
.v4-header-cta { margin-left: auto; }
.v4-acceder { display: none; align-items: center; gap: 0.4rem; text-decoration: none; color: var(--v4-fg); font-weight: 600; font-size: 0.92rem; margin-left: auto; margin-right: 1.25rem; white-space: nowrap; }
.v4-acceder + .v4-header-cta { margin-left: 0; }
.v4-acceder:hover { color: var(--v4-action); }
.v4-acceder .v4-ico { width: 1.1rem; height: 1.1rem; }
@media (min-width: 860px) { .v4-acceder { display: inline-flex; } }

@media (min-width: 860px) {
  .v4-nav { display: flex; }
  .v4-header-cta { margin-left: 0; }
}

/* ── Hero ─────────────────────────────────────────────── */
.v4-hero {
  background: var(--v4-black); color: var(--v4-white);
  margin: 16px; border-radius: var(--v4-radius-lg);
  overflow: hidden; position: relative;
}
.v4-hero::after {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(60% 80% at 80% 0%, rgba(226,0,26,0.35), transparent 60%),
    radial-gradient(50% 60% at 0% 100%, rgba(226,0,26,0.18), transparent 60%);
  pointer-events: none;
}
.v4-hero__inner { position: relative; z-index: 1; padding: clamp(3rem, 8vw, 6rem) 1.25rem; max-width: 1200px; margin-inline: auto; }
.v4-hero__eyebrow { font-family: var(--v4-font-mono); color: var(--v4-action); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.78rem; }
.v4-hero h1 { color: var(--v4-white); max-width: 16ch; }
.v4-hero p { color: #C9C9CE; max-width: 46ch; font-size: 1.1rem; }
.v4-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.v4-hero .v4-btn-ghost { color: var(--v4-white); border-color: rgba(255,255,255,0.3); }

/* ── Section ──────────────────────────────────────────── */
.v4-section { padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.v4-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.75rem; }
.v4-section__head a { color: var(--v4-action); font-weight: 600; text-decoration: none; white-space: nowrap; }
.v4-eyebrow { font-family: var(--v4-font-mono); color: var(--v4-action); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.75rem; }

/* ── Produktkarten ───────────────────────────────────── */
.v4-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 720px) { .v4-grid { grid-template-columns: repeat(4, 1fr); } }

.v4-card {
  background: var(--v4-bg); border: 1px solid var(--v4-border);
  border-radius: var(--v4-radius); overflow: hidden;
  display: flex; flex-direction: column; box-shadow: var(--v4-shadow);
}
.v4-card__media { aspect-ratio: 1 / 1; position: relative; background: var(--v4-bg-soft); }
.v4-card__media span {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-weight: 900; font-size: 2rem; color: var(--v4-border);
  background: repeating-linear-gradient(135deg, var(--v4-bg-soft) 0 12px, color-mix(in srgb, var(--v4-bg-soft) 70%, var(--v4-border)) 12px 24px);
}
.v4-badge {
  position: absolute; top: 0.6rem; left: 0.6rem; z-index: 2;
  background: var(--v4-action); color: var(--v4-on-action);
  font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em;
  padding: 0.25rem 0.5rem; border-radius: 999px;
}
.v4-card__body { padding: 0.9rem; display: flex; flex-direction: column; gap: 0.35rem; flex: 1; }
.v4-card__cat { font-family: var(--v4-font-mono); color: var(--v4-action); font-size: 0.7rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.1em; }
.v4-card__name { font-weight: 700; font-size: 1rem; }
.v4-card__price { font-weight: 800; font-size: 1.1rem; margin-top: auto; }
.v4-card__price small { color: var(--v4-fg-muted); font-weight: 600; font-size: 0.8rem; }
.v4-card .v4-btn-action { width: 100%; justify-content: center; margin-top: 0.5rem; }

/* ── Mitgliedschaften ─────────────────────────────────── */
.v4-plans { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .v4-plans { grid-template-columns: 1fr 1fr; } }
.v4-plan {
  border: 1px solid var(--v4-border); border-radius: var(--v4-radius);
  padding: 1.5rem; background: var(--v4-bg);
}
.v4-plan--featured { border-color: var(--v4-action); box-shadow: 0 0 0 2px var(--v4-action) inset; }
.v4-plan__price { font-size: 2.25rem; font-weight: 900; }
.v4-plan__price small { font-size: 0.95rem; font-weight: 600; color: var(--v4-fg-muted); }
.v4-plan ul { list-style: none; margin: 1rem 0 1.5rem; padding: 0; display: grid; gap: 0.5rem; }
.v4-plan li { padding-left: 1.5rem; position: relative; color: var(--v4-fg); }
.v4-plan li::before { content: ""; position: absolute; left: 0; top: 0.28em; width: 1em; height: 1em; background: var(--v4-action); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat; }

/* ── Performance-Portal (dunkel) ──────────────────────── */
.v4-portal {
  background: var(--v4-bg); color: var(--v4-fg);
  border-radius: var(--v4-radius); padding: clamp(1.75rem, 4vw, 2.75rem);
  border: 1px solid var(--v4-border);
}
.v4-portal__stats { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); margin-top: 1.25rem; }
.v4-stat { background: var(--v4-bg-soft); border: 1px solid var(--v4-border); border-radius: var(--v4-radius-sm); padding: 1rem; text-align: center; }
.v4-stat b { display: block; font-size: 1.75rem; font-weight: 900; color: var(--v4-action); }
.v4-stat span { color: var(--v4-fg-muted); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.06em; }
.v4-progress { height: 10px; border-radius: 999px; background: var(--v4-bg-soft); overflow: hidden; margin-top: 1.25rem; border: 1px solid var(--v4-border); }
.v4-progress i { display: block; height: 100%; width: 68%; background: var(--v4-action); }

/* ── Newsletter-Teaser ────────────────────────────────── */
.v4-newsletter {
  background: var(--v4-black); color: var(--v4-white);
  border-radius: var(--v4-radius); padding: clamp(1.75rem, 5vw, 3rem);
  position: relative; overflow: hidden;
}
.v4-newsletter::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(55% 130% at 100% 0%, rgba(226,0,26,0.32), transparent 60%);
  pointer-events: none;
}
.v4-newsletter__inner { position: relative; z-index: 1; max-width: 640px; }
.v4-newsletter h2 { color: var(--v4-white); }
.v4-newsletter .lead { color: #C9C9CE; margin: 0; }
.v4-newsletter__form { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1.25rem 0 0.85rem; }
.v4-newsletter__form input[type="email"] {
  flex: 1 1 220px; min-width: 0; padding: 0.85rem 1rem;
  border-radius: var(--v4-radius-sm); border: 1.5px solid rgba(255,255,255,0.25);
  background: var(--v4-white); color: var(--v4-black); font-size: 1rem;
}
.v4-newsletter__form input::placeholder { color: var(--v4-grey); }
.v4-consent { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.82rem; color: #C9C9CE; }
.v4-consent input { margin-top: 0.2rem; accent-color: var(--v4-red); }
.v4-consent a { color: var(--v4-white); text-decoration: underline; }
.v4-newsletter .fineprint { display: block; margin-top: 0.75rem; color: #8A8A90; font-size: 0.75rem; }

/* ── Footer ───────────────────────────────────────────── */
.v4-site-footer { background: var(--v4-bg-soft); border-top: 1px solid var(--v4-border); margin-top: 2rem; }
.v4-site-footer__inner { max-width: 1200px; margin-inline: auto; padding: 2.5rem 1.25rem; display: grid; gap: 1.25rem; }
.v4-legal { color: var(--v4-fg-muted); font-size: 0.82rem; max-width: 70ch; }
.v4-footer-nav { display: flex; flex-wrap: wrap; gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
.v4-footer-nav a { color: var(--v4-fg); text-decoration: none; font-size: 0.9rem; }
.v4-copyright { color: var(--v4-fg-muted); font-size: 0.82rem; }

/* ═══════════════════════════════════════════════════════════
   DESIGN-SYSTEM v2 — Senior-Level-Up (Art-Direction-Team)
   ═══════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition-duration: 0.01ms !important; }
}

/* Display-Headline mit optischer Korrektur */
.v4-display { font-size: var(--v4-fs-display); line-height: 0.92; letter-spacing: -0.035em; font-weight: 800; text-wrap: balance; margin: 0 0 0.4em; }
.v4-display .serif-accent { font-size: 1.04em; }
.v4-lead { font-size: var(--v4-fs-lead); line-height: 1.5; color: var(--v4-fg-muted); max-width: 46ch; }

/* Mono-Eyebrow mit rotem Leitstrich (Leitmotiv) */
.v4-eyebrow, .v4-hero__eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; }
.v4-eyebrow::before, .v4-hero__eyebrow::before { content: ""; width: 16px; height: 1px; background: var(--v4-action); flex: none; }

/* Preis-Sticker mit Tabellenziffern */
.v4-price { font-family: var(--v4-font-mono); font-weight: 500; font-variant-numeric: tabular-nums; display: inline-flex; align-items: flex-start; gap: 0.08em; line-height: 1; }
.v4-price .cur { font-size: 0.55em; color: var(--v4-fg-muted); margin-top: 0.15em; }
.v4-price .per { font-size: 0.5em; color: var(--v4-fg-muted); align-self: flex-end; margin-bottom: 0.18em; }
.v4-price--old { color: var(--v4-fg-muted); text-decoration: line-through; font-size: 0.8em; }

/* Bild-Pipeline: B&W-Treatment, Farbe bei Hover */
.v4-img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Farbiges Treatment (lebendig). --mono nur für bewusst editoriale B&W-Momente. */
.v4-img--bw { filter: saturate(1.08) contrast(1.03); transition: filter var(--v4-t-base) var(--v4-ease), transform var(--v4-t-base) var(--v4-ease); }
.v4-img--mono { filter: grayscale(1) contrast(1.06); }
.v4-img--reveal { overflow: hidden; }
.v4-img--reveal:hover .v4-img--bw, a:hover > .v4-img--bw { transform: scale(1.05); filter: saturate(1.15) contrast(1.05); }

/* Foto-Hero */
.v4-hero--photo .v4-hero__inner { min-height: clamp(560px, 80vh, 800px); display: flex; flex-direction: column; justify-content: space-between; }
.v4-hero__media { position: absolute; inset: 0; z-index: 0; }
.v4-hero__media .v4-img { filter: saturate(1.08) contrast(1.05) brightness(0.86); }
.v4-hero__media::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(180deg, rgba(14,14,16,0.55), rgba(14,14,16,0) 32%),
  linear-gradient(0deg, rgba(14,14,16,0.72), rgba(14,14,16,0.1) 42%); }
.v4-hero--photo::after { display: none; }
.v4-hero__topbar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; justify-content: space-between; font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.72); }
.v4-status { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid rgba(255,255,255,0.25); border-radius: 999px; padding: 0.45rem 0.85rem; }
.v4-status .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--v4-action); box-shadow: 0 0 0 0 rgba(226,0,26,0.5); animation: v4-pulse 2s var(--v4-ease) infinite; }
@keyframes v4-pulse { 70% { box-shadow: 0 0 0 8px rgba(226,0,26,0); } 100% { box-shadow: 0 0 0 0 rgba(226,0,26,0); } }
.v4-hero__bottom { display: grid; grid-template-columns: 1fr; gap: 1.25rem; align-items: end; }
@media (min-width: 860px) { .v4-hero__bottom { grid-template-columns: 1.4fr 1fr; } }

/* Numbers-Band (dunkel) */
.v4-numbers { background: var(--v4-black); color: var(--v4-white); }
.v4-numbers .v4-eyebrow { color: var(--v4-action); }
.v4-numbers h2 { color: var(--v4-white); }
.v4-numbers__grid { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 2rem; border-top: 1px solid rgba(255,255,255,0.16); }
@media (min-width: 860px) { .v4-numbers__grid { grid-template-columns: repeat(4, 1fr); } }
.v4-numb { padding: 2rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.16); }
.v4-numb + .v4-numb { border-left: 1px solid rgba(255,255,255,0.16); }
.v4-numb b { display: block; font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 800; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.v4-numb b i { font-family: var(--v4-font-serif); font-style: italic; color: var(--v4-action); }
.v4-numb span { color: rgba(255,255,255,0.6); font-size: 0.85rem; }

/* Pillars (3 caminos) */
.v4-pillars { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--v4-border); }
@media (min-width: 860px) { .v4-pillars { grid-template-columns: repeat(3, 1fr); } }
.v4-pillar { padding: 3rem 2rem; border-bottom: 1px solid var(--v4-border); display: flex; flex-direction: column; gap: 0.75rem; min-height: 360px; transition: background var(--v4-t-base) var(--v4-ease); text-decoration: none; color: inherit; }
.v4-pillar + .v4-pillar { border-left: 1px solid var(--v4-border); }
.v4-pillar:hover { background: var(--v4-bg-soft); }
.v4-pillar__n { font-family: var(--v4-font-mono); color: var(--v4-action); font-size: 0.75rem; letter-spacing: 0.1em; }
.v4-pillar h3 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin: 0; }
.v4-pillar p { color: var(--v4-fg-muted); }
.v4-pillar__link { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--v4-border); font-weight: 600; color: var(--v4-action); }
.v4-pillar:hover .v4-pillar__link span { display: inline-block; transform: translateX(4px); transition: transform var(--v4-t-fast) var(--v4-ease); }

/* Service-/Espacio-Karten mit Foto */
.v4-svc { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 860px) { .v4-svc { grid-template-columns: repeat(4, 1fr); } }
.v4-svc__card { position: relative; aspect-ratio: 3/4; border-radius: var(--v4-radius); overflow: hidden; background: var(--v4-black); color: var(--v4-white); text-decoration: none; }
.v4-svc__card .v4-img { position: absolute; inset: 0; opacity: 0.8; transition: opacity var(--v4-t-base) var(--v4-ease), transform var(--v4-t-base) var(--v4-ease); }
.v4-svc__card:hover .v4-img { opacity: 0.62; transform: scale(1.05); }
.v4-svc__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,14,16,0.85), transparent 55%); }
.v4-svc__body { position: absolute; inset: auto 0 0 0; z-index: 1; padding: 1.1rem; }
.v4-svc__label { font-family: var(--v4-font-mono); color: var(--v4-action); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; }
.v4-svc__body h4 { margin: 0.25rem 0 0; font-size: 1.4rem; font-weight: 800; }

/* Mister-Vin-Block (Portrait + Stats) */
.v4-vin { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }
@media (min-width: 860px) { .v4-vin { grid-template-columns: 1.05fr 1fr; gap: 4rem; } }
.v4-vin__media { position: relative; aspect-ratio: 4/5; border-radius: var(--v4-radius); overflow: hidden; }
.v4-vin__tag { position: absolute; top: 1rem; left: 1rem; z-index: 2; background: var(--v4-action); color: #fff; font-family: var(--v4-font-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.35rem 0.7rem; border-radius: 999px; }
.v4-vin__sign { position: absolute; right: 1rem; bottom: 0.75rem; z-index: 2; font-family: var(--v4-font-serif); font-style: italic; font-size: 3.25rem; color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,0.5); }
.v4-cred { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--v4-border); border-bottom: 1px solid var(--v4-border); margin: 1.5rem 0; }
.v4-cred div { padding: 1.1rem 0.5rem; }
.v4-cred div + div { border-left: 1px solid var(--v4-border); padding-left: 1rem; }
.v4-cred b { display: block; font-size: 1.9rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.v4-cred b i { font-family: var(--v4-font-serif); font-style: italic; color: var(--v4-action); }
.v4-cred span { color: var(--v4-fg-muted); font-size: 0.82rem; }

/* Pack-Karten (Tienda) */
.v4-packs { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .v4-packs { grid-template-columns: repeat(3, 1fr); } }
.v4-pack { border: 1px solid var(--v4-border); border-radius: var(--v4-radius); overflow: hidden; display: flex; flex-direction: column; transition: transform var(--v4-t-base) var(--v4-ease), box-shadow var(--v4-t-base) var(--v4-ease); }
.v4-pack:hover { transform: translateY(-4px); box-shadow: var(--v4-shadow-hover); }
.v4-pack__media { position: relative; aspect-ratio: 8/5; overflow: hidden; background: var(--v4-bg-soft); }
.v4-pack__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,14,16,0.5), transparent 60%); }
.v4-pack__pn { position: absolute; top: 0.75rem; left: 0.75rem; z-index: 2; font-family: var(--v4-font-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; background: rgba(14,14,16,0.55); border-radius: 999px; padding: 0.25rem 0.6rem; }
.v4-pack__price { position: absolute; top: 0.7rem; right: 0.7rem; z-index: 2; background: var(--v4-action); color: #fff; font-family: var(--v4-font-mono); font-weight: 600; font-size: 1.4rem; padding: 0.35rem 0.7rem; border-radius: 12px; transform: rotate(4deg); box-shadow: 0 10px 24px rgba(226,0,26,0.32); }
.v4-pack__body { padding: 1.25rem; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
.v4-pack__body h3 { font-size: 1.6rem; margin: 0; }
.v4-pack__body ul { list-style: none; margin: 0.25rem 0 1rem; padding: 0; display: grid; gap: 0.4rem; }
.v4-pack__body li { display: flex; justify-content: space-between; gap: 1rem; font-family: var(--v4-font-mono); font-size: 0.78rem; color: var(--v4-fg-muted); padding-bottom: 0.4rem; border-bottom: 1px solid var(--v4-border); }
.v4-pack__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.v4-pack__dur { font-family: var(--v4-font-mono); font-size: 0.72rem; color: var(--v4-fg-muted); }

/* Schedule (Horarios) */
.v4-schedule { border: 1px solid var(--v4-border); border-radius: var(--v4-radius); overflow: hidden; }
.v4-sch-row { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: 0.9rem 1.25rem; border-bottom: 1px solid var(--v4-border); font-variant-numeric: tabular-nums; }
.v4-sch-row:last-child { border-bottom: 0; }
.v4-sch-row.head { background: var(--v4-bg-soft); font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--v4-action); }
.v4-sch-row b { font-weight: 600; }
.v4-sch-row time, .v4-sch-row .v4-time { font-family: var(--v4-font-mono); }

/* Contacto */
.v4-contact { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
@media (min-width: 860px) { .v4-contact { grid-template-columns: 1fr 1.1fr; gap: 4rem; } }
.v4-ci-row { display: grid; gap: 0.2rem; padding: 1.1rem 0; border-bottom: 1px solid var(--v4-border); }
.v4-ci-row .k { font-family: var(--v4-font-mono); color: var(--v4-action); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.v4-ci-row .v { font-size: 1.3rem; font-weight: 600; }
.v4-map { aspect-ratio: 4/3; border-radius: var(--v4-radius); overflow: hidden; border: 1px solid var(--v4-border); }

/* Sticky Sub-Nav (Sektionssprung) */
.v4-subnav { position: sticky; top: 0; z-index: 40; background: color-mix(in srgb, var(--v4-bg) 90%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--v4-border); }
.v4-subnav__inner { max-width: var(--v4-maxw); margin-inline: auto; padding: 0.85rem var(--v4-gutter); display: flex; gap: 1.5rem; overflow-x: auto; }
.v4-subnav a { white-space: nowrap; text-decoration: none; color: var(--v4-fg-muted); font-family: var(--v4-font-mono); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.v4-subnav a:hover { color: var(--v4-action); }

/* Floating WhatsApp */
.v4-wa { position: fixed; right: 20px; bottom: 20px; z-index: 100; display: inline-flex; align-items: center; gap: 0.5rem; background: var(--v4-action); color: #fff; text-decoration: none; font-weight: 600; padding: 0.8rem 1.1rem; border-radius: 999px; box-shadow: 0 16px 40px rgba(226,0,26,0.38); }
.v4-wa:hover { transform: translateY(-2px); }

/* B2B-Banner */
.v4-b2b { background: var(--v4-bg-soft); border: 1px solid var(--v4-border); border-radius: var(--v4-radius); padding: clamp(1.75rem, 4vw, 2.5rem); display: grid; gap: 1rem; }
@media (min-width: 720px) { .v4-b2b { grid-template-columns: 1.4fr auto; align-items: center; } }

/* Nav: aktiver Link */
.v4-nav a.is-active { color: var(--v4-action); }

/* ═══════════════════════════════════════════════════════════
   TIENDA / SHOP — vollständiges E-Commerce-Layer
   ═══════════════════════════════════════════════════════════ */

/* Mundo-Akzente (Farbe/Leben, Aktion bleibt rot) */
:root {
  --v4-cross:   #FF6A00;   /* CrossFit — energético naranja */
  --v4-fit:     #00B894;   /* Fitness — verde fresco */
  --v4-cult:    #7A5CFF;   /* Culturismo — violeta potente */
}

/* Ankündigungs-Bar */
.v4-shopbar { background: var(--v4-black); color: #fff; text-align: center; font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.55rem 1rem; }
.v4-shopbar b { color: var(--v4-action); }

/* Shop-Sub-Nav */
.v4-shopnav { position: sticky; top: 0; z-index: 45; background: color-mix(in srgb, var(--v4-bg) 92%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--v4-border); }
.v4-shopnav__inner { max-width: var(--v4-maxw); margin-inline: auto; padding: 0.7rem var(--v4-gutter); display: flex; align-items: center; gap: 1.5rem; }
.v4-shopnav a { text-decoration: none; color: var(--v4-fg); font-weight: 600; font-size: 0.92rem; white-space: nowrap; }
.v4-shopnav a:hover { color: var(--v4-action); }
.v4-shopnav__links { display: none; gap: 1.5rem; }
@media (min-width: 860px) { .v4-shopnav__links { display: flex; } }
.v4-cart-btn { margin-left: auto; display: inline-flex; align-items: center; gap: 0.45rem; background: var(--v4-action); color: #fff; border-radius: 999px; padding: 0.5rem 0.95rem; font-weight: 600; font-size: 0.9rem; }
.v4-cart-btn .count { background: #fff; color: var(--v4-action); border-radius: 999px; min-width: 20px; height: 20px; display: inline-grid; place-items: center; font-size: 0.72rem; font-weight: 800; padding: 0 5px; }

/* Mundos (Themenwelten) */
.v4-mundos { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .v4-mundos { grid-template-columns: repeat(3, 1fr); } }
.v4-mundo { position: relative; aspect-ratio: 3/4; border-radius: var(--v4-radius); overflow: hidden; display: flex; align-items: flex-end; text-decoration: none; color: #fff; }
.v4-mundo .v4-img { position: absolute; inset: 0; transition: transform var(--v4-t-base) var(--v4-ease); }
.v4-mundo:hover .v4-img { transform: scale(1.06); }
.v4-mundo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,14,16,0.9), rgba(14,14,16,0.1) 65%); }
.v4-mundo__accent { position: absolute; inset: 0; opacity: 0.35; mix-blend-mode: multiply; }
.v4-mundo--cross .v4-mundo__accent { background: linear-gradient(0deg, var(--v4-cross), transparent 70%); }
.v4-mundo--fit .v4-mundo__accent { background: linear-gradient(0deg, var(--v4-fit), transparent 70%); }
.v4-mundo--cult .v4-mundo__accent { background: linear-gradient(0deg, var(--v4-cult), transparent 70%); }
.v4-mundo__body { position: relative; z-index: 1; padding: 1.5rem; }
.v4-mundo__tag { font-family: var(--v4-font-mono); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.85; }
.v4-mundo__body h3 { font-size: 2rem; margin: 0.2rem 0 0.5rem; }
.v4-mundo__link { font-weight: 600; }

/* Kategorie-Kacheln */
.v4-cats { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 720px) { .v4-cats { grid-template-columns: repeat(4, 1fr); } }
.v4-cat { position: relative; aspect-ratio: 1/1; border-radius: var(--v4-radius); overflow: hidden; display: flex; align-items: flex-end; text-decoration: none; color: #fff; background: var(--v4-bg-soft); }
.v4-cat .v4-img { position: absolute; inset: 0; transition: transform var(--v4-t-base) var(--v4-ease); }
.v4-cat:hover .v4-img { transform: scale(1.06); }
.v4-cat::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,14,16,0.85), transparent 60%); }
.v4-cat span { position: relative; z-index: 1; padding: 0.9rem 1rem; font-weight: 700; font-size: 1.05rem; }

/* Bewertung + Badges */
.v4-rating { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.78rem; color: var(--v4-fg-muted); }
.v4-rating .stars { color: #F5A623; letter-spacing: 0.05em; }
.v4-badge--new { background: var(--v4-fit); }
.v4-badge--oferta { background: var(--v4-action); }
.v4-badge--best { background: var(--v4-black); }
.v4-card__rating { margin-top: 0.1rem; }
.v4-card__meta { font-family: var(--v4-font-mono); font-size: 0.72rem; color: var(--v4-fg-muted); }
.v4-card__row { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-top: auto; }
.v4-card__sub { font-family: var(--v4-font-mono); font-size: 0.68rem; color: var(--v4-fit); }

/* Ofertas-Streifen */
.v4-oferta-band { background: linear-gradient(100deg, var(--v4-red-dark), var(--v4-action)); color: #fff; border-radius: var(--v4-radius); padding: clamp(1.5rem, 4vw, 2.5rem); display: grid; gap: 1rem; }
@media (min-width: 720px) { .v4-oferta-band { grid-template-columns: 1.5fr auto; align-items: center; } }
.v4-oferta-band h2 { color: #fff; }
.v4-oferta-band .v4-btn-action { background: #fff; color: var(--v4-action); }
.v4-oferta-band .v4-btn-action:hover { background: var(--v4-off); }

/* Shop-Layout mit Filtern */
.v4-shop-grid { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 960px) { .v4-shop-grid { grid-template-columns: 240px 1fr; } }
.v4-filters { display: grid; gap: 1.5rem; align-content: start; }
.v4-filters__group { border-bottom: 1px solid var(--v4-border); padding-bottom: 1.25rem; }
.v4-filters h4 { font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--v4-action); margin: 0 0 0.75rem; }
.v4-filters label { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0; color: var(--v4-fg-muted); font-size: 0.9rem; cursor: pointer; }
.v4-filters input { accent-color: var(--v4-action); }
.v4-shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
.v4-chiprow { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.v4-chip { border: 1px solid var(--v4-border); border-radius: 999px; padding: 0.35rem 0.85rem; font-size: 0.8rem; font-weight: 600; cursor: pointer; background: var(--v4-bg); }
.v4-chip.is-active { background: var(--v4-black); color: #fff; border-color: var(--v4-black); }
.v4-select { border: 1px solid var(--v4-border); border-radius: 999px; padding: 0.5rem 1rem; font: inherit; font-size: 0.85rem; background: var(--v4-bg); }

/* Breadcrumb */
.v4-breadcrumb { font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--v4-fg-muted); display: flex; gap: 0.5rem; flex-wrap: wrap; padding: 1.25rem 0; }
.v4-breadcrumb a { color: var(--v4-fg-muted); text-decoration: none; }
.v4-breadcrumb a:hover { color: var(--v4-action); }

/* Produktdetail (PDP) */
.v4-pdp { display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 860px) { .v4-pdp { grid-template-columns: 1.1fr 1fr; gap: 3.5rem; } }
.v4-gallery__main { aspect-ratio: 1/1; border-radius: var(--v4-radius); overflow: hidden; background: var(--v4-bg-soft); border: 1px solid var(--v4-border); }
.v4-gallery__thumbs { display: flex; gap: 0.6rem; margin-top: 0.6rem; }
.v4-gallery__thumbs img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--v4-radius-sm); border: 1px solid var(--v4-border); cursor: pointer; }
.v4-gallery__thumbs img.is-active { border-color: var(--v4-action); }
.v4-pdp__info h1 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin: 0.5rem 0; }
.v4-pdp__price { display: flex; align-items: baseline; gap: 0.75rem; margin: 1rem 0; }
.v4-variants { display: flex; gap: 0.5rem; flex-wrap: wrap; margin: 1rem 0; }
.v4-variant { border: 1.5px solid var(--v4-border); border-radius: 999px; padding: 0.5rem 1rem; font-size: 0.85rem; font-weight: 600; cursor: pointer; background: var(--v4-bg); }
.v4-variant.is-active { border-color: var(--v4-action); color: var(--v4-action); }
.v4-buybox { display: flex; gap: 0.6rem; flex-wrap: wrap; align-items: center; margin: 1.25rem 0; }
.v4-qty { display: inline-flex; align-items: center; border: 1.5px solid var(--v4-border); border-radius: 999px; overflow: hidden; }
.v4-qty button { border: 0; background: transparent; padding: 0.6rem 0.9rem; font-size: 1.1rem; cursor: pointer; }
.v4-qty span { min-width: 2ch; text-align: center; font-variant-numeric: tabular-nums; }
.v4-subscribe { border: 1.5px solid var(--v4-fit); background: color-mix(in srgb, var(--v4-fit) 8%, transparent); border-radius: var(--v4-radius-sm); padding: 0.85rem 1rem; display: flex; align-items: center; gap: 0.6rem; margin: 1rem 0; font-size: 0.9rem; }
.v4-subscribe b { color: var(--v4-fit); }
.v4-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin: 1.25rem 0; }
.v4-trust div { font-family: var(--v4-font-mono); font-size: 0.68rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--v4-fg-muted); text-align: center; border: 1px solid var(--v4-border); border-radius: var(--v4-radius-sm); padding: 0.7rem 0.4rem; }
.v4-bizum { background: #0b8be3; color: #fff; }
.v4-tabs { border-top: 1px solid var(--v4-border); margin-top: 1.25rem; }
.v4-tab { border-bottom: 1px solid var(--v4-border); }
.v4-tab > summary { list-style: none; cursor: pointer; padding: 1rem 0; font-weight: 700; display: flex; justify-content: space-between; }
.v4-tab > summary::-webkit-details-marker { display: none; }
.v4-tab > summary::after { content: "+"; color: var(--v4-action); }
.v4-tab[open] > summary::after { content: "−"; }
.v4-tab__body { padding: 0 0 1.25rem; color: var(--v4-fg-muted); }
.v4-tab__body .v4-claim { display: inline-block; border: 1px solid var(--v4-border); border-radius: 999px; padding: 0.2rem 0.6rem; font-size: 0.75rem; margin: 0.2rem 0.2rem 0 0; color: var(--v4-fg); }

/* Warenkorb */
.v4-cart { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 860px) { .v4-cart { grid-template-columns: 1.5fr 1fr; align-items: start; } }
.v4-cart-line { display: grid; grid-template-columns: 84px 1fr auto; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--v4-border); }
.v4-cart-line img { width: 84px; height: 84px; object-fit: cover; border-radius: var(--v4-radius-sm); }
.v4-cart-line__name { font-weight: 700; }
.v4-cart-line__meta { font-family: var(--v4-font-mono); font-size: 0.75rem; color: var(--v4-fg-muted); }
.v4-summary { border: 1px solid var(--v4-border); border-radius: var(--v4-radius); padding: 1.5rem; background: var(--v4-bg-soft); position: sticky; top: 90px; display: grid; gap: 0.75rem; }
.v4-summary__row { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.v4-summary__total { border-top: 1px solid var(--v4-border); padding-top: 0.75rem; font-weight: 800; font-size: 1.25rem; }
.v4-ship { background: var(--v4-bg); border: 1px solid var(--v4-border); border-radius: var(--v4-radius-sm); padding: 0.75rem; font-size: 0.82rem; }
.v4-ship__bar { height: 8px; border-radius: 999px; background: var(--v4-border); overflow: hidden; margin-top: 0.5rem; }
.v4-ship__bar i { display: block; height: 100%; background: var(--v4-fit); }

/* Angebots-Countdown (zeitlich limitierte Ofertas) */
.v4-countdown { display: inline-flex; align-items: center; gap: 0.4rem; font-family: var(--v4-font-mono); font-size: 0.74rem; font-variant-numeric: tabular-nums; background: var(--v4-red-tint); color: var(--v4-action); border: 1px solid color-mix(in srgb, var(--v4-action) 30%, transparent); border-radius: 999px; padding: 0.28rem 0.6rem; }
.v4-countdown::before { content: "⏱"; font-size: 0.8em; }
.v4-countdown b { font-weight: 700; letter-spacing: 0.02em; }
.v4-discount { font-family: var(--v4-font-mono); font-size: 0.72rem; font-weight: 700; color: var(--v4-action); }

/* Zahlungs-Logos */
.v4-pay { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.v4-pay__b { display: inline-flex; align-items: center; gap: 0.3rem; height: 27px; padding: 0 0.55rem; background: #fff; border: 1px solid var(--v4-line); border-radius: 6px; font-weight: 800; font-size: 0.72rem; letter-spacing: 0.02em; line-height: 1; }
.v4-pay__b--visa { color: #1A1F71; font-style: italic; }
.v4-pay__b--mc .mc { position: relative; width: 25px; height: 16px; }
.v4-pay__b--mc .mc i { position: absolute; top: 0; width: 16px; height: 16px; border-radius: 50%; }
.v4-pay__b--mc .mc i:first-child { left: 0; background: #EB001B; }
.v4-pay__b--mc .mc i:last-child { right: 0; background: #F79E1B; mix-blend-mode: multiply; }
.v4-pay__b--bizum { color: #0aa5bf; }
.v4-pay__b--apple { color: #111; }
.v4-pay__b--gpay .b { color: #4285F4; } .v4-pay__b--gpay .r { color: #EA4335; } .v4-pay__b--gpay .y { color: #FBBC04; } .v4-pay__b--gpay .g2 { color: #34A853; }
.v4-pay__b--paypal { font-style: italic; } .v4-pay__b--paypal .p1 { color: #003087; } .v4-pay__b--paypal .p2 { color: #009cde; }

/* Segment-Toggle (z.B. Plan-Typ) */
.v4-seg { display: inline-flex; border: 1.5px solid var(--v4-border); border-radius: 999px; padding: 4px; gap: 4px; background: var(--v4-bg); }
.v4-seg button { border: 0; background: transparent; padding: 0.5rem 1.1rem; border-radius: 999px; font: inherit; font-weight: 600; font-size: 0.9rem; cursor: pointer; color: var(--v4-fg-muted); white-space: nowrap; }
.v4-seg button.is-active { background: var(--v4-black); color: #fff; }

/* 3-Spalten-Pläne */
@media (min-width: 860px) { .v4-plans--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 560px) { .v4-plans--4 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px) { .v4-plans--4 { grid-template-columns: repeat(4, 1fr); } }
.v4-permes { font-size: 2rem; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1; }
.v4-permes small { font-size: 0.9rem; font-weight: 600; color: var(--v4-fg-muted); }
.v4-plan__pill { display: inline-block; font-family: var(--v4-font-mono); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.2rem 0.55rem; border-radius: 999px; border: 1px solid var(--v4-border); color: var(--v4-fg-muted); }
.v4-plan__pill--free { color: var(--v4-fit); border-color: var(--v4-fit); }
.v4-plan__pill--save { color: var(--v4-action); border-color: var(--v4-action); }
.v4-plan__save { background: var(--v4-red-tint); border-radius: 8px; padding: 0.6rem 0.75rem; margin: 0.75rem 0; font-size: 0.85rem; }
.v4-plan__save b { color: var(--v4-action); }

/* Rabattcode im Warenkorb */
.v4-coupon { display: flex; gap: 0.5rem; margin: 0.25rem 0 0.5rem; }
.v4-coupon input { flex: 1; min-width: 0; padding: 0.65rem 0.85rem; border: 1.5px solid var(--v4-border); border-radius: var(--v4-radius-sm); font: inherit; text-transform: uppercase; letter-spacing: 0.04em; }
.v4-coupon button { padding: 0.65rem 1.1rem; }
.v4-coupon-applied { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; background: color-mix(in srgb, var(--v4-fit) 10%, transparent); border: 1px solid var(--v4-fit); border-radius: var(--v4-radius-sm); padding: 0.5rem 0.75rem; font-family: var(--v4-font-mono); font-size: 0.8rem; }
.v4-coupon-applied b { color: var(--v4-fit); }

/* Buchungs-/Checkout-Stepper */
.v4-stepper { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.75rem; font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; }
.v4-stepper span { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--v4-fg-muted); }
.v4-stepper span.is-active { color: var(--v4-action); }
.v4-stepper b { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid currentColor; font-weight: 700; }
.v4-stepper span.is-done b { background: var(--v4-fit); border-color: var(--v4-fit); color: #fff; }
.v4-step { display: none; } .v4-step.is-active { display: block; }

.v4-opts { display: grid; gap: 0.6rem; margin: 0.5rem 0 1.5rem; }
.v4-opt { display: flex; align-items: center; gap: 0.85rem; border: 1.5px solid var(--v4-border); border-radius: var(--v4-radius-sm); padding: 0.9rem 1rem; cursor: pointer; transition: border-color var(--v4-t-fast) var(--v4-ease), background var(--v4-t-fast) var(--v4-ease); }
.v4-opt.is-active { border-color: var(--v4-action); background: var(--v4-red-tint); }
.v4-opt[aria-disabled="true"] { opacity: 0.45; pointer-events: none; }
.v4-opt__r { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--v4-border); flex: none; }
.v4-opt.is-active .v4-opt__r { border-color: var(--v4-action); background: radial-gradient(var(--v4-action) 42%, transparent 46%); }
.v4-opt__main { flex: 1; } .v4-opt__main b { display: block; } .v4-opt__main small { color: var(--v4-fg-muted); }
.v4-opt__price { font-family: var(--v4-font-mono); font-weight: 700; white-space: nowrap; }
.v4-opt__tag { font-family: var(--v4-font-mono); font-size: 0.68rem; color: var(--v4-fit); }

.v4-field { width: 100%; padding: 0.8rem 1rem; border: 1.5px solid var(--v4-border); border-radius: var(--v4-radius-sm); font: inherit; font-size: 1rem; background: var(--v4-bg); }
.v4-field-row { display: grid; gap: 0.75rem; }
@media (min-width: 600px) { .v4-field-row--2 { grid-template-columns: 1fr 1fr; } }
.v4-label { font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--v4-action); margin: 0.75rem 0 0.35rem; display: block; }
.v4-today { font-size: 2.25rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.v4-confirm-ico { width: 64px; height: 64px; border-radius: 50%; background: var(--v4-fit); color: #fff; display: grid; place-items: center; font-size: 2rem; margin-bottom: 1rem; }

/* Reservas / Slot-Buchung (aforo) */
.v4-memberbar { background: var(--v4-black); color: #fff; }
.v4-memberbar__inner { max-width: var(--v4-maxw); margin-inline: auto; padding: 0.6rem var(--v4-gutter); display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-family: var(--v4-font-mono); font-size: 0.74rem; letter-spacing: 0.06em; text-transform: uppercase; }
.v4-memberbar a { color: #fff; }
.v4-slot { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 0.95rem 1.1rem; border: 1px solid var(--v4-border); border-radius: var(--v4-radius-sm); margin-bottom: 0.6rem; background: var(--v4-bg); }
.v4-slot__time { font-family: var(--v4-font-mono); font-weight: 700; font-variant-numeric: tabular-nums; font-size: 1.05rem; white-space: nowrap; }
.v4-slot__act { font-weight: 700; }
.v4-slot__act .tag { font-family: var(--v4-font-mono); font-size: 0.62rem; letter-spacing: 0.06em; text-transform: uppercase; background: var(--v4-black); color: #fff; border-radius: 999px; padding: 0.1rem 0.45rem; margin-left: 0.4rem; vertical-align: middle; }
.v4-slot__meta { color: var(--v4-fg-muted); font-size: 0.82rem; }
.v4-aforo { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.35rem; }
.v4-aforo__bar { width: 110px; height: 6px; border-radius: 999px; background: var(--v4-border); overflow: hidden; }
.v4-aforo__bar i { display: block; height: 100%; background: var(--v4-fit); }
.v4-aforo__bar.med i { background: #F5A623; }
.v4-aforo__bar.full i { background: var(--v4-action); }
.v4-aforo span { font-family: var(--v4-font-mono); font-size: 0.72rem; color: var(--v4-fg-muted); white-space: nowrap; }
.v4-slot__cta { text-align: right; }
.v4-slot.is-reserved { border-color: var(--v4-fit); background: color-mix(in srgb, var(--v4-fit) 7%, transparent); }
.v4-slot.is-full { opacity: 0.72; }
.v4-btn-done { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--v4-fit); font-weight: 700; font-size: 0.9rem; }

/* Mi cuenta (dashboard) */
.v4-account { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 880px) { .v4-account { grid-template-columns: 250px 1fr; align-items: start; } }
.v4-acc-side { display: grid; gap: 1rem; align-content: start; }
.v4-acc-card { border: 1px solid var(--v4-border); border-radius: var(--v4-radius); padding: 1.25rem; }
.v4-acc-id b { display: block; font-size: 1.1rem; }
.v4-acc-id span { font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--v4-action); }
.v4-acc-nav { display: grid; gap: 0.15rem; }
.v4-acc-nav a { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.65rem 0.85rem; border-radius: var(--v4-radius-sm); text-decoration: none; color: var(--v4-fg); font-weight: 600; font-size: 0.92rem; cursor: pointer; }
.v4-acc-nav a:hover { background: var(--v4-bg-soft); }
.v4-acc-nav a.is-active { background: var(--v4-black); color: #fff; }
.v4-acc-nav .badge { background: var(--v4-action); color: #fff; border-radius: 999px; font-family: var(--v4-font-mono); font-size: 0.68rem; padding: 0.05rem 0.45rem; }
.v4-acc-section { display: none; }
.v4-acc-section.is-active { display: block; }
.v4-acc-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 620px) { .v4-acc-grid { grid-template-columns: 1fr 1fr; } }
.v4-order { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--v4-border); }
.v4-order__meta { font-family: var(--v4-font-mono); font-size: 0.78rem; color: var(--v4-fg-muted); }
.v4-pill-status { font-family: var(--v4-font-mono); font-size: 0.68rem; letter-spacing: 0.05em; text-transform: uppercase; padding: 0.2rem 0.55rem; border-radius: 999px; border: 1px solid var(--v4-border); white-space: nowrap; }
.v4-pill-status--ok { color: var(--v4-fit); border-color: var(--v4-fit); }
.v4-pill-status--pend { color: #C8860B; border-color: #E0A93B; }
.v4-coupon-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 1.5px dashed var(--v4-action); border-radius: var(--v4-radius-sm); padding: 0.9rem 1.1rem; margin-bottom: 0.6rem; }
.v4-coupon-code { font-family: var(--v4-font-mono); font-weight: 800; letter-spacing: 0.08em; color: var(--v4-action); font-size: 1.05rem; }

/* Login passwordless (OTP) */
.v4-auth { min-height: 100vh; display: grid; grid-template-columns: 1fr; }
@media (min-width: 920px) { .v4-auth { grid-template-columns: 1.1fr 1fr; } }
.v4-auth__aside { position: relative; display: none; background: var(--v4-black); overflow: hidden; }
@media (min-width: 920px) { .v4-auth__aside { display: block; } }
.v4-auth__aside img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(1.05) contrast(1.05) brightness(0.7); }
.v4-auth__aside::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,14,16,0.85), rgba(14,14,16,0.2)); }
.v4-auth__aside-txt { position: absolute; inset: auto 0 0 0; z-index: 1; padding: 3rem; color: #fff; }
.v4-auth__main { display: grid; place-items: center; padding: 2rem 1.25rem; background: var(--v4-bg-soft); }
.v4-auth__card { width: 100%; max-width: 420px; background: var(--v4-bg); border: 1px solid var(--v4-border); border-radius: var(--v4-radius-lg); padding: clamp(1.5rem, 4vw, 2.5rem); }
.v4-otp { display: flex; gap: 0.5rem; justify-content: space-between; margin: 1rem 0; }
.v4-otp input { width: 100%; max-width: 52px; aspect-ratio: 1 / 1; text-align: center; font-size: 1.4rem; font-weight: 700; font-family: var(--v4-font-mono); border: 1.5px solid var(--v4-border); border-radius: var(--v4-radius-sm); }
.v4-otp input:focus { border-color: var(--v4-action); outline: none; }
.v4-auth__chan { display: flex; gap: 0.5rem; margin: 0.75rem 0 0; }
.v4-auth__step { display: none; } .v4-auth__step.is-active { display: block; }
.v4-auth__note { font-size: 0.78rem; color: var(--v4-fg-muted); }

/* Mobile Burger + Off-Canvas-Drawer */
.v4-burger { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; margin-left: auto; border: 0; background: transparent; cursor: pointer; padding: 11px; }
.v4-burger span { display: block; height: 2px; background: var(--v4-fg); border-radius: 2px; }
@media (min-width: 860px) { .v4-burger { display: none; } }
@media (max-width: 859px) { .v4-header-cta { display: none; } }
.v4-drawer { position: fixed; inset: 0; z-index: 120; visibility: hidden; }
.v4-drawer.is-open { visibility: visible; }
.v4-drawer__overlay { position: absolute; inset: 0; background: rgba(14,14,16,0.5); opacity: 0; transition: opacity 0.25s var(--v4-ease); }
.v4-drawer.is-open .v4-drawer__overlay { opacity: 1; }
.v4-drawer__panel { position: absolute; top: 0; right: 0; height: 100%; width: min(86%, 360px); background: var(--v4-bg); transform: translateX(100%); transition: transform 0.28s var(--v4-ease); display: flex; flex-direction: column; padding: 1.25rem; overflow-y: auto; }
.v4-drawer.is-open .v4-drawer__panel { transform: translateX(0); }
.v4-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.v4-drawer__close { border: 0; background: transparent; font-size: 1.8rem; line-height: 1; cursor: pointer; padding: 0.1rem 0.5rem; color: var(--v4-fg); }
.v4-drawer__label { font-family: var(--v4-font-mono); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--v4-action); margin: 1rem 0 0.25rem; }
.v4-drawer__nav { display: grid; }
.v4-drawer__nav a { padding: 0.85rem 0.4rem; text-decoration: none; color: var(--v4-fg); font-weight: 700; font-size: 1.1rem; border-bottom: 1px solid var(--v4-border); }
.v4-drawer__nav a:hover { color: var(--v4-action); }
.v4-drawer__cta { margin-top: auto; padding-top: 1.25rem; display: grid; gap: 0.5rem; }
.v4-drawer__cta .v4-btn-action, .v4-drawer__cta .v4-btn-ghost { justify-content: center; }
body.v4-noscroll { overflow: hidden; }

/* Icon-System (Inline-SVG, stroke = currentColor) */
.v4-ico { width: 1.1em; height: 1.1em; display: inline-block; vertical-align: -0.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.v4-iconlist { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: 0.65rem; }
.v4-iconlist li { display: flex; gap: 0.65rem; align-items: flex-start; color: var(--v4-fg-muted); line-height: 1.5; }
.v4-iconlist li > .v4-ico { width: 1.2rem; height: 1.2rem; margin-top: 0.15em; color: var(--v4-action); }
.v4-drawer__nav a { display: flex; align-items: center; gap: 0.75rem; }
.v4-drawer__nav a > .v4-ico { width: 1.25rem; height: 1.25rem; color: var(--v4-action); }
.v4-confirm-ico .v4-ico { width: 2rem; height: 2rem; stroke-width: 2.4; color: #fff; }
.v4-trust div { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.v4-trust .v4-ico { width: 1.4rem; height: 1.4rem; color: var(--v4-action); }
.v4-ci-row .k { display: inline-flex; align-items: center; gap: 0.4rem; }
.v4-ci-row .k .v4-ico { width: 1rem; height: 1rem; }

/* Verfeinerte Formulare (kompakt, hochwertig) */
.v4-form { display: grid; gap: 0.7rem; max-width: 440px; }
.v4-form .v4-field, .v4-form .v4-input { width: 100%; padding: 0.6rem 0.8rem; font-size: 0.92rem; border: 1px solid var(--v4-border); border-radius: var(--v4-radius-sm); background: var(--v4-bg); color: var(--v4-fg); font-family: inherit; transition: border-color var(--v4-t-fast) var(--v4-ease); }
.v4-form .v4-field:focus, .v4-form .v4-input:focus { border-color: var(--v4-action); outline: none; }
.v4-form textarea.v4-field { min-height: 84px; resize: vertical; line-height: 1.5; }
.v4-form__row { display: grid; gap: 0.7rem; }
@media (min-width: 560px) { .v4-form__row--2 { grid-template-columns: 1fr 1fr; } }
.v4-flabel { display: block; font-family: var(--v4-font-mono); font-size: 0.64rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--v4-fg-muted); margin-bottom: 0.3rem; }
.v4-flabel .req { color: var(--v4-action); }
.v4-form .v4-consent { font-size: 0.78rem; }
.v4-form__submit { justify-self: start; padding: 0.6rem 1.5rem; font-size: 0.92rem; }

/* Newsletter verschlankt (kein Riesen-CTA) */
.v4-newsletter h2 { font-size: clamp(1.4rem, 2.6vw, 1.95rem); }
.v4-newsletter .lead { font-size: 0.95rem; }
.v4-newsletter__form { max-width: 430px; }
.v4-newsletter__form input[type="email"] { padding: 0.62rem 0.9rem; font-size: 0.95rem; }
.v4-newsletter__form .v4-btn-action { padding: 0.6rem 1.15rem; font-size: 0.9rem; white-space: nowrap; }
.v4-newsletter .v4-consent { font-size: 0.78rem; }

/* Contacto — Karten-Layout (Form + Info), nach Handoff „Contacto Form" */
.v4-contact2 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 920px) { .v4-contact2 { grid-template-columns: 1.05fr 0.95fr; align-items: stretch; } }

.v4-formcard { background: var(--v4-bg-soft); border: 1px solid var(--v4-border); border-radius: var(--v4-radius-lg); padding: clamp(1.5rem, 3vw, 3rem); display: flex; flex-direction: column; }
.v4-formcard__title { font-weight: 700; font-size: 1.5rem; letter-spacing: -0.02em; margin: 0 0 0.25rem; }
.v4-formcard__sub { font-size: 0.875rem; color: var(--v4-fg-muted); margin: 0 0 1.75rem; }
.v4-fc-form { display: flex; flex-direction: column; gap: 1.35rem; }
.v4-fc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 540px) { .v4-fc-row { grid-template-columns: 1fr; } }
.v4-fc-field { display: flex; flex-direction: column; gap: 0.55rem; }
.v4-fc-field label { font-family: var(--v4-font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v4-fg); font-weight: 500; }
.v4-fc-field label .req { color: var(--v4-action); margin-left: 3px; }
.v4-fc-field input, .v4-fc-field select, .v4-fc-field textarea { font-family: inherit; font-size: 1rem; color: var(--v4-fg); background: var(--v4-bg); border: 1.5px solid var(--v4-border); border-radius: 12px; padding: 0.9rem 1rem; width: 100%; -webkit-appearance: none; appearance: none; transition: border-color 0.18s, box-shadow 0.18s; }
.v4-fc-field input::placeholder, .v4-fc-field textarea::placeholder { color: #a8a8a8; }
.v4-fc-field input:hover, .v4-fc-field select:hover, .v4-fc-field textarea:hover { border-color: var(--v4-line-strong); }
.v4-fc-field input:focus, .v4-fc-field select:focus, .v4-fc-field textarea:focus { outline: none; border-color: var(--v4-action); box-shadow: 0 0 0 4px rgba(226,0,26,0.10); }
.v4-fc-field textarea { resize: vertical; min-height: 118px; line-height: 1.5; }
.v4-fc-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%230E0E10' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.6rem; cursor: pointer; }
.v4-fc-consent { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.84rem; line-height: 1.5; color: var(--v4-fg-muted); }
.v4-fc-consent input { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; flex-shrink: 0; margin: 1px 0 0; border: 1.5px solid var(--v4-border); border-radius: 6px; background: var(--v4-bg); cursor: pointer; position: relative; transition: background 0.15s, border-color 0.15s; }
.v4-fc-consent input:checked { background: var(--v4-action); border-color: var(--v4-action); }
.v4-fc-consent input:checked::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.v4-fc-consent a { color: var(--v4-action); text-decoration: underline; text-underline-offset: 2px; }
.v4-fc-actions { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; margin-top: 0.25rem; flex-wrap: wrap; }
.v4-fc-submit { display: inline-flex; align-items: center; gap: 0.75rem; padding: 1rem 2rem; background: var(--v4-black); color: #fff; font-weight: 600; font-size: 0.95rem; border: 0; border-radius: 999px; cursor: pointer; transition: background 0.2s, transform 0.12s; }
.v4-fc-submit:hover { background: var(--v4-action); }
.v4-fc-submit:active { transform: translateY(1px); }
.v4-fc-submit .arr { transition: transform 0.2s; }
.v4-fc-submit:hover .arr { transform: translateX(4px); }
.v4-fc-note { font-family: var(--v4-font-mono); font-size: 0.7rem; letter-spacing: 0.06em; color: var(--v4-fg-muted); }

.v4-infocard { background: var(--v4-black); color: #fff; border-radius: var(--v4-radius-lg); padding: clamp(1.5rem, 3vw, 3rem); display: flex; flex-direction: column; }
.v4-infocard__eyebrow { font-family: var(--v4-font-mono); font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--v4-action); font-weight: 500; margin-bottom: 1.5rem; }
.v4-inforow { display: grid; grid-template-columns: 24px 1fr; gap: 1.1rem; align-items: start; padding: 1.25rem 0; border-top: 1px solid rgba(255,255,255,0.12); }
.v4-inforow:first-of-type { border-top: 0; padding-top: 0; }
.v4-inforow > .v4-ico { color: var(--v4-action); width: 20px; height: 20px; margin-top: 3px; }
.v4-inforow .k { font-family: var(--v4-font-mono); font-size: 0.625rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.55); font-weight: 500; margin-bottom: 0.4rem; }
.v4-inforow .v { font-size: 1.3rem; font-weight: 600; letter-spacing: -0.015em; line-height: 1.25; }
.v4-inforow .v a:hover { color: var(--v4-action); }
.v4-inforow .v .sub { display: block; font-size: 0.875rem; font-weight: 400; color: rgba(255,255,255,0.6); margin-top: 0.25rem; }
.v4-infocard__img { margin-top: auto; padding-top: 1.5rem; }
.v4-infocard__img .v4-img { width: 100%; border-radius: 16px; aspect-ratio: 16 / 10; object-fit: cover; }

/* ═══ Shop-Redesign (Handoff „Shop Tienda") ═══ */
.v4-shop2 { display: grid; grid-template-columns: 1fr; gap: 2.25rem; align-items: start; }
@media (min-width: 1024px) { .v4-shop2 { grid-template-columns: 260px 1fr; gap: 3.5rem; } }
.v4-filters2 { display: flex; flex-direction: column; gap: 2.25rem; }
@media (min-width: 1024px) { .v4-filters2 { position: sticky; top: 24px; } }
@media (max-width: 1023px) { .v4-filters2 { flex-direction: row; flex-wrap: wrap; gap: 2rem; } }
.v4-fg h4 { font-family: var(--v4-font-mono); font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--v4-action); font-weight: 500; margin: 0 0 1rem; }
.v4-fopt { display: flex; align-items: center; gap: 0.75rem; padding: 0.55rem 0; font-size: 0.94rem; color: var(--v4-fg-muted); cursor: pointer; text-decoration: none; }
.v4-fopt:hover { color: var(--v4-fg); }
.v4-fopt .radio { width: 17px; height: 17px; border-radius: 50%; border: 1.5px solid var(--v4-line-strong); flex-shrink: 0; position: relative; transition: border-color 0.15s; }
.v4-fopt.box .radio { border-radius: 5px; }
.v4-fopt.is-active .radio { border-color: var(--v4-action); }
.v4-fopt.is-active .radio::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--v4-action); }
.v4-fopt.box.is-active .radio::after { border-radius: 2px; inset: 2px; }
.v4-fopt .lbl { flex: 1; }
.v4-fopt.is-active .lbl { color: var(--v4-fg); font-weight: 500; }
.v4-fopt .count { font-family: var(--v4-font-mono); font-size: 0.75rem; color: var(--v4-fg-muted); }
.v4-fdiv { height: 1px; background: var(--v4-border); }
.v4-toolbar2 { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 0.6rem; flex-wrap: wrap; }
.v4-tabs { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.v4-tab { padding: 0.65rem 1.2rem; border-radius: 999px; border: 1.5px solid var(--v4-line-strong); background: var(--v4-bg); font-size: 0.875rem; font-weight: 500; color: var(--v4-fg-muted); cursor: pointer; transition: all 0.18s; }
.v4-tab:hover { border-color: var(--v4-fg); }
.v4-tab.is-active { background: var(--v4-black); color: #fff; border-color: var(--v4-black); }
.v4-rescount { font-family: var(--v4-font-mono); font-size: 0.8rem; color: var(--v4-fg-muted); letter-spacing: 0.04em; margin: 1.1rem 0 1.5rem; }
.v4-prods { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.9rem; }
@media (min-width: 720px) { .v4-prods { gap: 1.5rem; } }
@media (min-width: 1180px) { .v4-prods { grid-template-columns: repeat(3, 1fr); } }
.v4-prod { background: var(--v4-bg); border: 1px solid var(--v4-border); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; }
.v4-prod:hover { border-color: var(--v4-line-strong); box-shadow: 0 20px 48px rgba(0,0,0,0.09); transform: translateY(-4px); }
.v4-prod__media { position: relative; aspect-ratio: 1/1; background: var(--v4-bg-soft); overflow: hidden; }
.v4-prod__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.v4-prod:hover .v4-prod__media img { transform: scale(1.05); }
.v4-prod__badges { position: absolute; top: 14px; left: 14px; display: flex; flex-direction: column; gap: 7px; z-index: 2; }
.v4-badge2 { font-family: var(--v4-font-mono); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 6px 10px; border-radius: 7px; line-height: 1; width: fit-content; white-space: nowrap; }
.v4-badge2.sale { background: var(--v4-action); color: #fff; }
.v4-badge2.new { background: var(--v4-black); color: #fff; }
.v4-badge2.best { background: #fff; color: var(--v4-black); border: 1px solid var(--v4-border); }
.v4-badge2.low { background: rgba(232,162,0,0.16); color: #8a6000; }
.v4-badge2.out { background: var(--v4-bg-soft); color: var(--v4-fg-muted); }
.v4-prod__wish { position: absolute; top: 12px; right: 12px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,0.9); backdrop-filter: blur(6px); border: 1px solid var(--v4-border); display: flex; align-items: center; justify-content: center; color: var(--v4-fg-muted); transition: all 0.18s; cursor: pointer; }
.v4-prod__wish:hover { color: var(--v4-action); border-color: var(--v4-action); }
.v4-prod__wish svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.v4-prod__body { padding: 1.25rem 1.25rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.v4-prod__cat { font-family: var(--v4-font-mono); font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v4-action); font-weight: 500; margin-bottom: 0.6rem; }
.v4-prod__name { font-weight: 600; font-size: 1.125rem; line-height: 1.25; letter-spacing: -0.015em; color: var(--v4-fg); margin: 0 0 0.75rem; min-height: 2.5em; display: flex; align-items: flex-start; }
.v4-prod__name a { text-decoration: none; color: inherit; }
.v4-prod__name a:hover { color: var(--v4-action); }
.v4-prod__rating { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.85rem; white-space: nowrap; }
.v4-stars { color: var(--v4-gold); letter-spacing: 1px; }
.v4-stars .e { color: var(--v4-line-strong); }
.v4-prod__rating .rv { font-family: var(--v4-font-mono); font-size: 0.75rem; color: var(--v4-fg-muted); }
.v4-prod__meta { font-family: var(--v4-font-mono); font-size: 0.75rem; color: var(--v4-fg-muted); letter-spacing: 0.02em; margin-bottom: 1.1rem; }
.v4-prod__buy { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 0.85rem; padding-top: 1rem; border-top: 1px solid var(--v4-border); }
.v4-prod__price { display: flex; flex-direction: column; gap: 2px; }
.v4-prod__price .old { font-size: 0.875rem; color: var(--v4-fg-muted); text-decoration: line-through; text-decoration-color: var(--v4-action); text-decoration-thickness: 1.5px; }
.v4-prod__price .now { font-weight: 800; font-size: 1.875rem; line-height: 1; letter-spacing: -0.03em; color: var(--v4-fg); font-variant-numeric: tabular-nums; }
.v4-prod__price .now.on-sale { color: var(--v4-action); }
.v4-prod__price .cur { font-family: var(--v4-font-serif); font-style: italic; font-weight: 400; font-size: 1.125rem; color: var(--v4-fg-muted); margin-right: 2px; }
.v4-prod__add { display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem; height: 50px; padding: 0 1.4rem; background: var(--v4-black); color: #fff; font-size: 0.875rem; font-weight: 600; border: 0; border-radius: 999px; white-space: nowrap; cursor: pointer; transition: background 0.18s, transform 0.1s; }
.v4-prod__add:hover { background: var(--v4-action); }
.v4-prod__add:active { transform: translateY(1px); }
.v4-prod__add svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.v4-prod.out .v4-prod__media img { filter: grayscale(0.7); opacity: 0.6; }
.v4-prod__add.disabled { background: var(--v4-bg-soft); color: var(--v4-fg-muted); pointer-events: none; }
@media (max-width: 560px) { .v4-prod__add .lbl { display: none; } .v4-prod__add { height: 44px; padding: 0 1rem; } .v4-prod__name { font-size: 0.95rem; } .v4-prod__price .now { font-size: 1.5rem; } }

/* PDP — Premium */
@media (min-width: 860px) { .v4-pdp__gallery { position: sticky; top: 90px; } }
.v4-pdp__price2 { display: flex; align-items: flex-end; gap: 0.7rem; margin: 1rem 0; }
.v4-pdp__price2 .now { font-weight: 800; font-size: 2.5rem; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.v4-pdp__price2 .now.on-sale { color: var(--v4-action); }
.v4-pdp__price2 .cur { font-family: var(--v4-font-serif); font-style: italic; font-weight: 400; font-size: 1.4rem; color: var(--v4-fg-muted); margin-right: 2px; }
.v4-pdp__price2 .old { font-size: 1.05rem; color: var(--v4-fg-muted); text-decoration: line-through; text-decoration-color: var(--v4-action); text-decoration-thickness: 1.5px; margin-bottom: 0.4rem; }
.v4-pdp__perserv { font-family: var(--v4-font-mono); font-size: 0.78rem; color: var(--v4-fg-muted); }
.v4-btn-dark { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; background: var(--v4-black); color: #fff; border: 0; border-radius: 999px; padding: 0.95rem 1.8rem; font-weight: 600; font-size: 0.98rem; cursor: pointer; text-decoration: none; transition: background 0.18s, transform 0.1s; }
.v4-btn-dark:hover { background: var(--v4-action); }
.v4-btn-dark:active { transform: translateY(1px); }
.v4-btn-dark svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.v4-variant.is-active { border-color: var(--v4-action); color: var(--v4-action); background: var(--v4-red-tint); }
.v4-pdp__stock { font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--v4-fit); }

/* Carrito — Premium */
.v4-cartcard { border: 1px solid var(--v4-border); border-radius: var(--v4-radius-lg); overflow: hidden; }
.v4-cartcard .v4-cart-line { padding: 1.25rem 1.5rem; margin: 0; }
.v4-cartcard .v4-cart-line:last-child { border-bottom: 0; }
.v4-cart-line img { width: 88px; height: 88px; }
.v4-cart-line__name { font-size: 1.05rem; }
.v4-cart-remove { color: var(--v4-fg-muted); font-size: 0.8rem; text-decoration: none; }
.v4-cart-remove:hover { color: var(--v4-action); }
.v4-line-now { font-weight: 800; font-size: 1.3rem; font-variant-numeric: tabular-nums; display: inline-flex; align-items: flex-start; line-height: 1; justify-content: flex-end; }
.v4-line-now .cur { font-family: var(--v4-font-serif); font-style: italic; font-weight: 400; font-size: 0.85rem; color: var(--v4-fg-muted); margin-right: 1px; }
.v4-summary { border-radius: var(--v4-radius-lg); }
.v4-summary__total span:last-child { font-variant-numeric: tabular-nums; }
.v4-summary__eyebrow { font-family: var(--v4-font-mono); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v4-action); margin: 0 0 0.25rem; }

/* ═══ Mi cuenta — Redesign (Handoff Area Socios) ═══ */
.v4-pagehead__eyebrow { font-family: var(--v4-font-mono); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--v4-action); font-weight: 500; display: flex; align-items: center; gap: 0.85rem; margin-bottom: 1rem; }
.v4-pagehead__eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--v4-action); }
.v4-acct { display: grid; grid-template-columns: 1fr; gap: 2.5rem; margin-top: 2.5rem; align-items: start; }
@media (min-width: 1000px) { .v4-acct { grid-template-columns: 300px 1fr; gap: 3.5rem; } }
.v4-side2 { display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 1000px) { .v4-side2 { position: sticky; top: 24px; } }
.v4-membercard { border: 1px solid var(--v4-border); border-radius: 18px; padding: 1.5rem; background: var(--v4-bg-soft); }
.v4-membercard .tier { font-family: var(--v4-font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v4-action); font-weight: 500; margin-bottom: 0.75rem; }
.v4-membercard .nm { font-weight: 700; font-size: 1.4rem; letter-spacing: -0.02em; margin-bottom: 0.35rem; }
.v4-membercard .pts { font-family: var(--v4-font-mono); font-size: 0.75rem; color: var(--v4-fg-muted); }
.v4-membercard .progress { margin-top: 1rem; height: 5px; border-radius: 999px; background: rgba(14,14,16,0.08); overflow: hidden; }
.v4-membercard .progress i { display: block; height: 100%; width: 74%; background: var(--v4-action); border-radius: 999px; }
.v4-membercard .next-tier { font-family: var(--v4-font-mono); font-size: 0.66rem; letter-spacing: 0.06em; color: var(--v4-fg-muted); margin-top: 0.6rem; }
.v4-acctnav { display: flex; flex-direction: column; }
@media (max-width: 999px) { .v4-acctnav { display: grid; grid-template-columns: 1fr 1fr; gap: 0.25rem; } }
.v4-acctnav a { display: flex; align-items: center; gap: 0.75rem; padding: 0.85rem 1.1rem; border-radius: 12px; font-size: 1rem; font-weight: 500; color: var(--v4-fg-muted); cursor: pointer; transition: background 0.15s, color 0.15s; text-decoration: none; }
.v4-acctnav a:hover { background: var(--v4-bg-soft); color: var(--v4-fg); }
.v4-acctnav a.is-active { background: var(--v4-black); color: #fff; }
.v4-acctnav a .v4-ico { width: 18px; height: 18px; flex: none; opacity: 0.85; }
.v4-acctnav a .lbl { flex: 1; }
.v4-acctnav a .pill { font-family: var(--v4-font-mono); font-size: 0.68rem; font-weight: 600; min-width: 22px; height: 22px; padding: 0 7px; border-radius: 999px; background: var(--v4-action); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.v4-acctnav a.is-active .pill { background: #fff; color: var(--v4-black); }
.v4-acctnav .sep { height: 1px; background: var(--v4-border); margin: 0.6rem 0.9rem; }
@media (max-width: 999px) { .v4-acctnav .sep { display: none; } }
.v4-content-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.75rem; flex-wrap: wrap; }
.v4-content-head h2 { font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.5rem); letter-spacing: -0.03em; margin: 0; }
.v4-content-head .hint { font-size: 0.875rem; color: var(--v4-fg-muted); }
.v4-subs { display: flex; flex-direction: column; gap: 1.25rem; }
.v4-sub { border: 1px solid var(--v4-border); border-radius: 20px; overflow: hidden; background: var(--v4-bg); }
.v4-sub.feature { border-color: var(--v4-line-strong); }
.v4-sub.feature .v4-sub-top { background: linear-gradient(180deg, rgba(226,0,26,0.03), transparent); }
.v4-sub-top { display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; padding: 1.75rem 1.9rem; }
@media (max-width: 560px) { .v4-sub-top { grid-template-columns: 1fr; } }
.v4-sub-kind { font-family: var(--v4-font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v4-action); font-weight: 500; display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.1rem; }
.v4-sub-kind::before { content: ""; width: 24px; height: 1px; background: var(--v4-action); }
.v4-sub-name { font-weight: 700; font-size: 1.6rem; letter-spacing: -0.02em; margin: 0 0 0.85rem; }
.v4-sub-name .save { font-size: 0.95rem; color: var(--v4-action); font-weight: 600; margin-left: 0.4rem; }
.v4-sub-meta { display: flex; flex-wrap: wrap; gap: 1.75rem; }
.v4-kv .k { font-family: var(--v4-font-mono); font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--v4-fg-muted); display: block; margin-bottom: 0.3rem; }
.v4-kv .v { font-size: 1rem; font-weight: 500; }
.v4-kv .v.amount { font-weight: 700; font-variant-numeric: tabular-nums; }
.v4-status2 { display: inline-flex; align-items: center; gap: 0.5rem; align-self: start; padding: 0.5rem 0.9rem; border-radius: 999px; font-family: var(--v4-font-mono); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; }
.v4-status2 .dot { width: 7px; height: 7px; border-radius: 50%; }
.v4-status2.active { background: var(--v4-ok-bg); color: var(--v4-ok); } .v4-status2.active .dot { background: var(--v4-ok); }
.v4-status2.paused { background: var(--v4-warn-bg); color: var(--v4-warn); } .v4-status2.paused .dot { background: var(--v4-warn); }
.v4-subprod { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.1rem; }
.v4-subprod .thumb { width: 60px; height: 60px; border-radius: 12px; overflow: hidden; flex: none; background: var(--v4-bg-soft); border: 1px solid var(--v4-border); }
.v4-subprod .thumb img { width: 100%; height: 100%; object-fit: cover; }
.v4-sub-actions { display: flex; align-items: center; gap: 0.75rem; padding: 1.1rem 1.9rem; border-top: 1px solid var(--v4-border); background: var(--v4-bg-soft); flex-wrap: wrap; }
.v4-sub-actions .spacer { flex: 1; }
.v4-sbtn { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.7rem 1.3rem; border-radius: 999px; font-size: 0.875rem; font-weight: 600; border: 1.5px solid var(--v4-line-strong); background: var(--v4-bg); color: var(--v4-fg); cursor: pointer; transition: all 0.16s; text-decoration: none; }
.v4-sbtn:hover { border-color: var(--v4-fg); }
.v4-sbtn.solid { background: var(--v4-black); color: #fff; border-color: var(--v4-black); }
.v4-sbtn.solid:hover { background: var(--v4-action); border-color: var(--v4-action); }
.v4-sbtn.ghost { border-color: transparent; color: var(--v4-fg-muted); }
.v4-sbtn.ghost:hover { color: var(--v4-action); }
.v4-sbtn.danger:hover { border-color: var(--v4-action); color: var(--v4-action); }
.v4-sbtn.accent { background: var(--v4-action); color: #fff; border-color: var(--v4-action); }
.v4-sbtn.accent:hover { background: var(--v4-black); border-color: var(--v4-black); }

/* Mi plan — Plan-Karten */
.v4-plancards { display: flex; flex-direction: column; gap: 1.25rem; }
.v4-plancard { border: 1px solid var(--v4-border); border-radius: 20px; padding: 1.9rem; position: relative; }
.v4-plancard.feature { border-color: var(--v4-line-strong); background: linear-gradient(180deg, rgba(226,0,26,0.03), transparent); }
.v4-plancard__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.25rem; }
.v4-plancard__kind { font-family: var(--v4-font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v4-action); font-weight: 500; display: flex; align-items: center; gap: 0.75rem; }
.v4-plancard__kind::before { content: ""; width: 24px; height: 1px; background: var(--v4-action); }
.v4-plancard h3 { font-weight: 700; font-size: 1.6rem; letter-spacing: -0.02em; margin: 0.85rem 0 0.5rem; }
.v4-plancard__desc { font-family: var(--v4-font-mono); font-size: 0.8rem; color: var(--v4-fg-muted); line-height: 1.6; }
.v4-feats { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.25rem 0 1.5rem; }
.v4-chip2 { font-size: 0.8rem; font-weight: 500; color: var(--v4-fg); background: var(--v4-bg-soft); border: 1px solid var(--v4-border); border-radius: 999px; padding: 0.45rem 0.9rem; }
.v4-plancard__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.v4-renew { font-family: var(--v4-font-mono); font-size: 0.7rem; letter-spacing: 0.04em; color: var(--v4-fg-muted); margin-top: 1.1rem; }

/* Mis reservas — Booking-Karten */
.v4-bookings { display: flex; flex-direction: column; gap: 0.9rem; }
.v4-booking { display: grid; grid-template-columns: auto 1fr auto; gap: 1.75rem; align-items: center; border: 1px solid var(--v4-border); border-radius: 16px; padding: 1.4rem 1.6rem; transition: border-color 0.2s, box-shadow 0.2s; }
.v4-booking:hover { border-color: var(--v4-line-strong); box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
.v4-booking.next { border-color: var(--v4-black); }
.v4-btime { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; padding-right: 1.75rem; border-right: 1px solid var(--v4-border); }
.v4-btime .hr { font-weight: 800; font-size: 1.9rem; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.v4-btime .day { font-family: var(--v4-font-mono); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--v4-action); }
.v4-binfo .cls { font-weight: 700; font-size: 1.25rem; letter-spacing: -0.01em; margin-bottom: 0.3rem; display: flex; align-items: center; gap: 0.6rem; }
.v4-binfo .tag { font-family: var(--v4-font-mono); font-size: 0.6rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--v4-ok); background: var(--v4-ok-bg); padding: 3px 8px; border-radius: 999px; }
.v4-binfo .meta { font-family: var(--v4-font-mono); font-size: 0.8rem; color: var(--v4-fg-muted); }
@media (max-width: 560px) { .v4-booking { grid-template-columns: 1fr; gap: 1rem; } .v4-btime { flex-direction: row; align-items: baseline; gap: 0.75rem; border-right: 0; padding-right: 0; border-bottom: 1px solid var(--v4-border); padding-bottom: 0.75rem; width: 100%; } }

/* ═══════════════════════════════════════════════════════════════
   Mi plan — Trainings-/Ernährungs-Viewer + Gamification + Permisos
   ═══════════════════════════════════════════════════════════════ */
.v4-plantabs { display:flex; gap:.4rem; overflow-x:auto; border-bottom:1px solid var(--v4-border); margin:1.5rem 0 2rem; }
.v4-plantabs a { flex:none; display:inline-flex; align-items:center; gap:.5rem; padding:.7rem 1rem; font-weight:600; font-size:.95rem; color:var(--v4-fg-muted); border-bottom:2px solid transparent; cursor:pointer; white-space:nowrap; text-decoration:none; }
.v4-plantabs a .v4-ico { width:18px; height:18px; }
.v4-plantabs a:hover { color:var(--v4-fg); }
.v4-plantabs a.is-active { color:var(--v4-fg); border-bottom-color:var(--v4-action); }
.v4-plansec { display:none; }
.v4-plansec.is-active { display:block; animation:v4fade .25s var(--v4-ease); }
@keyframes v4fade { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }

/* Hoy — Dashboard */
.v4-hoy { display:grid; grid-template-columns:1.35fr 1fr; gap:1.25rem; align-items:start; }
@media (max-width:860px){ .v4-hoy { grid-template-columns:1fr; } }
.v4-rings { display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; margin-bottom:1.25rem; }
@media (max-width:560px){ .v4-rings { grid-template-columns:repeat(2,1fr); } }
.v4-ring { border:1px solid var(--v4-border); border-radius:16px; padding:1rem .6rem; text-align:center; }
.v4-ring__wrap { position:relative; width:84px; height:84px; margin:0 auto; }
.v4-ring__wrap svg { position:absolute; inset:0; transform:rotate(-90deg); }
.v4-ring .track { fill:none; stroke:var(--v4-bg-soft); stroke-width:8; }
.v4-ring .bar { fill:none; stroke:var(--v4-ok); stroke-width:8; stroke-linecap:round; stroke-dasharray:213.6; transition:stroke-dashoffset .7s var(--v4-ease); }
.v4-ring.gold .bar { stroke:var(--v4-gold); }
.v4-ring__val { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.95rem; font-variant-numeric:tabular-nums; }
.v4-ring__lbl { font-family:var(--v4-font-mono); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; color:var(--v4-fg-muted); margin-top:.55rem; }
.v4-hoycard { border:1px solid var(--v4-border); border-radius:16px; padding:1.4rem; }
.v4-hoycard + .v4-hoycard { margin-top:1rem; }
.v4-hoycard.feature { background:linear-gradient(180deg, rgba(226,0,26,.03), transparent); border-color:var(--v4-line-strong); }
.v4-streak { display:flex; align-items:center; gap:1rem; }
.v4-streak__n { font-weight:800; font-size:2.8rem; letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums; }
.v4-streak__fl { width:46px; height:46px; flex:none; color:var(--v4-gold); }
.v4-streak__lbl { font-family:var(--v4-font-mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--v4-fg-muted); }
.v4-kv2 { display:flex; justify-content:space-between; padding:.55rem 0; border-bottom:1px solid var(--v4-border); font-size:.9rem; }
.v4-kv2:last-of-type { border-bottom:0; }
.v4-kv2 b { font-variant-numeric:tabular-nums; }
.v4-pts { display:flex; align-items:baseline; gap:.5rem; }
.v4-pts__n { font-weight:800; font-size:2rem; letter-spacing:-.02em; color:var(--v4-action); font-variant-numeric:tabular-nums; }

/* Entrenamiento */
.v4-daysel { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.v4-daychip { padding:.55rem .95rem; border:1px solid var(--v4-border); border-radius:999px; font-weight:600; font-size:.85rem; cursor:pointer; background:var(--v4-bg); text-align:center; }
.v4-daychip small { display:block; font-family:var(--v4-font-mono); font-size:.58rem; color:var(--v4-fg-muted); text-transform:uppercase; letter-spacing:.06em; margin-top:2px; }
.v4-daychip.is-active { background:var(--v4-black); color:#fff; border-color:var(--v4-black); }
.v4-daychip.is-active small { color:rgba(255,255,255,.6); }
.v4-ejlist { display:flex; flex-direction:column; gap:.7rem; }
.v4-ej { display:grid; grid-template-columns:auto 1fr auto; gap:1rem; align-items:center; border:1px solid var(--v4-border); border-radius:14px; padding:1rem 1.1rem; transition:border-color .2s; }
.v4-ej:hover { border-color:var(--v4-line-strong); }
.v4-ej.done { background:var(--v4-ok-bg); border-color:transparent; }
.v4-ej__i { width:34px; height:34px; border-radius:9px; background:var(--v4-bg-soft); display:flex; align-items:center; justify-content:center; font-weight:700; font-variant-numeric:tabular-nums; flex:none; }
.v4-ej__nm { font-weight:700; font-size:1.05rem; letter-spacing:-.01em; }
.v4-ej__grp { font-family:var(--v4-font-mono); font-size:.66rem; letter-spacing:.07em; text-transform:uppercase; color:var(--v4-fg-muted); margin-top:2px; }
.v4-ej__specs { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.5rem; }
.v4-ej__specs span { font-family:var(--v4-font-mono); font-size:.66rem; letter-spacing:.02em; background:var(--v4-bg-soft); border:1px solid var(--v4-border); border-radius:999px; padding:.25rem .6rem; }
.v4-ej__act { display:flex; align-items:center; gap:.5rem; }
.v4-ej__play { display:inline-flex; align-items:center; gap:.4rem; border:1.5px solid var(--v4-border); background:var(--v4-bg); border-radius:999px; padding:.5rem .85rem; font-weight:600; font-size:.78rem; cursor:pointer; white-space:nowrap; }
.v4-ej__play:hover { border-color:var(--v4-black); }
.v4-ej__play .v4-ico { color:var(--v4-action); width:16px; height:16px; }
.v4-ej__chk { width:32px; height:32px; flex:none; border:1.5px solid var(--v4-line-strong); border-radius:50%; background:var(--v4-bg); cursor:pointer; display:flex; align-items:center; justify-content:center; color:transparent; }
.v4-ej.done .v4-ej__chk { background:var(--v4-ok); border-color:var(--v4-ok); color:#fff; }

/* Video-Modal (RGPD: Iframe erst nach Klick = kein YouTube-Cookie vorher) */
.v4-vmodal { position:fixed; inset:0; z-index:140; display:none; align-items:center; justify-content:center; padding:1.5rem; }
.v4-vmodal.is-open { display:flex; }
.v4-vmodal__ov { position:absolute; inset:0; background:rgba(14,14,16,.74); backdrop-filter:blur(4px); }
.v4-vmodal__panel { position:relative; width:min(900px,100%); background:var(--v4-bg); border-radius:18px; overflow:hidden; box-shadow:var(--v4-shadow-hover); }
.v4-vmodal__head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; border-bottom:1px solid var(--v4-border); }
.v4-vmodal__title { font-weight:700; }
.v4-vmodal__sub { font-family:var(--v4-font-mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--v4-fg-muted); }
.v4-vmodal__x { border:0; background:var(--v4-bg-soft); width:36px; height:36px; border-radius:50%; font-size:1.2rem; cursor:pointer; line-height:1; }
.v4-vframe { position:relative; aspect-ratio:16/9; background:#0E0E10; }
.v4-vframe iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.v4-vposter { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.9rem; cursor:pointer; background:radial-gradient(120% 120% at 50% 40%, #2a2a2e, #0E0E10); color:#fff; border:0; width:100%; }
.v4-vposter__play { width:68px; height:68px; border-radius:50%; background:var(--v4-action); display:flex; align-items:center; justify-content:center; }
.v4-vposter__play .v4-ico { width:30px; height:30px; color:#fff; margin-left:3px; }
.v4-vposter small { font-family:var(--v4-font-mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; opacity:.8; }

/* Nutrición */
.v4-supl { display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; margin-bottom:1.5rem; }
@media (max-width:760px){ .v4-supl { grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px){ .v4-supl { grid-template-columns:1fr; } }
.v4-suplcard { border:1px solid var(--v4-border); border-radius:14px; padding:1rem; }
.v4-suplcard h4 { font-family:var(--v4-font-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--v4-action); margin:0 0 .6rem; display:flex; align-items:center; gap:.4rem; }
.v4-suplcard h4 .v4-ico { width:16px; height:16px; }
.v4-suplcard ul { margin:0; padding-left:1.05rem; font-size:.85rem; line-height:1.7; }
.v4-meal { border:1px solid var(--v4-border); border-radius:16px; padding:1.4rem; margin-bottom:1rem; }
.v4-meal__h { font-weight:800; font-size:1.15rem; margin:0 0 1rem; display:flex; align-items:center; gap:.6rem; }
.v4-meal__opts { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:620px){ .v4-meal__opts { grid-template-columns:1fr; } }
.v4-opt2 { border:1px solid var(--v4-border); border-radius:12px; padding:1rem; background:var(--v4-bg-soft); }
.v4-opt2 .tag { font-family:var(--v4-font-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--v4-fg-muted); margin-bottom:.5rem; }
.v4-opt2 ul { margin:0; padding-left:1.05rem; font-size:.85rem; line-height:1.7; }
.v4-note2 { display:flex; align-items:center; gap:.7rem; border:1px solid var(--v4-border); border-radius:12px; padding:.85rem 1.1rem; font-size:.9rem; }
.v4-note2 .v4-ico { width:20px; height:20px; color:var(--v4-action); flex:none; }

/* Seguimiento */
.v4-photos { display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; margin-top:.75rem; }
@media (max-width:560px){ .v4-photos { grid-template-columns:repeat(2,1fr); } }
.v4-photo { aspect-ratio:3/4; border:1.5px dashed var(--v4-line-strong); border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; color:var(--v4-fg-muted); cursor:pointer; font-size:.78rem; text-align:center; padding:.5rem; }
.v4-photo .v4-ico { width:22px; height:22px; }
.v4-photo:hover { border-color:var(--v4-action); color:var(--v4-fg); }

/* Documentos / Permisos */
.v4-doccard { border:1px solid var(--v4-border); border-radius:16px; padding:1.4rem; margin-bottom:1rem; }
.v4-doccard__h { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; margin-bottom:.75rem; }
.v4-doccard__t { font-weight:700; font-size:1.1rem; }
.v4-doccard__d { font-family:var(--v4-font-mono); font-size:.78rem; color:var(--v4-fg-muted); line-height:1.6; }
