/* ============================================================
   USAM
   CURSO PREUNIVERSITARIO
   curso-preu.css
   V1.2.2
*/
/* ============================================================
   00. VARIABLES
   ============================================================ */

.preu-page {
  --preu-navy: #00133e;
  --preu-blue: #125a95;
  --preu-red: #c0003c;
  --preu-aqua: #65c9cd;
  --preu-aqua-light: #bae3ec;

  --preu-text: #2c4d72;
  --preu-gray: #f0f0f0;
  --preu-border: #b7dbe3;

  --preu-white: #ffffff;

  width: 100%;

  overflow-x: clip;

  color: var(--preu-navy);

  font-family:
    "Montserrat",
    Arial,
    sans-serif;
}


/* ============================================================
   00.1 RESET LOCAL
   ============================================================ */

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


.preu-page img {
 /*display: block;*/
  max-width: 100%;
}


.preu-page button,
.preu-page input,
.preu-page select {
  font: inherit;
}


/* ============================================================
   00.2 ACCESIBILIDAD
   ============================================================ */

.preu-page :focus-visible {
  outline: 3px solid #f0b323;
  outline-offset: 3px;
}


.preu-page .sr-only {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  margin: -1px !important;
  padding: 0 !important;

  overflow: hidden !important;

  clip:
    rect(
      0,
      0,
      0,
      0
    ) !important;

  white-space: nowrap !important;

  border: 0 !important;
}


/* ============================================================
   01. HERO
   ============================================================ */

.preu-hero {
  position: relative;

  width: 100%;
  height: 570px;

  display: flex;
  align-items: flex-end;

  overflow: hidden;

  background: var(--preu-navy);
  height: 520px;
    top: -53px;
}


/* ============================================================
   01.1 IMAGEN
   ============================================================ */

.preu-hero > img {
  position: absolute;

  inset: 0;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  animation:
    preuHeroImage
    1.3s
    cubic-bezier(.22, 1, .36, 1)
    both;
}


@keyframes preuHeroImage {
  from {
    opacity: 0;

    transform:
      scale(1.06);
  }

  to {
    opacity: 1;

    transform:
      scale(1);
  }
}


/* ============================================================
   01.2 OVERLAY
   ============================================================ */

.preu-hero__overlay {
  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(4, 21, 54, .58) 0%,
      rgba(4, 21, 54, .30) 42%,
      rgba(4, 21, 54, .05) 100%
    );
}


/* ============================================================
   01.3 CONTENIDO
   ============================================================ */

.preu-hero__content {
  position: relative;

  z-index: 2;

  width: 84%;
  max-width: 1230px;

  margin:
    0
    auto;

  padding-bottom: 70px;

  animation:
    preuHeroContent
    .9s
    .15s
    cubic-bezier(.22, 1, .36, 1)
    both;
}


@keyframes preuHeroContent {
  from {
    opacity: 0;

    transform:
      translateY(38px);
  }

  to {
    opacity: 1;

    transform:
      translateY(0);
  }
}


.preu-hero h1 {
  margin: 0;

  color: #ffffff;

  font-size:
    clamp(
      47px,
      5vw,
      72px
    );

  font-weight: 400;
  line-height: .95;
}


.preu-hero p {
  margin:
    8px
    0
    0;

  color: #ffffff;

  font-size:
    clamp(
      26px,
      2.8vw,
      39px
    );

  font-weight: 300;
  line-height: .96;
}


/* ============================================================
   02. MENÚ DE ADMISIONES
   ============================================================ */

.preu-admissions-menu {
  position: relative;

  z-index: 5;

  width: 100%;

  background: #ffffff;
}


.preu-admissions-menu__inner {
  width:
    calc(
      100% - 80px
    );

  max-width: 1400px;

  margin:
    0
    auto;

  display: grid;

  grid-template-columns:
    repeat(
      6,
      minmax(0, 1fr)
    );

  gap: 18px;
}


/* ============================================================
   02.1 ITEMS
   ============================================================ */

.preu-admissions-item {
  position: relative;

  min-height: 150px;

  display: block;

  padding:
    28px
    22px
    30px;

  background: #ffffff;
  color: var(--preu-navy);

  text-decoration: none;

  transition:
    transform .25s ease,
    background-color .25s ease,
    box-shadow .25s ease;
}


.preu-admissions-item::before {
  content: "";

  position: absolute;

  top: 15px;
  left: 22px;

  width: 62%;
  height: 6px;

  background: transparent;
}


.preu-admissions-item h2 {
  margin:
    0
    0
    9px;

  color: inherit;

  font-size: 20px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 10px;
  margin-top: 14px;
}


