/* Layout exclusivo de precios. La apariencia de cabecera, textos, secciones,
   tarjetas y botones procede de assets/css/style.css, sin redefinirlos. */
.prices-included {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--gap-layout);
  align-items: center;
}
.prices-included-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap-component);
}
.prices-included-list li {
  display: flex;
  gap: var(--space-2);
  align-items: center;
}
.prices-included-list i {
  color: var(--color-brand);
  font-size: var(--font-size-lg);
}
.prices-billing {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-block: var(--space-6) var(--space-8);
}
.prices-billing__controls { display: flex; align-items: center; justify-content: center; gap: var(--space-2); max-width: 100%; }
.prices-billing .prices-billing__saving {
  margin: var(--space-1) 0 0;
  font-size: calc(var(--font-size-xs) * .875);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-base);
  text-align: center;
  color: var(--color-brand);
}
.prices-billing__label,
.prices-billing__switch {
  appearance: none;
  flex: 0 0 auto;
  min-height: 2.75rem;
  padding: var(--space-2);
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  font: inherit;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.prices-billing__label {
  transition: color var(--duration-base) var(--ease-standard);
}
.prices-billing__label[aria-pressed="true"] { color: var(--color-text); }
.prices-billing__switch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  padding-inline: 0;
  touch-action: pan-y;
  user-select: none;
}
.prices-billing__switch > span {
  display: block;
  width: 70px;
  height: 2rem;
  padding: 3px;
  border: 1px solid var(--color-brand);
  border-radius: var(--radius-pill);
  background: var(--surface-raised);
  transition: background-color var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);
}
.prices-billing__switch > span::before {
  content: "";
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: var(--color-brand);
  transform: translateX(var(--billing-thumb-offset, 0px));
  transition: transform var(--duration-slow) var(--ease-standard);
}
.prices-billing__switch[aria-checked="true"] > span {
  background: color-mix(in srgb, var(--color-brand) 4%, white);
}
.prices-billing__switch[aria-checked="true"] > span::before { transform: translateX(var(--billing-thumb-offset, calc(70px - 8px - 1.5rem))); }
.prices-billing__switch:active:not(.is-dragging) > span::before { transform: scale(.94); }
.prices-billing__switch[aria-checked="true"]:active:not(.is-dragging) > span::before { transform: translateX(calc(70px - 8px - 1.5rem)) scale(.94); }
.prices-billing__switch.is-dragging { cursor: grabbing; }
.prices-billing__switch.is-dragging > span::before { transition: none; }
.plan-card [data-price] { font-variant-numeric: tabular-nums; }
.plan-card .price { flex-wrap: wrap; }
.plan-card .price > strong,
.plan-card .price > span { flex-shrink: 0; white-space: nowrap; }
.plan-card .price .prices-fraction { font-size: .6em; }
.plan-card [data-billing-note]:not([hidden]) { display: grid; }
.prices-billing-note__copy,
.plan-card [data-billing-note]::before,
.plan-card [data-billing-note]::after { grid-area: 1 / 1; }
.plan-card [data-billing-note]::before,
.plan-card [data-billing-note]::after {
  visibility: hidden;
  pointer-events: none;
}
.plan-card [data-billing-note]::before { content: attr(data-current-note); }
.plan-card [data-billing-note]::after { content: attr(data-alternate-note); }
.plan-card [data-price].number-wheel { background: none; white-space: pre; }
.plan-card [data-price] .number-wheel__strip { transition-duration: 300ms; }
.plan-card [data-price] .number-wheel__strip > span,
.plan-card [data-price] .number-wheel__separator {
  background-image: var(--gradient-brand);
  background-size: 400% 100%;
  background-position: var(--price-gradient-position) 50%;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.prices-billing button:focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 3px;
}
@media (hover: hover) {
  .prices-billing__label:hover { color: var(--color-brand); }
  .prices-billing__switch:hover > span { border-color: var(--color-brand); }
}
@media (prefers-reduced-motion: reduce) {
  .prices-billing__label,
  .prices-billing__switch > span,
  .prices-billing__switch > span::before { transition: none; }
}
.prices-section--single > .container > .section-heading,
.prices-section--plans > .container > .section-heading {
  margin-inline: auto;
  text-align: center;
}
[data-pricing-component] > .container > .section-heading h1 {
  margin-bottom: 0;
}
[data-pricing-component] > .container > .section-heading .section-intro {
  margin-top: var(--space-2);
  margin-bottom: 0;
}
[data-pricing-component] > .container > .section-heading .section-intro + .section-intro {
  margin-top: 0;
}
.prices-single {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  align-items: start;
  gap: var(--gap-layout);
  max-width: var(--container-content);
  margin-inline: auto;
}
.prices-single > .plan-card {
  width: 100%;
  max-width: 30rem;
  text-align: center;
}
.prices-single .plan-card .price { justify-content: center; flex-wrap: wrap; }
.prices-single .plan-card > .button { align-self: center; max-width: 100%; }
.prices-single .plan-description { min-height: 0; }
.prices-single-features ul { display: grid; gap: var(--space-5); }
.prices-single-features li { display: flex; align-items: baseline; gap: var(--space-3); }
.prices-single-features li i { color: var(--color-brand); }
.prices-single-features strong { display: block; margin-bottom: var(--space-2); }
/* Una tabla mantiene alineadas las tarjetas y cada prestación. */
.prices-comparison-scroll {
  position: relative;
  overflow-x: auto;
  max-width: 100%;
  isolation: isolate;
  overscroll-behavior-inline: contain;
}
.prices-comparison {
  width: 100%;
  min-width: 1140px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}
