/* /Components/Layout/BarraPanel.razor.rz.scp.css */
.fdm-app__identidad[b-ytktew5kje] {
    display: flex;
    align-items: center;
    gap: 14px;
}

.fdm-app__usuario[b-ytktew5kje] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.fdm-app__nombre[b-ytktew5kje] {
    font-size: 0.875rem;
    color: var(--fdm-texto-tenue);
}

.fdm-app__usuario form[b-ytktew5kje] {
    margin: 0;
}

[b-ytktew5kje] .fdm-btn--chico {
    min-height: 40px;
    padding: 8px 18px;
    font-size: 0.8125rem;
}

@media (max-width: 700px) {
    .fdm-app__nombre[b-ytktew5kje] {
        display: none;
    }
}
/* /Components/Layout/LayoutCuenta.razor.rz.scp.css */
.fdm-cuenta__volver[b-j5rum26nqp] {
    color: var(--fdm-texto-tenue);
    font-size: 0.9375rem;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.fdm-cuenta__volver:hover[b-j5rum26nqp] {
    color: var(--fdm-acento-texto);
}

/* Bootstrap reparte las pantallas de Identity en columnas de escritorio;
   dentro de la caja centrada estorban. */
[b-j5rum26nqp] .row {
    margin: 0;
}

[b-j5rum26nqp] .row > [class^="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    padding: 0;
}

[b-j5rum26nqp] h1 {
    font-size: clamp(2rem, 6vw, 3rem);
    margin-bottom: 8px;
}

[b-j5rum26nqp] h2 {
    font-size: 1.125rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 500;
    text-transform: none;
    color: var(--fdm-texto-suave);
    margin-bottom: 20px;
}

[b-j5rum26nqp] h3 {
    font-size: 0.9375rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--fdm-texto-tenue);
}

[b-j5rum26nqp] hr {
    border-color: var(--fdm-borde);
    opacity: 1;
    margin: 20px 0;
}

[b-j5rum26nqp] a {
    color: var(--fdm-acento-texto);
    text-decoration: underline;
}
/* /Components/Layout/LogoFdm.razor.rz.scp.css */
.fdm-logo-bloque[b-8nwc4amdlq] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
    min-height: 44px;
}

.fdm-logo__img[b-8nwc4amdlq] {
    height: auto;
    width: 112px;
    display: block;
    /* El render viene con su propio brillo; un filtro extra lo ensucia. */
}

.fdm-logo-bloque:hover .fdm-logo__nombre[b-8nwc4amdlq] {
    color: var(--fdm-oro);
}

@media (max-width: 700px) {
    .fdm-logo__img[b-8nwc4amdlq] {
        width: 96px;
    }

    .fdm-logo__nombre[b-8nwc4amdlq] {
        display: none;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.fdm-sitio[b-skzuj2yu1z] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--fdm-fondo);
}

/* Ojo: el min-width de los hijos flex vive en fdm.css, no aquí. El CSS con
   ámbito no alcanza a los componentes hijos (PieFdm, NavMenu), que son
   justamente los que desbordaban. */

.fdm-sitio > main[b-skzuj2yu1z] {
    flex: 1;
}

/* El estilo de #blazor-error-ui vive en fdm.css, no aquí: el CSS con ámbito
   solo aplica a este layout y en los demás el aviso quedaba visible siempre. */
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.fdm-nav__salir[b-3gp4o4on6d] {
    display: inline;
    margin: 0;
}

.fdm-nav__salir-boton[b-3gp4o4on6d] {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    font-weight: 500;
    color: var(--fdm-texto);
    cursor: pointer;
    min-height: 44px;
}

.fdm-nav__salir-boton:hover[b-3gp4o4on6d] {
    color: var(--fdm-acento-texto);
}

/* ---------- Quién tiene la sesión abierta ---------- */

/* Separado del grupo de enlaces por una línea: lo de la izquierda son
   destinos, lo de la derecha es la cuenta. */
.fdm-nav__usuario[b-3gp4o4on6d] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding-left: 28px;
    border-left: 1px solid var(--fdm-borde);
    color: var(--fdm-texto-suave);
    font-size: 0.9375rem;
    /* Es el nombre de una persona: no se parte a media palabra. */
    white-space: nowrap;
}

.fdm-nav__inicial[b-3gp4o4on6d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border: 1px solid var(--fdm-oro);
    border-radius: 50%;
    color: var(--fdm-oro);
    font-family: var(--fdm-display);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1;
}

/* Un nombre largo no puede empujar el botón de agendar fuera de la barra. */
.fdm-nav__nombre[b-3gp4o4on6d] {
    max-width: 18ch;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* A 1280 px —el ancho de laptop más común— el chip dejaba la barra 9 px corta
   y la partía en dos renglones. Apretar el espacio entre enlaces de 28 a 22
   libera 36 y la deja en uno solo. Seis píxeles menos entre enlaces no se
   notan; un renglón de más, sí. */
@media (max-width: 1400px) {
    .fdm-nav__enlaces[b-3gp4o4on6d] {
        gap: 22px;
    }
}

/* El chip se queda completo en todos los anchos.
   Probé recortarlo al apretar y no sirve de nada: a 1150 px el contenedor
   útil mide 975 y la barra necesita 1064, así que se envuelve igual con o sin
   el círculo. La barra ya se partía en dos renglones abajo de ~1100 px por
   diseño —logo arriba, enlaces abajo— y ese estado se ve bien; el chip solo
   mueve ese umbral unos 100 px. Más vale eso que esconder justo el dato que
   se vino a mostrar. */

/* En móvil la línea divisoria no separa nada: los enlaces ya van en otro
   renglón. */
@media (max-width: 700px) {
    .fdm-nav__usuario[b-3gp4o4on6d] {
        padding-left: 0;
        border-left: none;
    }
}
/* /Components/Layout/PieFdm.razor.rz.scp.css */
.pie__logo[b-v3htbamsdh] {
    width: 260px;
    max-width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 700px) {
    .pie__logo[b-v3htbamsdh] {
        width: 240px;
    }
}

.pie__dato[b-v3htbamsdh] {
    margin: 0;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--fdm-texto-suave);
    font-style: normal;
}

.pie__enlace[b-v3htbamsdh] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 1rem;
    color: var(--fdm-texto-suave);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.pie__enlace:hover[b-v3htbamsdh] {
    color: var(--fdm-acento-texto);
}

.pie__redes[b-v3htbamsdh] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.pie__redes a[b-v3htbamsdh] {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-size: 0.9375rem;
    color: var(--fdm-texto-tenue);
}

.pie__redes a:hover[b-v3htbamsdh] {
    color: var(--fdm-acento-texto);
}

/* Ocupa todo el ancho del grid, debajo de las cuatro columnas. */
.pie__legal[b-v3htbamsdh] {
    grid-column: 1 / -1;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 28px;
    margin-top: 12px;
    border-top: 1px solid var(--fdm-borde);
    font-size: 0.875rem;
    color: var(--fdm-texto-tenue);
}

.pie__legal a[b-v3htbamsdh] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--fdm-texto-tenue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.pie__legal a:hover[b-v3htbamsdh] {
    color: var(--fdm-acento-texto);
}

/* El botón de instalar vive en la línea legal: quien lo busca lo encuentra,
   y a quien no le interesa no le estorba. */