.preu-admissions-item p {
  margin: 0;

  color: inherit;

  font-size: 10px;
  line-height: 1.35;
}


/* ============================================================
   02.2 ACTIVO / HOVER
   ============================================================ */

.preu-admissions-item:hover,
.preu-admissions-item:focus-visible,
.preu-admissions-item.is-active {
  background: var(--preu-red);
  color: #ffffff;
}


.preu-admissions-item:hover,
.preu-admissions-item:focus-visible {
  z-index: 3;

  transform:
    translateY(-5px);

  box-shadow:
    0
    15px
    35px
    rgba(7, 29, 76, .16);
}


.preu-admissions-item:hover::before,
.preu-admissions-item:focus-visible::before,
.preu-admissions-item.is-active::before {
  background: #ffffff;
}


/* ============================================================
   03. CURSO PREUNIVERSITARIO
   ============================================================ */

.preu-about {
  width: 90%;
  max-width: 1260px;

  margin:
    75px
    auto
    65px;
}


.preu-about__grid {
  display: grid;

  grid-template-columns:
    minmax(0, 38fr)
    minmax(0, 62fr);

  gap: 55px;

  align-items: stretch;
}


/* ============================================================
   03.1 CONTENIDO
   ============================================================ */

.preu-about__content {
  min-width: 0;

  padding:
    43px
    0
    0;
}


.preu-about h2 {
  margin:
    0
    0
    24px;

  color: var(--preu-navy);

  font-size:
    clamp(
      38px,
      3.4vw,
      56px
    );

  font-weight: 800;
  line-height: .85;
}


.preu-about__content > p {
  margin:
    0
    0
    14px;

  color: var(--preu-text);

  font-size: 11px;
  line-height: 1.45;

  text-align: justify;
}


/* ============================================================
   03.2 IMAGEN
   ============================================================ */

.preu-about__media {
  min-width: 0;
  min-height: 650px;

  overflow: hidden;
}


.preu-about__media img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  transition:
    transform .7s
    cubic-bezier(.22, 1, .36, 1);
}


.preu-about__media:hover img {
  transform:
    scale(1.035);
}


/* ============================================================
   04. DOCUMENTOS INFORMATIVOS
   ============================================================ */

.preu-info-list {
  width: 100%;

  margin-top: 24px;

  border-top:
    1px solid
    var(--preu-border);
}


.preu-info-item {
  border-bottom:
    1px solid
    var(--preu-border);
}


.preu-info-trigger {
  width: 100%;
  min-height: 43px;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 14px;

  margin: 0;

  padding:
    7px
    4px;

  border: 0 !important;
  border-radius: 0 !important;

  background: transparent !important;
  color: var(--preu-blue) !important;

  box-shadow: none !important;

  font-size: 13px !important;
  font-weight: 700 !important;

  text-align: left;
  text-transform: none !important;

  cursor: pointer;

  transition:
    color .2s ease,
    padding-left .2s ease,
    background-color .2s ease;
}


.preu-info-trigger__left {
  min-width: 0;

  display: inline-flex;

  align-items: center;

  gap: 4px;
}


.preu-info-trigger__left .material-icons {
  color: var(--preu-aqua);

  font-size: 20px;

  transition:
    transform .2s ease;
}


.preu-info-trigger__action {
  flex:
    0
    0
    auto;

  color: var(--preu-red);

  font-size: 18px !important;

  transition:
    transform .2s ease;
}


.preu-info-trigger:hover,
.preu-info-trigger:focus-visible {
  padding-left: 8px;

  background:
    rgba(101, 201, 205, .08) !important;

  color:
    var(--preu-red) !important;
}


.preu-info-trigger:hover
.preu-info-trigger__left
.material-icons,
.preu-info-trigger:focus-visible
.preu-info-trigger__left
.material-icons {
  transform:
    translateX(3px);
}


.preu-info-trigger:hover
.preu-info-trigger__action,
.preu-info-trigger:focus-visible
.preu-info-trigger__action {
  transform:
    scale(1.12);
}


/* ============================================================
   05. BANNER SIGUIENTE NIVEL

   Fondo azul de lado a lado.
   El contenido interno conserva el mismo ancho máximo
   que las demás secciones.
   ============================================================ */

.preu-next-level {
  width: 100%;

  margin:
    0
    0
    60px;

  background:
    var(--preu-navy);
}


/* ============================================================
   05.1 CONTENEDOR INTERNO
   ============================================================ */

