/* ──────────────────────────────────────────────────────────────────────────
   "Campus de Verano" – modular single product layout
   Loaded only on products with the "campus_layout_enabled" ACF field active.
   Reuses .uec-historia-hero*, .uec-product-page__kicker / __section-title and
   .uec-btn from the shared design system; this file only adds the sections
   that are specific to the Campus layout (intro, calendar, prices, form,
   flyer) plus the Gravity Forms restyle for the reservation card.
   ────────────────────────────────────────────────────────────────────────── */

.uec-campus-product__content {
  background: var(--uec-light-100);
}

.uec-campus-product__content > section {
  padding-block: var(--section-padding);
}

.uec-campus-product__content > section + section {
  border-top: 1px solid var(--uec-light-300);
}

/* Etiquetas verdes (kickers) en el tono 500 dentro del layout Campus */
.uec-campus-product .uec-product-page__kicker {
  color: var(--uec-green-500);
}

/* Títulos de sección un poco más grandes en este layout */
.uec-campus-product .uec-product-page__section-title {
  font-size: clamp(2rem, 3.4vw, 3rem);
}

/* ── Hero – CTA row ───────────────────────────────────────────────────────── */
.uec-campus-hero__cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

/* ── Introducción ─────────────────────────────────────────────────────────── */
.uec-campus-intro {
  background: var(--uec-white);
}

.uec-campus-intro__top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}

.uec-campus-intro__title {
  margin: 0;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: clamp(2rem, 3.4vw, 3rem);
  font-weight: 600;
  letter-spacing: 0.0625rem;
  line-height: 1.05;
  text-transform: uppercase;
}

.uec-campus-intro__title-hl {
  color: var(--uec-green-500);
}

.uec-campus-intro__lead {
  margin: 0 0 0.875rem;
  color: var(--uec-dark-500);
  font-size: var(--text-lg);
  line-height: 1.7;
}

.uec-campus-intro__lead strong {
  color: var(--uec-black);
  font-weight: 600;
}

.uec-campus-intro__text {
  margin: 0;
  color: var(--uec-dark-500);
  font-size: var(--text-md);
  line-height: 1.75;
}

.uec-campus-intro__text p,
.uec-campus-intro__lead p {
  margin: 0 0 0.75rem;
}

.uec-campus-intro__text p:last-child,
.uec-campus-intro__lead p:last-child {
  margin-bottom: 0;
}

/* ── Calendario ───────────────────────────────────────────────────────────── */
.uec-campus-calendar {
  background: var(--uec-light-100);
}

.uec-campus-weeks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin-top: 1rem;
}

.uec-campus-week-card {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  padding: 1.25rem;
  border: 1px solid var(--uec-light-300);
  border-radius: var(--radius-md);
  background: var(--uec-white);
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.uec-campus-week-card:hover {
  border-color: rgb(27 138 78 / 30%);
  box-shadow: var(--shadow-sm);
}

.uec-campus-week-card__num {
  flex-shrink: 0;
  width: 2.75rem;
  color: var(--uec-light-300);
  font-family: var(--font-family-heading);
  font-size: 2rem;
  line-height: 1;
  letter-spacing: -0.0625rem;
}

.uec-campus-week-card__label {
  margin: 0 0 0.25rem;
  color: var(--uec-green-500);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.09375rem;
  text-transform: uppercase;
}

.uec-campus-week-card__dates {
  margin: 0 0 0.375rem;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: var(--text-sm);
  letter-spacing: 0.01875rem;
  line-height: 1.2;
  text-transform: uppercase;
}

.uec-campus-week-card__schedule {
  margin: 0;
  color: var(--uec-dark-500);
  font-size: var(--text-xs);
}

/* Negritas con *asteriscos* en los textos del calendario */
.uec-campus-week-card strong {
  color: var(--uec-black);
  font-weight: 600;
}

/* ── Precios ──────────────────────────────────────────────────────────────── */
.uec-campus-prices {
  background: var(--uec-light-200);
}

.uec-campus-prices__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-top: 1rem;
  margin-bottom: 2rem;
}