.pie__instalar[b-v3htbamsdh] {
    background: none;
    border: 1px solid var(--fdm-borde-fuerte);
    color: var(--fdm-texto-suave);
    font: inherit;
    font-size: 0.8125rem;
    padding: 8px 16px;
    min-height: 44px;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease;
}

.pie__instalar:hover[b-v3htbamsdh] {
    border-color: var(--fdm-oro);
    color: var(--fdm-oro);
}

/* hidden sobre un elemento con display propio no hace nada por sí solo. */
.pie__instalar[hidden][b-v3htbamsdh] {
    display: none;
}

.pie__instalar-ios[b-v3htbamsdh] {
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

.pie__instalar-ios[hidden][b-v3htbamsdh] {
    display: none;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-z6156tebp4],
.components-reconnect-repeated-attempt-visible[b-z6156tebp4],
.components-reconnect-failed-visible[b-z6156tebp4],
.components-pause-visible[b-z6156tebp4],
.components-resume-failed-visible[b-z6156tebp4],
.components-rejoining-animation[b-z6156tebp4] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-retrying[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-failed[b-z6156tebp4],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-z6156tebp4] {
    display: block;
}


#components-reconnect-modal[b-z6156tebp4] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-z6156tebp4 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-z6156tebp4 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-z6156tebp4 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-z6156tebp4]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-z6156tebp4 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-z6156tebp4 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-z6156tebp4 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-z6156tebp4 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-z6156tebp4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-z6156tebp4] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-z6156tebp4] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-z6156tebp4] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-z6156tebp4] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-z6156tebp4] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-z6156tebp4] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-z6156tebp4 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-z6156tebp4] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-z6156tebp4 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Admin/Agenda.razor.rz.scp.css */
.agenda__navegacion[b-0d2oj5r93j] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.agenda[b-0d2oj5r93j] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
    gap: 16px;
    align-items: start;
}

.columna[b-0d2oj5r93j] {
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    padding: 18px;
    min-width: 0;
}

.columna__cabecera[b-0d2oj5r93j] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--fdm-borde);
}

.columna__nombre[b-0d2oj5r93j] {
    margin: 0;
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.375rem;
    text-transform: uppercase;
    line-height: 1;
}

.columna__cuenta[b-0d2oj5r93j] {
    font-size: 0.75rem;
    letter-spacing: 1px;
    color: var(--fdm-texto-tenue);
    white-space: nowrap;
}

.columna__libre[b-0d2oj5r93j] {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--fdm-texto-tenue);
}

.columna__citas[b-0d2oj5r93j] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cita-admin[b-0d2oj5r93j] {
    display: grid;
    /* 70 y no 58: cabe "11:00 am" sin partirse. */
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 14px;
    padding: 12px;
    background: var(--fdm-fondo);
    border: 1px solid var(--fdm-borde);
}

.cita-admin--cerrada[b-0d2oj5r93j] {
    opacity: 0.55;
}

.cita-admin__hora[b-0d2oj5r93j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    border-right: 1px solid var(--fdm-borde);
    padding-right: 8px;
}

.cita-admin__hora strong[b-0d2oj5r93j] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.125rem;
    line-height: 1;
}

.cita-admin__hora span[b-0d2oj5r93j] {
    font-size: 0.6875rem;
    color: var(--fdm-texto-tenue);
}

.cita-admin__datos[b-0d2oj5r93j] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cita-admin__linea[b-0d2oj5r93j] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cita-admin__cliente[b-0d2oj5r93j] {
    font-weight: 600;
    font-size: 0.9375rem;
    word-break: break-word;
}

.cita-admin__servicio[b-0d2oj5r93j],
.cita-admin__notas[b-0d2oj5r93j] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

.cita-admin__notas[b-0d2oj5r93j] {
    font-style: italic;
}

.cita-admin__tel[b-0d2oj5r93j] {
    font-size: 0.8125rem;
    color: var(--fdm-acento-texto);
    text-decoration: underline;
    text-underline-offset: 3px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.cita-admin__acciones[b-0d2oj5r93j] {
    grid-column: 1 / -1;
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    padding-top: 6px;
    border-top: 1px solid var(--fdm-borde);
}
/* /Components/Pages/Admin/ColaboradorEditar.razor.rz.scp.css */
/* Lo compartido (.editar__*, .tarjeta-admin, .rejilla-campos) vive en fdm.css. */

.editar__categoria[b-3bupjpc4hz] {
    font-size: 0.75rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--fdm-texto-tenue);
    margin: 18px 0 10px;
}

.editar__categoria:first-of-type[b-3bupjpc4hz] { margin-top: 0; }

.servicios-check[b-3bupjpc4hz] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
    gap: 6px 20px;
}

/* ---------- Horario ---------- */

.horario[b-3bupjpc4hz] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dia-horario[b-3bupjpc4hz] {
    padding: 14px 0;
    border-bottom: 1px solid var(--fdm-borde);
}

.dia-horario:last-child[b-3bupjpc4hz] { border-bottom: none; }

.dia-horario__cabecera[b-3bupjpc4hz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.dia-horario__nombre[b-3bupjpc4hz] {
    margin: 0;
    font-size: 1rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}

.dia-horario__agregar[b-3bupjpc4hz],
.dia-horario__copiar[b-3bupjpc4hz] {
    background: none;
    border: none;
    padding: 0 2px;
    min-height: 44px;
    font-family: var(--fdm-cuerpo);
    font-size: 0.875rem;
    color: var(--fdm-acento-texto);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.dia-horario__agregar:hover[b-3bupjpc4hz],
.dia-horario__copiar:hover[b-3bupjpc4hz] { color: var(--fdm-texto); }

.dia-horario__descanso[b-3bupjpc4hz] {
    margin: 4px 0 0;
    font-size: 0.875rem;
    color: var(--fdm-texto-tenue);
}

.tramo[b-3bupjpc4hz] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    flex-wrap: wrap;
}

.tramo__hora[b-3bupjpc4hz] {
    width: 130px;
    min-height: 48px;
    /* El selector nativo pinta su icono oscuro sobre fondo oscuro. */
    color-scheme: dark;
}

.tramo__a[b-3bupjpc4hz] {
    color: var(--fdm-texto-tenue);
    font-size: 0.875rem;
}

.tramo__quitar[b-3bupjpc4hz] {
    background: none;
    border: none;
    min-height: 44px;
    padding: 0 4px;
    font-family: var(--fdm-cuerpo);
    font-size: 0.875rem;
    color: var(--fdm-error);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

@media (max-width: 760px) {
    .tramo__hora[b-3bupjpc4hz] {
        width: calc(50% - 30px);
        min-width: 110px;
    }
}
/* /Components/Pages/Admin/Colaboradores.razor.rz.scp.css */
/* Lo compartido (.admin__*, .etiqueta, .fdm-btn--chico) vive en fdm.css:
   el CSS con ámbito no alcanza a otras pantallas. */

.barberos[b-376t7uw7cc] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.barbero[b-376t7uw7cc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 22px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    flex-wrap: wrap;
}

.barbero--inactivo[b-376t7uw7cc] { opacity: 0.62; }

.barbero__datos[b-376t7uw7cc] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.barbero__linea[b-376t7uw7cc] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.barbero__nombre[b-376t7uw7cc] {
    margin: 0;
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.5rem;
    text-transform: uppercase;
    line-height: 1.05;
}

.barbero__correo[b-376t7uw7cc] {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--fdm-texto-suave);
    word-break: break-word;
}

.barbero__meta[b-376t7uw7cc] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

/* Lo que falta se marca en color, no solo por su ausencia. */
.meta--falta[b-376t7uw7cc] { color: var(--fdm-error); }

@media (max-width: 700px) {
    .barbero[b-376t7uw7cc] { align-items: flex-start; }
    .barbero[b-376t7uw7cc]  .fdm-btn--chico { width: 100%; }
}
/* /Components/Pages/Admin/Contenido.razor.rz.scp.css */
.pestanas[b-vmc4h3vzz1] {
    display: flex;
    gap: 4px;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--fdm-borde);
}

