/* Programas · índice comercial. Estilos propios; sistema institucional compartido. */
.page--programas { --header-field: var(--black); background: var(--paper); color: var(--black); }
.page--programas .site-header { background: var(--black); }
.programas-wrap { width: 100%; max-width: 1256px; margin-inline: auto; padding-inline: var(--gutter); }
.programas-hero { padding-block: clamp(3rem, 6vw, 5rem) 2.5rem; }
.programas-eyebrow { color: var(--red); margin-bottom: 1.25rem; }
.programas-intro { display: grid; grid-template-columns: 1.15fr 1fr; gap: 2rem 5rem; align-items: end; }
.programas-intro h1 { max-width: 15ch; font-family: var(--font-display); font-size: clamp(2.5rem, 4.3vw, 4rem); line-height: 1.06; font-weight: 500; letter-spacing: -.045em; }
.programas-intro h1 span { display: block; color: var(--red); }
.programas-intro__copy { max-width: 43ch; font-size: var(--text-body-lg); color: var(--dark); line-height: 1.7; }
.programas-intro__copy p + p { margin-top: 1rem; font-size: .875rem; color: var(--v5-muted); }
.programas-rule { height: 2px; margin-top: 2.5rem; background: var(--gold); }
.programas-reserva { padding-bottom: 2.5rem; }
.programas-reserva__inner { display: grid; grid-template-columns: 1fr 1.35fr; align-items: center; gap: 1.5rem 3rem; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--red); color: var(--white); }
.programas-reserva h2 { font-family: var(--font-display); font-size: clamp(1.625rem, 2.3vw, 2rem); font-weight: 500; letter-spacing: -.025em; line-height: 1.2; }
.programas-reserva p { font-size: 1rem; line-height: 1.65; }
.programas-reserva strong { font-weight: 500; text-decoration: underline; text-underline-offset: .2em; }
.programas-reserva .programas-reserva__note { margin-top: .875rem; font-size: .8125rem; line-height: 1.6; }
.programas-list { padding-bottom: clamp(3rem, 5vw, 4.5rem); }
.programas-list__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.programas-list__head h2 { font-family: var(--font-display); font-size: 1rem; font-weight: 500; }
.programas-list__head p { font-size: .75rem; color: var(--v5-muted); }
.programas-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.programa-card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--v5-line); padding: clamp(1.4rem, 2.7vw, 2.5rem); }
.programa-card__orientation { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: 1.25rem; margin-bottom: 1.8rem; border-bottom: 1px solid var(--gold); }
.programa-card__orientation p { font-family: var(--font-display); font-size: 1.1875rem; font-weight: 500; }
.programa-card__number { color: var(--v5-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
.programa-card__type { color: var(--red); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .75rem; }
.programa-card h3 { font-family: var(--font-display); font-size: clamp(1.875rem, 2.8vw, 2.5rem); line-height: 1.12; font-weight: 500; letter-spacing: -.035em; }
.programa-card__promise { margin-top: 1.25rem; font-size: 1rem; line-height: 1.65; color: var(--dark); }
.programa-card__audience { margin-top: 1.3rem; padding-left: 1rem; border-left: 2px solid var(--v5-line); font-size: .875rem; line-height: 1.6; color: var(--v5-muted); }
.programa-card__format { margin-top: 1.75rem; font-size: .8125rem; font-weight: 500; color: var(--dark); }
.programa-card__facts { margin-top: 1.25rem; margin-bottom: 1.75rem; }
.programa-card__facts > div { display: grid; grid-template-columns: 6rem 1fr; gap: 1rem; padding-block: .75rem; border-top: 1px solid var(--v5-line); }
.programa-card__facts dt { font-size: .8125rem; color: var(--v5-muted); }
.programa-card__facts dd { margin: 0; font-size: .9375rem; font-weight: 500; line-height: 1.5; }
.programa-card__facts dd small { display: block; margin-top: .25rem; color: var(--v5-muted); font-size: .8125rem; font-weight: 400; }
.programa-card__actions { margin-top: auto; }
.programa-card__link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; }
.programa-card__actions p { margin-top: .65rem; font-size: .75rem; color: var(--v5-muted); }
.programa-card__actions .programa-card__reserva { font-size: .8125rem; color: var(--dark); line-height: 1.6; }
.programas-format { padding-block: clamp(2.5rem, 4vw, 4rem); background: var(--black); color: var(--white); }
.programas-format__head { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--hairline-dark); }
.programas-format__head h2 { font-family: var(--font-display); font-size: clamp(1.75rem, 2.8vw, 2.5rem); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; }
.programas-format__head a { color: var(--gold); display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; text-underline-offset: 5px; }
.programas-format__head a:hover { text-decoration: underline; }
.programas-format__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; padding-top: 2rem; }
.programas-format__grid h3 { font-family: var(--font-display); font-size: 1.1875rem; font-weight: 500; margin-bottom: .65rem; color: var(--gold); }
.programas-format__grid p { color: #d3d0ca; font-size: .9375rem; line-height: 1.7; }
.programas-help { padding-block: clamp(3rem, 5vw, 4.5rem); }
.programas-help__inner { display: flex; justify-content: space-between; gap: 2rem; align-items: center; }
.programas-help h2 { font-family: var(--font-display); font-size: clamp(1.75rem, 2.4vw, 2.25rem); font-weight: 500; letter-spacing: -.025em; line-height: 1.2; }
.programas-help p { color: var(--v5-muted); margin-top: .75rem; max-width: 51ch; }
.programas-help .btn { flex-shrink: 0; }
.page--programas .global-nav [aria-current="page"] { color: var(--gold); }
.page--programas main a:focus-visible { outline: 3px solid var(--red); outline-offset: 5px; }
.page--programas .programas-format a:focus-visible { outline-color: var(--gold); }
@media (max-width: 899.98px) {
  .programas-reserva { padding-bottom: 1.75rem; }
  .programas-reserva__inner { grid-template-columns: 1fr; gap: 1rem; }
  .programas-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .programas-intro h1 { max-width: none; }
  .programas-intro__copy { max-width: 48ch; }
  .programas-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .programas-hero { padding-bottom: 1.5rem; }
  .programas-rule { margin-top: 2rem; }
  .programas-list__head { flex-wrap: wrap; gap: .25rem 1rem; }
  .programa-card h3 { max-width: 23ch; }
  .programa-card__orientation { margin-bottom: 1.5rem; }
  .programa-card__facts > div { grid-template-columns: 5rem 1fr; gap: .75rem; }
  .programas-format__head { align-items: flex-start; flex-direction: column; gap: .75rem; padding-bottom: 1.5rem; }
  .programas-format__grid { grid-template-columns: 1fr; gap: 1.5rem; padding-top: 1.5rem; }
  .programas-format__grid > div + div { border-top: 1px solid var(--hairline-dark); padding-top: 1.5rem; }
  .programas-help__inner { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .programas-help .btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: no-preference) {
  .programas-rule { transform-origin: left; animation: programas-rule-in 900ms var(--ease-standard) both; }
  @keyframes programas-rule-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}
