:root {
    /* Variables */
    --enfocados-primary: #79242F;
    --enfocados-secondary: #CE0E2D;
    --enfocados-light: #E8B8A6;

    --ipade-primary: #0A2240;
    --ipade-secondary: #002D74;
    --ipade-light: #ABC8E7;

    --white: #fff;
    --black: #000;
    --gray: #393939;
    --gray-light: #F2F2F2;

    --font-dm: "DM Sans", "Verdana", Arial, Helvetica, sans-serif;
    --font-signika: "Signika", "DM Sans", Arial, Helvetica, sans-serif;

    --p: clamp(0.8rem, 0.657rem + 0.381vw, 1rem);
}

/* General */
html,
body {
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: var(--font-signika);
    font-size: 17px;
    font-weight: 400;
    color: var(--gray);
    background-color: var(--white);
    overflow-x: hidden;
}
.content {
    flex: 1;
}
body {
    display: flex;
    flex-direction: column;
}
.rounded {
    border-radius: 20px !important;
}
label {
    font-size: .8rem;
}
/* Backgrounds */
.bg-ipade-primary {
    background-color: var(--ipade-primary);
}
.bg-ipade-secondary {
    background-color: var(--ipade-secondary);
}
.bg-ipade-light {
    background-color: var(--ipade-light);
}
.bg-enfocados-primary {
    background-color: var(--enfocados-primary);
}
.bg-enfocados-secondary {
    background-color: var(--enfocados-secondary);
}
.bg-enfocados-light {
    background-color: var(--enfocados-light);
}
.bg-gray {
    background-color: var(--gray);
}
.bg-graylight {
    background-color: var(--gray-light);
}
/* Colors */
.color-ipade-primary {
    color: var(--ipade-primary);
}
.color-ipade-secondary {
    color: var(--ipade-secondary);
}
.color-ipade-light {
    color: var(--ipade-light);
}
.color-enfocados-primary {
    color: var(--enfocados-primary);
}
.color-enfocados-secondary {
    color: var(--enfocados-secondary);
}
.color-enfocados-light {
    color: var(--enfocados-light);
}
.color-white {
    color: var(--white);
}
.color-black {
    color: var(--black);
}
.color-gray {
    color: var(--gray);
}
.color-lightgray {
    color: var(--gray-light);
}
/* Buttons */
.btn-whats-mobile,
.btn-whats-desktop {
    border: 1px solid #ffffff !important;
    color: #ffffff !important;
    background: transparent !important;
    border-radius: 50px;
    font-weight: 500;
    padding: 6px 16px;
}

a {
    -webkit-transition: all .25s ease-in;
    -moz-transition: all .25s ease-in;
    -ms-transition: all .25s ease-in;
    -o-transition: all .25s ease-in;
    transition: all .25s ease-in;
}

/* NAVBAR */
.navbar {
    transition: all 0.3s ease;
    padding: 15px 0;
}
.navbar.scrolled {
    padding: 10px 0;
}
.logo {
    height: 82px;
    transition: all 0.3s ease;
}
.logo.scrolled {
    height: 50px;
}
/* Header */
.header-main {
    position: relative;
    aspect-ratio: 1920/727;
    background-size: cover;
    background-position: top center;
    
    background-image: url(https://image.edu.ipade.mx/lib/fe2b11747364057e741d77/m/1/0191d919-2b9f-4c63-9b36-aa7d6d599bb9.jpg);
}
.nowrap-desktop {
  white-space: nowrap;
}

/* Textos */
.roman {
    width: 120px;
}      
.text-danger {
    color: #C8102E !important;
}
/* Aumenta todo el texto globalmente */
body {
    font-size: 18px !important;   /* Aumenta el tamaño base */
}


/* Permite que el calendario salga del iframe */
#informes {
    overflow: visible !important;
}

/* Arregla que JotForm mete iframe con overflow por defecto */
.jotform-form iframe {
    overflow: visible !important;
}

/* Contenedor del campo fecha dentro del iframe */
.form-date,
.ui-datepicker,
[data-type="control_datetime"] {
    z-index: 999999 !important;
}
/* hace que el calendario no dependa del input */
.ui-datepicker {
    position: absolute !important;
    z-index: 999999 !important;
}

/* evita que el contenedor corte su contenido */
#informes, 
#informes * {
    overflow: visible !important;
}




h1, .fs-1 { font-size: 3rem !important; }
h2, .fs-2 { font-size: 2.5rem !important; }
h3, .fs-3 { font-size: 2rem !important; }
h4, .fs-4 { font-size: 1.6rem !important; }
h5, .fs-5 { font-size: 1.3rem !important; }
h6, .fs-6 { font-size: 1.15rem !important; }
h6, .fs-7 { font-size: 1rem !important; }

p, li, a, small {
    font-size: 1.15rem !important;  /* Texto general más grande */
}
h2, h3, h4, p {
    line-height: 1.2;
}
/* Agenda */
.agenda-item {
    align-items: flex-start;
}

.agenda-hora {
    flex-shrink: 0; /* evita que se mueva */
}

.agenda-contenido {
    flex-grow: 1;
}
/* Footer */
.footer {
    padding: clamp(2.3125rem, 1.7791rem + 0.8611vw, 2.8125rem) 0;
}
footer ul li {
    background-color: transparent;
}
footer ul li a:hover {
    color: var(--ipade-light) !important;
}
footer .p {
    font-size: var(--p);
}
footer .p a {
    text-decoration: none;
}
/* Estilos base para el iframe dentro de #informes */
#informes {
  padding: 24px; /* si quieres mantener padding ajusta este valor */
  box-sizing: border-box;
}