.pestana[b-vmc4h3vzz1] {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 12px 18px;
    min-height: 48px;
    font-family: var(--fdm-cuerpo);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--fdm-texto-tenue);
    cursor: pointer;
}

.pestana:hover[b-vmc4h3vzz1] { color: var(--fdm-texto); }

.pestana--activa[b-vmc4h3vzz1] {
    color: var(--fdm-acento-texto);
    border-bottom-color: var(--fdm-acento-texto);
}

.pendiente-marca[b-vmc4h3vzz1] {
    margin-left: 8px;
    font-size: 0.625rem;
    letter-spacing: 1px;
    color: var(--fdm-error);
    border: 1px solid currentColor;
    padding: 2px 6px;
}

/* ---------- Fotos ---------- */

.fotos-admin[b-vmc4h3vzz1] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.foto-admin[b-vmc4h3vzz1] {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 20px;
    padding: 18px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
}

.foto-admin--apagada[b-vmc4h3vzz1] { opacity: 0.55; }

.foto-admin__miniatura[b-vmc4h3vzz1] {
    width: 110px;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border: 1px solid var(--fdm-borde);
}

.foto-admin__campos[b-vmc4h3vzz1] {
    min-width: 0;
}

.foto-admin__fila[b-vmc4h3vzz1] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr));
    gap: 0 16px;
}

@media (max-width: 700px) {
    .foto-admin[b-vmc4h3vzz1] {
        grid-template-columns: 1fr;
    }

    .foto-admin__miniatura[b-vmc4h3vzz1] { width: 140px; }
}

/* ---------- Subir una foto ---------- */

.subir[b-vmc4h3vzz1] {
    margin-bottom: 28px;
}

.subir__archivo[b-vmc4h3vzz1] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 16px;
}

/* El input real se esconde y la etiqueta hace de botón: el control nativo no
   se puede temizar y aquí todo lo demás es de la marca. La etiqueta envuelve
   al input, así que el clic le llega igual sin JavaScript. */
.subir__boton[b-vmc4h3vzz1] {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.subir__input[b-vmc4h3vzz1] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.subir__nombre[b-vmc4h3vzz1] {
    font-size: 0.875rem;
    color: var(--fdm-texto-tenue);
    /* Un nombre de archivo largo no puede estirar la tarjeta. */
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.foto-admin__pie[b-vmc4h3vzz1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.foto-admin__confirmar[b-vmc4h3vzz1] {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 0.875rem;
    color: var(--fdm-acento-texto);
}
/* /Components/Pages/Admin/ServicioEditar.razor.rz.scp.css */
/* Lo compartido vive en fdm.css. */

.variantes-edit[b-8tfd9xlohp] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 12px;
}

.variante-fila[b-8tfd9xlohp] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.variante-fila .fdm-input[b-8tfd9xlohp] {
    min-height: 48px;
}
/* /Components/Pages/Admin/Servicios.razor.rz.scp.css */
/* Lo compartido vive en fdm.css. */

.servicios[b-vgr6154oh7] {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.servicio-fila[b-vgr6154oh7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    flex-wrap: wrap;
}

.servicio-fila--apagado[b-vgr6154oh7] { opacity: 0.6; }

.servicio-fila__datos[b-vgr6154oh7] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.servicio-fila__linea[b-vgr6154oh7] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}

.servicio-fila__nombre[b-vgr6154oh7] {
    margin: 0;
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.375rem;
    text-transform: uppercase;
    line-height: 1.05;
}

.servicio-fila__precio[b-vgr6154oh7] {
    font-family: var(--fdm-display);
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--fdm-oro);
    white-space: nowrap;
}

.servicio-fila__meta[b-vgr6154oh7] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

.servicio-fila__acciones[b-vgr6154oh7] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

@media (max-width: 700px) {
    .servicio-fila[b-vgr6154oh7] { align-items: flex-start; }
    .servicio-fila__acciones[b-vgr6154oh7] { width: 100%; justify-content: space-between; }
}
/* /Components/Pages/Admin/Usuarios.razor.rz.scp.css */
.usuarios[b-536mns7tnv] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.usuario[b-536mns7tnv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 18px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    flex-wrap: wrap;
}

.usuario--inactivo[b-536mns7tnv] { opacity: 0.55; }

.usuario__datos[b-536mns7tnv] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.usuario__linea[b-536mns7tnv] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.usuario__nombre[b-536mns7tnv] {
    font-weight: 600;
    font-size: 1rem;
}

.usuario__contacto[b-536mns7tnv] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--fdm-texto-tenue);
    word-break: break-word;
}

.usuario__meta[b-536mns7tnv] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
    white-space: nowrap;
}

@media (max-width: 700px) {
    .usuario__meta[b-536mns7tnv] {
        align-items: flex-start;
        flex-direction: row;
        gap: 12px;
    }
}
/* /Components/Pages/Colaborador/Disponibilidad.razor.rz.scp.css */
/* Lo compartido vive en fdm.css. */

.tramo[b-v0k6xqw9s7] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.tramo__hora[b-v0k6xqw9s7] {
    width: 140px;
    min-height: 48px;
    color-scheme: dark;
}

.tramo__a[b-v0k6xqw9s7] {
    color: var(--fdm-texto-tenue);
    font-size: 0.875rem;
}

.excepciones[b-v0k6xqw9s7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.excepcion[b-v0k6xqw9s7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 16px;
    background: var(--fdm-fondo);
    border: 1px solid var(--fdm-borde);
    flex-wrap: wrap;
}

.excepcion__datos[b-v0k6xqw9s7] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.excepcion__linea[b-v0k6xqw9s7] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.excepcion__fechas[b-v0k6xqw9s7] {
    font-size: 0.9375rem;
    color: var(--fdm-texto);
}

.excepcion__motivo[b-v0k6xqw9s7] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
    font-style: italic;
}

@media (max-width: 700px) {
    .tramo__hora[b-v0k6xqw9s7] { width: calc(50% - 24px); min-width: 110px; }
}
/* /Components/Pages/Colaborador/Horario.razor.rz.scp.css */
/* Lo compartido vive en fdm.css. Los estilos del editor de horario se
   repiten aquí porque el CSS con ámbito no cruza componentes. */

/* ---------- Horario ---------- */

.horario[b-1wqia3u4ke] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dia-horario[b-1wqia3u4ke] {
    padding: 14px 0;
    border-bottom: 1px solid var(--fdm-borde);
}

.dia-horario:last-child[b-1wqia3u4ke] { border-bottom: none; }

.dia-horario__cabecera[b-1wqia3u4ke] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.dia-horario__nombre[b-1wqia3u4ke] {
    margin: 0;
    font-size: 1rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}

