/* =============================================================
   1. TOKENS — Custom Properties
   ============================================================= */
:root {
  --bg:          #ffffff;
  --bg-2:        #f7f7f8;
  --bg-3:        #f0f0f2;
  --ink:         #0a0a0a;
  --ink-soft:    #2a2a2a;
  --ink-mute:    #6b6b6b;
  --ink-faint:   #9b9b9b;
  --ie-accent:      #cc1f1a;
  --ie-accent-dark: #8B0000;
  --ie-accent-mid:  #a61830;
  --ie-accent-light:#e8324a;
  --ie-accent-bg:   rgba(204,31,26,0.06);
  --grey-1:      #1a1a1a;
  --grey-2:      #333333;
  --grey-3:      #6b6b6b;
  --grey-4:      #d4d4d8;
  --grey-5:      #f4f4f5;
  --white:       #ffffff;
  --line:        rgba(10,10,10,0.08);
  --line-strong: rgba(10,10,10,0.14);
  --glass:       rgba(255,255,255,0.75);
  --glass-2:     rgba(255,255,255,0.45);
  --shadow-sm:   0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
  --shadow-md:   0 4px 16px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.05);
  --shadow-lg:   0 20px 60px rgba(0,0,0,0.10), 0 8px 20px rgba(0,0,0,0.06);
  --shadow-xl:   0 40px 100px rgba(0,0,0,0.12), 0 16px 40px rgba(0,0,0,0.08);
  --radius-sm:   8px;
  --radius-md:   16px;
  --radius-lg:   24px;
  --radius-xl:   32px;
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-soft:   cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --sans:        "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --nav-h:       72px;
  --gutter:      clamp(1.25rem, 5vw, 2.5rem);
  --max-w:       1240px;
  --section-pad: 3rem;
}

/* =============================================================
   2. RESET & BASE
   ============================================================= */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  tab-size: 2;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h, 72px) + 16px);
  overflow-x: clip;
}

body {
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
  overscroll-behavior-y: none;
  touch-action: manipulation; /* iOS: desactiva doble-tap-zoom (mantiene scroll/swipe) */
}

img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
p { text-wrap: pretty; }
h1, h2, h3, h4 {
  text-wrap: balance;
  line-height: 1.08;
  letter-spacing: -0.02em;
  font-weight: 700;
}

::selection { background: var(--ie-accent); color: #fff; }

:focus-visible {
  outline: 2px solid var(--ie-accent);
  outline-offset: 3px;
  border-radius: 4px;
}

/* =============================================================
   3. UTILITIES
   ============================================================= */
.skip-link {
  position: fixed; top: -100px; left: 1rem;
  padding: .6rem 1rem; background: var(--ink); color: var(--white);
  z-index: 9999; border-radius: var(--radius-sm); font-weight: 600;
  transition: top 0.2s;
}
.skip-link:focus { top: 1rem; }

.section-inner {
  width: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  box-sizing: border-box;
}

.section-header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 1.5rem;
}

/* Variante: header split — título a la izquierda, badge a la derecha */
.section-header--split {
  max-width: none;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2.5rem;
  align-items: end;
  text-align: left;
  margin: 0 0 2rem;
}
.section-header--split .section-header-text {
  text-align: left;
}
.section-header--split .section-eyebrow {
  margin: 0 0 0.5rem;
}
.section-header--split .section-title {
  margin-bottom: 0;
}
.section-header--split .google-badge {
  margin: 0 20px 0 0;
  transform: translate(-70px, -30px);
}
@media (max-width: 820px) {
  .section-header--split {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    text-align: center;
  }
  .section-header--split .section-header-text { text-align: center; }
  .section-header--split .google-badge {
    justify-self: center;
    margin: 0;
    transform: none;
  }
}

.section-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ie-accent);
  margin-bottom: 1rem;
}

.section-title {
  font-family: var(--sans);
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin-bottom: 1.25rem;
}
.section-title em {
  font-family: var(--sans);
  font-style: italic;
  font-weight: 400;
  color: var(--ink-soft);
  letter-spacing: -0.02em;
}
.section-title strong {
  font-weight: 700;
  color: var(--ie-accent);
}

.section-sub {
  font-size: 0.92rem;
  font-weight: 400;
  color: var(--ink-mute);
  line-height: 1.65;
  max-width: 540px;
  margin: 0 auto;
}
@media (min-width: 1024px) {
  .section-sub { font-size: 0.98rem; }
}

/* =============================================================
   4. BUTTONS
   ============================================================= */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.75rem;
  border-radius: 100px;
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.25s var(--ease-out);
  text-decoration: none;
  border: 2px solid transparent;
}

.btn-lg {
  padding: 1rem 2.25rem;
  font-size: 1rem;
}

.btn-sm {
  padding: 0.55rem 1.25rem;
  font-size: 0.82rem;
}

.btn-full {
  width: 100%;
  justify-content: center;
}

.btn-primary {
  background: var(--ie-accent);
  color: #fff;
  border-color: var(--ie-accent);
}
.btn-primary:hover {
  background: var(--ie-accent-dark);
  border-color: var(--ie-accent-dark);
  transform: translateY(-2px);
}
.btn-primary:active { transform: translateY(0); }

.btn-outline {
  background: transparent;
  color: var(--ink);
  border-color: var(--line-strong);
}
.btn-outline:hover {
  border-color: var(--ie-accent);
  color: var(--ie-accent);
  transform: translateY(-2px);
}

.btn-white {
  background: #fff;
  color: var(--ie-accent);
  border-color: #fff;
  box-shadow: 0 4px 20px rgba(255,255,255,0.25);
}
.btn-white:hover {
  background: rgba(255,255,255,0.92);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(255,255,255,0.3);
}

/* =============================================================
   5. REVEAL ANIMATIONS (scroll)
   ============================================================= */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
  /* Safety: si JS no carga en 1.5s, mostrar el contenido de todas formas */
  animation: reveal-safety 0s 1.5s forwards;
}
@keyframes reveal-safety {
  to { opacity: 1; transform: none; }
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Defensive rule: elements with data-split must not hide content */
.reveal[data-split] {
  opacity: 1;
  transform: none;
}

/* =============================================================
   6. TOPBAR MINIMAL
   ============================================================= */
.topbar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 12px rgba(0,0,0,0.06);
}

.topbar-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0.6rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.topbar-logo {
  min-width: 0;
  flex-shrink: 1;
}
.topbar-logo picture {
  display: block;
}
.topbar-logo img {
  height: 48px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  display: block;
}

.topbar-cta {
  white-space: nowrap;
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .topbar-inner  { padding: 0.5rem 1rem; }
  .topbar-logo img { height: 36px; max-width: 140px; }
  .topbar-cta    { font-size: 0.78rem; padding: 0.5rem 0.9rem; }
}

/* =============================================================
   6b. NAV (legacy — kept for reference, not rendered)
   ============================================================= */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height: var(--nav-h);
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s, background 0.3s;
}

.nav.is-scrolled {
  border-bottom-color: var(--line);
  background: rgba(255,255,255,0.97);
}

.nav-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  height: 100%;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.nav-logo {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  flex-shrink: 0;
}

.nav-logo-ie {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--ie-accent);
  color: #fff;
  font-weight: 900;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}

.nav-logo-text {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.nav-links {
  display: none;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
}

.nav-link {
  padding: 0.45rem 0.75rem;
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ink-soft);
  transition: color 0.2s, background 0.2s;
}
.nav-link:hover { color: var(--ie-accent); background: var(--ie-accent-bg); }

.nav-cta { margin-left: auto; display: none; }

.nav-hamburger {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  background: none;
  border: 1px solid var(--line);
  cursor: pointer;
  transition: background 0.2s;
}
.nav-hamburger:hover { background: var(--bg-2); }
.nav-hamburger span {
  display: block;
  width: 18px;
  height: 1.5px;
  background: var(--ink);
  border-radius: 2px;
  transition: all 0.25s var(--ease-out);
}
.nav-hamburger.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-hamburger.is-open span:nth-child(2) { opacity: 0; }
.nav-hamburger.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.nav-mobile {
  position: absolute;
  top: var(--nav-h);
  left: 0; right: 0;
  background: #fff;
  border-bottom: 1px solid var(--line);
  padding: 0 var(--gutter);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease-out), padding 0.3s;
  box-shadow: var(--shadow-lg);
}

.nav-mobile.is-open {
  max-height: 500px;
  padding: 1rem var(--gutter) 1.5rem;
}

.nav-mobile-link {
  padding: 0.85rem 0.5rem;
  border-bottom: 1px solid var(--line);
  font-weight: 500;
  color: var(--ink-soft);
  font-size: 0.95rem;
  transition: color 0.2s;
}
.nav-mobile-link:hover { color: var(--ie-accent); }
.nav-mobile .btn { margin-top: 1rem; }

/* =============================================================
   7. HERO
   ============================================================= */
.hero {
  position: relative;
  min-height: auto;
  padding-top: 0;
  display: flex;
  align-items: center;
  overflow: clip;
  background: var(--bg);
}

.hero-mesh {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: none;
}

@keyframes meshDrift {
  0%   { transform: scale(1) translate(0, 0); }
  100% { transform: scale(1.06) translate(-1.5%, 1.5%); }
}

.hero-grain {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 200px 200px;
}

.hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 1rem var(--gutter) 1.5rem;
  display: flex;
  align-items: flex-start;
  gap: 4rem;
}

.hero-text {
  flex: 1 1 auto;
  max-width: 600px;
  min-width: 0;
}

.hero-tags {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}

.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem;
  border-radius: 100px;
  border: 1px solid var(--line-strong);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink-soft);
  background: rgba(255,255,255,0.8);
  backdrop-filter: blur(10px);
}

.hero-tag-stars { color: var(--ie-accent); border-color: rgba(204,31,26,0.2); background: #fff; }

.hero-title {
  font-family: var(--sans);
  font-size: clamp(2.2rem, 5.5vw, 3.6rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.035em;
  color: var(--ink);
  margin-bottom: 1.5rem;
}

/* SOLO desktop amplio (≥1100px): fuerza las 3 líneas definidas por los <br>
   sin wrap interno. En anchos intermedios (720–1099px) y móvil mantiene
   wrap natural para que no se desborde sobre la tarjeta del dashboard. */
@media (min-width: 1100px) {
  .hero-title { white-space: nowrap; }
}

.hero-title i {
  font-family: var(--sans);
  font-style: italic;
  font-weight: 400;
  color: var(--ink-soft);
  letter-spacing: -0.02em;
}
.hero-title strong {
  font-weight: 700;
  color: var(--ie-accent);
}
.hero-title em {
  font-style: normal;
  white-space: nowrap;
  color: var(--ie-accent);
  font-weight: 900;
  letter-spacing: -0.025em;
  display: inline-block;
  line-height: 1;
}

.hero-sub {
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--ink-mute);
  line-height: 1.65;
  max-width: 500px;
  margin-bottom: 2.25rem;
}
@media (min-width: 1024px) {
  .hero-sub { font-size: 1.02rem; }
}

.hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 3rem;
}
.hero-ctas .btn {
  flex: 0 0 auto;
  justify-content: center;
}
/* Móvil: los dos CTAs comparten el renglón en partes iguales */
@media (max-width: 560px) {
  .hero-ctas {
    flex-wrap: nowrap;
    gap: 0.5rem;
  }
  .hero-ctas .btn {
    flex: 1 1 0;
    min-width: 0;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}

.hero-stats {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  justify-items: center;
  width: 100%;
  column-gap: 0.75rem;
}

.hero-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.2rem;
}

.hero-stat-num {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.03em;
  line-height: 1;
}

.hero-stat-label {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--ink-faint);
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.hero-stat-sep {
  width: 1px;
  height: 36px;
  background: var(--line-strong);
  flex-shrink: 0;
}

/* Hero visual / dashboard */
.hero-visual {
  flex: 0 0 auto;
  width: clamp(300px, 30vw, 380px);
  position: relative;
  display: none;
  margin-top: -0.94rem;
}

.hero-dashboard {
  position: relative;
}

/* Imagen de alumna que reemplaza el dashboard mock (solo desktop) */
.hero-alumna {
  display: block;
  width: 322px;
  height: auto;
  max-width: 100%;
  margin: 0 auto;
  transform: translateX(50px);
  filter: drop-shadow(0 24px 32px rgba(0,0,0,0.18));
}

/* Pie con "Edición 2026 · Inscripciones abiertas" debajo de la imagen */
.hero-alumna-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
  padding: 0.5rem 0 0;
  transform: translateX(50px);
  border-top: 1px solid var(--line);
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.hero-alumna-foot-dot {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--ie-accent);
}
.hero-alumna-foot-dot::before {
  content: '';
  width: 7px; height: 7px;
  background: var(--ie-accent);
  border-radius: 50%;
  animation: pulseDot 1.6s ease-in-out infinite;
}
@keyframes pulseDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.6; transform: scale(1.25); }
}

.dashboard-card {
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-xl);
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.dashboard-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--line);
  background: var(--bg-2);
}

.dashboard-dots { display: flex; gap: 5px; }
.dd {
  width: 10px; height: 10px;
  border-radius: 50%;
}
.dd.red    { background: #ff5f57; }
.dd.yellow { background: #ffbd2e; }
.dd.green  { background: #28ca40; }

.dashboard-title {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ink-mute);
}

.dashboard-body { padding: 1.5rem 1.25rem; }

.dashboard-label {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-faint);
  margin-bottom: 0.4rem;
}

.dashboard-amount {
  font-size: 2.2rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--ink);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.dashboard-trend {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #16a34a;
  background: #f0fdf4;
  padding: 0.25rem 0.6rem;
  border-radius: 100px;
  margin-bottom: 1.25rem;
}

.dashboard-chart { margin-bottom: 1.25rem; }

.chart-bars {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 80px;
  margin-bottom: 4px;
}

.bar {
  flex: 1;
  height: var(--h, 50%);
  border-radius: 4px 4px 0 0;
  background: var(--bg-3);
  transition: height 0.6s var(--ease-out);
}

.bar-active { background: var(--ie-accent) !important; }

.chart-labels {
  display: flex;
  gap: 4px;
}
.chart-labels span {
  flex: 1;
  font-size: 0.6rem;
  color: var(--ink-faint);
  text-align: center;
}

.dashboard-meta {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}

.dashboard-meta-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0 0.5rem;
  border-right: 1px solid var(--line);
}
.dashboard-meta-item:last-child { border-right: 0; }

.meta-label {
  font-size: 0.65rem;
  font-weight: 500;
  color: var(--ink-faint);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.meta-val {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
}

/* Floating badges */
.hero-float-badge {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 0.7rem 1rem;
  box-shadow: var(--shadow-lg);
  z-index: 2;
}

.hero-float-1 {
  bottom: -1rem;
  left: -2rem;
  animation: floatBadge 3.5s ease-in-out infinite;
}

.hero-float-2 {
  top: 1.5rem;
  right: -2rem;
  animation: floatBadge 3.5s ease-in-out infinite 1.75s;
}
@media (min-width: 720px) { .hero-float-1, .hero-float-2 { display: none; } }

@keyframes floatBadge {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-6px); }
}

.float-icon { font-size: 1.4rem; line-height: 1; }

.float-title {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
}
.float-sub {
  display: block;
  font-size: 0.65rem;
  color: var(--ink-mute);
}

/* =============================================================
   7b. ALIADOS COMERCIALES — carrusel automático
   ============================================================= */
.aliados {
  padding: 1rem 0;
  background: var(--bg);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}

.aliados-label {
  text-align: center;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 0.75rem;
}

.aliados-track-wrap {
  overflow: hidden;
  /* fade en los bordes */
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}

@keyframes aliadosScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.aliados-track {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  width: max-content;
  animation: aliadosScroll 38s linear infinite;
}
.aliados-track:hover { animation-play-state: paused; }

.aliados-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 34px;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .aliados-logo {
    width: 140px;
    height: 60px;
  }
}

.aliados-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(1) opacity(0.55);
  transition: filter 0.3s;
}
.aliados-logo img:hover { filter: grayscale(0) opacity(1); }

/* =============================================================
   8. DIFERENCIADORES
   ============================================================= */
.diferenciadores {
  padding: var(--section-pad) 0;
  background: var(--bg);
}

.dif-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

.dif-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.4rem 1.5rem;
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out), border-color 0.3s;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.dif-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--ie-accent-bg) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
}

@media (hover: hover) {
  .dif-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: rgba(204,31,26,0.2);
  }
  .dif-card:hover::before { opacity: 1; }
  .dif-card:hover .dif-icon { background: var(--ie-accent); color: #fff; }
}

.dif-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-sm);
  background: var(--ie-accent-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ie-accent);
  transition: background 0.3s, color 0.3s;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.dif-icon svg { width: 20px; height: 20px; }

.dif-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
  position: relative;
  z-index: 1;
  flex: 1;
}

.dif-desc {
  font-size: 0.9rem;
  color: var(--ink-mute);
  line-height: 1.65;
  position: relative;
  z-index: 1;
  /* Oculta en móvil — el modal lo muestra */
  display: none;
}

/* "Ver más →" visible solo en móvil */
.dif-more {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ie-accent);
  letter-spacing: 0.02em;
  position: relative;
  z-index: 1;
  transition: gap 0.2s;
}
.dif-more svg { width: 13px; height: 13px; transition: transform 0.2s; }
@media (hover: hover) {
  .dif-card:hover .dif-more svg { transform: translateX(3px); }
}

/* ≥768px: descripción visible, "Ver más" y cursor pointer desactivados */
@media (min-width: 768px) {
  .dif-desc { display: block; }
  .dif-more { display: none; }
  .dif-card { cursor: default; }
}

/* Modal diferenciador */
.modal-dif-box {
  max-width: 420px;
}
.dif-modal-icon {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-sm);
  background: var(--ie-accent-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ie-accent);
  margin-bottom: 1.1rem;
}
.dif-modal-icon svg { width: 24px; height: 24px; }
.dif-modal-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 0.75rem;
  line-height: 1.3;
}
.dif-modal-desc {
  font-size: 0.95rem;
  color: var(--ink-mute);
  line-height: 1.7;
}

/* =============================================================
   9. CALCULADORA
   ============================================================= */
.calculadora {
  padding: var(--section-pad) 0;
  background: var(--bg-2);
  position: relative;
  overflow: clip;
}

.calculadora::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 100% 50%, rgba(204,31,26,0.05) 0%, transparent 60%);
  pointer-events: none;
}

.calc-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
}

.calc-frase-box {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  padding: 1rem 1.25rem;
  border-left: 3px solid var(--ie-accent);
  background: var(--ie-accent-bg);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  transition: background 0.3s var(--ease-out);
  /* Altura reservada para ~3 lineas: el recuadro ya no cambia de alto ni desplaza la pagina */
  min-height: 6.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#calc-frase {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ie-accent);
  line-height: 1.5;
  transition: all 0.3s var(--ease-out);
}

.calc-card {
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-xl);
  padding: 2.25rem;
  position: relative;
}

.calc-field { margin-bottom: 1.75rem; }

.calc-field-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
}

.calc-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink-soft);
}

.calc-val {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--ie-accent);
  min-width: 3rem;
  text-align: right;
}

.calc-frase-nota {
  font-size: 0.68rem;
  color: var(--ink-mute);
  margin-top: 0.5rem;
  line-height: 1.4;
}

.calc-notes {
  margin: 1rem 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.calc-note {
  font-size: 0.72rem;
  color: var(--ink-mute);
  line-height: 1.5;
}

/* Custom range slider */
.calc-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 5px;
  border-radius: 100px;
  outline: none;
  cursor: pointer;
  background: linear-gradient(
    to right,
    var(--ie-accent) 0%,
    var(--ie-accent) var(--prog, 38%),
    var(--grey-4) var(--prog, 38%),
    var(--grey-4) 100%
  );
  transition: background 0.1s;
}

.calc-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ie-accent);
  border: 3px solid #fff;
  box-shadow: 0 2px 10px rgba(204,31,26,0.35);
  cursor: pointer;
  transition: transform 0.2s var(--ease-bounce), box-shadow 0.2s;
}
.calc-slider::-webkit-slider-thumb:hover { transform: scale(1.2); }
.calc-slider::-moz-range-thumb {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--ie-accent);
  border: 3px solid #fff;
  box-shadow: 0 2px 10px rgba(204,31,26,0.35);
  cursor: pointer;
}

/* ── Hint: pulso en el thumb cuando el slider no ha sido tocado ── */
@keyframes sliderPulse {
  0%   { box-shadow: 0 2px 10px rgba(204,31,26,0.35), 0 0 0 0   rgba(204,31,26,0.45); }
  60%  { box-shadow: 0 2px 10px rgba(204,31,26,0.35), 0 0 0 10px rgba(204,31,26,0);   }
  100% { box-shadow: 0 2px 10px rgba(204,31,26,0.35), 0 0 0 0   rgba(204,31,26,0);    }
}
.calc-slider.is-hinting::-webkit-slider-thumb {
  animation: sliderPulse 1.1s ease-out infinite;
}

/* Etiqueta hint "Desliza para calcular" */
.calc-hint-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.65rem;
  color: var(--ie-accent);
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-top: 0.2rem;
  opacity: 1;
  transition: opacity 0.5s ease;
  pointer-events: none;
  user-select: none;
}
.calc-hint-label svg {
  flex-shrink: 0;
  animation: hintArrows 1.2s ease-in-out infinite;
}
@keyframes hintArrows {
  0%, 100% { transform: translateX(0); opacity: 1; }
  50%       { transform: translateX(3px); opacity: 0.6; }
}
.calc-hint-label.is-hidden {
  opacity: 0;
}

.calc-range-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 0.4rem;
  font-size: 0.7rem;
  color: var(--ink-faint);
  font-weight: 500;
}

.calc-results {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1px;
  background: var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 1.75rem;
}

.calc-result {
  background: var(--bg-2);
  padding: 1.25rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  transition: background 0.3s;
}

.calc-result-highlight {
  background: var(--ie-accent);
}
.calc-result-highlight .result-label,
.calc-result-highlight .result-num { color: #fff; }

.result-label {
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-mute);
}

.result-num {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.02em;
  transition: all 0.3s var(--ease-out);
}

/* =============================================================
   10. PLAN DE ESTUDIOS
   ============================================================= */
.plan {
  padding: var(--section-pad) 0;
  background: var(--bg-2);
}

.tabs { position: relative; }

/* Animated swipe hint */
.tabs-scroll-hint {
  display: none;
}
@media (max-width: 600px) {
.tabs-scroll-hint {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.3rem;
  margin-top: -1.25rem;
  margin-bottom: 1rem;
  pointer-events: none;
  padding-right: 0.25rem;
  animation: hintBounce 1.4s ease-in-out infinite;
}
.tabs-scroll-hint span {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--ink-mute);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.tabs-scroll-hint svg {
  width: 14px;
  height: 14px;
  color: var(--ie-accent);
  flex-shrink: 0;
}
} /* end @media max-width:600px */
@keyframes hintBounce {
  0%, 100% { transform: translateX(0);   opacity: 0.55; }
  50%       { transform: translateX(5px); opacity: 1;    }
}

.tabs-nav {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  padding-bottom: 0.75rem;
  padding-right: 2rem;
  margin-bottom: 2rem;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.tabs-nav::-webkit-scrollbar { display: none; }

/* ── Tab buttons ── */
.tab-btn {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.6rem 1rem 0.6rem 1.1rem;
  border-radius: 100px;
  border: 1.5px solid var(--line-strong);
  background: transparent;
  color: var(--ink-mute);
  font-family: var(--sans);
  font-size: 0.83rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.25s var(--ease-out);
}
.tab-btn:hover { border-color: var(--ie-accent); color: var(--ie-accent); }
.tab-btn:hover .tab-count { background: var(--ie-accent-bg); color: var(--ie-accent); border-color: rgba(204,31,26,0.2); }
.tab-btn.is-active {
  background: var(--ie-accent);
  color: #fff;
  border-color: var(--ie-accent);
}
.tab-btn.is-active .tab-count { background: rgba(255,255,255,0.22); color: #fff; border-color: transparent; }

/* En desktop, mostrar todos los chips sin scroll horizontal — que wrappeen si no caben en una sola fila.
   Override de styles-plan.css que tiene !important en .tabs-nav--cats */
@media (min-width: 721px) {
  .tabs-nav,
  .tabs-nav--cats {
    flex-wrap: wrap !important;
    justify-content: center !important;
    overflow-x: visible !important;
    padding-right: 0;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    row-gap: 12px;
  }
  .tabs-nav--cats::after { display: none; }
}

/* Icono PNG (corona) usado en pastillas premium */
.tab-crown {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: inline-block;
  vertical-align: middle;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,0.08));
}