#informes iframe {
  display: block;
  width: 100%;
  
  height: auto;
  border: 0;
  border-radius: 10px;
  overflow: visible;
  background: transparent;
  
}


/* =========================
   RESPONSIVE ≤ 991px
========================= */
@media (max-width: 991px) {
 section.text-center h3.fs-3 {
    font-size: 1.4rem !important;
    line-height: 1.2;
  }

  section.text-center p.fs-6 {
    font-size: 0.85rem !important;
    line-height: 1.35;
  }
p.fecharesp {
    text-align: center !important;
    display: block;
    width: 100%;
  }
  /* NAVBAR */
  .navbar .container {
    justify-content: center;
  }

  .navbar-brand {
    margin: 0 auto;
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .logo {
    height: 64px; /* logo más grande y centrado */
  }

  .logo.scrolled {
    height: 64px;
  }

  .btn {
    padding: 10px;
  }

  /* HEADER */
  .header-main {
    margin-top: 0;
    background-image: none;
    background-color: #0a2240;
    aspect-ratio: auto;
    min-height: auto;
    position: relative;
  }

 .header-main .order-1 {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .header-main .row {
    align-items: flex-start !important;
    text-align: center;
    padding-top: 16px; /* SUBE el texto */
    overflow: visible !important;
  }

  .header-main .col-12.col-lg-6 {
    padding-top: 0;
    padding-bottom: 0;
    position: relative;
    z-index: 5;
   
  }
.header-main p {
    margin-bottom: 0.25rem;
  }
  /* 1️⃣ SUBIR EL BLOQUE DE TEXTO */
  .header-main .col-12.col-lg-6.p-4.order-2 {
      margin-top: -30vw !important; /* súbelo más */ 
      padding: 2px !important; /* bloque más compacto */
      max-width: 92%;
      margin-left: auto;
      margin-right: auto;
  }
/* BAJAR SOLO EL P (Programa de Dirección D-1) */ 
  .header-main h1.titulo-bg { 
      margin-top: 3.8vw !important;
      margin-bottom: 10vw !important;
  }

  /* 2️⃣ REDUCIR TAMAÑO DE TEXTO (gana a los !important globales) */
  .header-main h1.fs-3 {
    font-size: 1.35rem !important;
    line-height: 1.15;
  }

  
  .header-main span.fs-6 {
    font-size: 0.85rem !important;
  }
.header-main p.fs-3{
   font-size: 1.15rem !important;
}



  /* 3️⃣ EVITAR SALTOS DE LÍNEA */
  
  .header-main h1,
  .header-main span {
    white-space: nowrap !important;
  }
.col-12.col-lg-5 h2.fs-2 {
    font-size: 1.8rem !important;   /* más pequeño */
  
    overflow: hidden;               /* seguridad */
    text-overflow: ellipsis;        /* evita desborde */
    line-height: 1.2;
  }

.col-12.col-lg-5 p {
    font-size: 0.9rem !important; 
   
}
/*TAMAÑOS DE LETRA DE LISTAS */
 .agenda-dia p {
    font-size: 0.9rem !important;
  
  }

  .agenda-dia h2 {
    font-size: 1.8rem !important;
    line-height: 1.2;
  }
.agenda-dia h3 {
    font-size: 1.8rem !important;
    line-height: 1.2;
  }
.agenda-dia ul li {
    font-size: 0.8rem !important;
    line-height: 1.3;
  }


/* ACOMODAR LISTA EN RESPONSIVE */
.agenda-hora {
    width: 140px !important; /* ajusta el ancho en mobile */
  }
  .badge-medex {
    margin-left: auto;
    margin-right: auto;
  }

  .header-main .img-fluid {
    margin-bottom: -80px;
  }

  /* OTROS */
  .redondito {
    position: relative;
    border-radius: 0 0 20px 20px;
    width: 100%;
    padding-top: 50px;
    padding-bottom: 100px;
    top: -25px;
    z-index: 1;
  }

  .folleto {
    max-height: 250px;
  }

  #sobres {
    margin-left: 0 !important;
  }

 
}

/* =========================
   MOBILE ≤ 767px
========================= */
@media (max-width: 767px) {
   
  section img {
    max-width: 100%;
    height: auto;
  }

  h3.display-6 {
    font-size: 1.75rem;
  }
  
}

/* =========================
   DESKTOP ≥ 992px
========================= */
@media (min-width: 992px) {

  .video-casos .row {
    max-width: 900px;
    margin: 0 auto;
  }
  .header-main .col-lg-6.order-lg-1 {
    margin-bottom: 60px; /* ajusta este valor */
  }
}


/* =========================
   FIX Z-INDEX HEADER IOS
========================= */

/* Detecta iOS Safari */
@supports (-webkit-touch-callout: none) {

  @media (max-width: 991px) {

    /* Header crea contexto de capas */
    .header-main {
      position: relative;
      z-index: 1;
    }

    /* Texto siempre encima */
    .header-main .col-12.col-lg-6.order-2 {
      position: relative;
      z-index: 10;
    }

    /* Imagen siempre debajo */
    .header-main .col-12.col-lg-6.order-1 {
      position: relative;
      z-index: 1;
    }

    .header-main img {
      position: relative;
      z-index: 1;
    }

  }

}