.preu-next-level__inner {
  width: 100%;
  max-width: 1260px;
  min-height: 230px;

  margin:
    0
    auto;

  display: grid;

  grid-template-columns:
    minmax(0, 42fr)
    minmax(0, 40fr)
    minmax(0, 18fr);

  overflow: hidden;
}

/* ============================================================
   05.2 PANELES
   ============================================================ */

.preu-next-level__panel {
  min-width: 0;
  min-height: 230px;

  overflow: hidden;

  background:
    var(--preu-navy);
}


.preu-next-level__panel img {
  width: 100%;
  height: 100%;

  transition:
    transform .55s
    cubic-bezier(.22, 1, .36, 1);
}


/* ============================================================
   05.3 FOTO
   ============================================================ */

.preu-next-level__panel--photo img {
  object-fit: cover;
  object-position: center;
}


/* ============================================================
   05.3.1 FOTO + DEGRADADO CSS
   ============================================================ */

.preu-next-level__panel--photo {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: var(--preu-navy);
}

.preu-next-level__panel--photo img {
  position: relative;
  z-index: 1;
}

.preu-next-level__panel--photo::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;

  /*
   * Degradado simétrico:
   * azul sólido en ambos extremos y fotografía limpia
   * en la zona central.
   *
   * Azul institucional:
   * #00133e = rgb(0, 19, 62)
   */
  background:
    linear-gradient(
      90deg,
      rgba(0, 19, 62, 1) 0%,
      rgba(0, 19, 62, .94) 5%,
      rgba(0, 19, 62, .76) 11%,
      rgba(0, 19, 62, .52) 18%,
      rgba(0, 19, 62, .28) 25%,
      rgba(0, 19, 62, .10) 31%,
      rgba(0, 19, 62, 0) 38%,
      rgba(0, 19, 62, 0) 62%,
      rgba(0, 19, 62, .10) 69%,
      rgba(0, 19, 62, .28) 75%,
      rgba(0, 19, 62, .52) 82%,
      rgba(0, 19, 62, .76) 89%,
      rgba(0, 19, 62, .94) 95%,
      rgba(0, 19, 62, 1) 100%
    );
}


/* ============================================================
   05.4 TEXTO COMO IMAGEN
   ============================================================ */

.preu-next-level__panel--message {
  display: flex;

  align-items: center;
  justify-content: center;

  padding:
    28px
    7%;
}


.preu-next-level__panel--message img {
  width: 100%;
  height: auto;

  max-height: 105px;

  object-fit: contain;
}


/* ============================================================
   05.5 LÍNEAS
   ============================================================ */

.preu-next-level__panel--lines img {
  object-fit: cover;
  object-position: left center;
}


/* ============================================================
   05.6 HOVER
   ============================================================ */

.preu-next-level:hover
.preu-next-level__panel--photo img {
  transform:
    scale(1.025);
}


.preu-next-level:hover
.preu-next-level__panel--message img {
  transform:
    translateY(-3px)
    scale(1.015);
}


.preu-next-level:hover
.preu-next-level__panel--lines img {
  transform:
    translateX(-5px);
}

/* ============================================================
   06. PERIODOS DE ADMISIÓN
   ============================================================ */

.preu-periods {
  width: 100%;

  padding:
    65px
    0
    30px;

  background: #ffffff;
}


.preu-periods__container {
  width: 86%;
  max-width: 1200px;

  margin:
    0
    auto;
}


/* ============================================================
   06.1 FILAS
   ============================================================ */

.preu-period-row {
  display: grid;

  grid-template-columns:
    minmax(0, 39fr)
    minmax(0, 61fr);

  align-items: center;

  margin-bottom: 18px;
}


.preu-period-row__title {
  padding:
    15px
    40px
    15px
    0;
}


.preu-period-row__title h3 {
  margin: 0;

  color: var(--preu-navy);

  font-size:
    clamp(
      25px,
      2.5vw,
      36px
    );

  font-weight: 800;
  line-height: .94;
}


/* ============================================================
   06.2 TARJETAS
   ============================================================ */

.preu-period-row__cards {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 15px;
}


.preu-period-card {
  position: relative;

  min-height: 145px;

  display: flex;

  flex-direction: column;
  justify-content: center;

  padding:
    16px
    25px;

  overflow: hidden;

  background: #eeeeee;

  transition:
    transform .3s ease,
    box-shadow .3s ease,
    background-color .3s ease;
}


.preu-period-card::after {
  content: "";

  position: absolute;

  left: 0;
  right: 0;
  bottom: 0;

  height: 5px;

  background:
    var(--preu-aqua);

  transform:
    scaleX(0);

  transform-origin:
    left;

  transition:
    transform .3s ease;
}