/* ── Variante PREMIUM (Uñas de Acrílico): solo conserva la coronita, color igual al resto ── */
/* Sin overrides de color/background — hereda los estilos default de .tab-btn */
.tab-num {
  font-size: 0.68rem;
  font-weight: 800;
  opacity: 0.55;
  letter-spacing: 0.05em;
}
.tab-btn.is-active .tab-num { opacity: 0.75; }

.tab-name { font-weight: 700; }

.tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  border-radius: 20px;
  background: var(--bg-3);
  border: 1px solid var(--line-strong);
  color: var(--ink-mute);
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0 0.35rem;
  transition: all 0.2s;
}

/* ── Tab panels ── */
.tab-panel { display: none; }
.tab-panel.is-active { display: block; }

/* ── Tab content card (nueva estructura) ── */
.tab-content {
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--line);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

/* Franja de stats oscura */
.tab-meta {
  display: flex;
  align-items: center;
  background: var(--grey-1);
  padding: 0.55rem 1.25rem;
  flex-wrap: nowrap;
  gap: clamp(0.6rem, 3vw, 1.25rem);
  overflow: hidden;
}
.tab-meta-item {
  display: flex;
  flex-direction: column;
  gap: 0.03rem;
}
.tmi-num {
  font-size: 0.78rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.25;
}
.tmi-label {
  font-size: 0.57rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: rgba(255,255,255,0.4);
}
.tab-meta-sep { display: none; }

/* Cuerpo del tab */
.tab-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  padding: 2rem 1.75rem;
}

/* Intro izquierda */
.tab-intro h3 {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 0.6rem;
  line-height: 1.3;
}
.tab-intro p {
  font-size: 0.88rem;
  color: var(--ink-mute);
  line-height: 1.7;
  margin-bottom: 1rem;
}
.tab-intro-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ie-accent);
  text-decoration: none;
  border-bottom: 1.5px solid currentColor;
  padding-bottom: 0.05rem;
  transition: opacity 0.2s;
}
.tab-intro-cta:hover { opacity: 0.75; }

.tab-intro-hint,
.tab-intro-hint * {
  font-size: 9px !important;
  line-height: 1.2;
}
.tab-intro-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  color: #888;
  font-style: italic;
  margin: 0.5rem 0 0;
  padding-top: 0.5rem;
  border-top: 1px solid var(--line);
}
.tab-hint-icon {
  font-style: normal;
  opacity: 0.45;
}

/* Tarjetas de subnivel */
.sn-cards {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.sn-card {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 1rem 1.15rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.sn-card:hover {
  border-color: rgba(204,31,26,0.2);
  box-shadow: 0 2px 12px rgba(204,31,26,0.06);
}
.sn-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.sn-badge {
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ie-accent);
  background: var(--ie-accent-bg);
  border: 1px solid rgba(204,31,26,0.2);
  border-radius: 20px;
  padding: 0.18rem 0.6rem;
}
.sn-count {
  font-size: 0.7rem;
  color: var(--ink-faint);
  font-weight: 500;
}

/* Chips de técnicas */
.sn-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.sn-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--ink-soft);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  padding: 0.22rem 0.7rem;
  transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.15s, box-shadow 0.15s;
  cursor: pointer;
  text-align: left;
}
.sn-chip::after {
  content: "ⓘ";
  font-size: 0.65rem;
  opacity: 0.35;
  transition: opacity 0.15s;
  flex-shrink: 0;
}
.sn-chip:hover {
  background: var(--ie-accent-bg);
  color: var(--ie-accent);
  border-color: rgba(204,31,26,0.3);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(204,31,26,0.12);
}
.sn-chip:hover::after { opacity: 0.8; }
.sn-chip:focus-visible {
  outline: 2px solid var(--ie-accent);
  outline-offset: 2px;
}

/* =============================================================
   11. BENEFICIOS
   ============================================================= */
.beneficios {
  padding: var(--section-pad) 0;
  background: var(--bg-2);
}

.beneficios-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

.ben-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.4rem 1.5rem;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.ben-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ie-accent), var(--ie-accent-dark));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s var(--ease-out);
}

@media (hover: hover) {
  .ben-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
  }
  .ben-card:hover::after { transform: scaleX(1); }
}

.ben-icon-wrap {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-md);
  background: var(--ie-accent-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  color: var(--ie-accent);
}
.ben-icon { width: 24px; height: 24px; }

.ben-icon-wrap { margin-bottom: 0; }

.ben-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
}

.ben-desc {
  font-size: 0.88rem;
  color: var(--ink-mute);
  line-height: 1.65;
  display: none; /* oculto en móvil */
}

/* "Ver más →" solo en móvil */
.ben-more {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ie-accent);
  letter-spacing: 0.02em;
  transition: gap 0.2s;
}
.ben-more svg { width: 13px; height: 13px; transition: transform 0.2s; }
@media (hover: hover) {
  .ben-card:hover .ben-more svg { transform: translateX(3px); }
}

/* ≥768px: descripción directa, sin modal */
@media (min-width: 768px) {
  .ben-desc { display: block; }
  .ben-more { display: none; }
  .ben-card { cursor: default; }
}

/* =============================================================
   11.4b  BENEFICIOS — COVERFLOW 3D HORIZONTAL
   ============================================================= */

/* ── Section wrapper ── */
.beneficios--cf {
  padding: var(--section-pad) 0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(204,31,26,0.05) 0%, transparent 55%),
    linear-gradient(180deg, var(--bg-2, #f6f5f2) 0%, #ffffff 100%);
  position: relative;
  overflow: hidden;
}

/* ── Wrap ── */
.ben-cf-wrap {
  margin-top: 2.5rem;
  position: relative;
}

/* ── Stage: 3D perspective container ── */
.ben-cf-stage {
  position: relative;
  height: 520px;
  perspective: 1600px;
  perspective-origin: 50% 50%;
  /* overflow visible + mask-clip no-clip → la sombra del card activo se
     extiende libre debajo del stage, mientras el mask lateral hace su fade
     horizontal pero SIN clipear el contenido overflowing. */
  overflow: visible;
  /* Extiende el stage hasta el borde del viewport en mobile/tablet/laptop —
     compensa el padding del .section-inner con margen negativo. Así el mask
     fade aplica en las orillas reales de pantalla, no a 40px adentro donde
     quedaba cortando los side cards en tablet. */
  margin-left: calc(var(--gutter) * -1);
  margin-right: calc(var(--gutter) * -1);
  /* Mask suave: punto final a 70% de visibilidad (no 0%) y zona de fade
     del 14% — gradual, sin "neblina blanca" cortando las cards. */
  -webkit-mask-image: linear-gradient(90deg,
    rgba(0,0,0,0.7) 0%,
    #000 14%,
    #000 86%,
    rgba(0,0,0,0.7) 100%);
          mask-image: linear-gradient(90deg,
    rgba(0,0,0,0.7) 0%,
    #000 14%,
    #000 86%,
    rgba(0,0,0,0.7) 100%);
  -webkit-mask-clip: no-clip;
          mask-clip: no-clip;
}

/* En desktop ancho (≥1200px) las cards no llegan a la zona de fade, así
   que restauramos el mask original duro + stage sin extensión. */
@media (min-width: 1200px) {
  .ben-cf-stage {
    margin-left: 0;
    margin-right: 0;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  }
}

.ben-cf-track {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

/* ════════════════════════════════════════
   CARD — WHITE PREMIUM (Apple-style)
════════════════════════════════════════ */
.ben-cf-card {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 340px;
  height: 460px;
  margin: 0;
  border-radius: 22px;
  background: linear-gradient(165deg, #ffffff 0%, #fbf9f5 100%);
  border: 1px solid rgba(10,10,10,0.07);
  color: #0a0a0a;
  cursor: pointer;
  user-select: none;
  overflow: hidden;
  transform-style: preserve-3d;
  transform-origin: center center;
  /* Initial state: centered, hidden — JS fans them out on load */
  transform: translate(-50%, -50%);
  opacity: 0;
  box-shadow:
    0 1px 2px rgba(10,10,10,0.04),
    0 14px 36px -14px rgba(10,10,10,0.14);
  transition:
    transform 0.75s cubic-bezier(0.2, 0.85, 0.25, 1),
    opacity 0.6s ease,
    box-shadow 0.45s ease,
    border-color 0.4s ease;
  will-change: transform, opacity;
}

/* Auto-shift demo: transición más rápida — el flow multi-paso ya da
   sensación de movimiento, no necesitamos durar más por step. */
.ben-cf-wrap--shifting .ben-cf-card {
  transition-duration: 0.6s, 0.45s, 0.4s, 0.35s;
  transition-timing-function: cubic-bezier(0.32, 0.84, 0.28, 1);
}

/* Wrap-around: cuando una card "salta" del extremo invisible izquierdo al
   extremo invisible derecho (o viceversa) en el coverflow infinito.
   Omite la transición del transform → la card teletransporta instantáneamente
   en posiciones de opacity 0 (invisible para el usuario), pero la opacidad
   sí transiciona normal por si entra/sale de la zona visible. */
.ben-cf-card.ben-cf-card--wrapping {
  transition: opacity 0.6s ease, box-shadow 0.45s ease, border-color 0.4s ease !important;
}

.ben-cf-card::before {
  /* warm tints — apenas perceptibles, dan calidez al blanco */
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 85% -10%, rgba(204,31,26,0.055) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 110%, rgba(10,10,10,0.025)  0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

.ben-cf-card::after {
  /* Active indicator: barra roja en el top borde — aparece sólo en card activa */
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #8B0000 0%, #cc1f1a 100%);
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transform: scaleX(0.3);
  transform-origin: center;
  transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.2, 0.85, 0.2, 1);
}

.ben-cf-card--active {
  cursor: default;
  border-color: rgba(204,31,26,0.16);
  background: linear-gradient(165deg, #ffffff 0%, #fcfaf6 100%);
  box-shadow:
    0 1px 2px rgba(10,10,10,0.04),
    0 32px 70px -22px rgba(204,31,26,0.22),
    0 18px 40px -18px rgba(10,10,10,0.12);
}
.ben-cf-card--active::after {
  opacity: 1;
  transform: scaleX(1);
}

/* ── Card content ── */
.ben-cf-card-inner {
  position: relative;
  z-index: 1;
  height: 100%;
  padding: 2rem 1.85rem 1.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.ben-cf-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.ben-cf-icon {
  width: 58px;
  height: 58px;
  border-radius: 16px;
  background: linear-gradient(140deg, rgba(204,31,26,0.1) 0%, rgba(204,31,26,0.035) 100%);
  border: 1px solid rgba(204,31,26,0.14);
  color: #8B0000;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition:
    background 0.45s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.4s ease,
    border-color 0.4s ease,
    box-shadow 0.4s ease,
    transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ben-cf-icon svg { width: 28px; height: 28px; }

/* Active card → icono carmesí pleno con halo */
.ben-cf-card--active .ben-cf-icon {
  background: linear-gradient(135deg, #8B0000 0%, #cc1f1a 100%);
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 10px 22px -6px rgba(204,31,26,0.4);
  transform: scale(1.04);
}

.ben-cf-num {
  font-family: var(--mono, "SF Mono", "Courier New", monospace);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: rgba(10,10,10,0.32);
  font-variant-numeric: tabular-nums;
  transition: color 0.35s ease;
}
.ben-cf-card--active .ben-cf-num {
  color: #8B0000;
}

.ben-cf-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.ben-cf-title {
  font-size: 1.28rem;
  font-weight: 700;
  margin: 0;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: #0a0a0a;
}

.ben-cf-desc {
  font-size: 0.88rem;
  line-height: 1.6;
  margin: 0;
  color: #525252;
  flex: 1;
}

.ben-cf-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.ben-cf-tag {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(204,31,26,0.07);
  color: #8B0000;
  border: 1px solid rgba(204,31,26,0.14);
  white-space: nowrap;
}

/* ════════════════════════════════════════
   NAV ARROWS — flanquean el stage (minimalist)
════════════════════════════════════════ */
.ben-cf-frame {
  position: relative;
}

.ben-cf-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(10,10,10,0.5);
  padding: 0;
  transition:
    background 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ben-cf-nav:hover:not(:disabled) {
  color: #8B0000;
  transform: translateY(-50%) scale(1.15);
}
.ben-cf-nav:active:not(:disabled) {
  transform: translateY(-50%) scale(0.96);
}
.ben-cf-nav:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.ben-cf-nav:focus-visible {
  outline: 2px solid #cc1f1a;
  outline-offset: 3px;
}
.ben-cf-nav svg { width: 36px; height: 36px; }

.ben-cf-nav--prev { left: 0.75rem; }
.ben-cf-nav--next { right: 0.75rem; }

/* ════════════════════════════════════════
   CONTROLS (sólo dots ahora)
════════════════════════════════════════ */
.ben-cf-controls {
  margin-top: 1.75rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.ben-cf-dots {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.ben-cf-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(10,10,10,0.18);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ben-cf-dot:hover { background: rgba(10,10,10,0.35); }
.ben-cf-dot.is-active {
  width: 32px;
  border-radius: 4px;
  background: linear-gradient(90deg, #8B0000 0%, #cc1f1a 100%);
}
.ben-cf-dot:focus-visible {
  outline: 2px solid #cc1f1a;
  outline-offset: 3px;
}

.ben-cf-hint {
  margin: 1rem 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-align: center;
  font-size: 0.78rem;
  color: rgba(10,10,10,0.42);
  font-weight: 500;
}
.ben-cf-hint svg {
  flex-shrink: 0;
  animation: ben-cf-hint-pulse 2.2s ease-in-out infinite;
}
@keyframes ben-cf-hint-pulse {
  0%, 100% { transform: translateX(0); opacity: 0.55; }
  50%      { transform: translateX(4px); opacity: 1; }
}

/* ════════════════════════════════════════
   Mobile (≤ 640px): cards más pequeñas
════════════════════════════════════════ */
@media (max-width: 640px) {
  .ben-cf-stage {
    /* Mobile: sólo override de altura. El mask suave y la extensión a
       viewport ya están en la regla default — sirven para mobile, tablet
       y laptop chica. Desktop ancho restaura el mask original via su
       propio media query. */
    height: 460px;
    /* iOS Safari no soporta mask-clip:no-clip → el mask recortaba la sombra de la card por abajo (donde estan los dots). En movil quitamos el mask. */
    -webkit-mask-image: none;
            mask-image: none;
  }
  .ben-cf-card {
    width: 275px;
    height: 410px;
    border-radius: 20px;
  }
  .ben-cf-card-inner { padding: 1.55rem 1.4rem 1.4rem; }
  .ben-cf-icon { width: 50px; height: 50px; border-radius: 14px; }
  .ben-cf-icon svg { width: 24px; height: 24px; }
  .ben-cf-num  { font-size: 0.72rem; }
  .ben-cf-title { font-size: 1.1rem; }
  .ben-cf-desc { font-size: 0.83rem; line-height: 1.55; }
  .ben-cf-tag  { font-size: 0.64rem; padding: 0.3rem 0.6rem; }
  /* En mobile el swipe es gesto universal — fuera flechas y hint */
  .ben-cf-nav  { display: flex; }
  .ben-cf-nav--prev { left: calc(var(--gutter) * -1 + 0.25rem); }
  .ben-cf-nav--next { right: calc(var(--gutter) * -1 + 0.25rem); }
  .ben-cf-hint { display: none; }
  .ben-cf-controls { margin-top: 3rem; }
}

/* ════════════════════════════════════════
   Desktop XL (≥ 1200px): un toque más generoso
════════════════════════════════════════ */
@media (min-width: 1200px) {
  .ben-cf-stage { height: 540px; }
  .ben-cf-card {
    width: 360px;
    height: 480px;
  }
  .ben-cf-title { font-size: 1.35rem; }
}

/* ════════════════════════════════════════
   Reduced motion: sin transiciones largas, sin tilt
════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .ben-cf-card,
  .ben-cf-nav,
  .ben-cf-dot,
  .ben-cf-hint svg {
    transition: opacity 0.2s ease;
    animation: none;
  }
}

/* =============================================================
   11.5 INSTRUCTORAS — Clean grid + modal
   ============================================================= */
.instructoras {
  padding: var(--section-pad) 0;
  background: #fff;
  position: relative;
}

.ins-grid {
  margin-top: 3.5rem;
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  /* Mobile (<560px): slider horizontal, 2 cards visibles */
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  /* Padding vertical: deja aire para el scale del hover; padding-bottom corto para acercar el hint */
  padding: 1rem 0 0.25rem;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.ins-grid::-webkit-scrollbar { display: none; }

.ins-grid > .ins-card {
  flex: 0 0 calc(50% - 0.5rem);
  scroll-snap-align: start;
}

/* Dots de posición debajo del slider (solo mobile) */
.ins-dots {
  display: none;
  margin: 0.6rem auto 0;
  width: fit-content;
  gap: 7px;
  align-items: center;
  justify-content: center;
}
.ins-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.18);
  transition:
    width 0.3s var(--ease-out),
    background 0.3s var(--ease-out);
  cursor: pointer;
}
.ins-dot.is-active {
  width: 20px;
  border-radius: 999px;
  background: var(--ie-accent, #cc1f1a);
}


/* Mostrar los dots solo en mobile + reducir espacio sobre el grid */
@media (max-width: 559px) {
  .ins-dots { display: flex; }
  .ins-grid { margin-top: 1.5rem; padding-top: 0.5rem; }
}

/* Tablet ≥560px: grid de 2 columnas estático, sin dots */
@media (min-width: 560px) {
  .ins-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    overflow: visible;
  }
  .ins-grid > .ins-card { flex: initial; }
  .ins-dots { display: none; }
}

/* Desktop ≥960px: 4 columnas */
@media (min-width: 960px) {
  .ins-grid { grid-template-columns: repeat(4, 1fr); }
}

.ins-card {
  background: transparent;
  border: 0;
  padding: 0 0 1.25rem;
  cursor: pointer;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.35s var(--ease-out);
}
.ins-card:hover { transform: translateY(-4px); }
.ins-card:focus,
.ins-card:focus-visible {
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

.ins-photo {
  display: block;
  width: 100%;
  max-width: 200px;
  aspect-ratio: 4 / 5;
  height: auto;
  object-fit: contain;
  object-position: center bottom;
  transform-origin: center bottom;
  transition: transform 0.5s var(--ease-out);
}
.ins-card:hover .ins-photo { transform: scale(1.03); }

/* Chip que invade el borde inferior de la imagen */
.ins-chip {
  position: relative;
  z-index: 2;
  margin-top: -1.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.6rem 1rem 0.6rem 1.1rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--line, #ececec);
  font-family: var(--sans);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--ink, #1a1a1a);
  white-space: nowrap;
  box-sizing: border-box;
  max-width: calc(100% - 1rem);
  overflow: hidden;
  text-overflow: ellipsis;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.07);
  transition:
    background 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.ins-chip-info {
  flex-shrink: 0;
  opacity: 0.45;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.ins-card:hover .ins-chip {
  background: var(--ie-accent, #cc1f1a);
  border-color: var(--ie-accent, #cc1f1a);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(204, 31, 26,0.25);
}
.ins-card:hover .ins-chip-info {
  opacity: 1;
  transform: scale(1.1);
}

/* ── Modal ────────────────────────────────────────── */
.ins-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.ins-modal.is-open { display: flex; }

.ins-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 15, 15, 0.7);
  backdrop-filter: blur(6px);
  animation: insFade 0.3s ease;
}
@keyframes insFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.ins-modal-dialog {
  position: relative;
  background: #fff;
  border-radius: 20px;
  max-width: 760px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  display: grid;
  grid-template-columns: 1fr;
  box-shadow: 0 25px 80px rgba(0,0,0,0.35);
  animation: insSlide 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes insSlide {
  from { opacity: 0; transform: translateY(20px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@media (min-width: 720px) {
  .ins-modal-dialog { grid-template-columns: 280px 1fr; }
}

.ins-modal-close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 5;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 0;
  background: rgba(255,255,255,0.92);
  color: var(--ink, #1a1a1a);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0,0,0,0.12);
  transition: transform 0.2s ease, background 0.2s ease;
}
.ins-modal-close:hover {
  transform: scale(1.08) rotate(90deg);
  background: #fff;
}

.ins-modal-photo {
  background: transparent;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem 0.5rem 0;
}
@media (min-width: 720px) {
  .ins-modal-photo { height: 100%; padding: 1.5rem 0 0 1rem; }
}
.ins-modal-photo img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
/* Mobile: imagen más chica para que el modal no sea tan alto */
@media (max-width: 720px) {
  .ins-modal-photo {
    padding: 1rem 0.5rem 0;
  }
  .ins-modal-photo img {
    max-width: 200px;
    margin: 0 auto;
  }
}

.ins-modal-content {
  padding: 1.75rem 1.75rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.ins-modal-rol {
  display: none;
}
.ins-modal-name {
  font-family: var(--sans);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  color: var(--ink, #1a1a1a);
  letter-spacing: -0.015em;
  line-height: 1.15;
  margin: 0;
}
.ins-modal-anios {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.6rem 0.9rem;
  background: linear-gradient(135deg, rgba(204,31,26,0.05), rgba(204,31,26,0.02));
  border-left: 3px solid var(--ie-accent, #cc1f1a);
  border-radius: 6px;
}
.ins-modal-num {
  font-family: var(--sans);
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--ie-accent, #cc1f1a);
  line-height: 1;
  letter-spacing: -0.02em;
}
.ins-modal-num-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink-mute, #6a6a6a);
  letter-spacing: 0.02em;
}
.ins-modal-bio {
  font-size: 0.95rem;
  color: var(--ink, #1a1a1a);
  line-height: 1.6;
  margin: 0;
}
.ins-modal-esp {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-top: 0.5rem;
}
.ins-modal-esp-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-mute, #6a6a6a);
}
.ins-modal-esp-text {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ink, #1a1a1a);
}
.ins-modal-logros {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ins-modal-logros li {
  position: relative;
  padding-left: 1.4rem;
  font-size: 0.88rem;
  color: var(--ink, #1a1a1a);
  line-height: 1.4;
}
.ins-modal-logros li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ie-accent, #cc1f1a);
}

body.ins-modal-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .ins-modal-dialog,
  .ins-modal-backdrop { animation: none; }
}

/* Strip full-bleed (saca los márgenes del section-inner) */
.acc-strip {
  display: flex;
  width: 100%;
  height: 540px;
  margin-top: 3rem;
  background: #0a0a0a;
  position: relative;
  overflow: hidden;
}

.acc-panel {
  position: relative;
  flex: 1;
  height: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
  padding: 0;
  transition: flex 0.7s cubic-bezier(0.65, 0, 0.35, 1);
  display: block;
}

/* Estado abierto: panel domina la fila */
.acc-strip:hover .acc-panel { flex: 0.6; }
.acc-strip:hover .acc-panel:hover,
.acc-strip:hover .acc-panel.is-open { flex: 2.2; }
/* Sin hover en strip: el panel marcado como is-open se mantiene abierto */
.acc-strip:not(:hover) .acc-panel.is-open { flex: 2.2; }
.acc-strip:not(:hover) .acc-panel:not(.is-open) { flex: 0.85; }

/* Fondo de imagen */
.acc-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 22%;
  transform: scale(1.04);
  filter: grayscale(0.6) brightness(0.78) contrast(1.05);
  transition:
    filter 0.6s ease,
    transform 0.9s ease;
}
.acc-panel:hover .acc-bg,
.acc-panel.is-open .acc-bg {
  filter: grayscale(0) brightness(0.95) contrast(1.06) saturate(1.05);
  transform: scale(1);
}

/* Overlay degradado */
.acc-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0.18) 0%,
      rgba(0,0,0,0.05) 35%,
      rgba(0,0,0,0.55) 75%,
      rgba(0,0,0,0.85) 100%);
  transition: opacity 0.5s ease;
}
.acc-panel:hover .acc-overlay,
.acc-panel.is-open .acc-overlay { opacity: 0.85; }

/* Línea divisora vertical entre paneles */
.acc-panel + .acc-panel::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(255,255,255,0.12);
  z-index: 5;
}

/* Estado cerrado: número + nombre vertical */
.acc-closed {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0.5rem;
  z-index: 3;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.4s ease;
}
.acc-num {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: 1.1rem;
  font-weight: 800;
  font-style: italic;
  color: rgba(255,255,255,0.85);
  letter-spacing: 0;
}
.acc-name-vert {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

.acc-panel:hover .acc-closed,
.acc-panel.is-open .acc-closed { opacity: 0; }

/* Estado abierto: info editorial completa */
.acc-open {
  position: absolute;
  left: 2rem;
  right: 2rem;
  bottom: 1.75rem;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 0.45s ease 0.15s,
    transform 0.45s ease 0.15s;
  pointer-events: none;
}
.acc-panel:hover .acc-open,
.acc-panel.is-open .acc-open {
  opacity: 1;
  transform: translateY(0);
}

.acc-num-open {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: 0.95rem;
  font-style: italic;
  color: var(--ie-accent, #cc1f1a);
  font-weight: 700;
  letter-spacing: 0;
  margin-bottom: 0.2rem;
}
.acc-rol-open {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}
.acc-name-open {
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1.02;
  margin: 0.15rem 0;
}
.acc-esp-open {
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.88);
  line-height: 1.45;
  max-width: 340px;
}

/* Mobile: acordeón vertical (filas en lugar de columnas) */
@media (max-width: 720px) {
  .acc-strip {
    flex-direction: column;
    height: auto;
  }
  .acc-panel { height: 140px; }
  .acc-strip:hover .acc-panel,
  .acc-strip:not(:hover) .acc-panel:not(.is-open) { flex: 0.7; }
  .acc-strip:hover .acc-panel:hover,
  .acc-strip:hover .acc-panel.is-open,
  .acc-strip:not(:hover) .acc-panel.is-open { flex: 2.5; }
  .acc-name-vert {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 0.75rem;
  }
  .acc-closed {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
  }
  .acc-open {
    left: 1.25rem;
    right: 1.25rem;
    bottom: 1rem;
  }
  .acc-panel + .acc-panel::before {
    width: 100%;
    height: 1px;
    bottom: auto;
  }
}

/* Touch devices: como no hay hover, toggle por click vía JS */
@media (hover: none) {
  .acc-strip:hover .acc-panel { flex: 0.85; }
  .acc-strip:hover .acc-panel.is-open { flex: 2.2; }
  .acc-panel.is-open .acc-bg {
    filter: grayscale(0) brightness(0.95) contrast(1.06) saturate(1.05);
    transform: scale(1);
  }
  .acc-panel.is-open .acc-closed { opacity: 0; }
  .acc-panel.is-open .acc-open { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .acc-panel, .acc-bg, .acc-overlay, .acc-closed, .acc-open {
    transition-duration: 0.15s !important;
  }
}

/* =============================================================
   11.7 GALERÍA — Bento (mobile) / Horizontal (desktop+tablet)
   ============================================================= */
.galeria {
  padding: var(--section-pad) 0;
  background: #fff;
  position: relative;
}

/* ── Mobile: BENTO 2 columnas con cards "altas" ── */
.gal-grid {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: clamp(110px, 32vw, 180px);
  gap: 0.6rem;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.gal-item {
  position: relative;
  border: 0;
  padding: 0;
  margin: 0;
  background: #f4f4f4;
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
  transition:
    transform 0.4s var(--ease-out),
    box-shadow 0.4s var(--ease-out);
  -webkit-tap-highlight-color: transparent;
}
.gal-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12);
}
.gal-item:focus { outline: none; }
.gal-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s var(--ease-out);
}
.gal-item:hover img { transform: scale(1.05); }

/* Cards "altas" del bento: ocupan 2 filas */
.gal-item--tall { grid-row: span 2; }

/* ── Tablet+ : una fila horizontal con cards landscape ── */
@media (min-width: 640px) {
  .gal-grid {
    grid-auto-rows: auto;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-flow: dense;
    gap: 1rem;
  }
  .gal-item { aspect-ratio: 4 / 5; }
  .gal-item--tall { grid-row: auto; }
}

@media (min-width: 960px) {
  .gal-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 1.1rem;
  }
  .gal-item { aspect-ratio: 3 / 4; border-radius: 22px; }
}

/* ── Modal lightbox ────────────────────────── */
.gal-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}
.gal-modal.is-open { display: flex; }

.gal-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, 0.85);
  backdrop-filter: blur(8px);
  animation: galFade 0.3s ease;
}
@keyframes galFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.gal-modal-content {
  position: relative;
  max-width: 90vw;
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  animation: galPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes galPop {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}

.gal-modal-content img {
  max-width: 90vw;
  max-height: 80vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}

.gal-modal-counter {
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  font-variant-numeric: tabular-nums;
}

.gal-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 5;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.95);
  color: var(--ink, #1a1a1a);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
  transition: transform 0.25s ease, background 0.25s ease;
}
.gal-modal-close:hover {
  transform: scale(1.08) rotate(90deg);
}

.gal-modal-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.95);
  color: var(--ink, #1a1a1a);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
  transition: transform 0.25s ease;
  z-index: 5;
}
.gal-modal-arrow--prev { left: 1rem; }
.gal-modal-arrow--next { right: 1rem; }
.gal-modal-arrow:hover { transform: translateY(-50%) scale(1.08); }
.gal-modal-arrow:active { transform: translateY(-50%) scale(0.95); }

@media (max-width: 560px) {
  .gal-modal-arrow { width: 40px; height: 40px; }
  .gal-modal-arrow--prev { left: 0.5rem; }
  .gal-modal-arrow--next { right: 0.5rem; }
}

body.gal-modal-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .gal-modal-backdrop,
  .gal-modal-content { animation: none; }
}

/* =============================================================
   12. TESTIMONIOS
   ============================================================= */
.testimonios {
  padding: var(--section-pad) 0;
  background: var(--bg);
}

.google-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  margin-top: 1.25rem;
}

/* Wordmark Google completo (lado izquierdo) — sin caja */
.google-wordmark {
  height: auto;
  width: 120px;
  max-width: 100%;
  flex-shrink: 0;
  display: block;
}
/* Variante: badge circular "Número Uno en Google Reseñas" */
.google-badge-img {
  width: 130px;
  height: 130px;
  object-fit: contain;
}
@media (max-width: 640px) {
  .google-badge-img { width: 100px; height: 100px; }
}

/* Divisor vertical */
.google-divider {
  width: 1px;
  height: 28px;
  background: var(--line-strong);
  flex-shrink: 0;
}

/* Recuadro de rating (lado derecho) — solo este tiene borde y fondo */
.google-rating-box {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  text-align: left;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.45rem 0.75rem;
  box-shadow: var(--shadow-sm);
}

/* G icon pequeño */
.google-logo { width: 18px; height: 18px; flex-shrink: 0; }

.google-top {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.google-num   { font-size: 1rem; font-weight: 700; color: var(--ink); line-height: 1; }
.google-stars { font-size: 0.9rem; color: #fbbc05; line-height: 1; letter-spacing: 0.05em; }
.google-count { font-size: 0.65rem; font-weight: 600; color: var(--ink-mute); text-transform: uppercase; letter-spacing: 0.06em; }

.testi-wrap {
  position: relative;
  /* cancela el padding del section-inner para que el track llegue de borde a borde */
  margin-left:  calc(-1 * var(--gutter));
  margin-right: calc(-1 * var(--gutter));
}

.testi-track {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  /* restaura el espacio visual con padding propio */
  padding: 0.5rem var(--gutter) 1.25rem;
  scroll-padding-left: var(--gutter);
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.testi-track::-webkit-scrollbar { display: none; }

.testi-card {
  /* móvil: 1 tarjeta = pantalla completa menos márgenes
     tablet (≥600px): 2 tarjetas visibles
     desktop (≥1024px): 3 tarjetas visibles                */
  flex: 0 0 min(300px, calc(100vw - 3rem));
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  padding: 1.75rem;
  box-shadow: var(--shadow-md);
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s;
}
@media (hover: hover) {
  .testi-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
  }
}
/* Tablet: 2 tarjetas visibles */
@media (min-width: 600px) {
  .testi-card { flex: 0 0 calc(50% - 1.5rem); }
}
/* Desktop: 3 tarjetas visibles — sin "peek" duro del siguiente.
   Padding lateral + máscara con fade para que cualquier card que asome
   (durante scroll) se desvanezca suavemente en lugar de cortarse. */
@media (min-width: 1024px) {
  .testi-wrap {
    margin-left: 0;
    margin-right: 0;
  }
  .testi-track {
    padding-left: 3rem;
    padding-right: 3rem;
    scroll-padding-left: 3rem;
    /* Fade más amplio en los bordes: difumina sombras y peek de cards adyacentes */
    --fade: 3rem;
    -webkit-mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 var(--fade),
      #000 calc(100% - var(--fade)),
      transparent 100%
    );
            mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 var(--fade),
      #000 calc(100% - var(--fade)),
      transparent 100%
    );
  }
  .testi-card {
    /* 100% del flex container ya excluye el padding; solo restamos los 2 gaps */
    flex: 0 0 calc((100% - 2.5rem) / 3);
    max-width: none;
  }
}

.testi-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.testi-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--av-color, var(--ie-accent));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  flex-shrink: 0;
  overflow: hidden;
}

.testi-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.testi-name {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ink);
}
.testi-fecha {
  font-size: 0.75rem;
  color: var(--ink-faint);
}

.testi-google-icon { margin-left: auto; flex-shrink: 0; }

.testi-stars {
  font-size: 0.9rem;
  color: #fbbc05;
  margin-bottom: 0.75rem;
}

.testi-texto {
  font-size: 0.88rem;
  color: var(--ink-soft);
  line-height: 1.7;
}

.testi-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 2rem;
}

.testi-btn,
.testi-arrow {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1.5px solid var(--line-strong);
  background: #fff;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ink);
  transition: all 0.2s var(--ease-out);
  padding: 0;
  flex-shrink: 0;
}
.testi-btn svg, .testi-arrow svg { width: 20px; height: 20px; }
.testi-btn:hover,
.testi-arrow:hover {
  background: var(--ie-accent);
  border-color: var(--ie-accent);
  color: #fff;
  transform: scale(1.05);
}
.testi-arrow:active { transform: scale(0.95); }
/* Mostrar las flechas solo en desktop */
@media (min-width: 768px) {
  .testi-btn,
  .testi-arrow { display: inline-flex; }
}

.testi-dots {
  display: flex;
  gap: 6px;
}

.testi-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--grey-4);
  border: 0;
  cursor: pointer;
  transition: all 0.25s var(--ease-out);
  padding: 0;
}
.testi-dot.is-active {
  background: var(--ie-accent);
  width: 24px;
  border-radius: 100px;
}