.dia-horario__agregar[b-1wqia3u4ke],
.dia-horario__copiar[b-1wqia3u4ke] {
    background: none;
    border: none;
    padding: 0 2px;
    min-height: 44px;
    font-family: var(--fdm-cuerpo);
    font-size: 0.875rem;
    color: var(--fdm-acento-texto);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.dia-horario__agregar:hover[b-1wqia3u4ke],
.dia-horario__copiar:hover[b-1wqia3u4ke] { color: var(--fdm-texto); }

.dia-horario__descanso[b-1wqia3u4ke] {
    margin: 4px 0 0;
    font-size: 0.875rem;
    color: var(--fdm-texto-tenue);
}

.tramo[b-1wqia3u4ke] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    flex-wrap: wrap;
}

.tramo__hora[b-1wqia3u4ke] {
    width: 130px;
    min-height: 48px;
    /* El selector nativo pinta su icono oscuro sobre fondo oscuro. */
    color-scheme: dark;
}

.tramo__a[b-1wqia3u4ke] {
    color: var(--fdm-texto-tenue);
    font-size: 0.875rem;
}

.tramo__quitar[b-1wqia3u4ke] {
    background: none;
    border: none;
    min-height: 44px;
    padding: 0 4px;
    font-family: var(--fdm-cuerpo);
    font-size: 0.875rem;
    color: var(--fdm-error);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

@media (max-width: 760px) {
    .tramo__hora[b-1wqia3u4ke] {
        width: calc(50% - 30px);
        min-width: 110px;
    }
}
/* /Components/Pages/Colaborador/Index.razor.rz.scp.css */
.agenda__navegacion[b-4p388yw7gs] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.semana[b-4p388yw7gs] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
    gap: 16px;
    align-items: start;
}

.dia-col[b-4p388yw7gs] {
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    padding: 18px;
    min-width: 0;
}

.dia-col__cabecera[b-4p388yw7gs] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--fdm-borde);
}

.dia-col__nombre[b-4p388yw7gs] {
    margin: 0;
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.25rem;
    text-transform: uppercase;
    line-height: 1;
}

.dia-col__resumen[b-4p388yw7gs] {
    font-size: 0.75rem;
    letter-spacing: 1px;
    color: var(--fdm-oro);
    white-space: nowrap;
}

.dia-col__citas[b-4p388yw7gs] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cita-barbero[b-4p388yw7gs] {
    display: grid;
    /* 74 y no 62: cabe "11:00 am" sin partirse. */
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 14px;
    padding: 12px;
    background: var(--fdm-fondo);
    border: 1px solid var(--fdm-borde);
}

.cita-barbero--cerrada[b-4p388yw7gs] { opacity: 0.55; }

.cita-barbero__hora[b-4p388yw7gs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    border-right: 1px solid var(--fdm-borde);
    padding-right: 8px;
}

.cita-barbero__hora strong[b-4p388yw7gs] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.25rem;
    line-height: 1;
}

.cita-barbero__hora span[b-4p388yw7gs] {
    font-size: 0.625rem;
    color: var(--fdm-texto-tenue);
    white-space: nowrap;
}

.cita-barbero__datos[b-4p388yw7gs] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cita-barbero__linea[b-4p388yw7gs] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cita-barbero__cliente[b-4p388yw7gs] {
    font-weight: 600;
    font-size: 1rem;
    word-break: break-word;
}

.cita-barbero__servicio[b-4p388yw7gs],
.cita-barbero__notas[b-4p388yw7gs] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

.cita-barbero__notas[b-4p388yw7gs] { font-style: italic; }

.cita-barbero__tel[b-4p388yw7gs] {
    font-size: 0.875rem;
    color: var(--fdm-acento-texto);
    text-decoration: underline;
    text-underline-offset: 3px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.cita-barbero__acciones[b-4p388yw7gs] {
    grid-column: 1 / -1;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 6px;
    border-top: 1px solid var(--fdm-borde);
}
/* /Components/Pages/MiCuenta/Index.razor.rz.scp.css */
.citas__cargando[b-17ccf96k1x] {
    color: var(--fdm-texto-tenue);
}

.citas__bloque[b-17ccf96k1x] {
    margin-top: 36px;
}

.citas__titulo[b-17ccf96k1x] {
    font-size: 1.25rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--fdm-oro);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdm-borde);
    margin-bottom: 20px;
}

.citas__vacio[b-17ccf96k1x] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 28px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
}

.citas__vacio p[b-17ccf96k1x] {
    margin: 0;
    color: var(--fdm-texto-suave);
}

.citas__lista[b-17ccf96k1x] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.cita[b-17ccf96k1x] {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    gap: 24px;
    align-items: start;
    padding: 22px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
}

.cita--pasada[b-17ccf96k1x] {
    opacity: 0.72;
    grid-template-columns: 76px minmax(0, 1fr);
}

/* Bloque de fecha, como el taco de un calendario. */
.cita__cuando[b-17ccf96k1x] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 0;
    border: 1px solid var(--fdm-borde-medio);
}

.cita__dia[b-17ccf96k1x] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 2rem;
    line-height: 1;
    color: var(--fdm-texto);
}

.cita__mes[b-17ccf96k1x] {
    font-size: 0.6875rem;
    letter-spacing: 2px;
    color: var(--fdm-texto-tenue);
    margin-top: 2px;
}

.cita__datos[b-17ccf96k1x] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cita__linea[b-17ccf96k1x] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.cita__servicio[b-17ccf96k1x] {
    margin: 0;
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.5rem;
    text-transform: uppercase;
    line-height: 1.05;
}

.cita__detalle[b-17ccf96k1x] {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--fdm-texto-suave);
}

/* La fecha viene del calendario en minúsculas y solo debe subir su primera
   letra. text-transform: capitalize sube TODAS las palabras y dejaba
   "Sábado 19 De Septiembre A Las 11:30 H". */
.cita__detalle[b-17ccf96k1x]::first-letter {
    text-transform: uppercase;
}

.cita__folio[b-17ccf96k1x],
.cita__nota-limite[b-17ccf96k1x] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

.cita__notas[b-17ccf96k1x] {
    margin: 4px 0 0;
    font-size: 0.875rem;
    font-style: italic;
    color: var(--fdm-texto-tenue);
}

.cita__acciones[b-17ccf96k1x] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    text-align: right;
}

.cita__accion[b-17ccf96k1x] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 4px;
    background: none;
    border: none;
    font-family: var(--fdm-cuerpo);
    font-size: 0.875rem;
    color: var(--fdm-acento-texto);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    white-space: nowrap;
}

.cita__accion:hover[b-17ccf96k1x] {
    color: var(--fdm-texto);
}

.cita__accion--peligro[b-17ccf96k1x] {
    color: var(--fdm-error);
}

.cita__nota-limite[b-17ccf96k1x] {
    max-width: 180px;
    white-space: normal;
}

/* ---------- Distintivo de estado ---------- */

.estado[b-17ccf96k1x] {
    font-size: 0.6875rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 4px 9px;
    border: 1px solid currentColor;
    white-space: nowrap;
}

.estado--ok[b-17ccf96k1x] { color: var(--fdm-exito); }
.estado--espera[b-17ccf96k1x] { color: var(--fdm-acento-texto); }
.estado--cerrado[b-17ccf96k1x] { color: var(--fdm-texto-tenue); }

/* ---------- Diálogo de cancelación ---------- */