.prices-comparison th, .prices-comparison td {
  padding: var(--space-4);
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
  text-align: center;
  font-weight: var(--font-weight-regular);
  background: var(--surface-raised);
}
.prices-comparison tr > :first-child {
  width: 28%;
  text-align: left;
}
.prices-plan-options {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap-component);
  margin-bottom: var(--space-7);
}
.prices-plan-options .plan-card {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  text-align: center;
}
.prices-plan-options .plan-card .price { justify-content: center; }
.prices-group-label {
  display: block;
  position: sticky;
  left: var(--space-4);
  width: fit-content;
  max-width: calc(100vw - var(--container-gutter) * 2 - var(--space-6));
}
@media (max-width: 767px) {
  .prices-billing {
    margin: var(--space-5) auto var(--space-6);
  }
  .prices-plan-options {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    padding: var(--space-5) var(--space-2) var(--space-5);
  }
  .prices-plan-options .plan-card {
    flex: 0 0 calc(100% - var(--space-4));
    scroll-snap-align: start;
    padding: var(--space-5);
  }
  .prices-plan-options .plan-description { min-height: 0; }
}
.plan-card { position: relative; }
.prices-featured {
  display: none;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: max-content;
  max-width: calc(100% - var(--space-6));
  margin: 0;
  padding: var(--space-2) var(--space-4);
  background: var(--color-brand);
  color: var(--color-text-inverse);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-semibold);
}
.plan-card[data-featured="true"] { border-color: var(--color-brand); }
.plan-card[data-featured="true"] .prices-featured { display: block; }
.plan-description { margin-top: 0; }
.plan-card > [aria-live] { padding-block: var(--space-4); }
.plan-card > .button { margin-top: auto; }
.plan-card > .button > .sr-only { position: absolute; }
.plan-card > .button:disabled { cursor: default; color: var(--color-text-muted); }
.plan-card > .button:disabled:hover { transform: none; background: var(--surface-raised); border-color: var(--color-border); }
.prices-pending-price { min-height: var(--space-8); align-items: center; font-size: var(--font-size-xl); }
.prices-comparison .is-featured { background: var(--surface-raised); }
.prices-comparison .prices-column-labels th {
  padding-block: var(--space-5);
  font-weight: var(--font-weight-semibold);
}
.prices-comparison .prices-column-labels .is-featured { color: var(--color-brand); }
.prices-comparison .prices-group th {
  background: var(--surface-raised);
  font-weight: var(--font-weight-semibold);
  color: var(--color-brand);
  padding-block: var(--space-5);
}
.prices-group i { margin-right: var(--space-2); }
.prices-text-value { display: inline-block; max-width: 100%; font-size: 0.875rem; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; white-space: normal; }
.prices-included-value { display: inline-flex; align-items: center; gap: var(--space-2); }
.prices-included-value i { color: var(--color-brand); font-size: var(--font-size-lg); }
.prices-comparison :is(.prices-included-value, .prices-excluded-value) {
  position: relative;
  gap: 0;
}
.prices-excluded-value {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-text-muted);
}
.prices-excluded-value i { font-size: var(--font-size-lg); }
.prices-legend {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-5);
  margin-block: var(--space-5);
  font-size: var(--font-size-sm);
}
.prices-pending { color: var(--color-text-muted); }
.prices-scroll-hint { color: var(--color-text-muted); }
@media (min-width: 1200px) { .prices-scroll-hint { display: none; } }
@media (max-width: 1199px) {
  .prices-comparison { min-width: 1080px; }
  .prices-comparison tr > :first-child { width: 230px; }
  .prices-comparison tbody tr:not(.prices-group) > th,
  .prices-column-labels > th:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    border-right: 1px solid var(--color-border);
  }
}
@media (max-width: 575px) {
  .prices-comparison {
    width: 100%;
    min-width: 480px;
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
  }
  .prices-comparison tr > :first-child { width: 180px; }
  .prices-comparison th,
  .prices-comparison td {
    padding: var(--space-3) var(--space-2);
  }
  .prices-comparison tbody tr:not(.prices-group) > th {
    font-size: var(--font-size-base);
    padding-inline: var(--space-2);
  }
  .prices-comparison .prices-column-labels th,
  .prices-comparison .prices-group th { padding-block: var(--space-3); }
  .prices-group-label { left: var(--space-2); }
}
@media (max-width: 997px) {
  .prices-single { grid-template-columns: 1fr; }
  .prices-included { grid-template-columns: 1fr; }
  .prices-included-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prices-benefits, .prices-launch { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .prices-included-list { grid-template-columns: 1fr; }
}

/* Variante para un solo plan: cabe entera, sin desplazamiento horizontal. */
.prices-single-detail {
  position: relative;
  max-width: var(--container-narrow);
  margin: var(--space-8) auto 0;
}
.prices-single-detail > .section-heading {
  text-align: center;
}
.prices-comparison--single {
  width: 100%;
  min-width: 0;
}
.prices-comparison--single tr > :first-child { width: 75%; }
.prices-comparison--single tbody tr:not(.prices-group) > th,
.prices-comparison--single .prices-column-labels > th:first-child {
  position: static;
  border-right: 0;
}
.prices-comparison--single .prices-group-label {
  position: static;
  max-width: 100%;
}

/* Separate Gutenberg blocks keep the same spacing and heading hierarchy. */
.prices-section--table .section-heading { text-align: center; margin-inline: auto; }
.prices-section--table .prices-single-detail { margin-top: 0; }
.prices-section--table .prices-single-detail .section-heading h2 { font-size: var(--font-size-xl); }
.prices-plan-options { grid-template-columns: repeat(var(--prices-plan-count, 3), minmax(0, 1fr)); }
.prices-comparison { min-width: calc(180px + var(--prices-column-count, 3) * 280px); }
@media (max-width: 575px) {
 .prices-comparison { min-width: calc(180px + var(--prices-column-count, 3) * 100px); }
}
.prices-comparison--single { min-width: 0; }