/* =============================================================
   13. SUCURSALES
   ============================================================= */
/* ═══════════════════════════════════════════════════════════
   GALERÍA — marquee infinito (mismo diseño que el home)
   ═══════════════════════════════════════════════════════════ */
.gallery-marquee { overflow: hidden; padding: var(--section-pad) 0; background: var(--bg); }
.gallery-marquee .marquee {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  margin: 1.75rem 0 0;
  cursor: grab;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}
.gallery-marquee .marquee::-webkit-scrollbar { display: none; }
.gallery-marquee .marquee.is-grabbing { cursor: grabbing; user-select: none; }
.gallery-marquee .marquee-track {
  display: flex;
  gap: 0.85rem;
  width: max-content;
  will-change: transform;
}
.gallery-marquee .marquee-track--left {
  animation: marqueeLeft 45s linear infinite;
}
@keyframes marqueeLeft {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
/* Auto-scroll lo maneja JS ahora — no usamos animation: marqueeLeft */
.gallery-marquee .marquee-item {
  flex-shrink: 0;
  margin: 0;
  width: clamp(180px, 22vw, 280px);
  aspect-ratio: 4 / 5;
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg-2);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.15);
}
.gallery-marquee .marquee-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s cubic-bezier(.2,.7,.2,1);
}
.gallery-marquee .marquee-item:hover img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) {
  .gallery-marquee .marquee-track--left { animation: none; }
}
/* prefers-reduced-motion: el JS también respeta esto y no anima */
@media (max-width: 720px) {
  .gallery-marquee .marquee-item { width: clamp(140px, 38vw, 200px); border-radius: 12px; }
  .gallery-marquee .marquee-track { gap: 0.6rem; }
}

.sucursales {
  padding: 2rem 0 2.5rem;
  background: var(--bg);
}
.sucursales .section-header {
  margin-bottom: 1rem;
}

.suc-finder {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 800px) {
  .suc-finder { grid-template-columns: 44% 1fr; gap: 1.75rem; align-items: start; }
}

/* LEFT */
.suc-field {
  position: relative;
  margin-bottom: 0.75rem;
}
.suc-field-icon {
  position: absolute;
  left: 0.875rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ink-mute);
  pointer-events: none;
}
.suc-input {
  width: 100%;
  padding: 0.75rem 0.875rem 0.75rem 2.5rem;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-sm);
  font-family: var(--font);
  font-size: 0.88rem;
  outline: none;
  background: #fff;
  color: var(--ink);
  transition: border-color 0.2s;
}
.suc-input::placeholder { color: var(--ink-mute); }
.suc-input:focus { border-color: var(--ie-accent); }

.suc-search-btns {
  display: flex;
  gap: 0.6rem;
  margin-bottom: 1.75rem;
  flex-wrap: wrap;
}
.suc-search-btns .btn {
  flex: 1 1 auto;
  min-width: 0;
  gap: 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  padding: 0.55rem 1rem;
}
.suc-search-btns .btn svg {
  width: 13px;
  height: 13px;
}

.suc-or {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 0.75rem;
}