.preu-period-card:hover {
  transform:
    translateY(-6px);

  background: #f6f6f6;

  box-shadow:
    0
    15px
    30px
    rgba(7, 29, 76, .12);
}


.preu-period-card:hover::after {
  transform:
    scaleX(1);
}


.preu-period-card strong {
  color: var(--preu-red);

  font-size: 30px;
  font-weight: 800;
  line-height: .77;
}


.preu-period-card span {
  margin-top: 8px;

  color: var(--preu-blue);

  font-size: 15px;
  font-weight: 800;
  line-height: 1;
}


.preu-period-card small {
  margin-top: 3px;

  color: var(--preu-blue);

  font-size: 13px;
  font-weight: 600;
}


/* ============================================================
   07. EXPERIENCIA DEL ESTUDIANTE
   ============================================================ */

.preu-experience {
  width: 100%;

  padding:
    25px
    0
    75px;
}


.preu-experience__container {
  width: 86%;
  max-width: 1200px;

  margin:
    0
    auto;
}


/* ============================================================
   07.1 ENCABEZADO
   ============================================================ */

.preu-experience__header {
  margin-bottom: 35px;
}


.preu-experience__header h2 {
  margin:
    0
    0
    8px;

  color: var(--preu-navy);

  font-size:
    clamp(
      29px,
      3vw,
      42px
    );

  font-weight: 800;
  line-height: 1;
}


.preu-experience__header p {
  max-width: 1100px;

  margin: 0;

  color: var(--preu-text);

  font-size: 13px;
  line-height: 1.45;
}


.preu-experience__header strong {
  color:
    var(--preu-blue);
}


/* ============================================================
   07.2 BLOQUE CONTINUO

   Las cinco etapas forman una sola composición visual.
   Cada tarjeta controla individualmente su geometría para
   reproducir las curvas del diseño original.
   ============================================================ */

.preu-experience__cards {
  display: grid;

  grid-template-columns:
    repeat(
      5,
      minmax(0, 1fr)
    );

  gap: 0;

  align-items: stretch;

  /*
   * IMPORTANTE:
   * No usamos overflow:hidden ni border-radius aquí.
   * Las curvas pertenecen individualmente a cada tarjeta.
   */
  overflow: visible;

  border-radius: 0;
}


/* ============================================================
   07.2.1 TARJETA BASE
   ============================================================ */

.preu-experience-card {
  position: relative;

  min-width: 0;
     min-height: 290px;
    padding: 68px 23px 25px;

  overflow: hidden;

  transition:
    transform .3s ease,
    box-shadow .3s ease;
}


/* ============================================================
   07.2.2 GEOMETRÍA DE LAS ETAPAS

   Diseño:
   1. Azul:
      curva superior izquierda + inferior izquierda
      + inferior derecha.

   2. Aqua:
      curva superior derecha + inferior derecha.

   3. Navy:
      curva superior izquierda.

   4. Celeste:
      curva inferior izquierda + superior derecha.

   5. Rojo:
      curva superior derecha + inferior derecha.
   ============================================================ */


/* 1. PRIMER CONTACTO */

.preu-experience-card--blue {
  border-radius:
64px
    0
    125px
    125px;
}


/* 2. DURANTE SU FORMACIÓN */

.preu-experience-card--aqua {
  border-radius:
120px
    120px
    64px
    0;
}


/* 3. CONEXIÓN CON EL MUNDO */

.preu-experience-card--navy {
  border-radius:
120px
    120px
    0px
    64px;
}


/* 4. PREPARACIÓN PARA LA EMPLEABILIDAD */

.preu-experience-card--light {
  border-radius:
0
    64px
    120px
    120px;
}


/* 5. DESPUÉS DE GRADUARSE */

.preu-experience-card--red {
  border-radius:
120px
    120px
    64px
    0;
}


/* ============================================================
   07.2.3 HOVER
   ============================================================ */

.preu-experience-card:hover {
  z-index: 4;

  transform:
    translateY(-5px)
    scale(1.015);

  box-shadow:
    0
    18px
    32px
    rgba(7, 29, 76, .18);
}


/* ============================================================
   07.3 COLORES
   ============================================================ */

.preu-experience-card--blue {
  background: #115a96;
  color: #ffffff;
  margin-right: -10px;
}


.preu-experience-card--aqua {
  background: #6acbd0;
  color: var(--preu-navy);
  margin-right: -10px;
}


.preu-experience-card--navy {
  background: var(--preu-navy);
  color: #ffffff;
  margin-right: -10px;
}


.preu-experience-card--light {
  background: #b9dfe9;
  color: var(--preu-navy);
  margin-right: -10px;
}