.dialogo[b-17ccf96k1x] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: rgba(0, 0, 0, 0.72);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.dialogo__caja[b-17ccf96k1x] {
    width: 100%;
    max-width: 480px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde-fuerte);
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.dialogo__caja h2[b-17ccf96k1x] {
    font-size: 1.75rem;
    margin: 0;
}

.dialogo__texto[b-17ccf96k1x] {
    margin: 0;
    color: var(--fdm-texto-suave);
    line-height: 1.55;
}

.dialogo__acciones[b-17ccf96k1x] {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* ---------- Responsive ---------- */

@media (max-width: 800px) {
    .cita[b-17ccf96k1x],
    .cita--pasada[b-17ccf96k1x] {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 16px;
    }

    .cita__acciones[b-17ccf96k1x] {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        text-align: left;
        gap: 16px;
        padding-top: 8px;
        border-top: 1px solid var(--fdm-borde);
    }

    .cita__nota-limite[b-17ccf96k1x] {
        max-width: none;
    }

    .dialogo__acciones .fdm-btn[b-17ccf96k1x] {
        flex: 1 1 140px;
    }
}
/* /Components/Pages/MiCuenta/Perfil.razor.rz.scp.css */
.perfil__cargando[b-es2vigix7h] {
    color: var(--fdm-texto-tenue);
}

.perfil[b-es2vigix7h] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 320px);
    gap: 40px;
    align-items: start;
    margin-top: 28px;
}

.perfil__form[b-es2vigix7h] {
    max-width: 480px;
    min-width: 0;
}

.perfil__lateral[b-es2vigix7h] {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 24px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    min-width: 0;
}

.perfil__bloque[b-es2vigix7h] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.perfil__valor[b-es2vigix7h] {
    margin: 0;
    font-size: 1rem;
    color: var(--fdm-texto);
    word-break: break-word;
}

/* Solo la primera letra: capitalize subiría también "De". */
.perfil__valor[b-es2vigix7h]::first-letter {
    text-transform: uppercase;
}

.perfil__enlace[b-es2vigix7h] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 0.9375rem;
    color: var(--fdm-acento-texto);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.perfil__enlace:hover[b-es2vigix7h] {
    color: var(--fdm-texto);
}

@media (max-width: 900px) {
    .perfil[b-es2vigix7h] {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}
/* /Components/Pages/MiCuenta/Reprogramar.razor.rz.scp.css */
.repro__cargando[b-ck515li5b1] {
    color: var(--fdm-texto-tenue);
}

.repro__actual[b-ck515li5b1] {
    margin: 12px 0 28px;
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--fdm-texto-suave);
    max-width: 640px;
}

.repro__paso[b-ck515li5b1] {
    margin-bottom: 32px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.repro__titulo[b-ck515li5b1] {
    font-size: 1.125rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--fdm-oro);
    margin: 0;
}

.repro__acciones[b-ck515li5b1] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 12px;
    border-top: 1px solid var(--fdm-borde);
}

/* Los selectores de día y hora repiten el patrón de /reservar. Se duplican
   a propósito: el CSS con ámbito no cruza componentes y extraerlos a un
   componente compartido solo se justifica si aparece un tercer uso. */

.dias[b-ck515li5b1] {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 6px;
    scroll-snap-type: x proximity;
}

.dia[b-ck515li5b1] {
    flex: 0 0 auto;
    width: 72px;
    min-height: 82px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: var(--fdm-fondo);
    border: 1px solid var(--fdm-borde-medio);
    color: var(--fdm-texto);
    font-family: var(--fdm-cuerpo);
    cursor: pointer;
    scroll-snap-align: start;
    transition: border-color .15s ease, background .15s ease;
}

.dia:hover:not(:disabled)[b-ck515li5b1] {
    border-color: var(--fdm-acento-texto);
}

.dia--activo[b-ck515li5b1] {
    background: var(--fdm-acento);
    border-color: var(--fdm-acento);
    color: #FFFFFF;
}

.dia--sin-cupo[b-ck515li5b1] {
    opacity: 0.4;
    cursor: not-allowed;
    background-image: linear-gradient(135deg, transparent 47%,
        var(--fdm-borde-fuerte) 47%, var(--fdm-borde-fuerte) 53%, transparent 53%);
}

.dia__dow[b-ck515li5b1] {
    font-size: 0.75rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.dia__num[b-ck515li5b1] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.5rem;
    line-height: 1;
}

.horas[b-ck515li5b1] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
    gap: 10px;
    max-width: 640px;
}

.hora[b-ck515li5b1] {
    min-height: 52px;
    background: var(--fdm-fondo);
    border: 1px solid var(--fdm-borde-medio);
    color: var(--fdm-texto);
    font-family: var(--fdm-cuerpo);
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

.hora:hover[b-ck515li5b1] {
    border-color: var(--fdm-acento-texto);
}

.hora--activa[b-ck515li5b1] {
    background: var(--fdm-acento);
    border-color: var(--fdm-acento);
    color: #FFFFFF;
}

@media (max-width: 700px) {
    .repro__acciones .fdm-btn[b-ck515li5b1] {
        width: 100%;
    }
}
/* /Components/Pages/ReservaConfirmada.razor.rz.scp.css */
.confirmada[b-ydf49t6kqn] {
    padding-top: 64px;
    padding-bottom: 96px;
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
}

.confirmada__caja[b-ydf49t6kqn] {
    width: 100%;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-oro);
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.confirmada__folio[b-ydf49t6kqn] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--fdm-borde);
}

.confirmada__folio strong[b-ydf49t6kqn] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 2.5rem;
    letter-spacing: 6px;
    color: var(--fdm-oro);
    line-height: 1;
}

.confirmada__datos[b-ydf49t6kqn] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.confirmada__datos > div[b-ydf49t6kqn] {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
    flex-wrap: wrap;
}

.confirmada__datos dt[b-ydf49t6kqn] {
    font-size: 0.75rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--fdm-texto-tenue);
}

.confirmada__datos dd[b-ydf49t6kqn] {
    margin: 0;
    text-align: right;
    font-size: 1.0625rem;
}

/* Solo la primera letra: capitalize dejaba "Lunes 21 De Septiembre". */
.confirmada__datos dd[b-ydf49t6kqn]::first-letter {
    text-transform: uppercase;
}

.confirmada__notas[b-ydf49t6kqn] {
    margin: 0;
    padding-top: 18px;
    border-top: 1px solid var(--fdm-borde);
    font-size: 0.9375rem;
    font-style: italic;
    color: var(--fdm-texto-suave);
}

.confirmada__acciones[b-ydf49t6kqn] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.confirmada__aviso[b-ydf49t6kqn] {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--fdm-texto-tenue);
}

.confirmada__aviso a[b-ydf49t6kqn] {
    color: var(--fdm-acento-texto);
    text-decoration: underline;
}

@media (max-width: 700px) {
    .confirmada__acciones .fdm-btn[b-ydf49t6kqn] {
        width: 100%;
    }
}
/* /Components/Pages/Reservar.razor.rz.scp.css */
.reserva[b-vlsgbwf1cz] {
    padding-top: 56px;
    padding-bottom: 96px;
}

.reserva__encabezado[b-vlsgbwf1cz] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 40px;
}

.reserva__intro[b-vlsgbwf1cz] {
    margin: 0;
    color: var(--fdm-texto-suave);
    font-size: 1.0625rem;
}