.suc-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.suc-pill {
  padding: 0.42rem 0.85rem;
  border: 1.5px solid var(--line);
  border-radius: 2rem;
  font-size: 0.78rem;
  font-weight: 700;
  font-family: var(--font);
  cursor: pointer;
  background: #fff;
  color: var(--ink);
  transition: all 0.2s;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
/* Versión compacta solo en desktop */
@media (min-width: 720px) {
  .suc-pills { gap: 0.35rem; }
  .suc-pill {
    padding: 0.3rem 0.7rem;
    font-size: 0.68rem;
  }
}

/* ── Lista ordenada por cercanía (armónica con el sitio) ── */
.suc-ranked {
  margin-top: 1.5rem;
  padding: 1.1rem;
  background: #fff;
  border: 1px solid var(--line, rgba(10,10,10,0.08));
  border-radius: 18px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}
.suc-ranked-title {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8B0000;
  margin: 0 0 0.4rem;
  padding: 0 0.25rem;
}
.suc-ranked-from {
  font-size: 0.78rem;
  color: var(--ink-mute, #5a5d66);
  margin: 0 0 0.85rem;
  padding: 0 0.25rem;
  line-height: 1.4;
}
.suc-ranked-from strong {
  color: var(--ink, #0a0a0a);
  font-weight: 600;
}
.suc-ranked-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.suc-ranked-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.65rem 0.85rem;
  background: var(--bg-2, #f7f7f8);
  border: 1px solid transparent;
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, transform 0.18s, box-shadow 0.18s;
}
.suc-ranked-item:hover {
  background: #fff;
  border-color: rgba(139, 0, 0, 0.2);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(139, 0, 0, 0.06);
}
.suc-ranked-item.is-active {
  border-color: var(--ie-accent, #cc1f1a);
  background: linear-gradient(135deg, rgba(204, 31, 26,0.05), rgba(139, 0, 0, 0.07));
  box-shadow: 0 4px 14px rgba(139, 0, 0, 0.08);
}
.srn-num {
  width: 26px;
  height: 26px;
  background: #fff;
  color: var(--ink-mute, #5a5d66);
  border: 1px solid var(--line, rgba(10,10,10,0.08));
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
}
.suc-ranked-item:hover .srn-num {
  border-color: rgba(139, 0, 0, 0.2);
}
.suc-ranked-item.is-active .srn-num {
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  color: #fff;
  border-color: transparent;
}
.srn-text {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.srn-name {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--ink, #0a0a0a);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.srn-addr {
  font-size: 0.72rem;
  color: var(--ink-mute, #5a5d66);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}
.srn-dist {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #8B0000;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  letter-spacing: 0.01em;
}
.srn-dist svg { opacity: 0.85; }
.suc-pill:hover {
  border-color: var(--ie-accent);
  color: var(--ie-accent);
}
.suc-pill.is-active {
  background: var(--ie-accent);
  border-color: var(--ie-accent);
  color: #fff;
}

/* RIGHT */
.suc-info-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin-bottom: 1rem;
  box-shadow: var(--shadow-md);
}
.suc-info-name {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 1rem;
}
.suc-info-meta { display: flex; flex-direction: column; gap: 0.5rem; }
.suc-info-row {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--ink-mute);
  line-height: 1.5;
}
.suc-info-row svg { flex-shrink: 0; margin-top: 1px; color: var(--ie-accent); }
.suc-tel { color: var(--ink-mute); text-decoration: none; }
.suc-tel:hover { color: var(--ie-accent); }

.suc-info-actions {
  display: flex;
  gap: 0.65rem;
  margin-top: 1.25rem;
  flex-wrap: wrap;
}
.suc-info-actions .btn {
  flex: 1 1 auto;
  min-width: 0;
  gap: 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.82rem;
}
.btn-wa {
  background: #25D366;
  border-color: #25D366;
  color: #fff;
}
.btn-wa:hover { background: #1ebe5c; border-color: #1ebe5c; }
.btn-directions {
  background: transparent;
  border: 1.5px solid var(--line);
  color: var(--ink);
}
.btn-directions:hover { border-color: var(--ie-accent); color: var(--ie-accent); }

.suc-map-wrap {
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line);
  /* Google Maps embed solo muestra el "place card" con rating cuando
     el iframe tiene altura >= ~340px. Con menos, renderiza modo compacto. */
  height: 350px;
}
.suc-map-wrap iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

/* =============================================================
   14. PRECIO
   ============================================================= */
.precio {
  padding: var(--section-pad) 0;
  background: #6B0000;
  position: relative;
  overflow: clip;
}

.precio::before { display: none; }

/* ═══════════════════════════════════════════════════════════════
   PRECIO — HAGAMOS CUENTAS JUNTAS (Opción 13 · Spreadsheet style)
   ═══════════════════════════════════════════════════════════════ */
.precio--sheet {
  background: var(--bg-2, #f7f7f8);
  padding: 4.5rem 0 5rem;
  position: relative;
}
.psheet-wrap {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

/* Header */
.psheet-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.5rem;
}
.psheet-eyebrow {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8B0000;
  padding: 0.35rem 0.9rem;
  background: linear-gradient(135deg, rgba(139,0,0,0.06), rgba(204,31,26,0.1));
  border-radius: 999px;
  border: 1px solid rgba(139,0,0,0.18);
}
.psheet-title {
  font-size: clamp(1.8rem, 4.5vw, 2.6rem);
  font-weight: 900;
  color: var(--ink, #0a0a0a);
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0;
}
.psheet-sub {
  font-size: 0.92rem;
  color: var(--ink-mute, #5a5d66);
  margin: 0;
  font-style: italic;
  max-width: 480px;
}

/* Documento spreadsheet */
.psheet-doc {
  background: #fff;
  border: 1px solid var(--line, rgba(10,10,10,0.08));
  border-radius: 18px;
  width: 100%;
  text-align: left;
  overflow: hidden;
  box-shadow: 0 10px 40px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.03);
  font-feature-settings: "tnum", "lnum";
}

.psheet-doc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: var(--bg-2, #f7f7f8);
  border-bottom: 1px solid var(--line, rgba(10,10,10,0.08));
}
.psheet-doc-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--ink, #0a0a0a);
  letter-spacing: 0.01em;
}
.psheet-doc-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8B0000;
  flex-shrink: 0;
}
.psheet-doc-tag {
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-faint, #9b9b9b);
  background: rgba(0,0,0,0.04);
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
}

/* Section blocks (INGRESOS / EGRESOS) */
.psheet-section {
  padding: 1.25rem 1.25rem 1rem;
  border-bottom: 1px solid var(--line, rgba(10,10,10,0.06));
}
.psheet-section:last-of-type { border-bottom: none; }

.psheet-section-head {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px dashed rgba(0,0,0,0.1);
}
.psheet-section-num {
  font-size: 0.7rem;
  font-weight: 800;
  color: var(--ink-faint, #9b9b9b);
  letter-spacing: 0.05em;
  font-variant-numeric: tabular-nums;
}
.psheet-section-title {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink, #0a0a0a);
}

.psheet-rows {
  display: flex;
  flex-direction: column;
}
.psheet-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.45rem 0;
  font-size: 0.88rem;
  border-bottom: 1px dotted rgba(0,0,0,0.06);
}
.psheet-row:last-child { border-bottom: none; }
.psheet-row-label {
  color: var(--ink-soft, #2a2a2a);
  font-weight: 500;
  flex: 1;
}
.psheet-row-val {
  color: var(--ink, #0a0a0a);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
  flex-shrink: 0;
}
.psheet-val--neg { color: #8B0000; }
.psheet-val--neg::before { content: "−"; opacity: 0.7; margin-right: 1px; }

.psheet-row--subtotal {
  margin-top: 0.4rem;
  padding-top: 0.7rem;
  border-top: 1.5px solid rgba(0,0,0,0.15);
  border-bottom: none !important;
  font-weight: 700;
}
.psheet-row--subtotal .psheet-row-label { font-weight: 700; color: var(--ink, #0a0a0a); }
.psheet-row--subtotal .psheet-row-val { font-size: 0.95rem; }

/* TOTAL FINAL */
.psheet-total {
  padding: 1.5rem 1.25rem;
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.06), rgba(22, 163, 74, 0.1));
  border-top: 3px double rgba(22, 163, 74, 0.4);
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.psheet-total-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
}
.psheet-total-label {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #16a34a;
}
.psheet-total-formula {
  font-size: 0.72rem;
  color: var(--ink-mute, #5a5d66);
  font-variant-numeric: tabular-nums;
  font-style: italic;
}
.psheet-total-val {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.4rem;
}
.psheet-total-num {
  font-size: clamp(2.2rem, 6vw, 3.2rem);
  font-weight: 900;
  background: linear-gradient(135deg, #16a34a, #22c55e);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.025em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.psheet-total-currency {
  font-size: 0.95rem;
  font-weight: 700;
  color: #16a34a;
  letter-spacing: 0.05em;
}
.psheet-total-nota {
  font-size: 0.78rem;
  color: var(--ink-mute, #5a5d66);
  margin: 0.5rem 0 0;
  line-height: 1.45;
  font-style: italic;
}
.psheet-total-nota strong { color: #16a34a; font-weight: 700; font-style: normal; }

/* CTA */
.psheet-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #fff;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  border: none;
  padding: 1rem 2rem;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 8px 24px rgba(139,0,0,0.25), 0 3px 10px rgba(139,0,0,0.15);
  margin-top: 0.5rem;
}
.psheet-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(139,0,0,0.35), 0 5px 14px rgba(139,0,0,0.2);
}

.psheet-link {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink-mute, #5a5d66);
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(10,10,10,0.2);
  transition: color 0.18s, text-decoration-color 0.18s;
}
.psheet-link:hover { color: #8B0000; }

.psheet-deadline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: var(--ink-mute, #5a5d66);
  font-weight: 500;
  margin: 0;
  text-align: center;
}
.psheet-deadline strong { color: var(--ink, #0a0a0a); font-weight: 700; }
.psheet-deadline svg { opacity: 0.55; color: #8B0000; }

@media (max-width: 640px) {
  .precio--sheet { padding: 3.5rem 0 4rem; }
  .psheet-doc-header { flex-direction: column; align-items: flex-start; gap: 0.4rem; padding: 0.85rem 1rem; }
  .psheet-section { padding: 1rem 1rem 0.85rem; }
  .psheet-total { padding: 1.25rem 1rem; }
  .psheet-total-head { flex-direction: column; gap: 0.2rem; align-items: flex-start; }
  .psheet-row-label { font-size: 0.84rem; }
  .psheet-cta { width: 100%; padding: 0.95rem 1.25rem; }
}

/* ═══════════════════════════════════════════════════════════════
   PRECIO — SOBRE CERRADO / REVEAL INTERACTIVO (Opción 14)
   ═══════════════════════════════════════════════════════════════ */
.precio--sobre {
  background: radial-gradient(ellipse at top, #8B0000 0%, #5a0000 70%, #3a0000 100%);
  padding: 4.5rem 0 5rem;
  position: relative;
  overflow: hidden;
}
.precio--sobre::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(255,255,255,0.05) 0%, transparent 70%);
  pointer-events: none;
}
.psob-wrap {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.psob-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  padding: 0.35rem 0.9rem;
  background: rgba(255,255,255,0.1);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.15);
}
.psob-title {
  font-size: clamp(1.9rem, 5vw, 3rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0;
}

/* Contenedor que maneja el cambio entre cerrado y abierto */
.psob-container {
  position: relative;
  width: 100%;
  max-width: 480px;
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* === Estado: SOBRE CERRADO === */
.psob-envelope {
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  padding: 1rem;
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0.4s;
  opacity: 1;
  transform: scale(1);
  visibility: visible;
}
.psob-envelope:hover .psob-env {
  transform: translateY(-4px) rotate(-1.5deg);
}
.psob-envelope:hover .psob-env-flap {
  transform: rotateX(15deg);
}
.psob-envelope:focus-visible {
  outline: 2px solid #fcd34d;
  outline-offset: 6px;
  border-radius: 12px;
}

/* Envelope visual */
.psob-env {
  position: relative;
  width: 220px;
  height: 150px;
  transition: transform 0.4s ease;
  transform-style: preserve-3d;
}
.psob-env-body {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #fef9e7 0%, #fde68a 100%);
  border-radius: 6px;
  box-shadow:
    0 12px 35px rgba(0,0,0,0.35),
    0 4px 12px rgba(0,0,0,0.2),
    inset 0 -3px 0 rgba(0,0,0,0.05);
}
.psob-env-body::before,
.psob-env-body::after {
  content: "";
  position: absolute;
  background: rgba(139, 0, 0, 0.06);
}
/* Diagonal seams del sobre */
.psob-env-body::before {
  top: 0; left: 0;
  width: 50%; height: 100%;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
  background: linear-gradient(135deg, rgba(0,0,0,0.04), transparent);
}
.psob-env-body::after {
  top: 0; right: 0;
  width: 50%; height: 100%;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
  background: linear-gradient(225deg, rgba(0,0,0,0.04), transparent);
}
/* Flap superior */
.psob-env-flap {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 95px;
  background: linear-gradient(135deg, #fcd34d 0%, #f59e0b 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: top center;
  transition: transform 0.5s ease;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  z-index: 2;
}
/* Sello rojo */
.psob-env-seal {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  background: radial-gradient(circle, #cc1f1a 0%, #8B0000 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fde68a;
  box-shadow:
    0 4px 12px rgba(139,0,0,0.5),
    inset 0 -2px 0 rgba(0,0,0,0.2),
    inset 0 2px 0 rgba(255,255,255,0.15);
  z-index: 3;
  transition: transform 0.3s ease;
}
.psob-envelope:hover .psob-env-seal {
  transform: translate(-50%, -50%) scale(1.05) rotate(8deg);
}

.psob-cta-hint {
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.01em;
}
.psob-cta-arrow {
  font-size: 1.4rem;
  color: #fcd34d;
  animation: psobBounce 1.8s ease-in-out infinite;
  margin-top: -0.5rem;
}
@keyframes psobBounce {
  0%, 100% { transform: translateY(0); opacity: 0.7; }
  50%      { transform: translateY(8px); opacity: 1; }
}

/* === Estado: REVELADO (precio) === */
.psob-revealed {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  opacity: 0;
  transform: scale(0.85);
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.5s ease 0.3s, transform 0.5s ease 0.3s, visibility 0s linear 0.8s;
}

/* === Cuando se abre el sobre === */
.psob-container.is-open .psob-envelope {
  opacity: 0;
  transform: scale(0.7) translateY(-30px);
  visibility: hidden;
  pointer-events: none;
}
.psob-container.is-open .psob-env-flap {
  transform: rotateX(180deg);
}
.psob-container.is-open .psob-revealed {
  opacity: 1;
  transform: scale(1);
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.5s ease 0.4s, transform 0.5s ease 0.4s, visibility 0s linear 0s;
}

.psob-revealed-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #fcd34d;
  padding: 0.35rem 0.9rem;
  background: rgba(252, 211, 77, 0.12);
  border-radius: 999px;
  border: 1px solid rgba(252, 211, 77, 0.3);
}
.psob-price-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  margin: 0.5rem 0;
}
.psob-tachado {
  font-size: 1rem;
  color: rgba(255,255,255,0.5);
  text-decoration: line-through;
  font-weight: 500;
  letter-spacing: 0.02em;
}
.psob-amount-row {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  line-height: 1;
}
.psob-amount {
  font-size: clamp(2.8rem, 9vw, 4.5rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.035em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 4px 30px rgba(255,255,255,0.15);
}
.psob-currency {
  font-size: clamp(0.9rem, 2vw, 1.15rem);
  font-weight: 700;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.05em;
}
.psob-savings {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.75);
  font-weight: 500;
  margin-top: 0.4rem;
  line-height: 1.4;
  max-width: 360px;
}

.psob-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--ie-accent-dark, #6B0000);
  background: linear-gradient(135deg, #fff, #fef3c7);
  border: none;
  padding: 1.1rem 2.25rem;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 10px 35px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.15);
  margin-top: 0.5rem;
}
.psob-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 45px rgba(0,0,0,0.4), 0 6px 18px rgba(0,0,0,0.2);
}

.psob-link {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(255,255,255,0.75);
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(255,255,255,0.3);
  transition: color 0.18s, text-decoration-color 0.18s;
}
.psob-link:hover {
  color: #fff;
  text-decoration-color: rgba(255,255,255,0.7);
}

.psob-deadline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.6);
  font-weight: 500;
  margin: 0.25rem 0 0;
  text-align: center;
}
.psob-deadline strong { color: #fff; font-weight: 700; }
.psob-deadline svg { opacity: 0.6; }

@media (max-width: 640px) {
  .precio--sobre { padding: 3.5rem 0 4rem; }
  .psob-container { min-height: 380px; }
  .psob-cta-btn { width: 100%; padding: 1rem 1.5rem; }
}

/* ═══════════════════════════════════════════════════════════════
   PRECIO — CERTIFICATE / DIPLOMA HORIZONTAL (Opción C)
   ═══════════════════════════════════════════════════════════════ */
.precio--cert {
  background: radial-gradient(ellipse at top, #8B0000 0%, #5a0000 70%, #3a0000 100%);
  padding: 4.5rem 0 5rem;
  position: relative;
  overflow: hidden;
}
.precio--cert::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(255,255,255,0.05) 0%, transparent 70%);
  pointer-events: none;
}

/* Frame estilo diploma */
.pcert-frame {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  background: linear-gradient(135deg, #fefdf8 0%, #fef9e7 100%);
  border-radius: 12px;
  padding: 3.5rem 3rem 2.5rem;
  box-shadow:
    0 30px 80px rgba(0,0,0,0.4),
    0 12px 30px rgba(0,0,0,0.25),
    0 0 0 1px rgba(252, 211, 77, 0.4),
    inset 0 0 0 8px transparent,
    inset 0 0 0 9px rgba(252, 211, 77, 0.3);
}
/* Doble borde interno */
.pcert-frame::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1.5px solid rgba(139, 0, 0, 0.25);
  border-radius: 6px;
  pointer-events: none;
}

/* Esquinas decorativas (ornamentos) */
.pcert-corner {
  position: absolute;
  width: 38px;
  height: 38px;
  pointer-events: none;
  z-index: 2;
}
.pcert-corner::before,
.pcert-corner::after {
  content: "";
  position: absolute;
  background: #cc1f1a;
}
.pcert-corner::before {
  width: 28px;
  height: 1.5px;
  top: 50%;
}
.pcert-corner::after {
  width: 1.5px;
  height: 28px;
  left: 50%;
}
.pcert-corner--tl { top: 20px; left: 20px; }
.pcert-corner--tl::before { left: 0; }
.pcert-corner--tl::after { top: 0; }
.pcert-corner--tr { top: 20px; right: 20px; }
.pcert-corner--tr::before { right: 0; }
.pcert-corner--tr::after { top: 0; }
.pcert-corner--bl { bottom: 20px; left: 20px; }
.pcert-corner--bl::before { left: 0; }
.pcert-corner--bl::after { bottom: 0; }
.pcert-corner--br { bottom: 20px; right: 20px; }
.pcert-corner--br::before { right: 0; }
.pcert-corner--br::after { bottom: 0; }

/* Badge superior centrado */
.pcert-top-badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #fefdf8;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  padding: 0.45rem 1.4rem;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 6px 18px rgba(139,0,0,0.4);
  z-index: 3;
}

/* Grid layout */
.pcert-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

/* COLUMNA IZQUIERDA — Sello */
.pcert-seal-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.pcert-seal {
  position: relative;
  display: inline-flex;
  color: #8B0000;
  filter: drop-shadow(0 8px 24px rgba(139, 0, 0, 0.25));
}
/* Cintas tipo "ribbon" decorativas */
.pcert-ribbon {
  position: absolute;
  bottom: -8px;
  width: 22px;
  height: 36px;
  background: linear-gradient(180deg, #cc1f1a 0%, #8B0000 100%);
  clip-path: polygon(0 0, 100% 0, 100% 75%, 50% 100%, 0 75%);
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
}
.pcert-ribbon--l { left: calc(50% - 38px); transform: rotate(-12deg); }
.pcert-ribbon--r { right: calc(50% - 38px); transform: rotate(12deg); }
.pcert-seal-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-mute, #5a5d66);
  margin-top: 1.5rem;
  font-style: italic;
}

/* COLUMNA DERECHA — Contenido */
.pcert-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  text-align: center;
}

.pcert-title {
  font-size: clamp(1.7rem, 4.5vw, 2.6rem);
  font-weight: 900;
  color: var(--ink, #0a0a0a);
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0;
}
.pcert-promesa {
  font-size: clamp(0.92rem, 2vw, 1.05rem);
  color: var(--ink-soft, #2a2a2a);
  line-height: 1.6;
  font-weight: 500;
  margin: 0;
  max-width: 500px;
  font-style: italic;
}
.pcert-promesa strong { color: var(--ink, #0a0a0a); font-weight: 700; font-style: normal; }

/* Caja de promesa */
.pcert-promise {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  padding: 1.5rem 1.5rem;
  background: linear-gradient(135deg, rgba(139,0,0,0.06), rgba(204,31,26,0.1));
  border: 2px solid rgba(139, 0, 0, 0.35);
  border-radius: 14px;
  position: relative;
  width: 100%;
  max-width: 520px;
}
.pcert-promise::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed rgba(139, 0, 0, 0.3);
  border-radius: 10px;
  pointer-events: none;
}
.pcert-promise-eye {
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #8B0000;
}
.pcert-promise-text {
  font-size: clamp(1.4rem, 4.5vw, 2.1rem);
  font-weight: 900;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-transform: uppercase;
}
.pcert-promise-sub {
  font-size: 0.76rem;
  color: var(--ink-mute, #5a5d66);
  font-weight: 500;
  margin-top: 0.25rem;
}

/* Stats */
.pcert-stats {
  display: inline-flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  justify-content: center;
}
.pcert-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 0.45rem;
  font-size: 0.95rem;
}
.pcert-stat-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink-mute, #5a5d66);
  letter-spacing: 0.02em;
}
.pcert-stat-num {
  font-size: clamp(1.05rem, 2.5vw, 1.3rem);
  font-weight: 900;
  color: var(--ink, #0a0a0a);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
.pcert-stat--zero .pcert-stat-num {
  color: #16a34a;
}
.pcert-stat-sep {
  color: var(--ink-faint, #9b9b9b);
  font-weight: 700;
  font-size: 1.1rem;
}

/* CTA */
.pcert-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #fff;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  border: none;
  padding: 1.1rem 2.25rem;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 10px 28px rgba(139,0,0,0.3), 0 4px 12px rgba(139,0,0,0.18);
  margin-top: 0.5rem;
}
.pcert-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(139,0,0,0.4), 0 6px 18px rgba(139,0,0,0.25);
}

.pcert-link {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink-mute, #5a5d66);
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(10,10,10,0.2);
  transition: color 0.18s, text-decoration-color 0.18s;
}
.pcert-link:hover { color: #8B0000; }

.pcert-deadline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.76rem;
  color: var(--ink-mute, #5a5d66);
  font-weight: 500;
  margin: 0;
  text-align: center;
  font-style: italic;
}
.pcert-deadline strong { color: var(--ink, #0a0a0a); font-weight: 700; font-style: normal; }
.pcert-deadline svg { opacity: 0.55; color: #8B0000; }

/* Firma decorativa al pie */
.pcert-signature {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px dashed rgba(139, 0, 0, 0.2);
}
.pcert-signature-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(139, 0, 0, 0.3), transparent);
}
.pcert-signature-text {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8B0000;
  font-style: italic;
}

/* Desktop: layout horizontal seal + content */
@media (min-width: 900px) {
  .pcert-frame {
    padding: 4rem 4rem 2.5rem;
  }
  .pcert-grid {
    grid-template-columns: 220px 1fr;
    gap: 3.5rem;
    align-items: center;
  }
  .pcert-content {
    align-items: flex-start;
    text-align: left;
  }
  .pcert-title { text-align: left; }
  .pcert-promesa { text-align: left; max-width: 100%; }
  .pcert-promise { align-items: flex-start; text-align: left; }
  .pcert-stats { justify-content: flex-start; }
}

@media (max-width: 640px) {
  .precio--cert { padding: 3.5rem 0 4rem; }
  .pcert-frame { padding: 3rem 1.5rem 2rem; }
  .pcert-corner { width: 28px; height: 28px; top: 12px !important; bottom: 12px !important; left: 12px !important; right: 12px !important; }
  .pcert-corner--tl { top: 12px; left: 12px; right: auto; bottom: auto; }
  .pcert-corner--tr { top: 12px; right: 12px; left: auto; bottom: auto; }
  .pcert-corner--bl { bottom: 12px; left: 12px; right: auto; top: auto; }
  .pcert-corner--br { bottom: 12px; right: 12px; left: auto; top: auto; }
  .pcert-corner::before { width: 20px; }
  .pcert-corner::after { height: 20px; }
  .pcert-seal svg { width: 120px; height: 120px; }
  .pcert-promise { padding: 1.2rem 1rem; }
  .pcert-cta { width: 100%; padding: 1rem 1.5rem; }
}

/* ═══════════════════════════════════════════════════════════════
   PRECIO — GARANTÍA COMO CENTRO (Opción 4)
   ═══════════════════════════════════════════════════════════════ */
.precio--garantia {
  background: radial-gradient(ellipse at top, #8B0000 0%, #5a0000 70%, #3a0000 100%);
  padding: 4.5rem 0 5rem;
  position: relative;
  overflow: hidden;
}
.precio--garantia::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(255,255,255,0.05) 0%, transparent 70%);
  pointer-events: none;
}
.pgar-wrap {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

/* Seal/medallón */
.pgar-seal {
  display: inline-flex;
  color: #fcd34d;
  margin-bottom: -0.5rem;
  filter: drop-shadow(0 4px 20px rgba(252, 211, 77, 0.4));
}

.pgar-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #fcd34d;
  padding: 0.35rem 1rem;
  background: rgba(252, 211, 77, 0.12);
  border-radius: 999px;
  border: 1px solid rgba(252, 211, 77, 0.3);
}
.pgar-title {
  font-size: clamp(1.9rem, 5vw, 3rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0;
}

.pgar-promesa {
  font-size: clamp(0.95rem, 2.2vw, 1.1rem);
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
  font-weight: 500;
  margin: 0;
  max-width: 540px;
}
.pgar-promesa strong { color: #fff; font-weight: 700; }

/* Caja gigante de garantía */
.pgar-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 2rem 1.5rem;
  background: linear-gradient(135deg, #fff 0%, #fef9e7 100%);
  border-radius: 24px;
  border: 3px solid #fcd34d;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3), 0 0 40px rgba(252, 211, 77, 0.25);
  position: relative;
  width: 100%;
  max-width: 600px;
}
.pgar-box::before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px dashed rgba(252, 211, 77, 0.5);
  border-radius: 18px;
  pointer-events: none;
}
.pgar-box-eyebrow {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #8B0000;
  margin-bottom: 0.25rem;
}
.pgar-box-monto {
  font-size: clamp(1.5rem, 5vw, 2.4rem);
  font-weight: 900;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-transform: uppercase;
  text-align: center;
}
.pgar-box-sub {
  font-size: clamp(0.6rem, 2.2vw, 0.78rem);
  color: var(--ink-mute, #5a5d66);
  font-weight: 500;
  margin-top: 0.3rem;
  white-space: nowrap;
}
.pgar-box-cert {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.85rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 700;
  color: #8B0000;
  background: transparent;
  border: 1.5px solid rgba(139, 0, 0, 0.25);
  padding: 0.5rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, transform 0.18s;
}
.pgar-box-cert:hover {
  background: rgba(139, 0, 0, 0.06);
  border-color: rgba(139, 0, 0, 0.55);
  transform: translateY(-1px);
}
.pgar-box-cert:active { transform: translateY(0); }

/* ── Modal Certificado de Garantía ── */
.modal-garantia-box {
  max-width: 560px;
  width: 100%;
}
.mg-seal {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0 auto 0.75rem;
  color: #8B0000;
  filter: drop-shadow(0 4px 16px rgba(139, 0, 0, 0.2));
}
.mg-titulo {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ink, #0a0a0a);
  margin: 0 0 0.2rem;
  text-align: center;
  letter-spacing: -0.01em;
}
.mg-sub {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8B0000;
  text-align: center;
  margin: 0 0 1.4rem;
}
.mg-promesa {
  font-size: 0.92rem;
  color: var(--ink-soft, #2a2a2a);
  line-height: 1.65;
  margin: 0 0 1.5rem;
  padding: 1.1rem 1.2rem;
  background: linear-gradient(135deg, rgba(139,0,0,0.04), rgba(204,31,26,0.07));
  border-left: 3px solid #cc1f1a;
  border-radius: 8px;
}
.mg-promesa strong {
  color: var(--ink, #0a0a0a);
  font-weight: 700;
}
.mg-divider {
  height: 1px;
  background: var(--line, rgba(10,10,10,0.08));
  margin: 1.25rem 0;
}
.mg-section { margin-bottom: 1.25rem; }
.mg-section-title {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #8B0000;
  margin: 0 0 0.85rem;
}
.mg-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.mg-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--ink-soft, #2a2a2a);
}
.mg-list-num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  border-radius: 50%;
  margin-top: 1px;
}
.mg-list-text strong { color: var(--ink, #0a0a0a); font-weight: 700; }
.mg-link {
  color: #8B0000;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(139, 0, 0, 0.3);
  transition: text-decoration-color 0.18s;
}
.mg-link:hover { text-decoration-color: rgba(139, 0, 0, 0.8); }
.mg-footer {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink-faint, #9b9b9b);
  text-align: center;
  font-style: italic;
  margin: 1.5rem 0 0;
  padding-top: 1rem;
  border-top: 1px dashed rgba(139, 0, 0, 0.2);
}

/* Stats: inversión vs riesgo — grid 2 columnas iguales con divisor central */
.pgar-stats {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  align-items: stretch;
  width: 100%;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.pgar-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.25rem;
  /* Cada stat llena su columna; el contenido se centra adentro */
}
.pgar-stat-divider {
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(255,255,255,0.25), transparent);
}
.pgar-stat-label {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}
.pgar-stat-num {
  font-size: clamp(1.5rem, 4.5vw, 2rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.pgar-stat--zero .pgar-stat-num {
  background: linear-gradient(135deg, #22c55e, #4ade80);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pgar-stat-sub {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.55);
  margin-top: 0.2rem;
}

/* CTA */
.pgar-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: var(--ie-accent-dark, #6B0000);
  background: linear-gradient(135deg, #fff, #fef3c7);
  border: none;
  padding: 1.1rem 2.25rem;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 10px 35px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.15);
  margin-top: 0.5rem;
}
.pgar-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 45px rgba(0,0,0,0.4), 0 6px 18px rgba(0,0,0,0.2);
}

.pgar-link {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255,255,255,0.75);
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(255,255,255,0.3);
  transition: color 0.18s, text-decoration-color 0.18s;
}
.pgar-link:hover {
  color: #fff;
  text-decoration-color: rgba(255,255,255,0.7);
}

.pgar-deadline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.6);
  font-weight: 500;
  margin: 0;
  text-align: center;
}
.pgar-deadline strong { color: #fff; font-weight: 700; }
.pgar-deadline svg { opacity: 0.6; }

@media (max-width: 640px) {
  .precio--garantia { padding: 3.5rem 0 4rem; }
  .pgar-box { padding: 1.5rem 1.1rem; }
  .pgar-stats { max-width: 100%; }
  .pgar-stat-label { font-size: 0.6rem; }
  .pgar-stat-num { font-size: clamp(1.2rem, 5vw, 1.6rem); }
  .pgar-stat-sub { font-size: 0.62rem; }
  .pgar-box-sub { font-size: 0.78rem; }
  .pgar-cta { width: 100%; padding: 1rem 1.5rem; }
  .pgar-br { display: none; }
}

/* ── Desktop: layout horizontal 2 columnas ── */
@media (min-width: 900px) {
  .pgar-wrap {
    max-width: 1000px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "seal     box"
      "eyebrow  box"
      "title    box"
      "promesa  stats"
      "cta      cta"
      "link     link"
      "deadline deadline";
    column-gap: 3.5rem;
    row-gap: 1rem;
    align-items: center;
    text-align: left;
  }
  .pgar-seal {
    grid-area: seal;
    justify-self: start;
    margin-bottom: 0;
    margin-left: -3rem;
  }
  .pgar-eyebrow {
    grid-area: eyebrow;
    justify-self: start;
    margin: 0 0 0 -3rem;
  }
  .pgar-title {
    grid-area: title;
    text-align: left;
    margin: 0 0 0 -3rem;
  }
  .pgar-promesa {
    grid-area: promesa;
    text-align: left;
    margin: 0 0 0 -3rem;
    max-width: 100%;
  }
  .pgar-box {
    grid-area: box;
    width: 100%;
    max-width: 100%;
    align-self: center;
    margin: 0 0 0 3rem;
  }
  .pgar-stats {
    grid-area: stats;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0 3rem;
  }
  .pgar-cta {
    grid-area: cta;
    justify-self: center;
    margin-top: 1.5rem;
  }
  .pgar-link {
    grid-area: link;
    justify-self: center;
  }
  .pgar-deadline {
    grid-area: deadline;
    justify-self: center;
  }
}

/* ═══════════════════════════════════════════════════════════════
   PRECIO — ANTES / DESPUÉS VISUAL (Opción 2)
   ═══════════════════════════════════════════════════════════════ */
.precio--vs {
  background: radial-gradient(ellipse at top, #8B0000 0%, #5a0000 70%, #3a0000 100%);
  padding: 4.5rem 0 5rem;
  position: relative;
  overflow: hidden;
}
.precio--vs::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(255,255,255,0.05) 0%, transparent 70%);
  pointer-events: none;
}
.pvs-wrap {
  position: relative;
  z-index: 1;
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}

.pvs-header { margin-bottom: 2.5rem; }
.pvs-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 0.85rem;
  padding: 0.35rem 0.9rem;
  background: rgba(255,255,255,0.1);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.15);
}
.pvs-title {
  font-size: clamp(1.8rem, 5vw, 3rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0;
}

/* Split layout */
.pvs-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 2.5rem;
}

.pvs-col {
  padding: 2rem 1.5rem;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  position: relative;
}
.pvs-col--antes {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.55);
  filter: grayscale(0.4);
}
.pvs-col--despues {
  background: linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.06));
  border: 1.5px solid rgba(255,255,255,0.25);
  color: #fff;
  box-shadow: 0 20px 50px rgba(0,0,0,0.25);
}

.pvs-col-label {
  display: inline-block;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  margin-bottom: 0.5rem;
}
.pvs-col--antes .pvs-col-label {
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.6);
}
.pvs-col--despues .pvs-col-label {
  background: linear-gradient(135deg, #fff, #fcd34d);
  color: #5a4400;
}

.pvs-num {
  font-size: clamp(2.5rem, 8vw, 4rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.pvs-num--antes { color: rgba(255,255,255,0.5); }
.pvs-num--despues {
  background: linear-gradient(135deg, #ffffff 0%, #fde68a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 4px 20px rgba(255,255,255,0.15);
}
.pvs-num-sub {
  font-size: 0.85rem;
  font-weight: 500;
  opacity: 0.7;
  margin-bottom: 1rem;
}

.pvs-list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  text-align: left;
}
.pvs-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.88rem;
  line-height: 1.4;
}
.pvs-icon-x, .pvs-icon-check {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 700;
  margin-top: 1px;
}
.pvs-icon-x {
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.45);
}
.pvs-icon-check {
  background: linear-gradient(135deg, #22c55e, #16a34a);
  color: #fff;
}

/* Flecha/puente entre columnas */
.pvs-bridge {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.55);
  padding: 0.5rem 0;
  transform: rotate(90deg);
}
@keyframes pvsArrowPulse {
  0%, 100% { transform: rotate(90deg) translateX(0); opacity: 0.55; }
  50%      { transform: rotate(90deg) translateX(4px); opacity: 1; }
}
.pvs-bridge { animation: pvsArrowPulse 2s ease-in-out infinite; }

/* El puente: precio */
.pvs-puente {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin: 0 auto 2rem;
  max-width: 700px;
}

/* ═══════════════════════════════════════════════════════════════════
   SECCIÓN PRECIO — 3 fichas escalonadas: Semestral · Semanal (hero) · Anual
   ═══════════════════════════════════════════════════════════════════ */
.precio--3cards {
  padding: 5.5rem 0 4.5rem;
  background: #fff;
  position: relative;
  overflow: hidden;
}
.precio--3cards::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 15% 0%, rgba(204,31,26,0.04) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 100%, rgba(204,31,26,0.03) 0%, transparent 50%);
  pointer-events: none;
}
.precio--3cards .section-inner { position: relative; }

/* Header */
.p3-header { text-align: center; max-width: 620px; margin: 0 auto 3.5rem; padding: 0 1rem; }
.p3-eyebrow {
  display: inline-block;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ie-accent, #cc1f1a);
  padding: 0.45rem 1.05rem;
  border: 1px solid rgba(204,31,26,0.25);
  border-radius: 100px;
  margin-bottom: 1.25rem;
  background: rgba(204,31,26,0.04);
}
.p3-title {
  font-family: var(--display, var(--sans));
  font-size: clamp(1.75rem, 4vw, 2.6rem);
  font-weight: 800; line-height: 1.18; color: #1a1a1a;
  margin: 0 0 0.85rem; letter-spacing: -0.012em;
}
.p3-title em { font-style: italic; font-weight: 700; color: var(--ie-accent, #cc1f1a); }
.p3-sub { font-size: 1rem; color: rgba(0,0,0,0.6); line-height: 1.55; margin: 0; }

/* Grid escalonado */
.p3-grid {
  display: grid;
  grid-template-columns: 1fr 1.25fr 1fr;
  align-items: end;
  gap: 1rem;
  max-width: 1000px;
  margin: 0 auto 3rem;
  padding: 0 1.5rem;
}

/* Card base — laterales blancas con borde sutil */
.p3-card {
  position: relative;
  display: flex; flex-direction: column;
  background: #fff;
  border: 1.5px solid rgba(0,0,0,0.08);
  border-radius: 20px;
  padding: 2rem 1.5rem;
  text-align: center;
  box-shadow: 0 10px 28px -14px rgba(204,31,26,0.18);
}

/* Card lateral (Semestral y Anual) */
.p3-card--side .p3-card-body { padding: 0.5rem 0; }

/* Card HERO (Semanal) — ROJO BRAND con texto blanco invertido */
.p3-card--hero {
  background: linear-gradient(155deg, var(--ie-accent, #cc1f1a) 0%, #a30c08 100%);
  border: 1.5px solid var(--ie-accent, #cc1f1a);
  padding: 3rem 1.85rem 2.25rem;
  box-shadow:
    0 28px 70px -16px rgba(204,31,26,0.55),
    0 0 0 6px rgba(204,31,26,0.06),
    inset 0 1px 0 rgba(255,255,255,0.15);
  transform: translateY(-1.2rem);
  z-index: 2;
  overflow: hidden;
}
.p3-card--hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top, rgba(255,255,255,0.18) 0%, transparent 60%);
  pointer-events: none;
}
.p3-card--hero > * { position: relative; z-index: 1; }

/* Badge "El más popular" — blanco sobre el card rojo */
.p3-card-badge {
  position: absolute;
  top: -0.8rem; left: 50%;
  transform: translateX(-50%);
  background: #fff;
  color: var(--ie-accent, #cc1f1a);
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase;
  padding: 0.5rem 1.1rem;
  border-radius: 100px;
  white-space: nowrap;
  box-shadow: 0 10px 22px rgba(204,31,26,0.35), 0 0 0 1px rgba(204,31,26,0.1);
  z-index: 3;
}

/* Pill con label de plan */
.p3-card-header { margin-bottom: 1.25rem; }
.p3-card-pill {
  display: inline-block;
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(0,0,0,0.55);
  padding: 0.35rem 0.85rem;
  border-radius: 100px;
  background: rgba(0,0,0,0.06);
}
.p3-card--hero .p3-card-pill {
  background: rgba(255,255,255,0.2);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.3);
}

/* Body */
.p3-card-body { flex: 1; display: flex; flex-direction: column; align-items: center; margin-bottom: 1.5rem; }
.p3-card-label {
  font-size: 0.78rem; font-weight: 500;
  color: rgba(0,0,0,0.5);
  margin-bottom: 0.85rem;
  letter-spacing: 0.04em;
}

/* Precio (default — cards laterales en negro) */
.p3-card-price {
  display: flex; align-items: baseline; justify-content: center; gap: 0.08rem;
  color: #1a1a1a; font-weight: 800;
  margin-bottom: 0.5rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.025em;
  line-height: 1;
}
.p3-card-currency { font-size: 1.35rem; opacity: 0.65; margin-right: 0.12rem; align-self: flex-start; margin-top: 0.3rem; }
.p3-card-amount { font-size: 2.4rem; }
.p3-card-unit { font-size: 0.95rem; opacity: 0.55; font-weight: 600; margin-left: 0.2rem; }

.p3-card--hero .p3-card-currency { font-size: 1.5rem; color: rgba(255,255,255,0.85); opacity: 1; }
.p3-card--hero .p3-card-amount { font-size: 3.6rem; color: #fff; }
.p3-card--hero .p3-card-unit { font-size: 1rem; color: rgba(255,255,255,0.8); }
.p3-card--hero .p3-card-label { color: rgba(255,255,255,0.75); }

.p3-card-sub {
  font-size: 0.78rem; color: rgba(0,0,0,0.45);
  margin-bottom: 0.85rem;
  letter-spacing: 0.02em;
}

/* Mini lista en cards laterales */
.p3-card-mini {
  list-style: none; padding: 0; margin: 0;
  font-size: 0.8rem; color: rgba(0,0,0,0.6);
  line-height: 1.7;
}
.p3-card-mini li { padding: 0.15rem 0; }

/* Banner regalo (12 sem gratis) — blanco translúcido sobre rojo */
.p3-card-gift {
  margin: 0.6rem 0 1.25rem;
  padding: 0.85rem 1.25rem;
  background: rgba(255,255,255,0.15);
  border: 1.5px dashed rgba(255,255,255,0.55);
  border-radius: 14px;
  font-size: 0.92rem; font-weight: 800;
  color: #fff;
  letter-spacing: 0.08em;
  text-align: center;
  width: 100%;
}
.p3-card-gift small {
  display: block;
  font-size: 0.72rem; font-weight: 500;
  color: rgba(255,255,255,0.78);
  margin-top: 0.3rem;
  letter-spacing: 0.04em;
}

/* Lista de beneficios en hero — texto blanco sobre rojo */
.p3-card-benefits {
  list-style: none; padding: 0; margin: 0;
  text-align: left; width: 100%;
}
.p3-card-benefits li {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.95);
  padding: 0.35rem 0;
  font-weight: 500;
  position: relative;
  padding-left: 1.4rem;
}
.p3-card-benefits li::before {
  content: "✓";
  position: absolute;
  left: 0; top: 0.35rem;
  color: #fff;
  font-weight: 900;
  font-size: 0.95rem;
}
.p3-card-benefits li strong { color: #fff; font-weight: 800; }

/* CTA */
.p3-card-foot { margin-top: auto; }
.p3-card-cta {
  display: block; width: 100%;
  padding: 0.95rem 1.5rem;
  border-radius: 12px;
  font-family: var(--sans);
  font-size: 0.95rem; font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: all 0.25s var(--ease-out, ease-out);
  border: none;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
}
.p3-card-cta--ghost {
  background: #fff;
  color: var(--ie-accent, #cc1f1a);
  border: 1.5px solid rgba(204,31,26,0.4);
}
.p3-card-cta--ghost:hover {
  background: rgba(204,31,26,0.05);
  border-color: var(--ie-accent, #cc1f1a);
}
.p3-card-cta--primary {
  background: #fff;
  color: var(--ie-accent, #cc1f1a);
  box-shadow: 0 12px 28px -10px rgba(0,0,0,0.35);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 800;
}
.p3-card-cta--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px -10px rgba(0,0,0,0.45);
  background: #fff8f8;
}

/* Pie con garantía + apartar */
.p3-foot {
  display: flex; align-items: center; justify-content: center;
  gap: 0.7rem; flex-wrap: wrap;
  margin-bottom: 1rem;
}
.p3-foot-link {
  background: none; border: 0; cursor: pointer;
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.4rem 0.55rem;
  font-family: var(--sans);
  font-size: 0.84rem; font-weight: 500;
  color: rgba(0,0,0,0.6);
  transition: color 0.2s;
  text-decoration: none;
}
.p3-foot-link--warranty strong { color: var(--ie-accent, #cc1f1a); font-weight: 700; }
.p3-foot-link--warranty svg { color: var(--ie-accent, #cc1f1a); }
.p3-foot-link:not(.p3-foot-link--warranty) { text-decoration: underline; text-underline-offset: 3px; }
.p3-foot-link:hover { color: #1a1a1a; }
.p3-foot-sep { color: rgba(0,0,0,0.25); user-select: none; }

/* Deadline */
.p3-deadline {
  text-align: center;
  margin: 0;
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-size: 0.78rem; font-weight: 500;
  color: rgba(0,0,0,0.5);
  letter-spacing: 0.02em;
  width: 100%; justify-content: center;
}
.p3-deadline strong { color: rgba(0,0,0,0.82); font-weight: 700; }

/* Responsive — mobile: stack vertical, hero arriba */
@media (max-width: 880px) {
  .precio--3cards { padding: 4rem 0 3rem; }
  .p3-grid {
    grid-template-columns: 1fr;
    align-items: stretch;
    max-width: 440px;
    gap: 0.85rem;
  }
  .p3-card--hero {
    transform: none;
    order: -1; /* el hero arriba */
  }
  .p3-foot { flex-direction: column; gap: 0.3rem; }
  .p3-foot-sep { display: none; }
}

/* Legacy: ocultar reglas del rediseño anterior si todavía tienen referencias */
.precio--ladder { padding: 5.5rem 0 4.5rem; }
.pl-wrap {
  max-width: 660px;
  margin: 0 auto;
  text-align: center;
  padding: 0 1.5rem;
}

/* Header */
.pl-header { margin-bottom: 3rem; }
.pl-eyebrow {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  padding: 0.45rem 1.05rem;
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 100px;
  margin-bottom: 1.3rem;
}
.pl-title {
  font-family: var(--display, var(--sans));
  font-size: clamp(1.75rem, 4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.18;
  color: #fff;
  margin: 0;
  letter-spacing: -0.012em;
}
.pl-title em {
  font-style: italic;
  font-weight: 700;
  color: rgba(255,255,255,0.95);
}

/* La escalera */
.pl-ladder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  margin: 0 auto 2.4rem;
}
.pl-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.18rem;
}
.pl-step .pl-amount {
  font-family: var(--sans);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: rgba(255,255,255,0.55);
}
.pl-step .pl-unit {
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
/* Cada escalón crece visualmente conforme la unidad se achica — la disrupción */
.pl-step--total .pl-amount { font-size: 1.4rem; }
.pl-step--month .pl-amount { font-size: 1.85rem; color: rgba(255,255,255,0.7); }
.pl-step--week  .pl-amount { font-size: 2.55rem; color: rgba(255,255,255,0.88); }

.pl-step--day {
  margin-top: 0.75rem;
  padding: 1.6rem 3rem;
  background: #fff;
  border-radius: 18px;
  box-shadow:
    0 24px 60px -12px rgba(0,0,0,0.45),
    0 0 0 6px rgba(255,255,255,0.04),
    inset 0 -3px 0 rgba(0,0,0,0.04);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.pl-step--day::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at top, rgba(204,31,26,0.06) 0%, transparent 70%);
  pointer-events: none;
}
.pl-step--day .pl-amount {
  font-size: clamp(3.4rem, 9vw, 4.8rem);
  color: var(--ie-accent, #cc1f1a);
  font-weight: 900;
  letter-spacing: -0.03em;
}
.pl-step--day .pl-unit {
  font-size: 0.86rem;
  color: rgba(204,31,26,0.85);
  font-weight: 800;
  letter-spacing: 0.14em;
  margin-top: 0.35rem;
}

/* Flecha entre escalones */
.pl-arrow {
  display: block;
  font-size: 1rem;
  line-height: 1;
  color: rgba(255,255,255,0.3);
}

/* Frase ancla */
.pl-anchor {
  margin: 0 auto 2.5rem;
  max-width: 480px;
  font-size: 1.02rem;
  font-weight: 400;
  color: rgba(255,255,255,0.82);
  line-height: 1.55;
}
.pl-anchor strong {
  color: #fff;
  font-weight: 700;
}

/* CTAs duales */
.pl-ctas {
  display: flex;
  gap: 0.85rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 1.75rem;
}
.pl-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1.05rem 1.95rem;
  border-radius: 100px;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: transform 0.25s var(--ease-out, ease-out), box-shadow 0.25s var(--ease-out, ease-out), background 0.25s;
}
.pl-cta--primary {
  background: #fff;
  color: var(--ie-accent, #cc1f1a);
  box-shadow: 0 12px 28px -8px rgba(0,0,0,0.35);
}
.pl-cta--primary svg { stroke: var(--ie-accent, #cc1f1a); }
.pl-cta--primary:hover { transform: translateY(-2px); box-shadow: 0 16px 36px -8px rgba(0,0,0,0.45); }
.pl-cta--secondary {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,0.45);
}
.pl-cta--secondary:hover { background: rgba(255,255,255,0.1); border-color: #fff; }

/* Pie: garantía + opciones */
.pl-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.pl-foot-link {
  background: none;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.55rem;
  font-family: var(--sans);
  font-size: 0.84rem;
  font-weight: 500;
  color: rgba(255,255,255,0.7);
  transition: color 0.2s;
}
.pl-foot-link:hover { color: #fff; }
.pl-foot-link--warranty strong { color: #ffd966; font-weight: 700; }
.pl-foot-link:not(.pl-foot-link--warranty) { text-decoration: underline; text-underline-offset: 3px; }
.pl-foot-sep { color: rgba(255,255,255,0.3); user-select: none; }

/* Deadline */
.pl-deadline {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.02em;
}
.pl-deadline strong {
  color: rgba(255,255,255,0.88);
  font-weight: 700;
}

/* Responsive — mobile */
@media (max-width: 640px) {
  .precio--ladder { padding: 4rem 0 3.5rem; }
  .pl-header { margin-bottom: 2.25rem; }
  .pl-eyebrow { font-size: 0.68rem; }
  .pl-step--total .pl-amount { font-size: 1.2rem; }
  .pl-step--month .pl-amount { font-size: 1.6rem; }
  .pl-step--week  .pl-amount { font-size: 2.15rem; }
  .pl-step--day   { padding: 1.2rem 2rem; }
  .pl-anchor { font-size: 0.95rem; margin-bottom: 2rem; }
  .pl-ctas { flex-direction: column; align-items: stretch; }
  .pl-ctas .pl-cta { padding: 0.95rem 1.5rem; }
  .pl-foot { flex-direction: column; gap: 0.3rem; }
  .pl-foot-sep { display: none; }
}
.pvs-puente-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(255,255,255,0.3), transparent);
}
.pvs-puente-content {
  text-align: center;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.pvs-puente-eyebrow {
  display: block;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-top: 0.65rem;
}
.pvs-puente-eyebrow--above-cta {
  text-align: center;
  margin-top: 0;
  margin-bottom: 0.9rem;
}
.pvs-puente-tachado-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  margin-bottom: 0.35rem;
}
.pvs-puente-tachado {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.55);
  text-decoration: line-through;
  text-decoration-color: rgba(255,255,255,0.4);
  font-weight: 500;
  letter-spacing: 0.01em;
}
.pvs-puente-badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: var(--ie-accent-dark, #6B0000);
  background: linear-gradient(135deg, #fcd34d, #fbbf24);
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 4px 12px rgba(252, 211, 77, 0.35);
}
.pvs-puente-label {
  display: block;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 0.45rem;
}

/* Variante inline: "Ver opciones de pago" pequeño debajo del precio */
.pvs-link--inline {
  font-size: 0.72rem !important;
  margin: 0.55rem auto 0 !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,0.55) !important;
  text-decoration-color: rgba(255,255,255,0.2) !important;
  letter-spacing: 0.02em;
}
.pvs-link--inline:hover {
  color: rgba(255,255,255,0.9) !important;
  text-decoration-color: rgba(255,255,255,0.6) !important;
}
.pvs-puente-row {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  line-height: 1;
}
.pvs-puente-amount {
  font-size: clamp(2.2rem, 7vw, 3.4rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.pvs-puente-currency {
  font-size: clamp(0.85rem, 2vw, 1.05rem);
  font-weight: 700;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.05em;
}
.pvs-puente-sub {
  display: block;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.65);
  margin-top: 0.45rem;
  font-weight: 500;
}

/* Separador "·" entre los dos links del pvs-link */
.pvs-link-sep {
  margin: 0 0.3em;
  opacity: 0.5;
}

/* Contenedor de los CTAs duales: siempre en una fila */
.pvs-ctas {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: center;
  gap: 0.6rem;
  margin: 0 auto 1rem;
  width: 100%;
  max-width: 520px;
}
@media (min-width: 640px) {
  .pvs-ctas {
    max-width: none;
    gap: 0.75rem;
  }
}

/* CTAs principales */
.pvs-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s, background 0.18s, border-color 0.18s;
  padding: 1.05rem 2rem;
  white-space: nowrap;
}

/* Variante primaria (Inscribirme): la prominente, color crema */
.pvs-cta--primary {
  color: var(--ie-accent-dark, #6B0000);
  background: linear-gradient(135deg, #ffffff, #fef3c7);
  border: none;
  box-shadow: 0 10px 35px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.15);
}
.pvs-cta--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 45px rgba(0,0,0,0.4), 0 6px 18px rgba(0,0,0,0.2);
}
.pvs-cta--primary svg { transition: transform 0.18s; }
.pvs-cta--primary:hover svg { transform: translateX(4px); }

/* Variante secundaria (Apartar): outline traslúcido sobre el rojo */
.pvs-cta--secondary {
  color: #fff;
  background: rgba(255, 255, 255, 0.05);
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(4px);
}
.pvs-cta--secondary:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(252, 211, 77, 0.7);
  transform: translateY(-2px);
}

/* En mobile los dos CTAs comparten el ancho equitativamente */
@media (max-width: 639px) {
  .pvs-cta {
    flex: 1;
    min-width: 0;
    padding: 0.95rem 0.85rem;
    font-size: 0.92rem;
    gap: 0.4rem;
  }
  .pvs-cta--primary svg { width: 16px; height: 16px; }
}

/* Garantía dentro de la columna "Después" (parte inferior) */
.pvs-col-garantia {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  width: 100%;
  margin-top: 1rem;
  padding: 0.75rem 0.9rem;
  background: linear-gradient(135deg, rgba(252, 211, 77, 0.08), rgba(252, 211, 77, 0.14));
  border: 1px solid rgba(252, 211, 77, 0.3);
  border-radius: 12px;
  color: #fff;
  font-family: var(--sans);
  cursor: pointer;
  text-align: center;
  transition: background 0.18s, border-color 0.18s, transform 0.18s;
}
.pvs-col-garantia svg {
  color: #fcd34d;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 6px rgba(252, 211, 77, 0.35));
}
.pvs-col-garantia-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  line-height: 1.3;
  text-align: center;
}
/* En mobile vuelve a alineación izquierda */
@media (max-width: 640px) {
  .pvs-col-garantia {
    justify-content: flex-start;
    text-align: left;
  }
  .pvs-col-garantia-text {
    align-items: flex-start;
    text-align: left;
  }
}
.pvs-col-garantia-text strong {
  font-size: 0.78rem;
  font-weight: 800;
  color: #fcd34d;
  letter-spacing: 0.01em;
}
.pvs-col-garantia-text small {
  font-size: 0.68rem;
  font-weight: 500;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.01em;
}
.pvs-col-garantia:hover {
  background: linear-gradient(135deg, rgba(252, 211, 77, 0.14), rgba(252, 211, 77, 0.22));
  border-color: rgba(252, 211, 77, 0.55);
  transform: translateY(-1px);
}

/* Garantía discreta debajo del CTA */
.pvs-garantia {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 500;
  color: rgba(255,255,255,0.75);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  transition: color 0.18s, background 0.18s;
  margin-bottom: 0.5rem;
}
.pvs-garantia svg {
  color: #fcd34d;
  opacity: 0.9;
  flex-shrink: 0;
}
.pvs-garantia strong {
  font-weight: 700;
  color: #fcd34d;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(252, 211, 77, 0.4);
  transition: text-decoration-color 0.18s;
}
.pvs-garantia:hover {
  color: #fff;
  background: rgba(252, 211, 77, 0.06);
}
.pvs-garantia:hover strong {
  text-decoration-color: rgba(252, 211, 77, 0.9);
}

.pvs-link {
  display: block;
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255,255,255,0.75);
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(255,255,255,0.3);
  transition: color 0.18s, text-decoration-color 0.18s;
  margin: 0 auto 1.25rem;
  width: fit-content;
  white-space: nowrap;
}
.pvs-link:hover {
  color: #fff;
  text-decoration-color: rgba(255,255,255,0.7);
}

.pvs-deadline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.6);
  font-weight: 500;
  margin: 3.25rem auto 0;
  text-align: center;
  width: fit-content;
}
.pvs-deadline strong { color: #fff; font-weight: 700; }
.pvs-deadline svg { opacity: 0.6; }

/* Desktop: lado a lado */
@media (min-width: 720px) {
  .pvs-split {
    grid-template-columns: 1fr auto 1fr;
    gap: 1.5rem;
    align-items: stretch;
  }
  .pvs-bridge {
    transform: rotate(0deg);
    align-self: center;
  }
  @keyframes pvsArrowPulse {
    0%, 100% { transform: rotate(0deg) translateX(0); opacity: 0.55; }
    50%      { transform: rotate(0deg) translateX(6px); opacity: 1; }
  }
  .pvs-bridge { animation: pvsArrowPulse 2s ease-in-out infinite; }
}

@media (max-width: 640px) {
  .precio--vs { padding: 3.5rem 0 4rem; }
  .pvs-header { margin-bottom: 1.75rem; }
  .pvs-col { padding: 1.5rem 1.25rem; }
  .pvs-list li { font-size: 0.82rem; }
  .pvs-cta { width: 100%; padding: 1rem 1.5rem; }
}

/* ═══════════════════════════════════════════════════════════════
   PRECIO — CALCULADORA INVERSA (Opción 1)
   ═══════════════════════════════════════════════════════════════ */
.precio--calc {
  background: radial-gradient(ellipse at top, #8B0000 0%, #5a0000 70%, #4a0000 100%);
  padding: 4.5rem 0 5rem;
  position: relative;
}
.precio--calc::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, rgba(255,255,255,0.05) 0%, transparent 70%);
  pointer-events: none;
}
.pcalc-wrap {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin: 0 auto;
}

/* Header */
.pcalc-header {
  text-align: center;
  margin-bottom: 2.5rem;
}
.pcalc-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 0.85rem;
  padding: 0.35rem 0.9rem;
  background: rgba(255,255,255,0.1);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.15);
}
.pcalc-title {
  font-size: clamp(1.8rem, 4.5vw, 3rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0 0 0.85rem;
}
.pcalc-sub {
  font-size: 1rem;
  color: rgba(255,255,255,0.75);
  font-weight: 500;
  margin: 0;
  line-height: 1.5;
  max-width: 560px;
  margin: 0 auto;
}

/* Grid layout */
.pcalc-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: start;
}

/* Controles (sliders) */
.pcalc-controls {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 20px;
  padding: 1.75rem 1.5rem;
  backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.pcalc-field { display: flex; flex-direction: column; gap: 0.65rem; }
.pcalc-field-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.pcalc-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  letter-spacing: 0.01em;
}
.pcalc-value {
  font-size: 1.3rem;
  font-weight: 800;
  color: #fff;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* Slider */
.pcalc-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,0.2);
  outline: none;
  cursor: pointer;
}
.pcalc-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid #cc1f1a;
  cursor: pointer;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 4px 14px rgba(0,0,0,0.3);
}
.pcalc-slider::-webkit-slider-thumb:hover { transform: scale(1.15); }
.pcalc-slider::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid #cc1f1a;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.3);
}
.pcalc-scale {
  display: flex;
  justify-content: space-between;
  font-size: 0.68rem;
  color: rgba(255,255,255,0.55);
  font-variant-numeric: tabular-nums;
}

.pcalc-note {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  font-size: 0.72rem;
  color: rgba(255,255,255,0.6);
  line-height: 1.5;
  font-style: italic;
}
.pcalc-note svg { flex-shrink: 0; margin-top: 2px; opacity: 0.7; }

/* Card de resultado */
.pcalc-result {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.pcalc-result-card {
  background: #fff;
  border-radius: 24px;
  padding: 2rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3), 0 8px 20px rgba(0,0,0,0.15);
}

.pcalc-result-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-mute, #5a5d66);
  margin-bottom: 0.35rem;
}
.pcalc-result-num {
  display: block;
  font-size: clamp(1.6rem, 4vw, 2rem);
  font-weight: 800;
  color: var(--ink, #0a0a0a);
  letter-spacing: -0.02em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.pcalc-result-big {
  display: block;
  font-size: clamp(2rem, 6vw, 2.8rem);
  font-weight: 900;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.03em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  transition: opacity 0.18s;
}
.pcalc-result-green {
  background: linear-gradient(135deg, #16a34a, #22c55e);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pcalc-result-sublabel {
  display: block;
  font-size: 0.78rem;
  color: var(--ink-mute, #5a5d66);
  margin-top: 0.4rem;
  line-height: 1.4;
}

.pcalc-divider {
  height: 1px;
  background: var(--line, rgba(10,10,10,0.08));
  margin: 0;
}

.pcalc-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #fff;
  background: linear-gradient(135deg, #8B0000, #cc1f1a);
  border: none;
  padding: 1rem 1.5rem;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 8px 24px rgba(139,0,0,0.35), 0 3px 10px rgba(139,0,0,0.2);
  margin-top: 0.25rem;
}
.pcalc-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(139,0,0,0.45), 0 5px 14px rgba(139,0,0,0.25);
}

.pcalc-link {
  display: inline-flex;
  align-self: center;
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink-mute, #5a5d66);
  background: transparent;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(10,10,10,0.2);
  transition: color 0.18s;
}
.pcalc-link:hover { color: #8B0000; }

.pcalc-deadline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.75);
  font-weight: 500;
  margin: 0;
  text-align: center;
}
.pcalc-deadline strong { color: #fff; font-weight: 700; }
.pcalc-deadline svg { opacity: 0.7; }

/* Desktop: layout side-by-side */
@media (min-width: 900px) {
  .pcalc-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
  }
  .pcalc-controls { padding: 2rem 2rem; }
  .pcalc-result-card { padding: 2.25rem 2rem; }
}

@media (max-width: 640px) {
  .precio--calc { padding: 3.5rem 0 4rem; }
  .pcalc-header { margin-bottom: 1.75rem; }
  .pcalc-controls { padding: 1.5rem 1.25rem; gap: 1.5rem; }
  .pcalc-result-card { padding: 1.75rem 1.25rem; gap: 1rem; }
  .pcalc-cta { width: 100%; }
}


.precio-wrap {
  position: relative;
  z-index: 1;
}

.precio-badge {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  border-radius: 100px;
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid rgba(255,255,255,0.2);
  margin-bottom: 2rem;
}

.precio-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
}

.precio-text,
.precio-card {
  min-width: 0;
  box-sizing: border-box;
  width: 100%;
}

.precio-title {
  font-size: clamp(1.5rem, 5.5vw, 3rem);
  font-weight: 900;
  color: #fff;
  max-width: 100%;
  overflow-wrap: break-word;
  margin-bottom: 1.25rem;
  line-height: 1.1;
}

.precio-desc {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.7);
  line-height: 1.7;
  margin-bottom: 2rem;
}

.precio-includes {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin-bottom: 2rem;
}

.precio-includes li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.92rem;
  color: rgba(255,255,255,0.85);
}

.pi-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  flex-shrink: 0;
}

.precio-urgencia {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.6);
  background: rgba(255,255,255,0.08);
  padding: 0.75rem 1rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,0.1);
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

.precio-card {
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--radius-xl);
  padding: 2.25rem;
  box-sizing: border-box;
  width: 100%;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}

.precio-regular {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.precio-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Desglose por módulo */
.precio-desglose-titulo {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  margin-bottom: 0.5rem;
}
.precio-desglose {
  background: rgba(0,0,0,0.2);
  border-radius: var(--radius-sm);
  padding: 0.6rem 0.85rem;
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.precio-desglose-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.65);
}
.precio-desglose-val {
  font-weight: 600;
  color: rgba(255,255,255,0.8);
}
.precio-desglose-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  font-weight: 700;
  color: rgba(255,255,255,0.7);
  border-top: 1px solid rgba(255,255,255,0.15);
  margin-top: 0.25rem;
  padding-top: 0.4rem;
}

.precio-tachado {
  font-size: 1rem;
  font-weight: 600;
  color: rgba(255,255,255,0.35);
  text-decoration: line-through;
}

/* Badge fecha límite oferta */
.oferta-deadline {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.1rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.82);
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 100px;
  padding: 0.5rem 1.4rem;
  margin-bottom: 1rem;
  width: fit-content;
  margin: 0 auto 1rem;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.oferta-deadline:empty { display: none; }
.deadline-top {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.deadline-top svg { flex-shrink: 0; opacity: 0.8; }
.deadline-date {
  color: #ffffff;
  font-weight: 700;
  letter-spacing: 0.07em;
}

.precio-promo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  margin-bottom: 0.5rem;
}
.precio-promo-row {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.precio-ahorro {
  font-size: 0.75rem;
  font-weight: 700;
  background: rgba(255,255,255,0.15);
  color: #fff;
  border-radius: 20px;
  padding: 0.2rem 0.65rem;
  margin-bottom: 0.35rem;
  letter-spacing: 0.02em;
}

.precio-label-promo {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
  width: 100%;
}

.precio-num {
  font-size: 3.5rem;
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.04em;
  line-height: 1;
}

.precio-currency {
  font-size: 1.1rem;
  font-weight: 700;
  color: rgba(255,255,255,0.6);
  margin-bottom: 0.4rem;
}

.precio-meses {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.6);
  text-align: center;
  margin: 0 auto 2rem;
  line-height: 2;
  padding: 0.5rem 0.85rem;
  background: rgba(255,255,255,0.06);
  border-radius: var(--radius-sm);
  border: 1px dashed rgba(255,255,255,0.15);
  display: block;
  width: fit-content;
}

.precio-nota {
  text-align: center;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.4);
  margin-top: 0.75rem;
}

/* =============================================================
   15. FAQ
   ============================================================= */
.faq {
  padding: var(--section-pad) 0;
  background: var(--bg-2);
}

.faq-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: start;
}

.faq-list { }

.faq-item {
  border-bottom: 1px solid var(--line);
}
.faq-item:first-child { border-top: 1px solid var(--line); }

.faq-btn {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  padding: 1.4rem 0;
  background: none;
  border: none;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: color 0.2s;
}
.faq-btn:hover { color: var(--ie-accent); }

.faq-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid var(--line-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.2rem;
  line-height: 1;
  color: var(--ink-mute);
  transition: all 0.3s var(--ease-out);
}

.faq-item.is-open .faq-icon {
  background: var(--ie-accent);
  border-color: var(--ie-accent);
  color: #fff;
  transform: rotate(45deg);
}

.faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.45s var(--ease-out);
}
.faq-item.is-open .faq-body { max-height: 400px; }

.faq-body-inner {
  padding-bottom: 1.5rem;
  font-size: 0.92rem;
  color: var(--ink-mute);
  line-height: 1.75;
}

/* =============================================================
   16. CTA FINAL
   ============================================================= */
.cta-final {
  padding: var(--section-pad) 0;
  background: linear-gradient(135deg, var(--ie-accent-dark) 0%, var(--ie-accent) 100%);
  text-align: center;
  position: relative;
  overflow: clip;
}

.cta-final::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%, rgba(255,255,255,0.08) 0%, transparent 60%);
  pointer-events: none;
}