.preu-experience-card--red {
  background: var(--preu-red);
  color: #ffffff;
}


/* ============================================================
   07.4 CONTENIDO
   ============================================================ */

.preu-experience-card__dot {
  display: block;

  width: 7px;
  height: 7px;

  margin-bottom: 6px;

  border-radius: 50%;

  background:
    currentColor;
}


.preu-experience-card h3 {
  margin:
    0
    0
    12px;

  color: inherit;

  font-size: 17px;
  font-weight: 800;
  line-height: 1.05;
}


.preu-experience-card p {
  margin: 0;

  color: inherit;

  font-size: 13px;
  line-height: 1.35;
}




/* ============================================================
   08. FRASE INSTITUCIONAL
   ============================================================ */

.preu-quote {
  width: 100%;

  overflow: hidden;

  background:
    var(--preu-navy);
}


.preu-quote img {
  max-width: 918px;
  height: auto;

  transition:
    transform .6s ease;
}


.preu-quote:hover img {
  transform:
    scale(1.012);
}


/* ============================================================
   09. REGISTRO
   ============================================================ */

.preu-register {
  width: 100%;

  padding:
    60px
    0
    70px;

  background: #ffffff;
}


.preu-register__container {
  width: 86%;
  max-width: 1180px;

  margin:
    0
    auto;
}


.preu-register h2 {
  margin:
    0
    0
    25px;

  color: var(--preu-red);

  font-size:
    clamp(
      32px,
      3.5vw,
      47px
    );

  font-weight: 800;
  line-height: 1;
}


/* ============================================================
   10. FORMULARIO
   ============================================================ */

.preu-form {
  position: relative;

  width: 100%;
}


/* ============================================================
   10.1 HONEYPOT
   ============================================================ */

.preu-honeypot {
  position: absolute !important;

  left: -10000px !important;

  width: 1px !important;
  height: 1px !important;

  overflow: hidden !important;
}


/* ============================================================
   10.2 RADIOS
   ============================================================ */

.preu-form__radios {
  display: flex;

  flex-wrap: wrap;
  align-items: center;

  gap:
    12px
    28px;

  margin:
    0
    0
    18px;

  padding: 0;

  border: 0;
}


.preu-form__radios label {
  position: static !important;

  display: inline-flex !important;

  align-items: center !important;

  gap: 7px;

  width: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #61718a;

  font-size: 12px;
  line-height: 1.3;

  cursor: pointer;
}


/* ============================================================
   10.3 RADIO / CHECK NATIVO

   Sobrescribe Materialize.
   ============================================================ */

.preu-form
input[type="radio"],
.preu-form
input[type="checkbox"] {
  position: static !important;

  left: auto !important;
  top: auto !important;

  display: inline-block !important;

  flex:
    0
    0
    auto !important;

  width: 15px !important;
  height: 15px !important;

  margin: 0 !important;
  padding: 0 !important;

  opacity: 1 !important;
  visibility: visible !important;

  pointer-events: auto !important;

  appearance: auto !important;
  -webkit-appearance: auto !important;

  accent-color:
    var(--preu-red);

  cursor: pointer;
}


/* ============================================================
   10.4 SPAN DE MATERIALIZE
   ============================================================ */

.preu-form
input[type="radio"]:not(:checked) + span,
.preu-form
input[type="radio"]:checked + span,
.preu-form
input[type="checkbox"]:not(:checked) + span,
.preu-form
input[type="checkbox"]:checked + span {
  position: static !important;

  display: inline !important;

  width: auto !important;
  height: auto !important;
  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  color: inherit !important;

  font-size: inherit !important;
  line-height: inherit !important;
}


/* ============================================================
   10.5 ELIMINAR PSEUDOELEMENTOS MATERIALIZE
   ============================================================ */

.preu-form
input[type="radio"] + span::before,
.preu-form
input[type="radio"] + span::after,
.preu-form
input[type="checkbox"] + span::before,
.preu-form
input[type="checkbox"] + span::after {
  content: none !important;

  display: none !important;
}


/* ============================================================
   10.6 FILAS
   ============================================================ */

.preu-form-row {
  width: 100%;

  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 14px;

  margin-bottom: 11px;
}


.preu-form-field {
  width: 100%;

  min-width: 0;
  max-width: 100%;
}


.preu-form-field--full {
  margin-bottom: 11px;
}


/* ============================================================
   10.7 INPUT / SELECT

   min-width:0 corrige especialmente el input date
   que estaba invadiendo la columna del celular.
   ============================================================ */

