/* ============================================================================
   LUGH DENTAL · MOBILE POLISH
   Vistas prioritarias:
   - /
   - /reserva
   - /reserva-box
   - /reserva-interina

   Diseñado para teléfonos actuales (aprox. 360–430 CSS px), con énfasis en
   iPhone 15 Pro Max y Samsung S24 FE. Los estilos se limitan a pantallas
   táctiles/estrechas y no reemplazan la versión de escritorio.
   ============================================================================ */

@media (max-width: 900px) {
    html {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
        overflow-x: hidden;
        scroll-padding-top: calc(76px + env(safe-area-inset-top));
    }

    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    button,
    a,
    input,
    select,
    textarea {
        -webkit-tap-highlight-color: transparent;
        touch-action: manipulation;
    }

    input,
    select,
    textarea {
        font-size: 16px !important;
    }

    /* ---------------------------------------------------------------------
       HOME /
       --------------------------------------------------------------------- */
    body.lugh-home-page {
        background: #f7fbfd;
    }

    .lugh-home-page .site-header {
        min-height: calc(64px + env(safe-area-inset-top));
        padding-top: env(safe-area-inset-top);
        background: rgba(255, 255, 255, .92);
        border-bottom: 1px solid rgba(10, 79, 119, .08);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .lugh-home-page .site-header__inner {
        width: calc(100% - 24px);
        min-height: 64px;
        gap: 12px;
    }

    .lugh-home-page .brand {
        min-width: 0;
        gap: 8px;
        font-size: 1rem;
    }

    .lugh-home-page .brand img {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .lugh-home-page .menu-toggle {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        border-radius: 14px;
        background: #fff;
        border: 1px solid rgba(15, 132, 201, .16);
        box-shadow: 0 8px 22px rgba(15, 79, 113, .08);
    }

    .lugh-home-page .main-nav {
        top: calc(64px + env(safe-area-inset-top));
        left: 12px;
        right: 12px;
        max-height: calc(100dvh - 88px - env(safe-area-inset-top));
        overflow-y: auto;
        gap: 2px;
        padding: 12px;
        border-radius: 22px;
        box-shadow: 0 24px 65px rgba(8, 47, 69, .20);
    }

    .lugh-home-page .main-nav > a:not(.button) {
        min-height: 46px;
        display: flex;
        align-items: center;
        padding: 11px 12px;
        border-radius: 12px;
        font-weight: 800;
    }

    .lugh-home-page .main-nav .button {
        width: 100%;
        min-height: 48px;
        justify-content: center;
        margin-top: 6px;
        border-radius: 14px;
    }

    .lugh-home-page .hero.hero--photo {
        min-height: min(820px, calc(100svh - env(safe-area-inset-top)));
    }

    .lugh-home-page .hero--photo .hero__overlay {
        background: linear-gradient(180deg, rgba(3, 24, 35, .16), rgba(3, 24, 35, .56));
    }

    .lugh-home-page .hero--photo .hero__center {
        width: calc(100% - 24px);
        max-width: 560px;
        margin-top: calc(42px + env(safe-area-inset-top));
        padding: 24px 18px 20px;
        border: 1px solid rgba(255, 255, 255, .23);
        border-radius: 24px;
        background: rgba(3, 37, 55, .42);
        box-shadow: 0 24px 60px rgba(0, 20, 32, .22);
        backdrop-filter: blur(13px);
        -webkit-backdrop-filter: blur(13px);
    }

    .lugh-home-page .hero--photo h1 {
        margin-top: 12px;
        font-size: clamp(2.7rem, 13.5vw, 4.5rem);
        line-height: .94;
        letter-spacing: -.055em;
    }

    .lugh-home-page .hero--photo .hero__center > p {
        max-width: 36ch;
        margin: 14px auto 0;
        font-size: 1rem;
        line-height: 1.55;
    }

    .lugh-home-page .hero--photo .hero__center > strong {
        display: block;
        margin-top: 8px;
        line-height: 1.35;
    }

    .lugh-home-page .hero-box-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 20px;
    }

    .lugh-home-page .hero-box-actions .button {
        width: 100%;
        min-height: 52px;
        justify-content: space-between;
        padding-inline: 18px;
        border-radius: 16px;
        font-size: .98rem;
    }

    .lugh-home-page .section {
        padding: 58px 0;
    }

    .lugh-home-page .section__inner,
    .lugh-home-page .site-footer__inner {
        width: calc(100% - 28px);
    }

    .lugh-home-page .section-heading h2,
    .lugh-home-page .contact-card h2 {
        font-size: clamp(2rem, 10vw, 3rem);
        line-height: 1.02;
        letter-spacing: -.045em;
    }

    .lugh-home-page .section-heading p,
    .lugh-home-page .about-copy p,
    .lugh-home-page .contact-card p {
        font-size: .97rem;
        line-height: 1.65;
    }

    .lugh-home-page .about-panel,
    .lugh-home-page .contact-card,
    .lugh-home-page .map-card,
    .lugh-home-page .team-card,
    .lugh-home-page .service-card,
    .lugh-home-page .promo-carousel {
        border-radius: 22px;
    }

    .lugh-home-page .promo-carousel {
        padding: 7px;
    }

    .lugh-home-page .promo-slide__caption {
        left: 14px;
        right: 14px;
        bottom: 14px;
        padding: 12px;
        border-radius: 15px;
        background: rgba(3, 37, 55, .72);
        backdrop-filter: blur(8px);
    }

    .lugh-home-page .map-card,
    .lugh-home-page .map-card iframe {
        min-height: 320px;
    }

    .lugh-home-page .floating-teeth {
        display: none;
    }

    .lugh-home-page .whatsapp-float {
        right: max(13px, env(safe-area-inset-right));
        bottom: max(13px, env(safe-area-inset-bottom));
        width: 52px;
        height: 52px;
        border-width: 3px;
    }

    /* ---------------------------------------------------------------------
       RESERVA PACIENTE /reserva
       --------------------------------------------------------------------- */
    body.reserva-public-page {
        background: linear-gradient(180deg, #f6fbff 0%, #eef6ff 100%);
    }

    .reserva-public-page .floating-teeth {
        display: none;
    }

    .reserva-public-page .navbar {
        position: sticky;
        top: 0;
        z-index: 1050;
        min-height: calc(64px + env(safe-area-inset-top));
        padding: env(safe-area-inset-top) 0 0 !important;
        background: rgba(255, 255, 255, .95) !important;
        border-bottom: 1px solid rgba(8, 35, 95, .08);
        box-shadow: 0 8px 24px rgba(8, 35, 95, .06) !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .reserva-public-page .navbar .container {
        min-height: 64px;
        padding-inline: 13px;
    }

    .reserva-public-page .navbar-brand {
        margin: 0;
        min-width: 0;
    }

    .reserva-public-page .navbar-brand .logo-img {
        width: 44px !important;
        height: 44px !important;
        object-fit: contain;
        border-radius: 13px;
        margin-right: 0 !important;
    }

    .reserva-public-page .navbar-toggler {
        width: 44px;
        height: 44px;
        padding: 8px;
        border: 1px solid #dbe7f5;
        border-radius: 14px;
        box-shadow: none;
    }

    .reserva-public-page .navbar-collapse {
        margin: 0 0 10px;
        padding: 9px;
        border: 1px solid #e0e8f4;
        border-radius: 17px;
        background: #fff;
        box-shadow: 0 18px 40px rgba(8, 35, 95, .10);
    }

    .reserva-public-page .navbar-nav .nav-link {
        min-height: 46px;
        padding: 11px 12px !important;
        border-radius: 11px;
        font-weight: 800;
    }

    .reserva-public-page .reserva-hero {
        min-height: 224px !important;
        max-height: 260px;
        border-radius: 0 0 28px 28px;
        overflow: hidden;
        box-shadow: 0 18px 45px rgba(8, 35, 95, .14);
    }

    .reserva-public-page .reserva-hero__overlay {
        background: linear-gradient(180deg, rgba(5, 28, 65, .12), rgba(5, 28, 65, .72));
    }

    .reserva-public-page .reserva-hero__content {
        width: 100%;
        max-width: 620px;
        padding: 62px 18px 24px !important;
        text-align: left;
    }

    .reserva-public-page .reserva-hero__content > span {
        display: inline-flex;
        margin-bottom: 8px;
        padding: 6px 10px;
        border: 1px solid rgba(255,255,255,.25);
        border-radius: 999px;
        background: rgba(255,255,255,.12);
        font-size: .72rem;
        font-weight: 900;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .reserva-public-page .reserva-hero__content h1 {
        max-width: 15ch;
        margin: 0;
        font-size: clamp(1.9rem, 8.8vw, 2.55rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.04em;
    }

    .reserva-public-page .reserva-hero__content p {
        max-width: 34ch;
        margin: 9px 0 0;
        font-size: .9rem;
        line-height: 1.45;
    }

    .reserva-public-page .reserva-container {
        width: calc(100% - 20px) !important;
        max-width: 760px;
        margin: -18px auto 42px !important;
        position: relative;
        z-index: 3;
    }

    .reserva-public-page .pasos {
        position: relative;
        z-index: 3;
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 5px !important;
        margin: 0 0 9px !important;
        padding: 8px 7px !important;
        border: 1px solid rgba(184, 205, 253, .7);
        border-radius: 19px;
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 16px 36px rgba(8, 35, 95, .12);
    }

    .reserva-public-page .paso {
        min-width: 0 !important;
        display: grid;
        justify-items: center;
        gap: 3px;
        padding: 5px 2px 6px;
        border-radius: 13px;
        transition: background .16s ease, transform .16s ease;
    }

    .reserva-public-page .paso.activo {
        background: #edf4ff;
    }

    .reserva-public-page .circle {
        width: 35px !important;
        height: 35px !important;
        margin: 0 !important;
        border: 0 !important;
        background: #f1f5fb !important;
        box-shadow: none !important;
    }

    .reserva-public-page .paso.activo .circle {
        background: linear-gradient(135deg, #1e4fd1, #3478ff) !important;
        box-shadow: 0 8px 18px rgba(30, 79, 209, .23) !important;
    }

    .reserva-public-page .circle img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .reserva-public-page .paso p {
        min-width: 0;
        margin: 0 !important;
        color: #5d6f87;
        font-size: .61rem !important;
        line-height: 1.1 !important;
        font-weight: 850;
        text-align: center;
        overflow-wrap: normal !important;
        word-break: normal;
    }

    .reserva-public-page .paso.activo p {
        color: #123fb3;
    }

    .reserva-public-page .formulario-container {
        margin: 0 !important;
        padding: 18px 14px 16px !important;
        border: 1px solid rgba(184, 205, 253, .55) !important;
        border-radius: 22px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 20px 48px rgba(8, 35, 95, .10) !important;
    }

    .reserva-public-page .formulario-step h2,
    .reserva-public-page .titulo-paso3 {
        margin-bottom: 7px !important;
        color: #08235f;
        font-size: clamp(1.45rem, 6.8vw, 1.85rem) !important;
        line-height: 1.08 !important;
        letter-spacing: -.035em;
    }

    .reserva-public-page .formulario-step > p,
    .reserva-public-page #mensajeActualizacion {
        margin-bottom: 16px !important;
        color: #64748b;
        font-size: .91rem;
        line-height: 1.5;
    }

    .reserva-public-page .formulario-step input:not([type="checkbox"]):not([type="hidden"]),
    .reserva-public-page .formulario-step select,
    .reserva-public-page .formulario-step textarea {
        width: 100% !important;
        min-height: 52px !important;
        margin-bottom: 11px !important;
        padding: 12px 13px !important;
        border: 1px solid #cbdcf2 !important;
        border-radius: 14px !important;
        background: #fbfdff !important;
        color: #102033 !important;
        outline: none !important;
        box-shadow: none !important;
    }

    .reserva-public-page .formulario-step input:focus,
    .reserva-public-page .formulario-step select:focus,
    .reserva-public-page .formulario-step textarea:focus {
        border-color: #3478ff !important;
        background: #fff !important;
        box-shadow: 0 0 0 4px rgba(52, 120, 255, .10) !important;
    }

    .reserva-public-page .label-paso {
        display: block;
        margin: 16px 0 7px !important;
        color: #294b63;
        font-size: .79rem;
        font-weight: 900;
    }

    .reserva-public-page #doctoresTratamiento {
        margin: 4px 0 16px !important;
        padding: 12px;
        border: 1px solid #e0e8f4;
        border-radius: 14px;
        background: #f7faff;
    }

    .reserva-public-page #doctoresTratamiento > strong {
        color: #123fb3;
        font-size: .81rem;
    }

    .reserva-public-page #listaDoctoresTratamiento {
        margin: 7px 0 0;
        padding-left: 18px;
        color: #53677f;
        font-size: .85rem;
    }

    .reserva-public-page .checkbox-group {
        display: grid !important;
        grid-template-columns: 24px 1fr;
        align-items: start !important;
        gap: 9px !important;
        margin: 3px 0 14px !important;
        padding: 11px 12px;
        border-radius: 14px;
        background: #f7faff;
    }

    .reserva-public-page .checkbox-group input[type="checkbox"] {
        width: 22px !important;
        height: 22px !important;
        margin: 1px 0 0 !important;
    }

    .reserva-public-page .checkbox-group label {
        margin: 0;
        font-size: .82rem;
        line-height: 1.4;
    }

    .reserva-public-page .reserva-captcha {
        margin: 12px 0 0 !important;
        padding: 13px !important;
        border-radius: 16px !important;
        background: #f8fbff !important;
    }

    .reserva-public-page .reserva-captcha__header {
        align-items: center;
        gap: 10px;
    }

    .reserva-public-page .reserva-captcha__icon {
        width: 39px;
        height: 39px;
        border-radius: 12px;
    }

    .reserva-public-page .reserva-captcha__challenge {
        min-height: 50px;
        margin-top: 11px;
        border-radius: 13px;
    }

    .reserva-public-page .reserva-calendar-inline {
        width: 100% !important;
        margin-top: 3px;
        padding: 7px !important;
        border: 1px solid #dce7f7 !important;
        border-radius: 17px !important;
        background: #fff !important;
        overflow: hidden;
    }

    .reserva-public-page .flatpickr-calendar.inline {
        width: 100% !important;
        max-width: 100% !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .reserva-public-page .flatpickr-rContainer,
    .reserva-public-page .flatpickr-days,
    .reserva-public-page .dayContainer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .reserva-public-page .flatpickr-day {
        max-width: none !important;
        height: 40px !important;
        line-height: 40px !important;
        border-radius: 11px !important;
    }

    .reserva-public-page .reserva-calendar-legend {
        display: flex;
        gap: 6px 10px;
        flex-wrap: wrap;
        margin: 8px 0 16px;
        color: #66788d;
        font-size: .69rem;
    }

    .reserva-public-page .hora-scroll {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px !important;
        width: 100%;
        overflow: visible !important;
        padding: 0 !important;
    }

    .reserva-public-page .hora-scroll > *,
    .reserva-public-page .hora-option,
    .reserva-public-page .hora-item,
    .reserva-public-page .btn-hora {
        min-width: 0 !important;
        min-height: 46px !important;
        width: 100% !important;
        margin: 0 !important;
        border-radius: 13px !important;
    }

    .reserva-public-page .button-group {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        margin-top: 18px !important;
    }

    .reserva-public-page .button-group > button,
    .reserva-public-page .btn-siguiente,
    .reserva-public-page .btn-atras,
    .reserva-public-page .btn-confirmar {
        width: 100% !important;
        min-height: 50px !important;
        margin: 0 !important;
        padding: 12px 16px !important;
        border-radius: 15px !important;
        font-size: .94rem !important;
        font-weight: 900 !important;
    }

    .reserva-public-page .btn-siguiente,
    .reserva-public-page .btn-confirmar {
        box-shadow: 0 12px 24px rgba(30, 79, 209, .18);
    }

    .reserva-public-page .lugh-footer {
        padding: 26px 14px calc(26px + env(safe-area-inset-bottom));
    }

    .reserva-public-page .modal-politicas,
    .reserva-public-page .confirmacion-modal {
        padding: 0 !important;
        align-items: flex-end !important;
    }

    .reserva-public-page .modal-politicas-content,
    .reserva-public-page .confirmacion-modal .modal-content {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 90dvh !important;
        margin: 0 !important;
        padding: 20px 16px calc(20px + env(safe-area-inset-bottom)) !important;
        border-radius: 24px 24px 0 0 !important;
        overscroll-behavior: contain;
    }

    /* ---------------------------------------------------------------------
       RESERVA BOX /reserva-box
       --------------------------------------------------------------------- */
    body.box-booking-page {
        background: linear-gradient(180deg, #f7fbfe 0%, #edf7fc 100%);
    }

    .box-booking-page .box-public-header {
        min-height: calc(64px + env(safe-area-inset-top));
        padding-top: env(safe-area-inset-top);
        background: rgba(255, 255, 255, .95);
        border-bottom: 1px solid rgba(15, 132, 201, .10);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .box-booking-page .box-public-header .site-header__inner {
        width: calc(100% - 24px) !important;
        min-height: 64px;
        gap: 9px;
    }

    .box-booking-page .box-public-header .brand {
        gap: 7px;
    }

    .box-booking-page .box-public-header .brand img {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .box-booking-page .box-public-header .brand span {
        display: inline !important;
        font-size: .94rem;
        white-space: nowrap;
    }

    .box-booking-page .box-public-header .button {
        min-height: 42px;
        padding: 10px 13px;
        border-radius: 13px;
        font-size: .77rem;
        white-space: nowrap;
    }

    .box-booking-page .box-booking {
        min-height: calc(100dvh - 64px);
        padding: 14px 10px calc(44px + env(safe-area-inset-bottom));
    }

    .box-booking-page .box-booking__hero {
        margin-bottom: 10px;
    }

    .box-booking-page .box-booking__hero-copy {
        min-height: 178px;
        padding: 22px 18px 20px !important;
        border-radius: 22px !important;
        background: linear-gradient(145deg, #075784, #0f84c9 72%, #23a7ca);
        box-shadow: 0 18px 42px rgba(15, 84, 123, .15);
    }

    .box-booking-page .box-booking__eyebrow {
        padding: 6px 9px;
        font-size: .64rem;
    }

    .box-booking-page .box-booking__hero h1 {
        max-width: 16ch;
        margin: 12px 0 7px;
        font-size: clamp(1.9rem, 8.7vw, 2.55rem) !important;
        line-height: 1.02;
        letter-spacing: -.045em;
    }

    .box-booking-page .box-booking__hero p {
        max-width: 40ch;
        font-size: .88rem !important;
        line-height: 1.45;
    }

    .box-booking-page .box-booking__shell {
        width: 100%;
        margin: 0 auto;
    }

    .box-booking-page .box-steps {
        position: sticky;
        top: calc(70px + env(safe-area-inset-top));
        z-index: 20;
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px !important;
        margin: 0 0 8px !important;
        padding: 7px !important;
        border: 1px solid rgba(169, 203, 217, .72);
        border-radius: 18px !important;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 12px 28px rgba(17, 75, 105, .10);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
    }

    .box-booking-page .box-step {
        min-width: 0;
        min-height: 54px !important;
        padding: 5px 2px !important;
        border-radius: 12px !important;
        font-size: .61rem !important;
        line-height: 1.05;
    }

    .box-booking-page .box-step b {
        width: 26px !important;
        height: 26px !important;
        font-size: .72rem !important;
    }

    .box-booking-page .box-step span {
        max-width: 100% !important;
        color: #60788a;
        white-space: nowrap !important;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .box-booking-page .box-step.is-active span {
        color: #0a4f77;
    }

    .box-booking-page .box-booking__panel {
        overflow: hidden;
        border: 1px solid rgba(169, 203, 217, .55);
        border-radius: 22px !important;
        background: #fff;
        box-shadow: 0 20px 46px rgba(17, 75, 105, .09);
    }

    .box-booking-page .box-form-step {
        padding: 19px 14px 16px !important;
    }

    .box-booking-page .box-form-heading {
        margin-bottom: 16px;
    }

    .box-booking-page .box-form-heading > span {
        font-size: .68rem;
        font-weight: 900;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .box-booking-page .box-form-heading h2 {
        margin: 4px 0 5px;
        font-size: clamp(1.55rem, 7vw, 1.95rem);
        line-height: 1.08;
        letter-spacing: -.035em;
    }

    .box-booking-page .box-form-heading p {
        margin: 0;
        color: #64748b;
        font-size: .88rem;
        line-height: 1.45;
    }

    .box-booking-page .box-grid-2,
    .box-booking-page .box-rut-row,
    .box-booking-page .box-choice-grid {
        gap: 10px !important;
    }

    .box-booking-page .box-field {
        gap: 6px;
    }

    .box-booking-page .box-field > span {
        font-size: .78rem;
        font-weight: 900;
    }

    .box-booking-page .box-field input,
    .box-booking-page .box-field select,
    .box-booking-page .box-field textarea {
        min-height: 52px !important;
        padding: 12px 13px !important;
        border-radius: 14px !important;
        background: #fbfdfe;
    }

    .box-booking-page .box-btn {
        min-height: 49px;
        padding: 12px 15px;
        border-radius: 14px;
        font-size: .9rem;
        font-weight: 900;
    }

    .box-booking-page .box-rut-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .box-booking-page .box-choice-card {
        overflow: hidden;
        border-radius: 18px !important;
        box-shadow: 0 12px 26px rgba(17, 75, 105, .07);
    }

    .box-booking-page .box-choice-card__image,
    .box-booking-page .box-choice-grid.is-single .box-choice-card__image {
        height: 168px !important;
    }

    .box-booking-page .box-choice-card__body,
    .box-booking-page .box-choice-grid.is-single .box-choice-card__body {
        padding: 16px !important;
    }

    .box-booking-page .box-choice-card__title-row {
        align-items: center;
    }

    .box-booking-page .box-choice-card h3,
    .box-booking-page .box-choice-grid.is-single .box-choice-card h3 {
        font-size: 1.18rem !important;
    }

    .box-booking-page .box-choice-card__select {
        width: calc(100% - 20px);
        min-height: 44px;
        margin: 10px 10px 0;
        border-radius: 12px;
    }

    .box-booking-page .box-date-picker {
        margin-bottom: 14px;
        padding: 12px 8px !important;
        border-radius: 17px !important;
    }

    .box-booking-page .box-date-picker__header {
        grid-template-columns: 40px 1fr 40px;
        gap: 6px;
        margin-bottom: 9px;
    }

    .box-booking-page .box-date-picker__nav {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }

    .box-booking-page .box-date-picker__header strong {
        font-size: .96rem;
    }

    .box-booking-page .box-date-picker__legend {
        gap: 6px 8px;
        margin-bottom: 9px;
        font-size: .64rem;
    }

    .box-booking-page .box-date-picker__weekdays,
    .box-booking-page .box-date-picker__grid {
        gap: 3px !important;
    }

    .box-booking-page .box-date-day {
        min-height: 45px !important;
        padding: 2px !important;
        border-radius: 9px !important;
    }

    .box-booking-page .box-date-day strong {
        font-size: .79rem;
    }

    .box-booking-page .box-date-day small {
        display: none;
    }

    .box-booking-page .box-slot-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .box-booking-page .box-slot-list > * {
        min-width: 0;
        min-height: 48px;
        border-radius: 13px;
    }

    .box-booking-page .box-summary {
        border-radius: 16px;
        overflow: hidden;
    }

    .box-booking-page .box-summary__row {
        grid-template-columns: 1fr !important;
        gap: 2px !important;
        padding: 11px 12px !important;
    }

    .box-booking-page .box-summary__row strong {
        text-align: left !important;
        overflow-wrap: anywhere;
    }

    .box-booking-page .box-payment-notice {
        align-items: flex-start;
        padding: 12px;
        border-radius: 14px;
    }

    .box-booking-page .box-actions,
    .box-booking-page .box-actions--end {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        margin-top: 18px;
    }

    .box-booking-page .box-actions .box-btn,
    .box-booking-page .box-actions--end .box-btn {
        width: 100%;
    }

    .box-booking-page .box-actions .box-btn--primary {
        order: -1;
    }

    .box-booking-page .box-success {
        padding: 22px 14px;
        border-radius: 18px;
    }

    .box-booking-page .box-public-footer {
        padding-bottom: calc(22px + env(safe-area-inset-bottom));
    }

    /* ---------------------------------------------------------------------
       AGENDA INTERNA /reserva-interina
       --------------------------------------------------------------------- */
    .liud-admin-page .admin-content {
        padding: calc(62px + env(safe-area-inset-top)) 6px calc(18px + env(safe-area-inset-bottom)) !important;
        overflow-x: hidden;
    }

    .agenda-shell {
        width: calc(100vw - 20px) !important;
        max-width: 100% !important;
        margin: 4px auto 26px !important;
    }

    .agenda-hero {
        padding: 15px 13px 13px !important;
        border-radius: 20px !important;
        box-shadow: 0 12px 32px rgba(18, 63, 179, .10) !important;
    }

    .agenda-hero::after {
        width: 150px !important;
        height: 150px !important;
        right: -65px !important;
        bottom: -75px !important;
    }

    .agenda-hero .brand-mark {
        margin-bottom: 5px !important;
        padding: 6px 12px !important;
        font-size: 18px !important;
        border-radius: 12px !important;
        box-shadow: 0 7px 18px rgba(30, 79, 209, .10) !important;
    }

    .agenda-hero h1 {
        font-size: 27px !important;
        line-height: 1 !important;
        letter-spacing: -.035em !important;
    }

    .agenda-today {
        margin: 7px 0 10px !important;
        font-size: 12.5px !important;
        line-height: 1.4;
    }

    .current-card {
        width: 100% !important;
        min-height: 0 !important;
        padding: 10px 12px !important;
        border-radius: 15px !important;
        gap: 1px !important;
        box-shadow: none !important;
    }

    .current-kicker {
        font-size: 9px !important;
        letter-spacing: .1em !important;
    }

    .current-card strong {
        font-size: 15px !important;
        line-height: 1.15 !important;
    }

    .current-card small {
        margin-top: 2px;
        font-size: 11px !important;
        line-height: 1.3;
    }

    .agenda-toolbar-card {
        margin: 9px auto 8px !important;
        padding: 11px !important;
        gap: 10px !important;
        border-radius: 20px !important;
        box-shadow: 0 12px 28px rgba(18, 63, 179, .08) !important;
    }

    .view-switch {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: repeat(3, 1fr);
        gap: 4px !important;
        padding: 4px !important;
        border-radius: 16px !important;
    }

    .view-btn {
        width: 100%;
        min-height: 42px;
        padding: 9px 7px !important;
        border-radius: 13px !important;
        font-size: 13px;
    }

    .agenda-controls,
    .agenda-controls-simple {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 7px !important;
        width: 100%;
    }

    .agenda-controls .control-btn,
    .agenda-controls .control-date {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 46px !important;
        padding: 9px 8px !important;
        border-radius: 14px !important;
        font-size: 12.5px !important;
        box-shadow: 0 6px 15px rgba(18, 63, 179, .06) !important;
    }

    .agenda-controls .control-date {
        padding-inline: 9px !important;
    }

    #btnAbrirGenerador {
        grid-column: auto !important;
        min-height: 49px !important;
        font-size: 13px !important;
    }

    #btnAbrirColores {
        width: 100% !important;
        min-width: 0 !important;
        justify-self: stretch;
    }

    .agenda-box-toolbar {
        display: grid !important;
        grid-template-columns: 1fr auto;
        align-items: center !important;
        gap: 7px 10px !important;
        margin-top: 0 !important;
        padding: 10px 11px !important;
        border-radius: 14px !important;
    }

    .agenda-box-toolbar__text {
        min-width: 0 !important;
    }

    .agenda-box-toolbar__text span,
    .agenda-box-toolbar__select > span {
        font-size: 9px !important;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .agenda-box-toolbar__text strong {
        font-size: 13px !important;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .agenda-box-toolbar__select {
        grid-column: 1 / -1;
        width: 100%;
    }

    .agenda-box-toolbar__select .control-select {
        width: 100%;
        min-height: 44px;
        border-radius: 12px;
        font-size: 16px !important;
    }

    .agenda-box-mode {
        align-self: center;
        justify-self: end;
        padding: 5px 8px !important;
        border-radius: 999px;
        font-size: 9px !important;
        white-space: nowrap;
    }

    .leyenda-estados {
        width: calc(100% + 2px);
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        overflow-x: auto;
        padding: 2px 1px 5px;
        scrollbar-width: none;
        scroll-snap-type: x proximity;
    }

    .leyenda-estados::-webkit-scrollbar {
        display: none;
    }

    .leyenda-estados span {
        flex: 0 0 auto;
        scroll-snap-align: start;
        padding: 6px 9px !important;
        border-radius: 999px !important;
        font-size: 10.5px !important;
        white-space: nowrap;
    }

    .leyenda-estados .cuadro {
        width: 12px !important;
        height: 12px !important;
        border-radius: 4px !important;
    }

    .agenda-range {
        margin: 8px 0 !important;
        font-size: 16px !important;
        line-height: 1.25;
    }

    .agenda-board {
        border-radius: 18px !important;
        box-shadow: 0 12px 30px rgba(18, 63, 179, .10) !important;
        overflow: hidden !important;
    }

    .agenda-loading,
    .agenda-error,
    .empty-state {
        min-height: 160px !important;
        padding: 20px 14px !important;
        font-size: 15px !important;
    }

    .agenda-dia {
        grid-auto-columns: minmax(210px, 78vw) !important;
        gap: 9px !important;
        padding: 10px !important;
        scroll-padding-inline: 10px;
    }

    .agenda-dia-inline {
        gap: 9px !important;
        padding: 1px 1px 7px !important;
        scroll-snap-type: x proximity;
    }

    .agenda-dia-inline .agenda-slot {
        flex: 0 0 min(230px, 76vw) !important;
        scroll-snap-align: start;
    }

    .agenda-box-section {
        padding: 9px !important;
        border-radius: 14px !important;
    }

    .agenda-box-section-head {
        margin-bottom: 8px !important;
    }

    .agenda-box-section-head strong {
        font-size: 13px !important;
    }

    .agenda-box-section-head span {
        padding: 4px 7px !important;
        font-size: 9px !important;
    }

    .slot-day {
        min-height: 126px !important;
        padding: 13px !important;
    }

    .slot-time {
        margin-bottom: 7px !important;
        padding: 5px 8px !important;
        font-size: 11px !important;
    }

    .agenda-slot strong {
        font-size: 14px !important;
    }

    .agenda-slot small {
        margin-top: 5px !important;
        font-size: 10.5px !important;
    }

    .agenda-semana {
        grid-template-columns: 54px repeat(7, minmax(98px, 1fr)) !important;
        max-height: 67dvh !important;
        overscroll-behavior: contain;
    }

    .agenda-semana-inline {
        grid-template-columns: 54px repeat(7, minmax(98px, 1fr)) !important;
        min-width: 740px !important;
        border-radius: 12px !important;
    }

    .agenda-corner,
    .week-day-header {
        min-height: 56px !important;
    }

    .week-day-header strong {
        font-size: 13px !important;
    }

    .week-day-header span {
        font-size: 10px !important;
    }

    .hour-label,
    .slot-week {
        min-height: 74px !important;
    }

    .hour-label {
        font-size: 10px !important;
    }

    .slot-week {
        padding: 7px !important;
    }

    .slot-week strong {
        font-size: 11px !important;
    }

    .slot-week small {
        font-size: 9px !important;
    }

    .agenda-mes {
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 3px !important;
        padding: 7px !important;
    }

    .month-weekday {
        display: block !important;
        padding: 4px 1px !important;
        font-size: 9px !important;
        overflow: hidden;
        text-overflow: clip;
        white-space: nowrap;
    }

    .month-day {
        min-width: 0;
        min-height: 58px !important;
        padding: 5px 3px !important;
        border-radius: 10px !important;
        box-shadow: none !important;
    }

    .month-number {
        width: 25px !important;
        height: 25px !important;
        font-size: 10px !important;
    }

    .month-day > strong {
        display: none !important;
    }

    .month-dots {
        justify-content: center;
        gap: 2px !important;
        margin-top: 5px !important;
    }

    .month-dots .dot {
        min-width: 13px !important;
        width: 13px;
        height: 13px !important;
        padding: 0 !important;
        border-radius: 999px !important;
        font-size: 0 !important;
    }

    /* Modales de agenda: hoja inferior, cómoda para teclado móvil. */
    .modal-reserva {
        align-items: flex-end !important;
        justify-content: center !important;
        padding: 0 !important;
        background: rgba(8, 35, 95, .56) !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
    }

    .modal-reserva > .modal-content,
    #modalReserva > .modal-content {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 92dvh !important;
        margin: 0 !important;
        padding: 17px 14px calc(17px + env(safe-area-inset-bottom)) !important;
        border-radius: 24px 24px 0 0 !important;
        border-bottom: 0 !important;
        box-shadow: 0 -18px 55px rgba(8, 35, 95, .24) !important;
        overscroll-behavior: contain;
    }

    .modal-reserva > .modal-content::before {
        content: "";
        display: block;
        width: 38px;
        height: 4px;
        margin: -5px auto 11px;
        border-radius: 999px;
        background: #d8e2f2;
    }

    .modal-head {
        position: sticky;
        top: -17px;
        z-index: 4;
        align-items: flex-start !important;
        gap: 8px !important;
        margin-bottom: 12px !important;
        padding: 9px 0 5px;
        background: linear-gradient(180deg, #fff 80%, rgba(255,255,255,0));
    }

    .modal-head .eyebrow {
        margin-bottom: 3px !important;
        font-size: 9px !important;
    }

    .modal-head h3,
    #modalReserva .modal-head h3 {
        margin: 0 !important;
        font-size: 20px !important;
        line-height: 1.12;
    }

    .modal-x {
        width: 42px !important;
        height: 42px !important;
        flex: 0 0 42px;
        border-radius: 13px !important;
        font-size: 24px !important;
    }

    .agenda-config-choice-grid {
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        margin-top: 10px !important;
    }

    .agenda-config-choice {
        min-height: 94px !important;
        grid-template-columns: 46px 1fr !important;
        gap: 3px 11px !important;
        padding: 13px !important;
        border-radius: 16px !important;
        box-shadow: 0 8px 20px rgba(18,63,179,.05);
    }

    .agenda-config-choice__icon {
        width: 46px !important;
        height: 46px !important;
        border-radius: 13px !important;
        font-size: 23px !important;
    }

    .agenda-config-choice strong {
        font-size: 14px !important;
    }

    .agenda-config-choice small {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    .modal-help {
        margin-bottom: 11px !important;
        padding: 10px 11px !important;
        border-radius: 13px !important;
        font-size: 11px !important;
        line-height: 1.4;
    }

    .agenda-simple-config {
        margin: 10px 0 16px !important;
        padding: 12px !important;
        border-radius: 15px !important;
    }

    .agenda-simple-grid,
    .reserva-form-grid,
    .agenda-review-toolbar,
    .generator-time-grid,
    .hora-tramos-grid,
    .hora-tramo-row,
    .color-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .reserva-field-full {
        grid-column: auto !important;
    }

    .agenda-simple-grid .form-control,
    .reserva-form .form-control,
    .generator-toolbar .form-control,
    .agenda-review-toolbar .form-control,
    .modal-content .form-control {
        min-height: 48px !important;
        border-radius: 13px !important;
        font-size: 16px !important;
    }

    .agenda-advanced-heading {
        gap: 5px !important;
        margin-top: 2px !important;
        padding-top: 13px !important;
    }

    .agenda-advanced-heading strong {
        font-size: 14px !important;
    }

    .agenda-advanced-heading span {
        font-size: 10.5px !important;
    }

    .generator-toolbar {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .generator-toolbar .btn,
    .modal-actions-end .btn,
    .reserva-form-actions .btn,
    .modal-buttons .btn,
    #btnGuardarHoraEspecial {
        width: 100% !important;
        min-height: 48px !important;
        margin: 0 !important;
        border-radius: 14px !important;
        font-weight: 900 !important;
    }

    .reserva-form {
        margin-top: 8px !important;
        padding: 12px !important;
        border-radius: 15px !important;
    }

    .reserva-form-actions,
    .modal-actions-end,
    .modal-buttons {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        margin-top: 12px !important;
    }

    .agenda-action-chooser {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        margin: 10px 0 !important;
    }

    .agenda-action-card {
        min-height: 72px !important;
        padding: 12px !important;
        border-radius: 14px !important;
    }

    .detail-card {
        border-radius: 14px !important;
    }
}

@media (max-width: 480px) {
    .lugh-home-page .site-header__inner,
    .box-booking-page .box-public-header .site-header__inner {
        width: calc(100% - 18px) !important;
    }

    .lugh-home-page .hero--photo .hero__center {
        width: calc(100% - 18px);
        padding-inline: 15px;
    }

    .reserva-public-page .reserva-container {
        width: calc(100% - 12px) !important;
    }

    .reserva-public-page .pasos {
        gap: 3px !important;
        padding-inline: 5px !important;
    }

    .reserva-public-page .paso p,
    .box-booking-page .box-step span {
        font-size: .58rem !important;
    }

    .reserva-public-page .formulario-container,
    .box-booking-page .box-form-step {
        padding-inline: 12px !important;
    }

    .box-booking-page .box-public-header .brand span {
        display: none !important;
    }

    .box-booking-page .box-slot-list,
    .reserva-public-page .hora-scroll {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .agenda-shell {
        width: calc(100vw - 12px) !important;
    }

    .agenda-hero {
        padding-inline: 11px !important;
    }

    .agenda-toolbar-card {
        padding-inline: 9px !important;
    }

    .agenda-controls .control-btn,
    .agenda-controls .control-date {
        font-size: 11.5px !important;
    }

    .agenda-mes {
        gap: 2px !important;
        padding: 5px !important;
    }

    .month-day {
        min-height: 54px !important;
        padding-inline: 2px !important;
    }

    .month-number {
        width: 23px !important;
        height: 23px !important;
    }
}

@media (max-width: 380px) {
    .reserva-public-page .paso p,
    .box-booking-page .box-step span {
        display: none !important;
    }

    .reserva-public-page .pasos,
    .box-booking-page .box-steps {
        min-height: 52px;
        align-items: center;
    }

    .reserva-public-page .circle,
    .box-booking-page .box-step b {
        width: 31px !important;
        height: 31px !important;
    }

    .box-booking-page .box-public-header .button {
        padding-inline: 10px;
    }

    .agenda-controls .control-btn,
    .agenda-controls .control-date {
        min-height: 44px !important;
        padding-inline: 6px !important;
        font-size: 11px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lugh-home-page *,
    .reserva-public-page *,
    .box-booking-page *,
    .agenda-shell *,
    .modal-reserva * {
        scroll-behavior: auto !important;
    }
}