.cta-final-inner { position: relative; z-index: 1; }

.cta-final-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  color: #fff;
  margin: 1rem 0 1.25rem;
  line-height: 1.1;
}

.cta-final-sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.75);
  margin-bottom: 2.5rem;
}

/* Limitar ancho del botón principal del CTA final para que no se vea desproporcionado */
.cta-final-inner .btn-full {
  max-width: 420px;
  margin: 0 auto;
}
@media (max-width: 640px) {
  .cta-final-inner .btn-full { max-width: 100%; }
}

/* =============================================================
   TOAST — inscripción social proof
   ============================================================= */
.inscripcion-toast {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  --sy: 0px;
  transform: translateX(-50%) translateY(calc(100% + 3rem));
  z-index: 9998;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.75rem 1rem 0.75rem 0.875rem;
  box-shadow: 0 8px 32px rgba(0,0,0,0.13);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: calc(100vw - 2.5rem);
  max-width: 360px;
  transition: transform 0.45s cubic-bezier(0.34,1.56,0.64,1), bottom 0.35s ease, opacity 0.3s ease;
  pointer-events: none;
  overflow: hidden;
  user-select: none;
  touch-action: pan-x;
}
.inscripcion-toast.is-visible {
  transform: translateX(-50%) translateY(var(--sy, 0px));
  pointer-events: auto;
  cursor: grab;
}
.inscripcion-toast.is-visible:active {
  cursor: grabbing;
}
.inscripcion-toast.is-swiping {
  transition: none;
}
.inscripcion-toast.is-pushed {
  bottom: calc(1.5rem + 4.75rem);
}
/* En desktop, las notificaciones aparecen en la esquina inferior izquierda */
@media (min-width: 768px) {
  .inscripcion-toast {
    left: 1.5rem;
    transform: translateX(0) translateY(calc(100% + 3rem));
  }
  .inscripcion-toast.is-visible {
    transform: translateX(0) translateY(var(--sy, 0px));
  }
}
.toast-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #22c55e;
  flex-shrink: 0;
  animation: toastPulse 1.8s ease-in-out infinite;
}
@keyframes toastPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0.5); }
  50%       { box-shadow: 0 0 0 5px rgba(34,197,94,0);  }
}
.toast-body { min-width: 0; }
.toast-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 0.15rem;
}
.toast-msg {
  font-size: 0.82rem;
  color: var(--ink);
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.toast-msg strong { font-weight: 700; }
.toast-msg em { font-style: normal; color: var(--ie-accent); font-weight: 600; }
.toast-tipo {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--ink-mute);
  background: var(--bg-3);
  border-radius: 20px;
  padding: 0.05rem 0.4rem;
  vertical-align: middle;
  margin-left: 0.2rem;
}