.preu-form
input[type="text"],
.preu-form
input[type="tel"],
.preu-form
input[type="email"],
.preu-form
input[type="date"],
.preu-form
select {
  box-sizing:
    border-box !important;

  display:
    block !important;

  width:
    100% !important;

  min-width:
    0 !important;

  max-width:
    100% !important;

  height:
    42px !important;

  margin:
    0 !important;

  padding:
    0
    16px !important;

  border:
    1px solid
    #245b91 !important;

  border-radius:
    22px !important;

  background:
    #ffffff !important;

  color:
    var(--preu-navy) !important;

  box-shadow:
    none !important;

  outline:
    none !important;

  font-family:
    "Montserrat",
    Arial,
    sans-serif !important;

  font-size:
    11px !important;
}


.preu-form
input::placeholder {
  color: #a8b1c0;

  opacity: 1;
}


/* SELECT NATIVO */

.preu-form select {
  appearance:
    auto !important;

  -webkit-appearance:
    menulist !important;

  cursor: pointer;
}


/* FECHA */

.preu-form
input[type="date"] {
  min-width:
    0 !important;

  max-width:
    100% !important;

  color-scheme:
    light;
}


/* FOCUS */

.preu-form
input[type="text"]:focus,
.preu-form
input[type="tel"]:focus,
.preu-form
input[type="email"]:focus,
.preu-form
input[type="date"]:focus,
.preu-form
select:focus {
  border-color:
    var(--preu-red) !important;

  box-shadow:
    0
    0
    0
    3px
    rgba(192, 0, 60, .08) !important;
}


/* ============================================================
   10.8 CHECKBOXES
   ============================================================ */

.preu-form-check {
  position: static !important;

  display: grid !important;

  grid-template-columns:
    16px
    minmax(0, 1fr);

  align-items: start;

  gap: 8px;

  width: 100% !important;

  margin:
    7px
    0
    0 !important;

  padding: 0 !important;

  color: #42516a;

  font-size: 10px;
  line-height: 1.3;

  cursor: pointer;
}


/* ============================================================
   10.9 FOOTER
   ============================================================ */

.preu-form__footer {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  align-items: center;

  gap: 20px;

  margin-top: 18px;
}


.preu-form__status {
  min-height: 18px;

  margin: 0;

  color: var(--preu-navy);

  font-size: 10px;
}


.preu-form__status.is-error {
  color:
    var(--preu-red);
}


/* ============================================================
   10.10 ENVIAR
   ============================================================ */

.preu-form__submit {
  justify-self: end;

  min-width: 190px;
  min-height: 43px;

  display: inline-flex;

  align-items: center;
  justify-content: center;

  padding:
    9px
    25px;

  border: 0 !important;

  border-radius:
    22px !important;

  background:
    var(--preu-red) !important;

  color:
    #ffffff !important;

  box-shadow:
    none !important;

  font-size:
    12px !important;

  font-weight:
    700 !important;

  text-transform:
    none !important;

  cursor: pointer;

  transition:
    transform .2s ease,
    background-color .2s ease,
    box-shadow .2s ease;
}


.preu-form__submit:hover,
.preu-form__submit:focus-visible {
  transform:
    translateY(-2px);

  background:
    var(--preu-navy) !important;

  box-shadow:
    0
    9px
    20px
    rgba(7, 29, 76, .17) !important;
}


.preu-form__submit:disabled {
  opacity: .65;

  cursor: wait;

  transform: none;
}


/* ============================================================
   11. MODAL PDF
   ============================================================ */

.preu-modal {
  position: fixed;

  inset: 0;

  z-index: 10000;

  display: grid;

  place-items: center;

  padding: 24px;
}


.preu-modal[hidden] {
  display:
    none !important;
}


/* ============================================================
   11.1 BACKDROP
   ============================================================ */

.preu-modal__backdrop {
  position: absolute;

  inset: 0;

  background:
    rgba(3, 15, 39, .80);
}


/* ============================================================
   11.2 DIALOG
   ============================================================ */

.preu-modal__dialog {
  position: relative;

  z-index: 2;

  width:
    min(
      1000px,
      96vw
    );

  max-height: 92vh;

  display: grid;

  grid-template-rows:
    auto
    minmax(0, 1fr);

  overflow: hidden;

  border-radius: 16px;

  background: #ffffff;

  box-shadow:
    0
    25px
    80px
    rgba(0, 0, 0, .36);

  outline: none;
}


/* ============================================================
   11.3 HEADER
   ============================================================ */

.preu-modal__header {
  min-height: 62px;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 20px;

  padding:
    12px
    18px;

  border-bottom:
    1px solid
    #e0e6ed;

  background: #ffffff;
}