.uec-campus-price-card {
  padding: 1.75rem 1.5rem;
  border: 1px solid var(--uec-light-300);
  border-radius: var(--radius-lg);
  background: var(--uec-white);
}

.uec-campus-price-card--featured {
  border-color: var(--uec-black);
  background: var(--uec-black);
}

.uec-campus-price-card__type {
  margin: 0 0 0.5rem;
  color: var(--uec-green-500);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.09375rem;
  text-transform: uppercase;
}

.uec-campus-price-card--featured .uec-campus-price-card__type {
  color: var(--uec-green-400);
}

.uec-campus-price-card__name {
  margin: 0 0 0.25rem;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: var(--text-xl);
  letter-spacing: 0.03125rem;
  text-transform: uppercase;
}

.uec-campus-price-card--featured .uec-campus-price-card__name {
  color: var(--uec-white);
}

.uec-campus-price-card__amount {
  margin: 0 0 0.25rem;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: var(--text-5xl);
  letter-spacing: -0.0625rem;
  line-height: 1;
}

.uec-campus-price-card__amount sup {
  margin-left: 0.125rem;
  font-size: 1.5rem;
  vertical-align: super;
}

.uec-campus-price-card--featured .uec-campus-price-card__amount {
  color: var(--uec-green-400);
}

.uec-campus-price-card__note {
  margin: 0;
  color: var(--uec-dark-300);
  font-size: var(--text-2xs);
  line-height: 1.5;
}

.uec-campus-price-card--featured .uec-campus-price-card__note {
  color: var(--uec-dark-200);
}

.uec-campus-discounts {
  padding: 1.5rem;
  border: 1px solid var(--uec-light-300);
  border-radius: var(--radius-lg);
  background: var(--uec-white);
}

.uec-campus-discounts__title {
  margin: 0 0 1rem;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: var(--text-lg);
  letter-spacing: 0.03125rem;
  text-transform: uppercase;
}

.uec-campus-discounts__list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.uec-campus-discounts__list li {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.uec-campus-discounts__pct {
  min-width: 2.75rem;
  color: var(--uec-green-500);
  font-family: var(--font-family-heading);
  font-size: var(--text-lg);
}

.uec-campus-discounts__desc {
  color: var(--uec-dark-500);
  font-size: var(--text-sm);
}

.uec-campus-discounts__note {
  margin: 0.75rem 0 0;
  color: var(--uec-dark-300);
  font-size: var(--text-2xs);
  font-style: italic;
}

/* ── Reserva / formulario ─────────────────────────────────────────────────── */
.uec-campus-form {
  background: var(--uec-light-100);
  scroll-margin-top: calc(var(--site-header-height) + var(--site-header-offset) + 1.5rem);
}

.uec-campus-form__layout {
  display: grid;
  grid-template-columns: 1fr 26rem;
  gap: 4rem;
  align-items: start;
}

.uec-campus-form__title {
  margin: 0 0 1.25rem;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 600;
  letter-spacing: 0.0625rem;
  line-height: 1.05;
  text-transform: uppercase;
}

.uec-campus-form__title-hl {
  color: var(--uec-green-500);
}

.uec-campus-form__text {
  margin: 0 0 0.625rem;
  color: var(--uec-dark-500);
  font-size: var(--text-sm);
  line-height: 1.75;
}

.uec-campus-form__text p {
  margin: 0 0 0.625rem;
}

.uec-campus-form__text p:last-child {
  margin-bottom: 0;
}

.uec-campus-form__includes {
  margin-top: 2rem;
}

.uec-campus-form__includes-title {
  margin: 0 0 1rem;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: var(--text-lg);
  letter-spacing: 0.03125rem;
  text-transform: uppercase;
}

.uec-campus-form__includes-list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.uec-campus-form__includes-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  color: var(--uec-dark-500);
  font-size: var(--text-sm);
  line-height: 1.5;
}

.uec-campus-form__includes-dot {
  flex-shrink: 0;
  width: 0.375rem;
  height: 0.375rem;
  margin-top: 0.375rem;
  border-radius: 50%;
  background: var(--uec-green-500);
}