/* =============================================================
   17. MATERIALES — inversión por clase
   ============================================================= */
.materiales { background: #fff; padding: var(--section-pad) 0; }

/* Strip de confianza */
.mat-trust-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 0.9rem 1.5rem;
  margin-bottom: 2.25rem;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}
.mat-trust-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 1rem;
  white-space: nowrap;
  justify-content: center;
}
.mat-trust-icon { font-size: 1rem; flex-shrink: 0; }
.mat-trust-text { font-size: 0.73rem; font-weight: 600; color: var(--ink-soft); line-height: 1; }
.mat-trust-sep {
  width: 1px;
  height: 1.5rem;
  background: var(--line);
  flex-shrink: 0;
}
@media (max-width: 700px) {
  .mat-trust-strip { flex-direction: column; align-items: flex-start; gap: 0; padding: 0.5rem 1.25rem; }
  .mat-trust-sep { display: none; }
  .mat-trust-item { border-bottom: 1px solid var(--line); padding: 0.55rem 0; width: 100%; }
  .mat-trust-item:last-child { border-bottom: none; }
}

/* Pill distribución de inversión */
.mat-distrib-pill {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  background: #fff8e1;
  border: 1px solid #f0c040;
  border-radius: var(--radius-md);
  padding: 0.65rem 1.1rem;
  font-size: 0.8rem;
  color: #7a5800;
  font-weight: 500;
  line-height: 1.5;
  max-width: 560px;
  margin: 0 auto 1.75rem;
}
.mat-distrib-pill svg {
  margin-top: 2px;
  color: #c08000;
  flex-shrink: 0;
}
.mat-distrib-pill span {
  flex: 1;
}
.mat-distrib-pill strong {
  font-weight: 700;
  color: #5a3f00;
}

/* ── Comparativa "Sin guía vs Con Instituto Europa" ── */
.mat-vs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 2rem 0;
}
.mat-vs-col {
  padding: 1.4rem 1.4rem;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: #fff;
}
.mat-vs-col--malo {
  background: linear-gradient(135deg, rgba(120, 120, 120, 0.04), rgba(80, 80, 80, 0.06));
  border-color: rgba(120, 120, 120, 0.15);
}
.mat-vs-col--bueno {
  background: linear-gradient(135deg, rgba(22, 163, 74, 0.05), rgba(22, 163, 74, 0.08));
  border-color: rgba(22, 163, 74, 0.22);
}
.mat-vs-header {
  display: inline-block;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 0.85rem;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
}
.mat-vs-col--malo .mat-vs-header {
  color: #555;
  background: rgba(120, 120, 120, 0.12);
}
.mat-vs-col--bueno .mat-vs-header {
  color: #fff;
  background: linear-gradient(135deg, #15803d, #16a34a);
}
.mat-vs-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.mat-vs-list li {
  position: relative;
  padding-left: 1.4rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--ink-soft);
}
.mat-vs-col--malo .mat-vs-list li::before {
  content: "✕";
  position: absolute;
  left: 0;
  top: 0;
  color: #888;
  font-weight: 700;
}
.mat-vs-col--bueno .mat-vs-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #16a34a;
  font-weight: 800;
}
@media (min-width: 720px) {
  .mat-vs { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
}

/* ── Distribución mensual compacta ── */
.mat-meses-compact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  margin: 2rem auto;
  max-width: 900px;
}
.mmc-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  padding: 1.1rem 1.5rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  min-width: 200px;
  text-align: center;
  transition: transform 0.18s, box-shadow 0.18s;
}
.mmc-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}
.mmc-num {
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.mmc-monto {
  font-size: 1.55rem;
  font-weight: 900;
  color: #8B0000;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.mmc-nota {
  font-size: 0.78rem;
  color: var(--ink-mute);
  font-style: italic;
}
.mmc-arrow {
  font-size: 1rem;
  color: rgba(139, 0, 0, 0.3);
  font-weight: 300;
  line-height: 1;
  padding: 0.1rem 0;
}
@media (min-width: 720px) {
  .mat-meses-compact { flex-direction: row; justify-content: center; gap: 0.5rem; }
  .mmc-arrow { font-size: 1.25rem; padding: 0; }
}

/* ── Fila unificada: Mes 1 → Mes 2 → Mes 3 = Total Público | Total Alumna ── */
.mat-summary-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  margin: 2rem auto 0.25rem;
  max-width: 1240px;
}
.mat-summary-eq {
  font-family: var(--sans);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--ink-soft, #5a5a5a);
  line-height: 1;
  user-select: none;
}
.mat-summary-row .mat-meses-compact { margin: 0; }
.mat-summary-row .mat-precios-grid  { margin: 0; }

@media (min-width: 960px) {
  .mat-summary-row {
    flex-direction: row;
    justify-content: center;
    gap: 1.25rem;
  }
  .mat-summary-row .mat-meses-compact {
    flex: 0 0 auto;
    max-width: none;
  }
  .mat-summary-row .mat-precios-grid {
    flex: 0 0 auto;
    grid-template-columns: auto auto;
  }
  .mat-summary-eq {
    flex-shrink: 0;
    font-size: 1.6rem;
    padding: 0 0.25rem;
  }
}

/* En mobile/tablet: ocultar el "=" porque las cosas se apilan */
@media (max-width: 959px) {
  .mat-summary-eq { display: none; }
}

/* ── Botón "Ver desglose detallado" ── */
.mat-ver-desglose {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-family: var(--sans);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--ink-mute, #6b6b6b);
  background: transparent;
  border: none;
  padding: 0.35rem 0.5rem;
  cursor: pointer;
  transition: color 0.18s;
  margin: 0 auto 1.5rem;
  width: fit-content;
  border-radius: 0;
}
.mat-ver-desglose:hover {
  color: var(--ink, #111);
  background: transparent;
}
.mat-ver-desglose svg { opacity: 0.6; transition: opacity 0.18s; }
.mat-ver-desglose:hover svg { opacity: 1; }

/* ── Modal del desglose detallado ── */
.modal-desglose-box {
  max-width: 720px;
  width: 100%;
  max-height: 85vh;
  overflow-y: auto;
  /* Scrollbar minimalista estilo Apple/Stripe */
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
  transition: scrollbar-color 0.3s ease;
}
.modal-desglose-box:hover,
.modal-desglose-box:focus-within {
  scrollbar-color: rgba(0,0,0,0.25) transparent;
}
/* WebKit (Chrome, Safari, Edge) */
.modal-desglose-box::-webkit-scrollbar {
  width: 8px;
}
.modal-desglose-box::-webkit-scrollbar-track {
  background: transparent;
}
.modal-desglose-box::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
  transition: background 0.3s ease;
}
.modal-desglose-box:hover::-webkit-scrollbar-thumb,
.modal-desglose-box:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.18);
}
.modal-desglose-box::-webkit-scrollbar-thumb:hover {
  background: rgba(0,0,0,0.32);
}
.md-titulo {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 0.5rem;
  padding-right: 1.5rem;
  letter-spacing: -0.01em;
}
.md-sub {
  font-size: 0.88rem;
  color: var(--ink-mute);
  margin: 0 0 1.5rem;
  line-height: 1.5;
}

/* Toggle Plan Smart / Plan Plus */
.mat-toggle-wrap {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
/* Divisor sutil entre el toggle de plan y la distribución mensual */
.mat-toggle-divider {
  width: min(320px, 65%);
  height: 1px;
  margin: 1.5rem auto;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.22) 50%,
    transparent 100%
  );
}
.mat-plan-nota {
  font-size: 0.75rem;
  color: var(--ink-mute);
  text-align: center;
  max-width: 480px;
  margin: 0 auto 2rem;
  line-height: 1.55;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 0.5rem 0.9rem;
}
.mat-toggle-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  font-family: var(--sans);
  background: #fff;
  border: 1.5px solid var(--line-strong);
  border-radius: var(--radius-md);
  padding: 0.65rem 1.5rem;
  cursor: pointer;
  transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
  min-width: 130px;
}
.mat-toggle-btn.is-active {
  background: var(--ie-accent, #cc1f1a);
  border-color: var(--ie-accent, #cc1f1a);
  box-shadow: 0 4px 16px rgba(204,31,26,0.25);
}
.mat-toggle-label {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ink);
  transition: color 0.18s;
}
.mat-toggle-btn.is-active .mat-toggle-label { color: #fff; }
.mat-toggle-hint {
  font-size: 0.62rem;
  font-weight: 500;
  color: var(--ink-mute);
  transition: color 0.18s;
}
.mat-toggle-btn.is-active .mat-toggle-hint { color: rgba(255,255,255,0.5); }

/* Acordeón de meses */
.mat-meses {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 640px;
  margin: 0 auto 0.75rem;
}
.mat-mes {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: box-shadow 0.2s;
}
.mat-mes:has(.mat-mes-header.is-open) {
  box-shadow: 0 4px 24px rgba(0,0,0,0.07);
}
.mat-mes-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--sans);
  gap: 1rem;
  transition: background 0.15s;
}
.mat-mes-header:hover { background: var(--bg-2); }
.mat-mes-header.is-open { border-bottom: 1px solid var(--line); }
.mat-mes-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-align: left;
  min-width: 0;
  flex: 1;
}
.mat-mes-num {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--ink);
}
.mat-mes-clases {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--ink-mute);
  background: var(--bg-3);
  border-radius: 20px;
  padding: 0.15rem 0.55rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-mes-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}
.mat-mes-total {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ie-accent);
  transition: all 0.25s ease;
}
.mat-chevron {
  flex-shrink: 0;
  color: var(--ink-mute);
  transition: transform 0.28s ease;
}
.mat-mes-header.is-open .mat-chevron { transform: rotate(180deg); }

/* Lista de clases */
.mat-mes-body { animation: matFadeIn 0.22s ease; }
@keyframes matFadeIn { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
.mat-clase-list { padding: 0.5rem 0; }
.mat-clase {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1.25rem;
  transition: background 0.12s;
}
.mat-clase:hover { background: var(--bg-2); }
.mat-clase-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.mat-clase-name {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink-soft);
}
.mat-clase-precio {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ink);
  transition: all 0.25s ease;
}