.preu-modal__header h2 {
  margin: 0;

  color: var(--preu-navy);

  font-size: 19px;
  font-weight: 700;
}


/* ============================================================
   11.4 CERRAR
   ============================================================ */

.preu-modal__close {
  width: 40px;
  height: 40px;

  display: grid;

  place-items: center;

  padding: 0;

  border:
    0 !important;

  border-radius:
    50% !important;

  background:
    #f0f3f6 !important;

  color:
    var(--preu-navy) !important;

  box-shadow:
    none !important;

  cursor: pointer;

  transition:
    background-color .2s ease,
    color .2s ease,
    transform .2s ease;
}


.preu-modal__close:hover,
.preu-modal__close:focus-visible {
  background:
    var(--preu-red) !important;

  color:
    #ffffff !important;

  transform:
    rotate(4deg);
}


/* ============================================================
   11.5 CONTENIDO
   ============================================================ */

.preu-modal__body {
  min-height: 250px;

  overflow: auto;

  background: #ffffff;
}


.preu-modal__body iframe {
  display: block;

  width: 100%;

  height:
    min(
      78vh,
      760px
    );

  border: 0;
}


/* ============================================================
   12. REVEAL AL SCROLL
   ============================================================ */

.preu-page.is-enhanced
.preu-reveal {
  opacity: 0;

  transform:
    translateY(35px);

  transition:
    opacity .7s ease,
    transform .7s
    cubic-bezier(.22, 1, .36, 1);
}


.preu-page.is-enhanced
.preu-reveal.is-visible {
  opacity: 1;

  transform:
    translateY(0);

}


/* ============================================================
   13. TABLET
   601px - 1100px
   ============================================================ */

@media
(
  min-width: 601px
)
and
(
  max-width: 1100px
) {

  /* HERO */

  .preu-hero {
    height: 470px;
  }


  /* MENÚ */

  .preu-admissions-menu__inner {
    width:
      calc(
        100% - 40px
      );

    grid-template-columns:
      repeat(
        3,
        minmax(0, 1fr)
      );
  }


  /* CURSO */

  .preu-about {
    width: 94%;
  }


  .preu-about__grid {
    grid-template-columns:
      minmax(0, 42fr)
      minmax(0, 58fr);

    gap: 32px;
  }


  .preu-about__media {
    min-height: 580px;
  }


  /* BANNER */

  .preu-next-level {
    width: 100%;
  }


  .preu-next-level__inner {
    width: 94%;
    min-height: 205px;
  }


  .preu-next-level__panel {
    min-height: 205px;
  }


  /* PERIODOS / EXPERIENCIA */

  .preu-periods__container,
  .preu-experience__container {
    width: 92%;
  }


  .preu-period-row {
    grid-template-columns:
      minmax(0, 37fr)
      minmax(0, 63fr);
  }


  .preu-period-card {
    min-height: 125px;
  }


  .preu-experience-card {
    min-height: 245px;

    padding:
      50px
      15px
      20px;
  }


  .preu-experience-card p {
    font-size: 9px;
  }


  /* FORMULARIO */

  .preu-register__container {
    width: 90%;
  }

}


/* ============================================================
   14. MÓVIL
   <= 600px
   ============================================================ */