.reserva__cargando[b-vlsgbwf1cz] {
    color: var(--fdm-texto-tenue);
    font-size: 0.9375rem;
}

.reserva__cuerpo[b-vlsgbwf1cz] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 340px);
    gap: 40px;
    align-items: start;
}

.reserva__pasos[b-vlsgbwf1cz] {
    display: flex;
    flex-direction: column;
    gap: 40px;
    min-width: 0;
}

.reserva__acceso[b-vlsgbwf1cz] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* ---------- Paso ---------- */

.paso[b-vlsgbwf1cz] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--fdm-borde);
}

.paso:last-child[b-vlsgbwf1cz] {
    border-bottom: none;
    padding-bottom: 0;
}

/* Un paso que aún no aplica se atenúa, pero sigue legible: ocultarlo haría
   que la página brincara al avanzar. */
.paso--bloqueado[b-vlsgbwf1cz] {
    opacity: 0.55;
}

.paso__titulo[b-vlsgbwf1cz] {
    display: flex;
    align-items: baseline;
    gap: 14px;
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 0;
}

.paso__num[b-vlsgbwf1cz] {
    font-size: 0.875rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    letter-spacing: 2px;
    color: var(--fdm-oro);
}

.paso__categoria[b-vlsgbwf1cz] {
    font-size: 0.8125rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--fdm-texto-tenue);
    margin: 8px 0 0;
}

.paso__pista[b-vlsgbwf1cz] {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--fdm-texto-tenue);
}

/* ---------- Tarjetas de servicio ---------- */

.tarjetas[b-vlsgbwf1cz] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
    gap: 12px;
}

.tarjeta[b-vlsgbwf1cz] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 46px 18px 18px;
    min-height: 44px;
    text-align: left;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    color: var(--fdm-texto);
    font-family: var(--fdm-cuerpo);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

.tarjeta:hover[b-vlsgbwf1cz] {
    border-color: var(--fdm-borde-fuerte);
}

.tarjeta--activa[b-vlsgbwf1cz] {
    border-color: var(--fdm-acento);
    background: var(--fdm-panel-alto);
}

/* La palomita ocupa su lugar aunque esté vacía: si apareciera y desapareciera
   con el clic, el texto de la tarjeta brincaría. */
.tarjeta__marca[b-vlsgbwf1cz] {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    line-height: 1;
    border: 1px solid var(--fdm-borde-fuerte);
    color: var(--fdm-fondo);
    background: transparent;
    transition: background .15s ease, border-color .15s ease;
}

.tarjeta--activa .tarjeta__marca[b-vlsgbwf1cz] {
    background: var(--fdm-acento);
    border-color: var(--fdm-acento);
}

.tarjeta__nombre[b-vlsgbwf1cz] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.375rem;
    text-transform: uppercase;
    line-height: 1.05;
}

.tarjeta__precio[b-vlsgbwf1cz] {
    font-family: var(--fdm-display);
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--fdm-oro);
}

.tarjeta__desc[b-vlsgbwf1cz] {
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--fdm-texto-suave);
}

/* ---------- Píldoras (estilos y barberos) ---------- */

.variantes[b-vlsgbwf1cz] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.variantes__lista[b-vlsgbwf1cz] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pildora[b-vlsgbwf1cz] {
    min-height: 44px;
    padding: 10px 16px;
    background: transparent;
    border: 1px solid var(--fdm-borde-medio);
    color: var(--fdm-texto-suave);
    font-family: var(--fdm-cuerpo);
    font-size: 0.875rem;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.pildora:hover[b-vlsgbwf1cz] {
    border-color: var(--fdm-acento-texto);
    color: var(--fdm-acento-texto);
}

.pildora--activa[b-vlsgbwf1cz] {
    background: var(--fdm-acento);
    border-color: var(--fdm-acento);
    color: #FFFFFF;
}

.pildora--activa:hover[b-vlsgbwf1cz] {
    color: #FFFFFF;
    border-color: var(--fdm-acento);
}

/* ---------- Días ---------- */

.dias[b-vlsgbwf1cz] {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 6px;
    /* En móvil la tira se desliza; que se note que hay más. */
    scroll-snap-type: x proximity;
}

.dia[b-vlsgbwf1cz] {
    flex: 0 0 auto;
    width: 72px;
    min-height: 82px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: var(--fdm-fondo);
    border: 1px solid var(--fdm-borde-medio);
    color: var(--fdm-texto);
    font-family: var(--fdm-cuerpo);
    cursor: pointer;
    scroll-snap-align: start;
    transition: border-color .15s ease, background .15s ease;
}

.dia:hover:not(:disabled)[b-vlsgbwf1cz] {
    border-color: var(--fdm-acento-texto);
}

.dia--activo[b-vlsgbwf1cz] {
    background: var(--fdm-acento);
    border-color: var(--fdm-acento);
    color: #FFFFFF;
}

.dia--sin-cupo[b-vlsgbwf1cz] {
    opacity: 0.4;
    cursor: not-allowed;
    /* Una línea diagonal para no depender solo de la opacidad. */
    background-image: linear-gradient(135deg, transparent 47%,
        var(--fdm-borde-fuerte) 47%, var(--fdm-borde-fuerte) 53%, transparent 53%);
}

.dia__dow[b-vlsgbwf1cz] {
    font-size: 0.75rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.dia__num[b-vlsgbwf1cz] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: 1.5rem;
    line-height: 1;
}

/* ---------- Horas ---------- */

.horas[b-vlsgbwf1cz] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
    gap: 10px;
}

.hora[b-vlsgbwf1cz] {
    min-height: 52px;
    background: var(--fdm-fondo);
    border: 1px solid var(--fdm-borde-medio);
    color: var(--fdm-texto);
    font-family: var(--fdm-cuerpo);
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

.hora:hover[b-vlsgbwf1cz] {
    border-color: var(--fdm-acento-texto);
}

.hora--activa[b-vlsgbwf1cz] {
    background: var(--fdm-acento);
    border-color: var(--fdm-acento);
    color: #FFFFFF;
}

/* ---------- Resumen ---------- */

.resumen[b-vlsgbwf1cz] {
    position: sticky;
    top: 20px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

.resumen__titulo[b-vlsgbwf1cz] {
    font-size: 1.75rem;
    margin: 0;
}

.resumen__lista[b-vlsgbwf1cz] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.resumen__lista > div[b-vlsgbwf1cz] {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
}

.resumen__lista dt[b-vlsgbwf1cz] {
    font-size: 0.75rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--fdm-texto-tenue);
    flex-shrink: 0;
}

.resumen__lista dd[b-vlsgbwf1cz] {
    margin: 0;
    text-align: right;
    font-size: 0.9375rem;
    color: var(--fdm-texto);
    min-width: 0;
}

/* Los servicios del resumen: lista sin viñetas, alineada a la derecha como
   el resto de los valores. */
.resumen__servicios[b-vlsgbwf1cz] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.resumen__estilo[b-vlsgbwf1cz] {
    display: block;
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

.resumen__total[b-vlsgbwf1cz] {
    padding-top: 12px;
    border-top: 1px solid var(--fdm-borde);
}

.resumen__total dd[b-vlsgbwf1cz] {
    font-family: var(--fdm-display);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--fdm-oro);
}

.resumen__nota[b-vlsgbwf1cz] {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--fdm-texto-tenue);
}

/* ---------- Responsive ---------- */