/* Total general */
.mat-total-wrap {
  max-width: 640px;
  margin: 0.5rem auto 0;
}
.mat-total-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: var(--grey-1);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.5rem;
  margin-bottom: 0.75rem;
}
.mat-total-left {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.mat-total-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: #fff;
}
.mat-total-hint {
  font-size: 0.65rem;
  color: rgba(255,255,255,0.45);
  font-weight: 500;
}
.mat-total-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.1rem;
}
.mat-total-monto {
  font-size: 1.6rem;
  font-weight: 900;
  color: #fff;
  line-height: 1;
  transition: all 0.3s ease;
}
.mat-total-plan {
  font-size: 0.62rem;
  font-weight: 600;
  color: rgba(255,255,255,0.45);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.mat-nota {
  font-size: 0.72rem;
  color: var(--ink-mute);
  line-height: 1.6;
  text-align: center;
  margin-top: 1.5rem;
}
@media (max-width: 640px) {
  .mat-nota { margin-top: 2rem; }
}

/* Sub-bloque de marcas aliadas dentro de Materiales */
.mat-aliados {
  margin-top: 1.75rem;
  text-align: center;
}
.mat-aliados-eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin: 0 0 0.75rem;
}
.mat-aliados .aliados-track-wrap {
  padding: 0;
}
.mat-aliados-sub {
  font-size: 0.72rem;
  color: #888;
  font-style: italic;
  margin: 1.5rem 0 0;
  line-height: 1.5;
}
.mat-aliados-sub strong {
  color: var(--ie-accent, #cc1f1a);
  font-weight: 700;
}

@media (max-width: 480px) {
  .mat-toggle-btn { min-width: 110px; padding: 0.55rem 1rem; }
  .mat-total-card { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
  .mat-total-right { align-items: flex-start; }
}

/* Precios público vs alumna */
.mat-bottom-row {
  display: flex;
  align-items: stretch;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.mat-precios-grid {
  display: grid;
  grid-template-columns: auto auto;
  gap: 0.75rem;
  flex-shrink: 0;
}
@media (max-width: 560px) {
  .mat-bottom-row { flex-direction: column; }
  .mat-recuperacion { order: 2; }
  .mat-precios-grid { order: 1; }
}

/* ── Opt-in discreto al Plan Plus (mini-link de texto, no pastilla) ── */
.mat-plus-optin {
  max-width: 720px;
  margin: 1.25rem auto 0;
  text-align: center;
  border: none;
  background: transparent;
}
.mat-plus-optin > summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.3rem 0.5rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--ink-mute, #6b6b6b);
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: color 0.18s;
  border-bottom: 1px dashed var(--line);
}
.mat-plus-optin > summary::-webkit-details-marker { display: none; }
.mat-plus-optin > summary::after {
  content: "▾";
  font-size: 0.65rem;
  opacity: 0.6;
  transition: transform 0.2s;
  margin-left: 0.1rem;
}
.mat-plus-optin[open] > summary::after { transform: rotate(180deg); }
.mat-plus-optin > summary:hover { color: var(--ie-accent); }
.mat-plus-optin > summary svg { color: var(--ie-accent); opacity: 0.7; flex-shrink: 0; }
.mat-plus-optin-body {
  max-width: 560px;
  margin: 0.85rem auto 0;
  padding: 1rem 1.25rem;
  background: var(--bg-2, #fafafa);
  border: 1px solid var(--line, #e5e7eb);
  border-radius: var(--radius-md, 14px);
  font-size: 0.84rem;
  line-height: 1.6;
  color: var(--ink-soft);
  text-align: left;
}
.mat-plus-optin-body p { margin: 0 0 0.6rem; }
.mat-plus-optin-body p:last-child { margin-bottom: 0; }
.mat-plus-optin-body strong { color: var(--ink); font-weight: 700; }
.mat-plus-precio strong { color: var(--ie-accent); font-size: 1rem; }
.mat-plus-precio span { color: var(--ink-mute); font-weight: 500; }
.mat-plus-hint {
  font-size: 0.76rem !important;
  color: var(--ink-mute) !important;
  padding-top: 0.55rem;
  border-top: 1px dotted var(--line);
  margin-top: 0.7rem !important;
}
.mat-precio-col {
  border-radius: var(--radius-md);
  padding: 0.9rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  align-items: center;
  text-align: center;
  justify-content: center;
}
.mat-precio-col.mat-precio-publico {
  background: var(--bg-3);
  border: 1px solid var(--line);
}
.mat-precio-col.is-destacado {
  background: var(--grey-1);
  position: relative;
  overflow: hidden;
}
.mat-precio-badge-descuento {
  display: inline-block;
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #fff;
  background: var(--ie-accent);
  border-radius: 20px;
  padding: 0.15rem 0.55rem;
  width: fit-content;
  margin-bottom: 0.1rem;
}
.mat-precio-col-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ink-mute);
}
.mat-precio-col.is-destacado .mat-precio-col-label { color: rgba(255,255,255,0.5); }
.mat-precio-col-monto {
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--ink);
  line-height: 1;
  transition: all 0.3s ease;
}
.mat-precio-col-monto.tachado {
  text-decoration: line-through;
  font-size: 1.2rem;
  color: var(--ink-mute);
  font-weight: 600;
}
.mat-precio-col.is-destacado .mat-precio-col-monto { color: #fff; }
.mat-precio-col-hint {
  font-size: 0.63rem;
  color: var(--ink-mute);
  font-weight: 500;
}
.mat-precio-col.is-destacado .mat-precio-col-hint { color: rgba(255,255,255,0.4); }

/* Recuperación de inversión */
.mat-recuperacion {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: var(--radius-md);
  padding: 0.95rem 1.5rem;
  max-width: 720px;
  margin: 1.5rem auto 0;
}
.mat-rec-icon { font-size: 1.5rem; flex-shrink: 0; }
.mat-rec-texto { display: flex; flex-direction: column; gap: 0.2rem; align-items: center; }
.mat-rec-headline {
  font-size: 0.82rem;
  font-weight: 700;
  color: #15803d;
  line-height: 1.4;
  text-align: center;
}
.mat-rec-num, .mat-rec-monto {
  color: #15803d;
  font-weight: 900;
  transition: all 0.3s ease;
}
.mat-rec-sub {
  font-size: 0.55rem;
  color: #16a34a;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 400px) {
  .mat-rec-sub { font-size: 0.5rem; }
}


/* =============================================================
   18. MODAL MATERIALES POR CLASE
   ============================================================= */
.modal-mat-box {
  max-width: 420px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}
.mm-header {
  padding: 1rem 1.5rem 0.85rem;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.mm-plan-badge {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ie-accent);
  background: var(--ie-accent-bg);
  border: 1px solid rgba(204,31,26,0.2);
  border-radius: 20px;
  padding: 0.18rem 0.65rem;
  margin-bottom: 0.75rem;
}
.mm-titulo {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 0.2rem;
  padding-right: 1.5rem;
}
.mm-subtitulo {
  font-size: 0.75rem;
  color: var(--ink-mute);
}
.mm-lista {
  list-style: none;
  padding: 0.5rem 0;
  margin: 0;
  overflow-y: auto;
  flex: 1;
}
.mm-lista li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 1.5rem;
  border-bottom: 1px solid var(--bg-3);
  transition: background 0.12s;
}
.mm-lista li:last-child { border-bottom: none; }
.mm-lista li:hover { background: var(--bg-2); }
.mm-item-name {
  font-size: 0.78rem;
  color: var(--ink-soft);
  line-height: 1.4;
  flex: 1;
  text-transform: capitalize;
}
.mm-item-precio {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--ink);
  flex-shrink: 0;
  min-width: 60px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.mm-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1.5rem;
  background: var(--grey-1);
  flex-shrink: 0;
}
.mm-total-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(255,255,255,0.6);
}
.mm-total-monto {
  font-size: 1.15rem;
  font-weight: 900;
  color: #fff;
}

/* Clase clickeable */
.mat-clase { cursor: pointer; }
.mat-clase-right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.mat-clase-arrow {
  color: var(--ie-accent);
  opacity: 0.5;
  transition: opacity 0.15s, transform 0.15s;
  flex-shrink: 0;
}
.mat-clase:hover .mat-clase-arrow {
  opacity: 1;
  transform: translateX(0);
}
.mat-clase:focus-visible {
  outline: 2px solid var(--ie-accent);
  outline-offset: -2px;
  border-radius: 4px;
}

/* =============================================================
   19. FOOTER
   ============================================================= */
.footer {
  background: #0a0a0a;
  padding: 5rem 0 0;
}

.footer-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.footer-brand { }

.footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.footer-logo .nav-logo-ie { background: var(--ie-accent); }
.footer-logo .nav-logo-text { color: #fff; }

.footer-tagline {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.4);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.footer-social {
  display: flex;
  gap: 0.75rem;
}

.footer-social-link {
  width: 38px;
  height: 38px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.5);
  transition: all 0.2s var(--ease-out);
}
.footer-social-link:hover {
  background: var(--ie-accent);
  border-color: var(--ie-accent);
  color: #fff;
}

.footer-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.footer-col-title {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.3);
  margin-bottom: 1.25rem;
}

.footer-links { display: flex; flex-direction: column; gap: 0.6rem; }