@media
(
  max-width: 600px
) {

  /* ==========================================================
     HERO
     ========================================================== */

  .preu-hero {
    height: 350px;
  }


  .preu-hero__content {
    width:
      calc(
        100% - 42px
      );

    padding-bottom: 38px;
  }


  .preu-hero h1 {
    font-size: 38px;
  }


  .preu-hero p {
    font-size: 21px;
  }


  /* ==========================================================
     MENÚ
     ========================================================== */

  .preu-admissions-menu__inner {
    width: 100%;

    grid-template-columns: 1fr;

    gap: 0;
  }


  .preu-admissions-item {
    min-height: auto;

    padding:
      21px
      25px;
  }


  .preu-admissions-item h2 br {
    display: none;
  }


  /* ==========================================================
     CURSO
     ========================================================== */

  .preu-about {
    width: 100%;

    margin:
      35px
      auto
      45px;
  }


  .preu-about__grid {
    display: flex;

    flex-direction: column;

    gap: 0;
  }


  /* Imagen primero */

  .preu-about__media {
    order: 1;

    width: 100%;

    min-height: 0;
  }


  .preu-about__media img {
    width: 100%;
    height: auto;

    aspect-ratio:
      1 / .94;

    object-fit: cover;
  }


  /* Contenido después */

  .preu-about__content {
    order: 2;

    width: 100%;

    padding:
      30px
      27px
      0;
  }


  .preu-about h2 {
    font-size: 38px;
  }


  .preu-about__content > p {
    font-size: 10px;
  }


  .preu-info-trigger {
    font-size:
      11px !important;
  }


  /* ==========================================================
     PERIODOS
     ========================================================== */

  .preu-periods {
    padding:
      45px
      0
      20px;
  }


  .preu-periods__container {
    width:
      calc(
        100% - 42px
      );
  }


  .preu-period-row {
    grid-template-columns:
      1fr;

    gap: 15px;

    margin-bottom: 38px;
  }


  .preu-period-row__title {
    padding: 0;
  }


  .preu-period-row__title h3 {
    font-size: 25px;
  }


  .preu-period-card {
    min-height: 115px;

    padding:
      15px
      18px;
  }


  .preu-period-card strong {
    font-size: 24px;
  }


  /* ==========================================================
     EXPERIENCIA
     ========================================================== */

  .preu-experience {
    padding:
      20px
      0
      55px;
  }


  .preu-experience__container {
    width:
      calc(
        100% - 42px
      );
  }


  .preu-experience__header h2 {
    font-size: 28px;
  }


  .preu-experience__header p {
    font-size: 10px;
  }


  .preu-experience__cards {
    grid-template-columns:
      1fr;

    gap: 0;

    border-radius: 35px;
  }


  .preu-experience-card {
    min-height: 0;

    padding:
      26px
      25px;

    border-radius:
      0 !important;
  }


  .preu-experience-card:first-child {
    border-radius:
      35px
      35px
      0
      0 !important;
  }


  .preu-experience-card:last-child {
    border-radius:
      0
      0
      35px
      35px !important;
  }


  .preu-experience-card h3 {
    font-size: 16px;
  }


  .preu-experience-card p {
    font-size: 10px;
  }


  /* ==========================================================
     FRASE INSTITUCIONAL
     ========================================================== */

  .preu-quote img {
    width: 100%;

    max-width: none;

  }


  .preu-quote:hover img {
    transform:
      translateX(-3%)
      scale(1.012);
  }


  /* ==========================================================
     REGISTRO
     ========================================================== */

  .preu-register {
    padding:
      40px
      0
      50px;
  }


  .preu-register__container {
    width:
      calc(
        100% - 42px
      );
  }


  .preu-register h2 {
    font-size: 30px;
  }


  /* Radios uno debajo del otro */

  .preu-form__radios {
    display: grid;

    grid-template-columns:
      1fr;

    gap: 9px;
  }


  /* Campos uno debajo del otro */

  .preu-form-row {
    grid-template-columns:
      1fr;

    gap: 10px;
  }


  .preu-form-field--full {
    margin-bottom: 10px;
  }


  .preu-form
  input[type="text"],
  .preu-form
  input[type="tel"],
  .preu-form
  input[type="email"],
  .preu-form
  input[type="date"],
  .preu-form
  select {
    height:
      40px !important;
  }


  .preu-form__footer {
    grid-template-columns:
      1fr;
  }


  .preu-form__submit {
    justify-self: end;
  }


  /* ==========================================================
     MODAL
     ========================================================== */

  .preu-modal {
    padding: 12px;
  }


  .preu-modal__dialog {
    width: 100%;

    max-height: 94vh;
  }


  .preu-modal__body iframe {
    height: 76vh;
  }

}


/* ============================================================
   15. MÓVIL PEQUEÑO
   <= 390px
   ============================================================ */

@media
(
  max-width: 390px
) {

  .preu-period-row__cards {
    grid-template-columns:
      1fr;
  }


  .preu-form__submit {
    width: 100%;
  }

}


/* ============================================================
   16. FULL
   >= 1921px
   ============================================================ */

@media
(
  min-width: 1921px
) {

  .preu-hero__content,
  .preu-admissions-menu__inner,
  .preu-about,
  .preu-next-level,
  .preu-periods__container,
  .preu-experience__container,
  .preu-register__container {
    max-width: 1420px;
  }


  .preu-about__media {
    min-height: 720px;
  }


  .preu-experience-card {
    min-height: 285px;
  }

}


/* ============================================================
   17. REDUCED MOTION
   WCAG 2.2 AA
   ============================================================ */

@media
(
  prefers-reduced-motion:
  reduce
) {

  .preu-page *,
  .preu-page *::before,
  .preu-page *::after {
    animation-duration:
      .01ms !important;

    animation-iteration-count:
      1 !important;

    transition-duration:
      .01ms !important;

    scroll-behavior:
      auto !important;
  }


  .preu-page.is-enhanced
  .preu-reveal {
    opacity: 1;

    transform: none;
  }

}