@media (max-width: 1000px) {
    .reserva__cuerpo[b-vlsgbwf1cz] {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    /* Abajo del todo y sin pegarse: en pantalla angosta el resumen pegajoso
       se come el espacio útil. */
    .resumen[b-vlsgbwf1cz] {
        position: static;
        order: 2;
    }
}

@media (max-width: 700px) {
    .reserva[b-vlsgbwf1cz] {
        padding-top: 32px;
        padding-bottom: 64px;
    }

    .reserva__pasos[b-vlsgbwf1cz] {
        gap: 32px;
    }

    .horas[b-vlsgbwf1cz] {
        grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
    }
}
/* /Components/Sitio/Carrusel.razor.rz.scp.css */
.carrusel[b-5lxwe04bxv] {
    /* ----------------------------------------------------------------
       ALTO DE LA FOTO — el único número que hay que tocar.

       Es fijo a propósito. Si lo decidiera la proporción de cada foto,
       una diapositiva vertical mediría 900 px y la siguiente 500, y el
       carrusel brincaría al cambiar. Fijándolo aquí, la foto siempre
       mide lo mismo que la columna del texto y nunca se mueve.

       El calc() la deja siempre dentro de la pantalla —descontando el
       encabezado y el respiro de arriba y abajo— para que se vea
       completa sin bajar. Los topes evitan que quede una tira en
       monitores muy bajos o un muro en los muy altos.
       ---------------------------------------------------------------- */
    --carrusel-alto: clamp(420px, calc(100vh - 230px), 620px);

    display: grid;
    grid-template-columns: minmax(0, 520px) minmax(0, 1fr);

    /* Una sola fila con alto explícito: las dos columnas miden igual. */
    grid-template-rows: var(--carrusel-alto);

    gap: 64px;
    align-items: stretch;
    padding-top: 64px;
    padding-bottom: 64px;
}

.carrusel__texto[b-5lxwe04bxv] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 40px;
    min-width: 0;
}

.carrusel__encabezado[b-5lxwe04bxv] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* El título también se mide contra el alto de la ventana: en una pantalla
   baja, la foto encoge y el texto tiene que encoger con ella o se desborda. */
.carrusel__titulo[b-5lxwe04bxv] {
    font-size: clamp(2.5rem, min(7vw, 8.5vh), 6rem);
    line-height: 0.92;
    /* Los títulos del CMS traen saltos de línea a propósito. */
    white-space: pre-line;
}

.carrusel__cuerpo[b-5lxwe04bxv] {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.25rem);
    line-height: 1.55;
    color: var(--fdm-texto-suave);
    max-width: 480px;
}

.carrusel__acciones[b-5lxwe04bxv] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.carrusel__controles[b-5lxwe04bxv] {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.carrusel__flecha[b-5lxwe04bxv] {
    width: 56px;
    height: 56px;
    background: transparent;
    border: 1px solid var(--fdm-borde-fuerte);
    color: var(--fdm-texto);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color .15s ease, color .15s ease;
}

.carrusel__flecha:hover[b-5lxwe04bxv] {
    border-color: var(--fdm-acento-texto);
    color: var(--fdm-acento-texto);
}

.carrusel__puntos[b-5lxwe04bxv] {
    display: flex;
    gap: 10px;
    align-items: center;
}

/* El punto se ve de 12px pero el botón mide 44 de alto para poder tocarlo.
   La barra visible se dibuja con ::after centrada dentro del botón; usar un
   ::before absoluto contra el contenedor hacía que las cuatro áreas tocables
   se encimaran y solo respondiera la última. */
.carrusel__punto[b-5lxwe04bxv] {
    position: relative;
    width: 12px;
    height: 44px;
    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
    transition: width .2s ease;
}

.carrusel__punto[b-5lxwe04bxv]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 12px;
    background: var(--fdm-borde-medio);
    transition: background .2s ease;
}

.carrusel__punto--activo[b-5lxwe04bxv] {
    width: 40px;
}

.carrusel__punto--activo[b-5lxwe04bxv]::after {
    background: var(--fdm-acento);
}

.carrusel__contador[b-5lxwe04bxv] {
    font-family: var(--fdm-display);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--fdm-texto-tenue);
}

.carrusel__imagen[b-5lxwe04bxv] {
    min-width: 0;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--fdm-borde);
    background: var(--fdm-panel);
}

/* La foto llena el hueco y se recorta. El object-position lo pone FotoFdm
   con el punto de interés de cada imagen, para que el recorte no le corte
   la cabeza a nadie. */
.carrusel__imagen[b-5lxwe04bxv]  .fdm-foto,
.carrusel__imagen[b-5lxwe04bxv]  img {
    width: 100%;
    height: 100%;
}

.carrusel__imagen[b-5lxwe04bxv]  img {
    object-fit: cover;
}

.carrusel__sin-foto[b-5lxwe04bxv] {
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(135deg,
        var(--fdm-panel) 0 18px,
        var(--fdm-panel-alto) 18px 36px);
}

/* ---------- Pantallas bajas ----------
   Una laptop de 1366x768 deja poco más de 600 px de alto útil. Ahí el alto de
   la foto ya topó en su mínimo y el texto no cabe, así que se recortan los
   respiros —que es lo que sobra— antes que la letra, que es lo que se lee. */

