/* ==================================================================
   CLASES DE BOOTSTRAP PERSONALIZADAS / SOBREESCRITAS
   ================================================================== */
.w-100 {
    width: 100%;
}
/* Flex */
.d-flex { display: flex !important; }
.flex-column { flex-direction: column !important; }
.align-items-center { align-items: center !important; }
.align-items-stretch { align-items: stretch !important; }
.justify-content-between { justify-content: space-between !important; }
.justify-content-center { justify-content: center !important; }

/* Grid Bootstrap 5 */
.row {
    --bs-gutter-x: 15px;
    --bs-gutter-y: 0;
    display: flex;
    flex-wrap: wrap;
    margin-top: calc(-1 * var(--bs-gutter-y));
    margin-right: calc(-.5 * var(--bs-gutter-x));
    margin-left: calc(-.5 * var(--bs-gutter-x));
}

.row > * {
    box-sizing: border-box;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    margin-top: var(--bs-gutter-y);
}

/* Columnas comunes */
.col { flex: 1 0 0%; }
.col-auto { flex: 0 0 auto; width: auto; }
.col-12 { flex: 0 0 auto; width: 100%; }

/* md ≥768px */
.col-md { flex: 1 0 0%; }
.col-md-auto { flex: 0 0 auto; width: auto; }
.col-md-1  { flex: 0 0 auto; width: 8.33333333%; }
.col-md-2  { flex: 0 0 auto; width: 16.66666667%; }
.col-md-3  { flex: 0 0 auto; width: 25%; }
.col-md-4  { flex: 0 0 auto; width: 33.33333333%; }
.col-md-5  { flex: 0 0 auto; width: 41.66666667%; }
.col-md-6  { flex: 0 0 auto; width: 50%; }
.col-md-7  { flex: 0 0 auto; width: 58.33333333%; }
.col-md-8  { flex: 0 0 auto; width: 66.66666667%; }
.col-md-9  { flex: 0 0 auto; width: 75%; }
.col-md-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-md-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-md-12 { flex: 0 0 auto; width: 100%; }

/* Offset */
.offset-md-3 { margin-left: 25%; }

/* Gap utilidades (Bootstrap 5) */
.g-3 { --bs-gutter-x: 1rem; }
.g-4 { --bs-gutter-x: 1.5rem; }
.g-5 { --bs-gutter-x: 3rem; }
.gy-4 { --bs-gutter-y: 1.5rem; }
.gx-4 { --bs-gutter-x: 1.5rem; }

/* Responsive extras para móviles */
@media (max-width: 767.98px) {
    .col-md-3,
    .col-md-9 {
        width: 100% !important;
        flex: 0 0 100% !important;
    }
    .medicos-grid .col-md-3 {
        width: 50% !important;
        flex: 0 0 50% !important;
    }
}

/* Alineación vertical - Flex */
.align-items-start    { align-items: flex-start !important; }
.align-items-end      { align-items: flex-end !important; }
.align-items-center   { align-items: center !important; }
.align-items-baseline { align-items: baseline !important; }
.align-items-stretch  { align-items: stretch !important; }

/* Variantes responsivas */
@media (min-width: 576px) {
    .align-items-sm-start    { align-items: flex-start !important; }
    .align-items-sm-end      { align-items: flex-end !important; }
    .align-items-sm-center   { align-items: center !important; }
    .align-items-sm-baseline { align-items: baseline !important; }
    .align-items-sm-stretch  { align-items: stretch !important; }
}
@media (min-width: 768px) {
    .align-items-md-start    { align-items: flex-start !important; }
    .align-items-md-end      { align-items: flex-end !important; }
    .align-items-md-center   { align-items: center !important; }
    .align-items-md-baseline { align-items: baseline !important; }
    .align-items-md-stretch  { align-items: stretch !important; }
}
@media (min-width: 992px) {
    .align-items-lg-start    { align-items: flex-start !important; }
    .align-items-lg-end      { align-items: flex-end !important; }
    .align-items-lg-center   { align-items: center !important; }
    .align-items-lg-baseline { align-items: baseline !important; }
    .align-items-lg-stretch  { align-items: stretch !important; }
}
@media (min-width: 1200px) {
    .align-items-xl-start    { align-items: flex-start !important; }
    .align-items-xl-end      { align-items: flex-end !important; }
    .align-items-xl-center   { align-items: center !important; }
    .align-items-xl-baseline { align-items: baseline !important; }
    .align-items-xl-stretch  { align-items: stretch !important; }
}
@media (min-width: 1400px) {
    .align-items-xxl-start    { align-items: flex-start !important; }
    .align-items-xxl-end      { align-items: flex-end !important; }
    .align-items-xxl-center   { align-items: center !important; }
    .align-items-xxl-baseline { align-items: baseline !important; }
    .align-items-xxl-stretch  { align-items: stretch !important; }
}

/* Justify Content - Flex horizontal */
.justify-content-start    { justify-content: flex-start !important; }
.justify-content-end      { justify-content: flex-end !important; }
.justify-content-center   { justify-content: center !important; }
.justify-content-between  { justify-content: space-between !important; }
.justify-content-around   { justify-content: space-around !important; }
.justify-content-evenly   { justify-content: space-evenly !important; }

/* Responsive */
@media (min-width: 576px) {
    .justify-content-sm-start    { justify-content: flex-start !important; }
    .justify-content-sm-end      { justify-content: flex-end !important; }
    .justify-content-sm-center   { justify-content: center !important; }
    .justify-content-sm-between  { justify-content: space-between !important; }
    .justify-content-sm-around   { justify-content: space-around !important; }
    .justify-content-sm-evenly   { justify-content: space-evenly !important; }
}
@media (min-width: 768px) {
    .justify-content-md-start    { justify-content: flex-start !important; }
    .justify-content-md-end      { justify-content: flex-end !important; }
    .justify-content-md-center   { justify-content: center !important; }
    .justify-content-md-between  { justify-content: space-between !important; }
    .justify-content-md-around   { justify-content: space-around !important; }
    .justify-content-md-evenly   { justify-content: space-evenly !important; }
}
@media (min-width: 992px) {
    .justify-content-lg-start    { justify-content: flex-start !important; }
    .justify-content-lg-end      { justify-content: flex-end !important; }
    .justify-content-lg-center   { justify-content: center !important; }
    .justify-content-lg-between  { justify-content: space-between !important; }
    .justify-content-lg-around   { justify-content: space-around !important; }
    .justify-content-lg-evenly   { justify-content: space-evenly !important; }
}
@media (min-width: 1200px) {
    .justify-content-xl-start    { justify-content: flex-start !important; }
    .justify-content-xl-end      { justify-content: flex-end !important; }
    .justify-content-xl-center   { justify-content: center !important; }
    .justify-content-xl-between  { justify-content: space-between !important; }
    .justify-content-xl-around   { justify-content: space-around !important; }
    .justify-content-xl-evenly   { justify-content: space-evenly !important; }
}
@media (min-width: 1400px) {
    .justify-content-xxl-start    { justify-content: flex-start !important; }
    .justify-content-xxl-end      { justify-content: flex-end !important; }
    .justify-content-xxl-center   { justify-content: center !important; }
    .justify-content-xxl-between  { justify-content: space-between !important; }
    .justify-content-xxl-around   { justify-content: space-around !important; }
    .justify-content-xxl-evenly   { justify-content: space-evenly !important; }
}