.footer-link {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.5);
  transition: color 0.2s;
}
.footer-link:hover { color: #fff; }

.footer-bottom {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 1.5rem var(--gutter);
  border-top: 1px solid rgba(255,255,255,0.06);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.footer-bottom p {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.25);
}

.footer-credits { font-style: italic; }


/* =============================================================
   Modal: Selector de sucursal para WhatsApp — diseño refinado
   ============================================================= */
.wa-modal-overlay {
  align-items: center;
  justify-content: center;
}
.wa-modal-overlay.is-open .wa-modal-box {
  animation: waModalIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes waModalIn {
  from { opacity: 0; transform: translateY(16px) scale(0.985); }
  to   { opacity: 1; transform: translateY(0)    scale(1); }
}

.wa-modal-box {
  width: min(960px, 94vw);
  max-height: 90vh;
  overflow-y: auto;
  padding: 0;
  border-radius: 20px;
  position: relative;
  background: #fff;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,0.28), 0 12px 32px -12px rgba(0,0,0,0.12);
  /* Scrollbar minimalista tipo iOS / macOS */
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.22) transparent;
}

/* ══════════════════════════════════════════
   MODAL: Programar visita (lead capture)
   ══════════════════════════════════════════ */
.pv-modal-overlay { align-items: center; justify-content: center; }
.pv-modal-overlay.is-open .pv-modal-box {
  animation: pvModalIn 0.35s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes pvModalIn {
  from { opacity: 0; transform: translateY(16px) scale(0.985); }
  to   { opacity: 1; transform: translateY(0)    scale(1); }
}
.pv-modal-box {
  width: min(1040px, 95vw);
  max-height: 92vh;
  padding: 0;
  border-radius: 22px;
  background: transparent;
  position: relative;
  overflow: hidden; /* recorta el wrapper interno a las esquinas redondeadas */
  box-shadow: 0 30px 80px -20px rgba(0,0,0,0.32), 0 12px 32px -12px rgba(0,0,0,0.14);
}

/* Wrapper interno scrollable — barra nativa OCULTA, usamos custom */
.pv-scroll-inner {
  max-height: 92vh;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: none;          /* Firefox */
  -ms-overflow-style: none;        /* IE/Edge legacy */
}
.pv-scroll-inner::-webkit-scrollbar { display: none; }

/* Scrollbar custom flotante con flechas — siempre visible
   En mobile arranca a 3/4 de la altura del modal para no atravesar el bloque rojo */
.pv-custom-scrollbar {
  position: absolute;
  top: 20px;
  bottom: 20px;
  right: 8px;
  width: 14px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
}
.pv-scroll-arrow {
  pointer-events: auto;
  width: 14px;
  height: 16px;
  background: transparent;
  border: none;
  padding: 0;
  color: rgba(0,0,0,0.45);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color 0.18s;
}
.pv-scroll-arrow:hover { color: rgba(0,0,0,0.8); }
.pv-scroll-arrow:active { transform: scale(0.9); }
.pv-scroll-track {
  position: relative;
  width: 4px;
  flex: 1;
  margin: 6px 0;
  background: transparent;
  border-radius: 100px;
}
.pv-custom-thumb {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 60px;          /* píldora más larga */
  background: rgba(0,0,0,0.28);
  border-radius: 100px;
  pointer-events: auto;
  transition: background 0.18s;
}
.pv-custom-thumb:hover { background: rgba(0,0,0,0.45); }
@media (max-width: 820px) {
  .pv-custom-scrollbar { right: 6px; width: 12px; top: 8%; bottom: 10%; }
  .pv-scroll-track { width: 3px; }
  .pv-custom-thumb { background: rgba(0,0,0,0.22); height: 45px; }
}

.pv-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 0;
}
@media (max-width: 820px) {
  .pv-grid { grid-template-columns: 1fr; }
}

/* ─── Columna izquierda: pitch en rojo de marca ─── */
.pv-left {
  background: var(--ie-accent, #cc1f1a);
  color: #fff;
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 22px 0 0 22px;
}
@media (max-width: 820px) {
  .pv-left { border-radius: 22px 22px 0 0; padding: 2rem 1.5rem; }
}
.pv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 1.25rem;
  align-self: flex-start;
}
.pv-eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.22);
}
.pv-title {
  font-size: clamp(1.7rem, 3.6vw, 2.5rem);
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 1rem;
  color: #fff;
}
.pv-title em {
  font-style: italic;
  font-weight: 400;
  color: #fff;
}
.pv-sub {
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgba(255,255,255,0.88);
  margin: 0 0 1.5rem;
}
@media (max-width: 820px) {
  .pv-sub { display: none; }
  /* sin sub, damos más aire entre título y bullets */
  .pv-title { margin-bottom: 1.75rem; }
}
.pv-bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.pv-bullets li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #fff;
}
.pv-bullets li::before {
  content: "✓";
  flex-shrink: 0;
  width: 19px;
  height: 19px;
  border-radius: 5px;
  background: #fff;
  color: var(--ie-accent, #cc1f1a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 800;
  margin-top: 2px;   /* alinea visualmente con la primera línea del texto */
}

/* ─── Columna derecha: formulario ─── */
.pv-right {
  background: #fff;
  padding: 3rem 2.5rem;
  display: flex;
  align-items: center;
  border-radius: 0 22px 22px 0;
}
@media (max-width: 820px) {
  .pv-right {
    padding: 1.75rem 1.5rem 2.25rem;
    border-radius: 0 0 22px 22px;
  }
}
.pv-form { width: 100%; }
.pv-form-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.85rem;
  background: rgba(204,31,26,0.07);
  color: var(--ie-accent, #cc1f1a);
  border-radius: 100px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}
.pv-field {
  margin-bottom: 0.85rem;
}
.pv-field input[type=text],
.pv-field input[type=tel],
.pv-field input[type=date],
.pv-field select {
  width: 100%;
  padding: 0.9rem 1rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  font-family: var(--sans);
  font-size: 0.95rem;
  background: #fff;
  color: var(--ink, #111);
  box-sizing: border-box;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.pv-field input::placeholder { color: #9ca3af; }
.pv-field input:focus,
.pv-field select:focus {
  outline: none;
  border-color: var(--ie-accent, #cc1f1a);
  box-shadow: 0 0 0 3px rgba(204,31,26,0.1);
}
.pv-field select { cursor: pointer; appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b6b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
}

/* ─── Dropdown custom sucursal (reemplaza el select nativo) ─── */
.pv-dropdown { position: relative; width: 100%; }
.pv-dropdown-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.9rem 1rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  font-family: var(--sans);
  font-size: 0.95rem;
  color: #9ca3af;
  cursor: pointer;
  text-align: left;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.pv-dropdown-trigger.has-value { color: var(--ink, #111); }
.pv-dropdown-trigger:focus-visible,
.pv-dropdown.is-open .pv-dropdown-trigger {
  border-color: var(--ie-accent, #cc1f1a);
  box-shadow: 0 0 0 3px rgba(204,31,26,0.1);
}
.pv-dropdown-arrow {
  flex-shrink: 0;
  transition: transform 0.2s ease;
  color: #6b6b6b;
}
.pv-dropdown.is-open .pv-dropdown-arrow { transform: rotate(180deg); }
.pv-dropdown-list {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 0.35rem;
  list-style: none;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 12px 32px -8px rgba(0,0,0,0.18), 0 4px 12px -4px rgba(0,0,0,0.08);
  max-height: 180px;  /* ~4 sucursales antes de scroll */
  overflow-y: auto;
  /* Evita scroll-chaining: cuando llegas al tope/fondo del dropdown
     el scroll NO se propaga al modal padre */
  overscroll-behavior: contain;
  /* Bloquea touch scroll del padre */
  touch-action: pan-y;
  z-index: 50;
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.18) transparent;
}
.pv-dropdown-list::-webkit-scrollbar { width: 6px; }
.pv-dropdown-list::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.18); border-radius: 100px; background-clip: padding-box; }
.pv-dropdown-list::-webkit-scrollbar-track { background: transparent; }
.pv-dropdown.is-open .pv-dropdown-list {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.pv-dropdown-list li {
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--ink, #111);
  padding: 0.6rem 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
  user-select: none;
}
.pv-dropdown-list li:hover,
.pv-dropdown-list li.is-active {
  background: rgba(204,31,26,0.08);
  color: var(--ie-accent, #cc1f1a);
}
.pv-dropdown-list li.is-selected {
  background: rgba(204,31,26,0.12);
  color: var(--ie-accent, #cc1f1a);
  font-weight: 700;
}

/* Fila fecha + turno */
.pv-row-fecha {
  display: flex;
  gap: 0.65rem;
  margin-bottom: 1.25rem;
}
.pv-field-fecha { flex: 1; margin-bottom: 0; }

/* ── Date picker custom ── */
.pv-datepicker { position: relative; }
.pv-date-trigger {
  width: 100%;
  padding: 0.9rem 1rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  font-family: var(--sans);
  font-size: 0.95rem;
  background: #fff;
  color: var(--ink, #111);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  cursor: pointer;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.pv-date-trigger:hover { border-color: #cbd5e1; }
.pv-datepicker.is-open .pv-date-trigger {
  border-color: var(--ie-accent, #cc1f1a);
  box-shadow: 0 0 0 3px rgba(204,31,26,0.1);
}
.pv-date-value { color: #9ca3af; }
.pv-date-value.has-value { color: var(--ink, #111); }
.pv-date-icon { color: #6b6b6b; flex-shrink: 0; }
.pv-calendar {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 0;
  z-index: 50;
  width: 250px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.12);
  padding: 0.6rem;
  font-family: var(--sans);
}
.pv-calendar[hidden] { display: none; }
.pv-cal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.pv-cal-month {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ink, #111);
}
.pv-cal-month::first-letter { text-transform: uppercase; }
.pv-cal-nav {
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: var(--ink, #111);
  font-size: 1.3rem;
  line-height: 1;
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.12s;
}
.pv-cal-nav:hover { background: rgba(0,0,0,0.06); }
.pv-cal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  font-size: 0.7rem;
  font-weight: 600;
  color: #6b6b6b;
  text-transform: lowercase;
  margin-bottom: 0.25rem;
}
.pv-cal-weekdays span { padding: 0.35rem 0; }
.pv-cal-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.pv-cal-day {
  aspect-ratio: 1;
  border: none;
  background: transparent;
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ink, #111);
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}
.pv-cal-day:hover:not(:disabled) { background: rgba(204,31,26,0.08); color: var(--ie-accent, #cc1f1a); }
.pv-cal-day:disabled { color: #d1d5db; cursor: not-allowed; }
.pv-cal-day.is-other-month { color: #d1d5db; }
.pv-cal-day.is-today { font-weight: 700; border: 1.5px solid #e5e7eb; }
.pv-cal-day.is-selected {
  background: var(--ie-accent, #cc1f1a);
  color: #fff;
  font-weight: 700;
}
.pv-cal-day.is-selected:hover { background: var(--ie-accent, #cc1f1a); color: #fff; }
.pv-turno-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.4rem;
}
.pv-turno-btn {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--ink, #111);
  background: #fff;
  transition: border-color 0.18s, background 0.18s, color 0.18s;
  user-select: none;
}
.pv-turno-btn > span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.pv-turno-btn > span svg { flex-shrink: 0; }
.pv-turno-btn input { display: none; }
.pv-turno-btn:has(input:checked) {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #fff;
}
@media (max-width: 480px) {
  .pv-row-fecha { flex-direction: column; }
  .pv-turno-btn { flex: 1; }
}

.pv-submit {
  width: 100%;
  padding: 1rem 1.5rem;
  background: var(--ie-accent, #cc1f1a);
  color: #fff;
  border: none;
  border-radius: 100px;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.18s, transform 0.15s;
}
.pv-submit:hover {
  background: #a01530;
  transform: translateY(-1px);
}
.pv-submit:active { transform: translateY(0); }
.pv-form-foot {
  text-align: center;
  font-size: 0.74rem;
  color: var(--ink-mute, #6b6b6b);
  margin: 0.85rem 0 0;
  line-height: 1.5;
}
.wa-modal-box::-webkit-scrollbar { width: 6px; }
.wa-modal-box::-webkit-scrollbar-track { background: transparent; }
.wa-modal-box::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.18);
  border-radius: 100px;
  background-clip: padding-box;
}
.wa-modal-box::-webkit-scrollbar-thumb:hover {
  background: rgba(0,0,0,0.35);
  background-clip: padding-box;
}

/* Header centrado y limpio */
.wa-modal-header {
  text-align: center;
  padding: 2.5rem 2rem 1.5rem;
}
.wa-modal-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.85rem;
  border-radius: 100px;
  background: rgba(37,211,102,0.1);
  color: #128C7E;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.wa-modal-badge-icon {
  display: inline-flex;
  align-items: center;
  color: #25D366;
}
.wa-modal-title {
  font-size: clamp(1.55rem, 3.4vw, 2.15rem);
  font-weight: 800;
  color: var(--ink, #111);
  line-height: 1.15;
  margin: 0 0 0.6rem;
  letter-spacing: -0.015em;
}
.wa-modal-sub {
  font-size: 0.9rem;
  color: var(--ink-mute, #6b6b6b);
  line-height: 1.55;
  margin: 0 auto;
  max-width: 480px;
}

/* Grid de sucursales — 3 columnas (2 filas de 3) */
.wa-modal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.9rem;
  padding: 0 2rem 2.25rem;
}
@media (max-width: 820px) {
  .wa-modal-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .wa-modal-grid { grid-template-columns: 1fr; gap: 0.75rem; padding: 0 1.25rem 1.5rem; }
}

/* Card de sucursal — fichas blancas minimalistas */
.wa-suc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: none;
  border-radius: 14px;
  padding: 1.15rem 1.15rem 1.1rem;
  background: #fff;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 5px rgba(0,0,0,0.06), 0 10px 24px -8px rgba(0,0,0,0.14);
  transition: box-shadow 0.25s, transform 0.25s;
  cursor: pointer;
  overflow: hidden;
}
.wa-suc-card:hover {
  box-shadow: 0 4px 10px rgba(0,0,0,0.08), 0 20px 40px -10px rgba(0,0,0,0.22);
  transform: translateY(-3px);
}

.wa-suc-name {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ink, #111);
  margin: 0 0 0.85rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
  position: relative;
  z-index: 1;
}

.wa-suc-info {
  list-style: none;
  padding: 0;
  margin: 0 0 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  flex: 1;
  position: relative;
  z-index: 1;
}
.wa-suc-info li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-size: 0.78rem;
  color: var(--ink-soft, #555);
  line-height: 1.5;
}
.wa-suc-info li svg {
  flex-shrink: 0;
  margin-top: 0.2rem;
  color: var(--ink-mute, #9ca3af);
}
.wa-suc-info li span {
  min-width: 0;
  word-break: break-word;
}

/* CTA tipo pill verde */
.wa-suc-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  align-self: flex-start;
  padding: 0.55rem 1.1rem;
  border-radius: 100px;
  background: rgba(37,211,102,0.1);
  color: #128C7E;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  transition: background 0.25s, color 0.25s, transform 0.2s;
  position: relative;
  z-index: 1;
}
.wa-suc-cta svg {
  transition: transform 0.25s;
}
.wa-suc-card:hover .wa-suc-cta {
  background: #25D366;
  color: #fff;
}
.wa-suc-card:hover .wa-suc-cta svg {
  transform: scale(1.1);
}

/* Mobile: bottom sheet SOLO para el modal grande (selector con direcciones) */
@media (max-width: 640px) {
  .wa-modal-overlay {
    align-items: flex-end;
  }
  .wa-modal-box {
    width: 100%;
    max-height: 92vh;
    border-radius: 20px 20px 0 0;
    margin-top: auto;
  }
  .wa-modal-header { padding: 2rem 1.25rem 1.25rem; }
  .wa-modal-close  { top: 0.85rem; right: 0.85rem; }

  /* Modales compactos (Soporte/Asesoría): centrados verticalmente, no bottom sheet */
  .wa-modal-overlay:has(.wa-soporte-box) {
    align-items: center;
  }
  .wa-modal-box.wa-soporte-box {
    width: calc(100% - 2rem);
    max-height: 85vh;
    border-radius: 18px;
    margin: auto;
  }
}

/* ── Modal de Soporte: versión compacta del selector de sucursales ── */
.wa-soporte-box {
  width: min(560px, 94vw);
}

/* Grid 2 columnas en desktop, 1 columna en móviles muy pequeños */
.wa-soporte-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-auto-rows: 1fr; /* todas las filas igual de altas (la mas alta manda): tarjetas parejas con 1, 2 o 3 renglones */
  gap: 0.75rem;
  padding: 0 2rem 2.25rem;
}
@media (max-width: 600px) {
  .wa-soporte-grid {
    grid-template-columns: 1fr;
    padding: 0 1.25rem 1.5rem;
    gap: 0.6rem;
  }
}

/* Card compacta: solo nombre + ícono WhatsApp */
.wa-soporte-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 4.5rem; /* altura uniforme: nombres de 1 o 2 renglones se ven igual, sin saltos */
  gap: 0.85rem;
  padding: 1rem 1.1rem;
  background: #fff;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 5px rgba(0,0,0,0.06), 0 10px 24px -8px rgba(0,0,0,0.14);
  transition: box-shadow 0.25s, transform 0.25s;
}
.wa-soporte-card:hover {
  box-shadow: 0 4px 10px rgba(0,0,0,0.08), 0 20px 40px -10px rgba(0,0,0,0.22);
  transform: translateY(-2px);
}

.wa-soporte-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--ink, #111);
  line-height: 1.2;
  letter-spacing: -0.01em;
  flex: 1;
  min-width: 0;
}

.wa-soporte-icon {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(37,211,102,0.1);
  color: #128C7E;
  transition: background 0.25s, color 0.25s, transform 0.25s;
}
.wa-soporte-card:hover .wa-soporte-icon {
  background: #25D366;
  color: #fff;
  transform: scale(1.05);
}

/* ── Modo "Llamada telefónica": mismo modal compacto con paleta roja en vez de verde ── */
.tel-mode .wa-soporte-icon {
  background: rgba(204,31,26,0.1);
  color: var(--ie-accent, #cc1f1a);
}
.tel-mode .wa-soporte-card:hover .wa-soporte-icon {
  background: var(--ie-accent, #cc1f1a);
  color: #fff;
}
.tel-modal-badge {
  background: rgba(204,31,26,0.1) !important;
  color: var(--ie-accent, #cc1f1a) !important;
}
.tel-modal-badge .wa-modal-badge-icon {
  color: var(--ie-accent, #cc1f1a) !important;
}

/* =============================================================
   17b. FOOTER MINIMAL
   ============================================================= */
.footer-min {
  background: #0a0a0a;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
  -webkit-font-smoothing: antialiased;
}

.footer-min-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ie-accent);
  flex-shrink: 0;
}

.footer-min-name {
  color: #fff;
}

.footer-min-inst {
  color: #888;
  font-weight: 600;
  letter-spacing: 0.16em;
}

.footer-min-eur {
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.16em;
}
.footer-min-copy {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.35);
  margin-left: auto;
  letter-spacing: 0;
}

/* =============================================================
   17c. MODAL FINANCIAMIENTO
   ============================================================= */
.precio-meses-grupo {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
  vertical-align: middle;
}

.mas-info-btn {
  display: inline-flex;
  align-items: center;
  background: none;
  border: 1px solid rgba(255,255,255,0.45);
  color: #fff;
  font-family: var(--sans);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.1rem 0.35rem;
  border-radius: 20px;
  cursor: pointer;
  vertical-align: middle;
  white-space: nowrap;
  line-height: 1.6;
  transition: background 0.2s, border-color 0.2s;
}
.mas-info-btn:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.7); }

.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.modal-overlay.is-open { display: flex; }

.modal-box {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 0;
  padding-top: 0;
  position: relative;
}
.modal-box--padded {
  padding: 1.75rem 1.75rem 1.5rem;
  width: calc(100vw - 2rem);
  max-width: 420px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  box-shadow: var(--shadow-xl);
  animation: modal-in 0.28s var(--ease-out) both;
  /* Scrollbar minimalista — invisible por default, aparece sutilmente en hover */
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
  transition: scrollbar-color 0.3s ease;
}
.modal-box--padded:hover,
.modal-box--padded:focus-within {
  scrollbar-color: rgba(0,0,0,0.25) transparent;
}
.modal-box--padded::-webkit-scrollbar { width: 8px; }
.modal-box--padded::-webkit-scrollbar-track { background: transparent; }
.modal-box--padded::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
  transition: background 0.3s ease;
}
.modal-box--padded:hover::-webkit-scrollbar-thumb,
.modal-box--padded:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.18);
}
.modal-box--padded::-webkit-scrollbar-thumb:hover {
  background: rgba(0,0,0,0.32);
}

@keyframes modal-in {
  from { opacity: 0; transform: translateY(16px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}

.modal-close {
  position: absolute;
  top: 1rem; right: 1rem;
  background: var(--bg-2);
  border: none;
  border-radius: 50%;
  width: 32px; height: 32px;
  font-size: 0.85rem;
  cursor: pointer;
  color: var(--ink-mute);
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s;
}
.modal-close:hover { background: var(--bg-3); color: var(--ink); }

.modal-titulo {
  font-family: var(--sans);
  font-size: 1.25rem;
  padding-right: 2.5rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 0.25rem;
}
.modal-sub {
  font-size: 0.85rem;
  color: var(--ink-mute);
  margin: 0 0 1.25rem;
}

/* Utilidad: salto de línea visible solo en desktop (≥720px) */
.br-desktop { display: none; }
@media (min-width: 720px) {
  .br-desktop { display: inline; }
}

.modal-opciones {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
@media (max-width: 360px) {
  .modal-opciones { grid-template-columns: 1fr; }
}
.modal-opcion {
  border: 1.5px solid var(--line);
  border-radius: var(--radius-md);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  position: relative;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.modal-opcion:hover { border-color: var(--ie-accent-light); }
.modal-opcion.is-selected {
  border-color: var(--ie-accent);
  background: var(--ie-accent-bg);
  box-shadow: 0 0 0 3px rgba(204,31,26,0.12);
}
/* --highlight solo mantiene posición para el badge, el color lo da is-selected */
.modal-opcion-badge {
  position: absolute;
  top: -10px; left: 50%;
  transform: translateX(-50%);
  background: var(--ie-accent);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.15rem 0.5rem;
  border-radius: 20px;
  white-space: nowrap;
}
.modal-opcion-label {
  font-size: 0.60rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--ink-mute);
}
.modal-opcion-precio {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.1;
}
.modal-opcion-precio small {
  font-size: 0.65rem;
  font-weight: 600;
  vertical-align: middle;
  opacity: 0.65;
  letter-spacing: 0.05em;
}
.modal-opcion-desc {
  font-size: 0.72rem;
  color: var(--ink-mute);
  line-height: 1.3;
}
.modal-elige {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
  color: var(--ink-mute);
  margin: 0 0 1.2rem;
}
.modal-nota {
  font-size: 0.7rem;
  color: var(--ink-faint);
  margin: 0;
}

/* =============================================================
   18. RESPONSIVE — Mobile first
   ============================================================= */
@media (max-width: 480px) {
  :root { --section-pad: 1.5rem; }
  .hero-title    { font-size: clamp(1.65rem, 7.5vw, 2rem); overflow-wrap: break-word; }
  .hero-title em { white-space: normal; }
  /* Botones hero: ancho completo para no desbordar */
  .hero-ctas .btn { flex: 1 1 100%; justify-content: center; white-space: nowrap; }
  .calc-card     { padding: 1.25rem; }
  .calc-result   { padding: 1rem 0.6rem; }
  .result-num    { font-size: 1rem; }

  /* Precio card: padding reducido en móvil */
  .precio-card { padding: 1.5rem; }

  /* Stats: ajuste para pantallas pequeñas */
  .hero-stat-num    { font-size: 1.45rem; }
  .hero-stat-label  { font-size: 0.6rem; letter-spacing: 0.03em; }
  .hero-stat-sep    { height: 28px; }
}

/* ── Pantallas muy estrechas ≤ 360px ── */
@media (max-width: 360px) {
  /* Calc: reducir padding de la tarjeta y las celdas de resultado */
  .calc-card          { padding: 1rem; }
  .calc-result        { padding: 0.65rem 0.3rem; }
  .result-num         { font-size: 0.88rem; }
  .result-label       { font-size: 0.6rem; letter-spacing: 0.04em; }
  .calc-label         { font-size: 0.8rem; }
  .calc-val           { font-size: 1rem; }

  /* Hero stats: reducir más */
  .hero-stat-num      { font-size: 1.25rem; }
  .hero-stat-label    { font-size: 0.55rem; }
  .hero-stat-sep      { height: 24px; }

  /* Pricing: padding reducido */
  .precio-card        { padding: 1rem; }
  .precio-num         { font-size: 2.5rem; }

  /* Modal opciones: apilar en columna */
  .modal-opciones     { grid-template-columns: 1fr; }

  /* Precio desglose: reducir fuente */
  .precio-desglose-row { font-size: 0.78rem; }
  .precio-desglose-val { font-size: 0.78rem; }

  /* Botones largos: permitir salto de línea */
  .btn-full {
    white-space: normal;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    line-height: 1.35;
    padding-left: 1.1rem;
    padding-right: 1.1rem;
  }
}

@media (min-width: 540px) {
  .dif-grid           { grid-template-columns: repeat(2, 1fr); }
  .beneficios-grid    { grid-template-columns: repeat(2, 1fr); }
  .suc-grid           { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 720px) {
  .nav-links          { display: flex; }
  .nav-cta            { display: inline-flex; }
  .nav-hamburger      { display: none; }

  .hero-visual        { display: block; }

  .dif-grid           { grid-template-columns: repeat(2, 1fr); }
  .beneficios-grid    { grid-template-columns: repeat(2, 1fr); }

  .calc-grid          { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3.5rem; }
  .tab-body           { grid-template-columns: 220px 1fr; align-items: start; }
  .tab-temas          { grid-template-columns: repeat(2, 1fr); }

  .precio-content     { grid-template-columns: 1fr 1fr; }

  .faq-grid           { grid-template-columns: 1fr 1fr; }

  .footer-inner       { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 960px) {
  .dif-grid           { grid-template-columns: repeat(3, 1fr); }
  .beneficios-grid    { grid-template-columns: repeat(6, 1fr); }
  .beneficios-grid .ben-card { grid-column: span 2; }
  /* Si hay exactamente 5 cards, centrar las últimas 2 en la 2ª fila */
  .beneficios-grid .ben-card:nth-child(4):nth-last-child(2) { grid-column: 2 / span 2; }
  .beneficios-grid .ben-card:nth-child(5):nth-last-child(1) { grid-column: 4 / span 2; }
}

@media (min-width: 1280px) {
  .hero-inner         { padding-top: 3rem; padding-bottom: 3.5rem; }
  .hero-visual        { width: 440px; }
  .footer-inner       { grid-template-columns: 1.5fr 1fr; }
}

/* =============================================================
   19. REDUCED MOTION — Only for intrusive effects
   ============================================================= */
@media (prefers-reduced-motion: reduce) {
  /* Mesh animation — stop, keep visible */
  .hero-mesh          { animation: none; }
  /* Float badges — stop */
  .hero-float-badge   { animation: none; }
  /* Dashboard bar hover transitions stay (functional) */
}

/* ═══════════════════════════════════════════════════════════════════
   SECCIÓN PRECIO — Estilo hosting (3 cards iguales con ribbon)
   ═══════════════════════════════════════════════════════════════════ */
.precio--hosting {
  padding: 5rem 0 4rem;
  background: var(--bg-2, #f7f7f8);
  position: relative;
}

/* Header */
.ph-header {
  text-align: center;
  max-width: 660px;
  margin: 0 auto 3rem;
  padding: 0 1rem;
}
.ph-eyebrow {
  display: inline-block;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ie-accent, #cc1f1a);
  padding: 0.45rem 1.05rem;
  border: 1px solid rgba(204,31,26,0.25);
  background: rgba(204,31,26,0.04);
  border-radius: 100px;
  margin-bottom: 1.25rem;
}
.ph-title {
  font-family: var(--display, var(--sans));
  font-size: clamp(1.75rem, 4vw, 2.6rem);
  font-weight: 800; line-height: 1.18; color: #1a1a1a;
  margin: 0 0 0.85rem; letter-spacing: -0.012em;
}
.ph-title em { font-style: italic; font-weight: 700; color: var(--ie-accent, #cc1f1a); }
.ph-sub { font-size: 1rem; color: rgba(0,0,0,0.6); line-height: 1.55; margin: 0; }

/* Grid de 3 cards — central más ancha + cards laterales más cortas */
.ph-grid {
  display: grid;
  grid-template-columns: 1fr 1.12fr 1fr;
  gap: 1.25rem;
  max-width: 1140px;
  margin: 0 auto 3rem;
  padding: 0 1.5rem;
  align-items: start; /* cada card según su contenido — Semanal será naturalmente más alta */
}

/* Card base */
.ph-card {
  position: relative;
  background: #fff;
  border: 1.5px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  padding: 1.75rem 1.75rem 2rem;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.25s, transform 0.25s;
}
.ph-card:hover {
  box-shadow: 0 14px 32px -12px rgba(0,0,0,0.15);
  transform: translateY(-3px);
}

/* Side cards: levemente más compactas — alto medio entre hero y muy cortas */
.ph-card:not(.ph-card--hero) {
  padding: 2rem 1.65rem 2.2rem;
}
.ph-card:not(.ph-card--hero) .ph-card-head { margin-bottom: 1.4rem; }
.ph-card:not(.ph-card--hero) .ph-card-name { font-size: 1.3rem; }
.ph-card:not(.ph-card--hero) .ph-price-amount { font-size: 2.4rem; }
.ph-card:not(.ph-card--hero) .ph-card-price { margin-bottom: 1.4rem; }
.ph-card:not(.ph-card--hero) .ph-card-fineprint {
  margin-bottom: 1.4rem;
  padding-bottom: 1.4rem;
}
.ph-card:not(.ph-card--hero) .ph-features li {
  font-size: 0.85rem;
  padding: 0.42rem 0;
}

/* Card HERO con ribbon — elevada y con más presencia */
.ph-card--hero {
  border: 2px solid var(--ie-accent, #cc1f1a);
  padding: 3.7rem 1.95rem 2.25rem; /* hueco para ribbon + un poco más de padding */
  box-shadow:
    0 28px 56px -18px rgba(204,31,26,0.35),
    0 0 0 6px rgba(204,31,26,0.04);
  transform: translateY(-1.25rem);
  z-index: 2;
  background: linear-gradient(180deg, #fff 0%, #fff 60%, #fff8f8 100%);
}
.ph-card--hero:hover {
  transform: translateY(-1.65rem);
  box-shadow:
    0 36px 68px -18px rgba(204,31,26,0.45),
    0 0 0 6px rgba(204,31,26,0.06);
}
/* Precio más grande en el hero */
.ph-card--hero .ph-price-amount { font-size: 3rem; color: var(--ie-accent, #cc1f1a); }
.ph-card--hero .ph-price-currency { color: var(--ie-accent, #cc1f1a); opacity: 0.85; }
.ph-card--hero .ph-card-name { font-size: 1.55rem; color: var(--ie-accent, #cc1f1a); }

/* Ribbon "MÁS POPULAR" arriba del hero */
.ph-card-ribbon {
  position: absolute;
  top: 0; left: -2px; right: -2px;
  background: linear-gradient(135deg, var(--ie-accent, #cc1f1a) 0%, #8b0000 100%);
  color: #fff;
  font-size: 0.78rem; font-weight: 800;
  letter-spacing: 0.16em; text-transform: uppercase;
  text-align: center;
  padding: 0.7rem 1rem;
  border-radius: 14px 14px 0 0;
}

/* Badge de descuento top-right */
.ph-discount {
  position: absolute;
  top: 1rem; right: 1rem;
  background: rgba(204,31,26,0.1);
  color: var(--ie-accent, #cc1f1a);
  font-size: 0.72rem; font-weight: 800;
  padding: 0.3rem 0.65rem;
  border-radius: 100px;
  letter-spacing: 0.02em;
}
.ph-card--hero .ph-discount {
  top: 3.6rem; /* debajo del ribbon */
}

/* Card head */
.ph-card-head {
  margin-bottom: 1.5rem;
}
.ph-card-name {
  font-family: var(--display, var(--sans));
  font-size: 1.4rem;
  font-weight: 800;
  color: #1a1a1a;
  margin: 0 0 0.3rem;
  letter-spacing: -0.01em;
}
.ph-card-tagline {
  font-size: 0.88rem;
  color: rgba(0,0,0,0.55);
  margin: 0;
  line-height: 1.4;
}

/* Bloque de precio */
.ph-card-price {
  margin-bottom: 1.5rem;
}
.ph-price-strike {
  display: block;
  font-size: 0.95rem;
  color: rgba(0,0,0,0.4);
  text-decoration: line-through;
  margin-bottom: 0.2rem;
}
.ph-price-main {
  display: flex;
  align-items: baseline;
  gap: 0.15rem;
  color: #1a1a1a;
  margin-bottom: 0.4rem;
  font-variant-numeric: tabular-nums;
}
.ph-price-currency {
  font-size: 1.2rem;
  font-weight: 700;
  color: rgba(0,0,0,0.7);
}
.ph-price-amount {
  font-size: 2.6rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}
.ph-price-unit {
  font-size: 0.95rem;
  color: rgba(0,0,0,0.5);
  font-weight: 500;
  margin-left: 0.1rem;
}
/* Default (cards laterales): ícono + texto en UN solo renglón */
.ph-price-bonus {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  white-space: nowrap;
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(0,0,0,0.5);
  margin-top: 0.3rem;
  letter-spacing: 0.02em;
}
.ph-price-bonus svg { flex-shrink: 0; }

/* Hero card override: chip pill verde con flecha */
.ph-card--hero .ph-price-bonus {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.7rem;
  padding: 0.5rem 0.95rem;
  background: rgba(22,163,74,0.08);
  border: 1px solid rgba(22,163,74,0.3);
  border-radius: 100px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #15803d;
  line-height: 1.1;
  letter-spacing: 0.01em;
}
.ph-card--hero .ph-price-bonus svg {
  flex-shrink: 0;
  color: #16a34a;
}
.ph-card--hero .ph-price-bonus strong {
  font-weight: 800;
  color: #15803d;
}

/* CTA */
.ph-cta {
  display: block;
  width: 100%;
  padding: 0.9rem 1.5rem;
  border-radius: 10px;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s;
  box-sizing: border-box;
  margin-bottom: 1rem;
  border: 1.5px solid;
}
.ph-cta--ghost {
  background: #fff;
  color: var(--ie-accent, #cc1f1a);
  border-color: var(--ie-accent, #cc1f1a);
}
.ph-cta--ghost:hover {
  background: rgba(204,31,26,0.05);
}
.ph-cta--primary {
  background: var(--ie-accent, #cc1f1a);
  color: #fff;
  border-color: var(--ie-accent, #cc1f1a);
  box-shadow: 0 10px 22px -8px rgba(204,31,26,0.5);
}
.ph-cta--primary:hover {
  background: #8b0000;
  border-color: #8b0000;
  box-shadow: 0 14px 28px -8px rgba(204,31,26,0.6);
}

/* Fine print debajo del CTA */
.ph-card-fineprint {
  font-size: 0.78rem;
  color: rgba(0,0,0,0.55);
  line-height: 1.45;
  margin: 0 0 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
.ph-card-fineprint strong { color: rgba(0,0,0,0.85); font-weight: 700; }

/* Breakdown estructurado para el hero (Semanal) */
.ph-card-breakdown {
  margin: 0 0 1.5rem;
  padding: 0.85rem 1rem 1.1rem;
  background: rgba(204,31,26,0.04);
  border: 1px solid rgba(204,31,26,0.12);
  border-radius: 12px;
}
.phb-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.35rem 0;
  font-size: 0.85rem;
  color: rgba(0,0,0,0.65);
}
.phb-row + .phb-row { border-top: 1px solid rgba(204,31,26,0.1); }
.phb-label { font-weight: 500; letter-spacing: 0.01em; }
.phb-value {
  font-weight: 600;
  color: #1a1a1a;
  font-variant-numeric: tabular-nums;
}
.phb-value strong { font-weight: 800; color: var(--ie-accent, #cc1f1a); }
.phb-value small { font-weight: 500; color: rgba(0,0,0,0.5); font-size: 0.78rem; }

.phb-row--total {
  margin-top: 0.2rem;
  padding-top: 0.55rem !important;
  border-top: 1.5px solid rgba(204,31,26,0.22) !important;
}
.phb-row--total .phb-label { color: rgba(0,0,0,0.8); font-weight: 700; }
.phb-row--total .phb-value strong { font-size: 1.05rem; }

.phb-note {
  margin: 0.15rem 0 0.35rem;
  font-size: 0.74rem;
  color: rgba(0,0,0,0.6);
  line-height: 1.4;
  padding-bottom: 0.3rem;
  border-bottom: 1px dashed rgba(204,31,26,0.15);
}
.phb-note strong { color: rgba(0,0,0,0.85); font-weight: 700; }

/* Lista de features */
.ph-features {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ph-features li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.4rem 0;
  font-size: 0.88rem;
  color: rgba(0,0,0,0.85);
  line-height: 1.4;
}
.ph-features li svg {
  flex-shrink: 0;
  margin-top: 0.15rem;
  color: var(--ie-accent, #cc1f1a);
}
.ph-features li strong { font-weight: 700; color: #1a1a1a; }

/* Pie con garantía + apartar */
.ph-foot {
  display: flex; align-items: center; justify-content: center;
  gap: 0.7rem; flex-wrap: wrap;
  margin-bottom: 1rem;
}
.ph-foot-link {
  background: none; border: 0; cursor: pointer;
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.4rem 0.55rem;
  font-family: var(--sans);
  font-size: 0.84rem; font-weight: 500;
  color: rgba(0,0,0,0.6);
  transition: color 0.2s;
  text-decoration: none;
}
.ph-foot-link--warranty strong { color: var(--ie-accent, #cc1f1a); font-weight: 700; }
.ph-foot-link--warranty svg { color: var(--ie-accent, #cc1f1a); }
.ph-foot-link:not(.ph-foot-link--warranty) { text-decoration: underline; text-underline-offset: 3px; }
.ph-foot-link:hover { color: #1a1a1a; }
.ph-foot-sep { color: rgba(0,0,0,0.25); user-select: none; }
.ph-foot-vermas { text-decoration: underline; text-underline-offset: 3px; color: var(--ie-accent, #cc1f1a); font-weight: 700; }
.ph-foot-link--warranty:hover .ph-foot-vermas { color: #8b0000; }

/* Deadline */
.ph-deadline {
  text-align: center;
  margin: 0;
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-size: 0.78rem; font-weight: 500;
  color: rgba(0,0,0,0.5);
  letter-spacing: 0.02em;
  width: 100%; justify-content: center;
}
.ph-deadline strong,
.ph-deadline .deadline-date { color: rgba(0,0,0,0.82); font-weight: 700; }

/* Responsive — mobile: stack vertical clásico (hero arriba) */
@media (max-width: 980px) {
  .precio--hosting { padding: 2.5rem 0; } /* menos espacio entre bloques en móvil */
  .ph-grid {
    grid-template-columns: 1fr;
    max-width: 520px;
    gap: 1rem;
    padding: 0 0.75rem; /* margen lateral leve: fichas anchas pero sin pegarse a la orilla */
  }
  .ph-card--hero {
    order: -1; /* hero arriba en mobile */
    transform: none;
    /* Sombra roja más sutil en mobile */
    box-shadow:
      0 12px 28px -14px rgba(204,31,26,0.15),
      0 0 0 3px rgba(204,31,26,0.03);
  }
  .ph-card--hero:hover {
    transform: none;
    box-shadow:
      0 14px 32px -14px rgba(204,31,26,0.18),
      0 0 0 3px rgba(204,31,26,0.04);
  }
  .ph-foot { flex-direction: column; gap: 0.3rem; }
  .ph-foot-sep { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   SECCIÓN MATERIALES — Ejemplos de kits (barbería)
   ═══════════════════════════════════════════════════════════════════ */
.mat-ejemplos {
  margin: 2.5rem auto;
  max-width: 1000px;
  padding: 0 1.5rem;
}
.mat-ejemplos-head {
  text-align: center;
  margin-bottom: 2rem;
}
.mat-ejemplos-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ie-accent, #cc1f1a);
  margin-bottom: 1rem;
}
.mat-ejemplos-title {
  font-family: var(--display, var(--sans));
  font-size: clamp(1.3rem, 2.4vw, 1.7rem);
  font-weight: 800;
  color: #1a1a1a;
  line-height: 1.25;
  margin: 0;
  letter-spacing: -0.005em;
}

.mat-kits-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.mat-kit-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  padding: 1.35rem 1.25rem 1.5rem;
  background: #fff;
  border: 1.5px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  transition: transform 0.25s var(--ease-out, ease-out), box-shadow 0.25s var(--ease-out, ease-out), border-color 0.25s;
}
.mat-kit-card:hover {
  transform: translateY(-3px);
  border-color: rgba(204,31,26,0.25);
}
.mat-kit-name {
  font-size: 0.95rem;
  font-weight: 800;
  color: #1a1a1a;
  letter-spacing: -0.005em;
  line-height: 1.25;
}
.mat-kit-desc {
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(0,0,0,0.55);
  line-height: 1.4;
  flex: 1;
}
.mat-kit-price {
  margin-top: 0.25rem;
  font-size: 1.55rem;
  font-weight: 800;
  color: var(--ie-accent, #cc1f1a);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.mat-kit-price small {
  font-size: 0.65rem;
  font-weight: 600;
  color: rgba(204,31,26,0.6);
  letter-spacing: 0.08em;
  margin-left: 0.2rem;
}

.mat-ejemplos-note {
  text-align: center;
  font-size: 0.88rem;
  color: rgba(0,0,0,0.6);
  line-height: 1.55;
  margin: 0;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.mat-ejemplos-note strong {
  color: var(--ie-accent, #cc1f1a);
  font-weight: 700;
}

/* Mobile: slider horizontal (ahorra espacio vertical) */
@media (max-width: 720px) {
  .mat-kits-grid {
    display: flex;
    grid-template-columns: none;
    gap: 0.85rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin-left: -0.75rem;
    padding-top: 0.75rem;
    padding-bottom: 0.85rem;
    margin-bottom: 1.25rem;
    scrollbar-width: none;
  }
  .mat-kits-grid::-webkit-scrollbar { display: none; }
  .mat-kit-card {
    flex: 0 0 70%;
    max-width: 250px;
    scroll-snap-align: start;
    padding: 1.15rem 1rem 1.25rem;
  }
  .mat-kit-name { font-size: 0.88rem; }
  .mat-kit-desc { font-size: 0.74rem; }
  .mat-kit-price { font-size: 1.4rem; }
}
@media (max-width: 420px) {
  .mat-kit-card { flex-basis: 78%; }
}