@media (max-height: 700px) and (min-width: 1001px) {
    .carrusel[b-5lxwe04bxv] {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .carrusel__texto[b-5lxwe04bxv] {
        gap: 24px;
    }

    .carrusel__encabezado[b-5lxwe04bxv] {
        gap: 16px;
    }

    .carrusel__flecha[b-5lxwe04bxv] {
        width: 48px;
        height: 48px;
    }
}

/* ---------- Tablet ---------- */

@media (max-width: 1000px) {
    .carrusel[b-5lxwe04bxv] {
        /* En una sola columna la foto ya no compite con el texto: se le deja
           poco más de un tercio de la pantalla para que abajo se alcance a
           ver el título sin bajar. */
        --carrusel-alto: clamp(240px, 38vh, 380px);

        grid-template-columns: 1fr;

        /* Fila de la foto con alto fijo; la del texto, la que necesite. */
        grid-template-rows: var(--carrusel-alto) auto;

        gap: 40px;
        padding-top: 40px;
        padding-bottom: 40px;
    }

    /* La foto va primero: en pantalla angosta manda la imagen, no el texto. */
    .carrusel__imagen[b-5lxwe04bxv] {
        order: -1;
    }
}

/* ---------- Móvil ---------- */

@media (max-width: 700px) {
    .carrusel[b-5lxwe04bxv] {
        --carrusel-alto: clamp(220px, 34vh, 320px);
    }

    .carrusel__acciones .fdm-btn[b-5lxwe04bxv] {
        width: 100%;
    }

    .carrusel__controles[b-5lxwe04bxv] {
        gap: 14px;
    }
}
/* /Components/Sitio/FotoFdm.razor.rz.scp.css */
.fdm-foto[b-ohv34dd2vy] {
    display: block;
    overflow: hidden;
}

.fdm-foto img[b-ohv34dd2vy] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* El placeholder va como fondo escalado: se ve borroso detrás mientras
       la imagen real termina de bajar. */
    background-size: cover;
    background-position: center;
}
/* /Components/Sitio/SeccionGaleria.razor.rz.scp.css */
.galeria[b-oydh9qvyb8] {
    padding-top: 64px;
    padding-bottom: 96px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.galeria__encabezado[b-oydh9qvyb8] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.galeria__filtros[b-oydh9qvyb8] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.galeria__filtro[b-oydh9qvyb8] {
    min-height: 44px;
    padding: 10px 18px;
    background: transparent;
    border: 1px solid var(--fdm-borde-medio);
    color: var(--fdm-texto-suave);
    font-family: var(--fdm-cuerpo);
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 1px;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.galeria__filtro:hover[b-oydh9qvyb8] {
    border-color: var(--fdm-acento-texto);
    color: var(--fdm-acento-texto);
}

.galeria__filtro--activo[b-oydh9qvyb8] {
    background: var(--fdm-acento);
    border-color: var(--fdm-acento);
    color: #FFFFFF;
}

.galeria__filtro--activo:hover[b-oydh9qvyb8] {
    color: #FFFFFF;
    border-color: var(--fdm-acento);
}

.galeria__rejilla[b-oydh9qvyb8] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.galeria__celda[b-oydh9qvyb8] {
    min-width: 0;
    border: 1px solid var(--fdm-borde);
    background: var(--fdm-panel);
    overflow: hidden;
}

.galeria__celda[b-oydh9qvyb8]  img {
    transition: transform .4s ease;
}

.galeria__celda:hover[b-oydh9qvyb8]  img {
    transform: scale(1.04);
}

@media (max-width: 1100px) {
    .galeria__rejilla[b-oydh9qvyb8] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .galeria[b-oydh9qvyb8] {
        padding-bottom: 64px;
        gap: 28px;
    }

    .galeria__rejilla[b-oydh9qvyb8] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
}

/* Quien pidió menos movimiento no quiere el zoom al pasar el cursor. */
@media (prefers-reduced-motion: reduce) {
    .galeria__celda[b-oydh9qvyb8]  img,
    .galeria__celda:hover[b-oydh9qvyb8]  img {
        transition: none;
        transform: none;
    }
}
/* /Components/Sitio/SeccionNosotros.razor.rz.scp.css */
.nosotros[b-2s5iyaetox] {
    background: var(--fdm-claro);
    color: var(--fdm-texto-sobre-claro);
    padding-top: 96px;
    padding-bottom: 96px;
}

.nosotros__interior[b-2s5iyaetox] {
    display: grid;
    grid-template-columns: minmax(0, 480px) minmax(0, 1fr);
    gap: 80px;
    align-items: center;
}

.nosotros__titulo[b-2s5iyaetox] {
    font-size: clamp(3rem, 9vw, 8rem);
    line-height: 0.85;
    color: var(--fdm-texto-sobre-claro);
}

.nosotros__cuerpo[b-2s5iyaetox] {
    margin: 0;
    font-size: clamp(1.0625rem, 2vw, 1.375rem);
    line-height: 1.6;
    /* Sobre el papel claro, el gris oscuro descansa más que el negro puro
       y sigue pasando AA de sobra. */
    color: #44403C;
}

@media (max-width: 1000px) {
    .nosotros[b-2s5iyaetox] {
        padding-top: 64px;
        padding-bottom: 64px;
    }

    .nosotros__interior[b-2s5iyaetox] {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}
/* /Components/Sitio/SeccionOpiniones.razor.rz.scp.css */
.opiniones[b-qqg7vs3l1r] {
    padding-top: 80px;
    padding-bottom: 80px;
    border-top: 1px solid var(--fdm-borde);
}

.opiniones__encabezado[b-qqg7vs3l1r] {
    margin-bottom: 40px;
}

.opiniones__titulo[b-qqg7vs3l1r] {
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1;
    margin: 12px 0 0;
}

.opiniones__lista[b-qqg7vs3l1r] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    /* min(320px, 100%) y no 320px a secas: en un teléfono de 375, una columna
       rígida de 320 más el gutter desborda y aparece scroll horizontal. */
    grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
    gap: 24px;
}

.opinion[b-qqg7vs3l1r] {
    border: 1px solid var(--fdm-borde);
    background: var(--fdm-panel);
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.opinion__texto[b-qqg7vs3l1r] {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--fdm-texto-suave);
    /* Es una cita: las comillas las pone el diseño, no el cliente. */
    quotes: "«" "»";
}

.opinion__texto[b-qqg7vs3l1r]::before { content: open-quote; }
.opinion__texto[b-qqg7vs3l1r]::after { content: close-quote; }

.opinion__pie[b-qqg7vs3l1r] {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.opinion__cliente[b-qqg7vs3l1r] {
    font-weight: 600;
}

.opinion__detalle[b-qqg7vs3l1r] {
    font-size: 0.8125rem;
    color: var(--fdm-texto-tenue);
}

/* El mes viene en minúscula del formateador; solo la primera letra sube.
   text-transform: capitalize subiría también la de "2026". */
.opinion__detalle[b-qqg7vs3l1r]::first-letter {
    text-transform: uppercase;
}

@media (max-width: 900px) {
    .opiniones[b-qqg7vs3l1r] {
        padding-top: 48px;
        padding-bottom: 48px;
    }
}
/* /Components/Sitio/SeccionServicios.razor.rz.scp.css */
.servicios[b-h0tic9pbs9] {
    padding-top: 96px;
    padding-bottom: 64px;
    display: flex;
    flex-direction: column;
    gap: 56px;
}

.servicios__encabezado[b-h0tic9pbs9] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.servicios__categoria[b-h0tic9pbs9] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.servicios__categoria-nombre[b-h0tic9pbs9] {
    font-size: 1.125rem;
    font-family: var(--fdm-cuerpo);
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--fdm-oro);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--fdm-borde);
}

.servicios__lista[b-h0tic9pbs9] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.servicio[b-h0tic9pbs9] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 28px;
    background: var(--fdm-panel);
    border: 1px solid var(--fdm-borde);
    min-width: 0;
}

.servicio__cabecera[b-h0tic9pbs9] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.servicio__nombre[b-h0tic9pbs9] {
    font-family: var(--fdm-display);
    font-weight: 900;
    font-size: clamp(1.5rem, 3vw, 2rem);
    text-transform: uppercase;
    line-height: 1;
    margin: 0;
    min-width: 0;
}

.servicio__precio[b-h0tic9pbs9] {
    font-family: var(--fdm-display);
    font-weight: 700;
    font-size: 1.75rem;
    color: var(--fdm-oro);
    white-space: nowrap;
}

.servicio__descripcion[b-h0tic9pbs9] {
    margin: 0;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--fdm-texto-suave);
}

.servicio__variantes[b-h0tic9pbs9] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.servicio__variantes li[b-h0tic9pbs9] {
    font-size: 0.8125rem;
    letter-spacing: 0.5px;
    padding: 5px 11px;
    border: 1px solid var(--fdm-borde-medio);
    color: var(--fdm-texto-suave);
}

.servicio__pie[b-h0tic9pbs9] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: auto;
    padding-top: 4px;
}

.servicio__nota[b-h0tic9pbs9] {
    font-size: 0.8125rem;
    color: var(--fdm-acento-texto);
}

@media (max-width: 900px) {
    .servicios[b-h0tic9pbs9] {
        padding-top: 64px;
        gap: 44px;
    }

    .servicios__lista[b-h0tic9pbs9] {
        grid-template-columns: 1fr;
    }

    .servicios__encabezado .fdm-btn[b-h0tic9pbs9] {
        width: 100%;
    }
}