.uec-campus-form__contact {
  margin-top: 2rem;
  padding: 1.25rem;
  border: 1px solid rgb(27 138 78 / 20%);
  border-radius: 0.75rem;
  background: rgb(27 138 78 / 8%);
}

.uec-campus-form__contact-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.375rem;
  color: var(--uec-green-500);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.3;
}

.uec-campus-form__contact-icon {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: rgb(27 138 78 / 12%);
  color: var(--uec-green-500);
  font-size: 0.8125rem;
  line-height: 1;
}

.uec-campus-form__contact-text {
  color: var(--uec-dark-500);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.uec-campus-form__contact-text p {
  margin: 0 0 0.5rem;
}

.uec-campus-form__contact-text p:last-child {
  margin-bottom: 0;
}

.uec-campus-form__contact-text a {
  color: var(--uec-green-500);
}

.uec-campus-form__contact-text strong {
  color: var(--uec-black);
  font-weight: 600;
}

.uec-campus-form__card {
  position: sticky;
  top: calc(var(--site-header-height) + var(--site-header-offset) + 1.5rem);
  padding: 2rem;
  border: 1px solid var(--uec-light-300);
  border-radius: var(--radius-xl);
  background: var(--uec-white);
  box-shadow: 0 16px 48px rgb(9 9 11 / 6%);
}

/* Cabecera de la cajita (Inscripción / nombre del producto) */
.uec-campus-form__card-head {
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--uec-light-300);
}

.uec-campus-form__card-title {
  margin: 0 0 0.25rem;
  color: var(--uec-black);
  font-family: var(--font-family-heading);
  font-size: var(--text-2xl);
  letter-spacing: 0.03125rem;
  line-height: 1.1;
  text-transform: uppercase;
}

.uec-campus-form__card-subtitle {
  margin: 0;
  color: var(--uec-dark-300);
  font-size: var(--text-sm);
}

/* ── Reserva – restyle del formulario de Gravity Forms ────────────────────
   Todo va alcance bajo .uec-campus-form__card para NO afectar a otros
   formularios de Gravity de la web. Gravity trae sus propios estilos
   (tema "orbital"), así que muchas reglas necesitan !important.
   El formulario es un Gravity Forms Product Add-On embebido dentro del
   <form class="cart"> de WooCommerce: el submit visible es el botón de Woo
   (.single_add_to_cart_button); el .gform_footer solo lleva campos ocultos. */
.uec-campus-form__card .gform_wrapper {
  --gf-ctrl-bg-color: var(--uec-light-100);
  --gf-ctrl-border-color: var(--uec-light-300);
  --gf-ctrl-color: var(--uec-black);
  --gf-ctrl-label-color-primary: var(--uec-dark-500);
  --gf-ctrl-label-color-secondary: var(--uec-dark-400);
  --gf-ctrl-accent-color: var(--uec-green-500);
  --gf-form-validation-heading-color: #c1121f;
  --gf-form-validation-heading-font-size: 10px;
  --gf-field-validation-message-color: #c1121f;
  --gf-field-validation-message-font-size: 10px;
  --gf-form-gap-y: 14px;
  --gf-field-gap-y: 6px;
  --gf-ctrl-radius: 10px;
  --gf-ctrl-size: 46px;
  --gf-ctrl-padding-x: 16px;
  margin: 0;
}

.uec-campus-form__card form.cart {
  margin: 0;
}

/* Rejilla explícita de 12 columnas para garantizar el cuadre */
.uec-campus-form__card .gform_fields {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr) !important;
  gap: 14px !important;
}

.uec-campus-form__card .gfield {
  grid-column: 1 / -1;
  min-width: 0;
  margin: 0 !important;
}

.uec-campus-form__card .gfield--width-half {
  grid-column: span 6;
}

.uec-campus-form__card .gfield--width-third {
  grid-column: span 6;
}

.uec-campus-form__card .gfield--width-full {
  grid-column: 1 / -1;
}

/* Campos especiales siempre a ancho completo */
.uec-campus-form__card .gfield--type-date,
.uec-campus-form__card .gfield--type-radio,
.uec-campus-form__card .gfield--type-checkbox,
.uec-campus-form__card .gfield--type-consent,
.uec-campus-form__card .gfield--type-total {
  grid-column: 1 / -1;
}

/* El campo HTML solo contiene el <script> de cálculo: no debe ocupar.
   El campo "Precio" (product) es el importe crudo en $; lo ocultamos porque
   el resumen y el total ya muestran el precio formateado en €. Ambos siguen
   en el DOM, así que el cálculo y el envío del formulario siguen funcionando. */
.uec-campus-form__card .gfield--type-html,
.uec-campus-form__card .gfield--type-product {
  display: none !important;
}

.uec-campus-form__card .gform_required_legend {
  display: none;
}

.uec-campus-form__card .gfield_label,
.uec-campus-form__card legend.gfield_label,
.uec-campus-form__card .gform-field-label {
  display: block;
  margin: 0 0 6px !important;
  color: var(--uec-dark-400) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

/* Las etiquetas de cada opción (No/Sí, semanas, consentimiento) NO son
   etiquetas de campo: deben mantener su tamaño legible, no el de 10px. */
.uec-campus-form__card .gchoice .gform-field-label,
.uec-campus-form__card .ginput_container_consent .gform-field-label {
  margin: 0 !important;
  font-size: 12px !important;
  letter-spacing: 0.01875rem !important;
  text-transform: none !important;
}

.uec-campus-form__card .gfield_required_text {
  display: none;
}

.uec-campus-form__card input[type="text"],
.uec-campus-form__card input[type="email"],
.uec-campus-form__card input[type="tel"],
.uec-campus-form__card input[type="number"],
.uec-campus-form__card input[type="url"],
.uec-campus-form__card input[type="date"],
.uec-campus-form__card input[type="password"],
.uec-campus-form__card select,
.uec-campus-form__card textarea {
  width: 100% !important;
  min-height: 48px !important;
  padding: 11px 16px !important;
  border: 1px solid var(--uec-light-300) !important;
  border-radius: 10px !important;
  color: var(--uec-black) !important;
  background: var(--uec-light-100) !important;
  box-shadow: none !important;
  font-family: var(--font-family-base) !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  outline: none !important;
  transition: border-color var(--transition-base), box-shadow var(--transition-base), background-color var(--transition-base);
}

.uec-campus-form__card textarea {
  min-height: 110px !important;
  resize: vertical !important;
}

.uec-campus-form__card input::placeholder,
.uec-campus-form__card textarea::placeholder {
  color: var(--uec-dark-300) !important;
  opacity: 1 !important;
}

.uec-campus-form__card select {
  padding-right: 2.75rem !important;
  background:
    linear-gradient(45deg, transparent 50%, var(--uec-green-500) 50%) calc(100% - 1.35rem) 50% / 0.45rem 0.45rem no-repeat,
    linear-gradient(135deg, var(--uec-green-500) 50%, transparent 50%) calc(100% - 1.08rem) 50% / 0.45rem 0.45rem no-repeat,
    var(--uec-light-100) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
}

.uec-campus-form__card input:focus,
.uec-campus-form__card select:focus,
.uec-campus-form__card textarea:focus {
  border-color: var(--uec-green-500) !important;
  background: var(--uec-white) !important;
  box-shadow: 0 0 0 3px rgb(27 138 78 / 14%) !important;
}

/* Errores de Gravity / Woo add-on: pequeños, legibles y sin cajas grandes. */
.uec-campus-product .woocommerce-error,
.uec-campus-product .woocommerce-notices-wrapper .woocommerce-error {
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #c1121f !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  list-style: none !important;
}

.uec-campus-product .woocommerce-error::before,
.uec-campus-product .woocommerce-error::after {
  display: none !important;
}

.uec-campus-product .woocommerce-error li {
  margin: 0 !important;
  color: #c1121f !important;
  font-size: 10px !important;
  line-height: 1.4 !important;
}

.uec-campus-form__card .gform_wrapper.gravity-theme .gform_validation_errors,
.uec-campus-form__card .gform-theme .gform_validation_errors,
.uec-campus-form__card .gform_validation_errors {
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.uec-campus-form__card .gform_wrapper.gravity-theme .gform_submission_error,
.uec-campus-form__card .gform-theme .gform_submission_error,
.uec-campus-form__card .gform_submission_error {
  margin: 0 !important;
  color: #c1121f !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02rem !important;
  line-height: 1.4 !important;
  text-transform: none !important;
}

.uec-campus-form__card .gform_wrapper.gravity-theme .gform_submission_error .gform-icon,
.uec-campus-form__card .gform-theme .gform_submission_error .gform-icon,
.uec-campus-form__card .gform_submission_error .gform-icon,
.uec-campus-form__card .gform_validation_errors > h2::before {
  display: none !important;
}

.uec-campus-form__card .gfield_error input[type="text"],
.uec-campus-form__card .gfield_error input[type="email"],
.uec-campus-form__card .gfield_error input[type="tel"],
.uec-campus-form__card .gfield_error input[type="number"],
.uec-campus-form__card .gfield_error input[type="url"],
.uec-campus-form__card .gfield_error input[type="date"],
.uec-campus-form__card .gfield_error input[type="password"],
.uec-campus-form__card .gfield_error select,
.uec-campus-form__card .gfield_error textarea {
  border-color: #c1121f !important;
  box-shadow: 0 0 0 2px rgb(193 18 31 / 10%) !important;
}

.uec-campus-form__card .gform_wrapper.gravity-theme .gfield .gfield_validation_message,
.uec-campus-form__card .gform_wrapper.gravity-theme .gfield .validation_message,
.uec-campus-form__card .gform-theme .gfield_validation_message,
.uec-campus-form__card .gform-theme .validation_message,
.uec-campus-form__card .gfield_validation_message,
.uec-campus-form__card .validation_message,
.uec-campus-form__card .gform-field-label--type-error,
.uec-campus-form__card .campus-error-msg,
.uec-campus-form__card .campus-alerta-validacion,
.uec-campus-form__card [class*="campus-"][class*="error"],
.uec-campus-form__card [class*="campus-"][class*="validacion"] {
  margin: 4px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #c1121f !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
}

.uec-campus-form__card .campus-alerta-validacion,
.uec-campus-form__card [class*="campus-alerta"] {
  display: block !important;
  margin: 0 0 0.75rem !important;
}

.uec-campus-form__card .gfield_description,
.uec-campus-form__card .ginput_complex label {
  color: var(--uec-dark-400);
  font-size: 11px;
}

.uec-campus-form__card .gfield_required {
  color: var(--uec-green-500);
}

/* Semanas (checkbox): opciones apiladas a lo ancho.
   !important porque Gravity (tema framework) las maqueta con un selector de
   mayor especificidad (.gform-theme--framework .gfield--type-choice …). */
.uec-campus-form__card .gfield_checkbox {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

/* Comedor (radio No/Sí): opciones EN FILA, como las .radio-item del ejemplo.
   Gravity las pone por defecto en columna (flex-direction:column), así que hay
   que forzar la fila con !important. */
.uec-campus-form__card .gfield_radio {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.uec-campus-form__card .gfield_radio > .gchoice {
  flex: 1 1 0;
  min-width: 6rem;
  justify-content: center;
}

/* Caja sobre cada opción de checkbox / radio / consentimiento, calcando los
   .week-check-item / .radio-item / .consent-item del ejemplo. */
.uec-campus-form__card .gfield_checkbox > .gchoice,
.uec-campus-form__card .gfield_radio > .gchoice,
.uec-campus-form__card .ginput_container_consent {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 14px !important;
  grid-template-columns: none !important;
  margin: 0 !important;
  padding: 11px 14px !important;
  border: 1px solid var(--uec-light-300);
  border-radius: 8px;
  background: var(--uec-light-100);
  color: var(--uec-dark-500);
  font-size: 13px;
  line-height: 1.5;
  cursor: pointer;
  transition: border-color var(--transition-base), background-color var(--transition-base);
}

/* Toda la caja (no solo el radio/check) es clicable: la ::before de la etiqueta
   —ligada al input por su "for"— cubre la caja entera. Se excluye el
   consentimiento porque su etiqueta contiene enlaces que deben ser clicables. */
.uec-campus-form__card .gfield_checkbox > .gchoice label::before,
.uec-campus-form__card .gfield_radio > .gchoice label::before {
  content: "";
  position: absolute;
  inset: 0;
  cursor: pointer;
}

.uec-campus-form__card .ginput_container_consent {
  align-items: flex-start;
}

.uec-campus-form__card .gfield_checkbox > .gchoice:hover,
.uec-campus-form__card .gfield_radio > .gchoice:hover,
.uec-campus-form__card .ginput_container_consent:hover {
  border-color: rgb(27 138 78 / 30%);
  background: rgb(27 138 78 / 4%);
}

.uec-campus-form__card .gchoice label,
.uec-campus-form__card .ginput_container_consent label {
  margin: 0;
  color: var(--uec-black);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01875rem;
  cursor: pointer;
}

.uec-campus-form__card .ginput_container_consent label {
  color: var(--uec-dark-500);
  font-weight: 400;
}

.uec-campus-form__card .ginput_container_consent label a {
  color: var(--uec-green-500);
  text-decoration: none;
}

.uec-campus-form__card .ginput_container_consent label a:hover {
  text-decoration: underline;
}

.uec-campus-form__card input[type="checkbox"],
.uec-campus-form__card input[type="radio"] {
  position: relative !important;
  flex-shrink: 0;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--uec-light-300) !important;
  border-radius: 4px !important;
  background: var(--uec-white) !important;
  box-shadow: none !important;
  accent-color: var(--uec-green-500) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
}

.uec-campus-form__card input[type="radio"] {
  border-radius: 50% !important;
}

.uec-campus-form__card input[type="checkbox"]:checked,
.uec-campus-form__card input[type="radio"]:checked {
  border-color: var(--uec-green-500) !important;
  background: var(--uec-green-500) !important;
}

.uec-campus-form__card input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border-right: 2px solid var(--uec-white);
  border-bottom: 2px solid var(--uec-white);
  transform: rotate(45deg);
}

.uec-campus-form__card input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: var(--uec-white);
}

.uec-campus-form__card .gfield_checkbox > .gchoice:has(input:checked),
.uec-campus-form__card .gfield_radio > .gchoice:has(input:checked),
.uec-campus-form__card .ginput_container_consent:has(input:checked) {
  border-color: var(--uec-green-500) !important;
  background: rgb(27 138 78 / 9%) !important;
}

/* La etiqueta de la opción marcada, en verde y un punto más marcada */
.uec-campus-form__card .gfield_checkbox > .gchoice:has(input:checked) .gform-field-label,
.uec-campus-form__card .gfield_radio > .gchoice:has(input:checked) .gform-field-label {
  color: var(--uec-green-700) !important;
  font-weight: 700 !important;
}

.uec-campus-form__card a {
  color: var(--uec-green-500);
}

/* El total nativo de Gravity se calcula al enviar, pero no se muestra: el
   formulario debe terminar visualmente en los checkboxes legales y el botón. */
.uec-campus-form__card .gfield--type-total,
.uec-campus-form__card .gfield_total,
.uec-campus-form__card .ginput_total,
.uec-campus-form__card [id^="field_"][id$="_28"] {
  display: none !important;
}

/* El bloque automático de totales del add-on ensucia el cierre del formulario;
   el resumen útil del campus se mantiene visible y el precio sigue viajando. */
.uec-campus-form__card .product_totals {
  display: none !important;
}

/* ── Resumen de precio inyectado por el <script> del formulario ── */
.uec-campus-form__card .campus-resumen-precio {
  grid-column: 1 / -1;
  overflow: hidden;
  margin: 4px 0 0;
  border: 1px solid rgb(27 138 78 / 20%);
  border-radius: 12px;
  background: var(--uec-white);
  box-shadow: 0 12px 32px rgb(9 9 11 / 6%);
}

.uec-campus-form__card .campus-resumen-titulo {
  padding: 10px 16px;
  color: var(--uec-white);
  background: linear-gradient(135deg, var(--uec-green-700), var(--uec-green-500));
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.uec-campus-form__card .campus-resumen-linea,
.uec-campus-form__card .campus-resumen-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 10px 16px;
}

.uec-campus-form__card .campus-resumen-linea {
  border-bottom: 1px solid var(--uec-light-200);
  color: var(--uec-dark-500);
  font-size: 13px;
}

.uec-campus-form__card .campus-resumen-linea strong {
  color: var(--uec-black);
  font-weight: 800;
}

.uec-campus-form__card .campus-resumen-ahorro strong {
  color: var(--uec-green-500);
}

.uec-campus-form__card .campus-resumen-total {
  background: var(--uec-light-100);
  color: var(--uec-black);
  font-size: 15px;
  font-weight: 800;
}

.uec-campus-form__card .campus-resumen-total strong {
  color: var(--uec-green-500);
  font-size: 18px;
}

/* El footer de Gravity solo contiene campos ocultos, y la cantidad de Woo es
   un input oculto fijado a 1: que no ocupen ni dejen huecos. */
.uec-campus-form__card .gform_footer,
.uec-campus-form__card .gform-footer {
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.uec-campus-form__card .quantity {
  display: none !important;
}

/* ── Botón de envío: es el de WooCommerce (.single_add_to_cart_button) ── */
.uec-campus-form__card .single_add_to_cart_button,
.uec-campus-form__card .gform_button,
.uec-campus-form__card button[type="submit"],
.uec-campus-form__card input[type="submit"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  min-height: 54px;
  margin-top: 1.25rem !important;
  padding: 16px 32px !important;
  border: 0 !important;
  border-radius: 9999px !important;
  color: var(--uec-white) !important;
  background: linear-gradient(135deg, var(--uec-green-500), var(--uec-green-400)) !important;
  box-shadow: 0 4px 24px rgb(27 138 78 / 40%) !important;
  font-family: var(--font-family-base) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition: box-shadow 0.4s var(--ease-emphasized), transform 0.4s var(--ease-emphasized), background var(--transition-base);
}

.uec-campus-form__card .single_add_to_cart_button:hover,
.uec-campus-form__card .single_add_to_cart_button:focus-visible,
.uec-campus-form__card .gform_button:hover,
.uec-campus-form__card .gform_button:focus-visible,
.uec-campus-form__card button[type="submit"]:hover,
.uec-campus-form__card button[type="submit"]:focus-visible,
.uec-campus-form__card input[type="submit"]:hover,
.uec-campus-form__card input[type="submit"]:focus-visible {
  box-shadow: 0 8px 32px rgb(27 138 78 / 50%) !important;
  transform: translateY(-2px) !important;
}

/* ── Flyer ────────────────────────────────────────────────────────────────── */
.uec-campus-flyer {
  background: var(--uec-black);
  border-top: 0;
}

.uec-campus-flyer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
}

.uec-campus-flyer__label {
  margin: 0 0 0.625rem;
  color: var(--uec-green-400);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.125rem;
  text-transform: uppercase;
}

.uec-campus-flyer__title {
  margin: 0 0 0.5rem;
  color: var(--uec-white);
  font-family: var(--font-family-heading);
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  letter-spacing: 0.03125rem;
  line-height: 1.1;
  text-transform: uppercase;
}

.uec-campus-flyer__title-hl {
  color: var(--uec-green-400);
}

.uec-campus-flyer__desc {
  max-width: 35rem;
  margin: 0;
  color: var(--uec-dark-200);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.uec-campus-flyer__btn {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  border-radius: 9999px;
  background: var(--uec-white);
  color: var(--uec-black);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.03125rem;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 4px 20px rgb(0 0 0 / 20%);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.uec-campus-flyer__btn:hover,
.uec-campus-flyer__btn:focus-visible {
  box-shadow: 0 8px 32px rgb(0 0 0 / 30%);
  transform: translateY(-2px);
}

.uec-campus-flyer__btn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--uec-green-500);
  color: var(--uec-white);
  font-size: var(--text-md);
  line-height: 1;
}
