/* ============================================================
   BFT FRONTEND PHASE 2B
   ============================================================ */


/* ============================================================
   TOUR + ROUTE COMBINED
   ============================================================ */

.phase2-tours{
    display:grid;
    gap:22px;
    max-width:1000px;
    margin:0 auto;
}

.phase2-tour{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);

    overflow:hidden;

    background:#fff;
    color:#111;

    border:1px solid #e2ddd6;
    border-radius:18px;

    box-shadow:0 16px 38px rgba(0,0,0,.07);
}

.phase2-tour-image{
    min-height:260px;

    background-size:cover;
    background-position:center;
}

.phase2-tour-main{
    padding:28px;
}

.phase2-tour-main h3{
    color:#111!important;
    font-size:25px!important;
    margin-bottom:9px;
}

.phase2-tour-description{
    color:#555!important;
    line-height:1.7!important;
    margin-bottom:15px!important;

    display:block!important;
    overflow:visible!important;
    -webkit-line-clamp:unset!important;
}

.phase2-tour-meta{
    display:flex;
    gap:9px;
    flex-wrap:wrap;

    margin-bottom:17px;
}

.phase2-language{
    display:inline-flex;
    align-items:center;
    gap:5px;

    padding:5px 9px;

    background:#f2f3f5;
    color:#333;

    border:1px solid #e2e4e7;
    border-radius:999px;

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

.phase2-duration{
    display:inline-flex;
    align-items:center;

    padding:5px 9px;

    border-radius:999px;

    background:#111;
    color:#fff;

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

.phase2-tour-details{
    margin-top:17px;

    border-top:1px solid #ece8e2;

    padding-top:15px;
}

.phase2-tour-details summary{
    cursor:pointer;

    color:#111;
    font-weight:750;

    list-style:none;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.phase2-tour-details summary::-webkit-details-marker{
    display:none;
}

.phase2-tour-details summary::after{
    content:'+';

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

    width:28px;
    height:28px;

    flex:0 0 28px;

    background:#111;
    color:#fff;

    border-radius:50%;
}

.phase2-tour-details[open] summary::after{
    content:'−';
    background:#c82638;
}

.phase2-detail-content{
    padding-top:18px;
}

.phase2-long-description{
    color:#50545a;
    line-height:1.75;

    margin-bottom:20px;
}

.phase2-points{
    display:grid;
    gap:7px;

    margin-bottom:18px;
}

.phase2-point{
    display:flex;
    align-items:flex-start;
    gap:10px;

    padding:10px 12px;

    background:#f6f6f6;

    border-radius:9px;

    color:#252525;
}

.phase2-point-number{
    display:flex;
    align-items:center;
    justify-content:center;

    width:26px;
    height:26px;

    flex:0 0 26px;

    background:#c82638;
    color:#fff;

    border-radius:50%;

    font-size:11px;
    font-weight:800;
}

.phase2-endpoints{
    display:grid;
    gap:6px;

    padding:14px;

    background:#f5f2ed;

    border-radius:10px;

    color:#464646;
    font-size:13px;
}

.phase2-tour-actions{
    display:flex;
    gap:9px;
    flex-wrap:wrap;

    margin-top:18px;
}


/* ============================================================
   CALENDAR
   ============================================================ */

#booking .calendar-container{
    overflow:hidden;
}

#booking .calendar-grid{
    gap:6px!important;
}

#booking .cal-day{
    appearance:none;

    min-height:56px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    gap:3px;

    border:1px solid transparent;

    background:transparent;

    font-family:inherit;
}

#booking .cal-day.available{
    background:#faf8f5!important;
    border:1px solid #ddd7ce!important;

    color:#111!important;

    cursor:pointer;
}

#booking .cal-day.available:hover{
    background:#111!important;
    color:#fff!important;
}

#booking .cal-day.selected{
    background:#c82638!important;
    border-color:#c82638!important;
    color:#fff!important;
}

#booking .cal-date-number{
    font-weight:750;
    line-height:1;
}

#booking .cal-language-flags{
    display:flex;
    justify-content:center;
    gap:1px;

    line-height:1;
}

#booking .cal-language-flag{
    font-size:12px;
}

#booking .cal-day.selected .cal-language-flag,
#booking .cal-day.available:hover .cal-language-flag{
    filter:none;
}

#booking .cal-empty{
    pointer-events:none;
}


/* ============================================================
   DAY SLOTS
   ============================================================ */

.phase2-slot-list{
    display:grid!important;
    grid-template-columns:repeat(
        auto-fill,
        minmax(170px,1fr)
    )!important;

    gap:10px!important;
}

.phase2-slot{
    min-height:62px;

    display:flex!important;
    align-items:center!important;

    gap:10px!important;

    padding:10px 13px!important;

    text-align:left;

    border:1px solid #ded9d2!important;
    border-radius:12px!important;

    background:#fff!important;
    color:#111!important;
}

button.phase2-slot:hover{
    background:#111!important;
    color:#fff!important;

    border-color:#111!important;

    transform:translateY(-1px);
}

.phase2-slot.locked{
    background:#f5f5f5!important;
    opacity:.55;

    border-style:dashed!important;
}

.slot-lang-flag{
    font-size:22px;
    line-height:1;

    flex:0 0 auto;
}

.slot-main{
    display:flex;
    flex-direction:column;

    line-height:1.18;

    flex:1;
}

.slot-main strong{
    font-size:15px;
}

.slot-main span{
    margin-top:3px;
    font-size:11px;
    opacity:.72;
}

.slot-status{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.03em;
    opacity:.6;
}

.booking-summary-tour{
    font-size:17px;
    font-weight:750;

    color:inherit;
}

.booking-summary-meta{
    margin-top:4px;

    font-size:13px;

    opacity:.75;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media(max-width:760px){

    .phase2-tour{
        grid-template-columns:1fr;
    }

    .phase2-tour-image{
        min-height:190px;
    }

    .phase2-tour-main{
        padding:20px;
    }

    .phase2-slot-list{
        grid-template-columns:1fr!important;
    }

    #booking .cal-day{
        min-height:49px;
        padding:6px 2px!important;
    }

    #booking .cal-language-flag{
        font-size:10px;
    }
}

/* ============================================================
   BFT CIRCULAR LANGUAGE FLAGS
   ============================================================ */

.lang-flag-circle{
    --flag-size:22px;

    display:inline-block;
    width:var(--flag-size);
    height:var(--flag-size);

    flex:0 0 var(--flag-size);

    border-radius:50%;
    overflow:hidden;

    vertical-align:middle;

    background-color:#ddd;
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center;

    box-shadow:
        0 0 0 1px rgba(0,0,0,.13),
        0 1px 3px rgba(0,0,0,.14);
}


/* 🇪🇸 España */
.lang-flag-es{
    background:
        linear-gradient(
            to bottom,
            #AA151B 0%,
            #AA151B 25%,
            #F1BF00 25%,
            #F1BF00 75%,
            #AA151B 75%,
            #AA151B 100%
        );
}


/* 🇩🇪 Alemania */
.lang-flag-de{
    background:
        linear-gradient(
            to bottom,
            #000 0%,
            #000 33.333%,
            #DD0000 33.333%,
            #DD0000 66.666%,
            #FFCE00 66.666%,
            #FFCE00 100%
        );
}


/* 🇮🇹 Italia */
.lang-flag-it{
    background:
        linear-gradient(
            to right,
            #009246 0%,
            #009246 33.333%,
            #fff 33.333%,
            #fff 66.666%,
            #CE2B37 66.666%,
            #CE2B37 100%
        );
}


/* 🇬🇧 Reino Unido */
.lang-flag-en{
    background:
        linear-gradient(
            33deg,
            transparent 43%,
            #fff 43%,
            #fff 57%,
            transparent 57%
        ),

        linear-gradient(
            -33deg,
            transparent 43%,
            #fff 43%,
            #fff 57%,
            transparent 57%
        ),

        linear-gradient(
            33deg,
            transparent 47%,
            #C8102E 47%,
            #C8102E 53%,
            transparent 53%
        ),

        linear-gradient(
            -33deg,
            transparent 47%,
            #C8102E 47%,
            #C8102E 53%,
            transparent 53%
        ),

        linear-gradient(
            to right,
            transparent 38%,
            #fff 38%,
            #fff 62%,
            transparent 62%
        ),

        linear-gradient(
            to bottom,
            transparent 38%,
            #fff 38%,
            #fff 62%,
            transparent 62%
        ),

        linear-gradient(
            to right,
            transparent 45%,
            #C8102E 45%,
            #C8102E 55%,
            transparent 55%
        ),

        linear-gradient(
            to bottom,
            transparent 45%,
            #C8102E 45%,
            #C8102E 55%,
            transparent 55%
        ),

        #012169;
}


.lang-flag-xx{
    background:#d6d6d6;
}


.language-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
}


.phase2-language{
    display:inline-flex!important;
    align-items:center!important;
    gap:7px!important;
}


.cal-language-flag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
}


.slot-lang-flag{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:auto!important;
    font-size:0!important;
}


.lang-flag .lang-flag-circle{
    margin:0;
}


/* ============================================================
   BFT LANGUAGE FLAG POLISH v2
   ============================================================ */

/* Union Jack real */
.lang-flag-en{
    background:
        #012169
        url('/assets/img/flags/gb.svg')
        center center / cover
        no-repeat !important;
}


/* Chips un poco más limpios y compactos */
.phase2-language{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    gap:8px !important;

    padding:6px 12px !important;

    border-radius:999px !important;

    min-height:38px;
}


/* tamaño uniforme */
.phase2-language .lang-flag-circle{
    --flag-size:22px !important;
}


/* texto */
.phase2-language{
    font-size:14px !important;
    font-weight:700 !important;
}


/* círculo con borde más limpio */
.lang-flag-circle{
    box-shadow:
        0 0 0 1px rgba(0,0,0,.14),
        0 2px 4px rgba(0,0,0,.12) !important;
}


/* móvil */
@media(max-width:640px){

    .phase2-language{
        padding:5px 10px !important;
        gap:6px !important;
        min-height:34px;
        font-size:13px !important;
    }

    .phase2-language .lang-flag-circle{
        --flag-size:20px !important;
    }
}

/* ============================================================
   BFT BOOKING VISUAL POLISH v3
   Calendar + slots + booking modal
   ============================================================ */

#booking{
    --book-red:#c82638;
    --book-red-dark:#a91e2e;
    --book-black:#101010;

    --book-paper:#f4f1ec;
    --book-white:#ffffff;

    --book-text:#161616;
    --book-muted:#666b72;

    --book-border:#ded9d2;
    --book-border-strong:#bcb6ae;

    --book-soft:#f7f5f2;
}


/* ============================================================
   CALENDAR CARD
   ============================================================ */

#booking .calendar-container,
#booking .slots-container{
    background:#fff !important;
    color:var(--book-text) !important;

    border:1px solid #e0dcd6 !important;
    border-radius:22px !important;

    box-shadow:
        0 18px 45px rgba(32,24,18,.07) !important;
}


/* ============================================================
   MONTH + NAVIGATION
   ============================================================ */

#booking .calendar-nav{
    gap:16px;
}

#booking .cal-month-label{
    color:#111 !important;

    font-size:24px !important;
    font-weight:800 !important;

    line-height:1.05;
    text-align:center;
}


#booking .calendar-nav .btn{
    background:#fff !important;
    color:#111 !important;

    border:1.5px solid #aaa59e !important;

    border-radius:11px !important;

    box-shadow:none !important;
}

#booking .calendar-nav .btn:hover:not(:disabled){
    background:#111 !important;
    color:#fff !important;

    border-color:#111 !important;
}

#booking .calendar-nav .btn:disabled{
    background:#fafafa !important;
    color:#aaa !important;

    border-color:#d9d6d1 !important;

    opacity:1 !important;

    cursor:not-allowed;
}


/* ============================================================
   WEEKDAY HEADERS
   ============================================================ */

#booking .cal-day-header{
    color:#111 !important;

    font-size:14px !important;
    font-weight:750 !important;
}


/* ============================================================
   DAYS
   ============================================================ */

#booking .cal-day{
    color:#111 !important;

    background:transparent !important;

    border:1px solid transparent !important;

    border-radius:12px !important;

    box-shadow:none !important;

    transition:
        background .16s ease,
        border-color .16s ease,
        color .16s ease,
        transform .16s ease !important;
}


/* pasado */
#booking .cal-day.past{
    color:#b8b8b8 !important;
    opacity:1 !important;

    background:transparent !important;
}


/* disponible */
#booking .cal-day.available{
    color:#111 !important;

    background:#fff !important;

    border:1.5px solid #e8a7ae !important;

    box-shadow:
        inset 0 0 0 2px #f6e3e5 !important;
}


/* hover disponible */
#booking .cal-day.available:hover{
    color:#111 !important;

    background:#f8eded !important;

    border-color:var(--book-red) !important;

    transform:translateY(-1px) !important;
}


/* día seleccionado */
#booking .cal-day.selected,
#booking .cal-day.selected:hover{
    background:var(--book-red) !important;

    color:#fff !important;

    border-color:var(--book-red) !important;

    box-shadow:
        0 8px 20px rgba(200,38,56,.22) !important;

    transform:none !important;
}


/* absolutamente todo dentro del seleccionado en blanco */
#booking .cal-day.selected *,
#booking .cal-day.selected .cal-date-number{
    color:#fff !important;
}


/* today: sólo un detalle discreto */
#booking .cal-day.today:not(.selected){
    outline:2px solid #111 !important;
    outline-offset:2px;
}


/* número */
#booking .cal-date-number{
    color:inherit !important;

    font-weight:800 !important;
}


/* banderas */
#booking .cal-language-flags{
    margin-top:5px !important;
    gap:3px !important;
}


/* ============================================================
   SLOTS SIDE
   ============================================================ */

#booking .slots-container{
    padding:30px !important;
}

#booking .slots-placeholder{
    color:#777 !important;
}

#booking .slots-group h3{
    color:#111 !important;

    border-bottom:1px solid #ece8e2 !important;

    padding-bottom:12px !important;
}


/* horario disponible */
#booking .phase2-slot{
    background:#fff !important;

    color:#111 !important;

    border:1.5px solid #ded9d2 !important;

    box-shadow:
        0 3px 10px rgba(0,0,0,.035) !important;
}

#booking button.phase2-slot:hover{
    background:#111 !important;

    color:#fff !important;

    border-color:#111 !important;

    box-shadow:
        0 7px 18px rgba(0,0,0,.14) !important;
}


/* bloqueado */
#booking .phase2-slot.locked{
    background:#f1f1f1 !important;

    color:#8a8a8a !important;

    border-color:#d0d0d0 !important;

    opacity:1 !important;
}

#booking .phase2-slot.locked .slot-status{
    color:#9b1c2b !important;
}


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

#bookingModal.modal{
    padding:22px !important;
}


/* overlay */
#bookingModal .modal-overlay{
    background:rgba(15,15,15,.58) !important;

    backdrop-filter:blur(5px) !important;
    -webkit-backdrop-filter:blur(5px) !important;
}


/* panel */
#bookingModal .modal-content{
    background:#fff !important;

    color:#171717 !important;

    border:1px solid #dedbd6 !important;

    border-radius:22px !important;

    box-shadow:
        0 30px 90px rgba(0,0,0,.24) !important;

    max-width:760px !important;

    padding:36px !important;
}


/* título */
#bookingModal .modal-content h2{
    color:#111 !important;

    font-size:30px !important;
    line-height:1.1 !important;

    margin-bottom:24px !important;
}


/* cerrar */
#bookingModal .modal-close{
    color:#777 !important;

    width:38px;
    height:38px;

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

    top:18px !important;
    right:18px !important;

    border-radius:50% !important;

    background:#f2f2f2 !important;
}

#bookingModal .modal-close:hover{
    color:#fff !important;

    background:#111 !important;
}


/* ============================================================
   BOOKING SUMMARY
   ============================================================ */

#bookingModal .booking-summary{
    background:#f5f3ef !important;

    color:#222 !important;

    border:1px solid #e5e0d9 !important;

    border-radius:14px !important;

    padding:20px !important;

    margin-bottom:28px !important;
}

#bookingModal .booking-summary-tour{
    color:#111 !important;

    font-size:19px !important;
    font-weight:800 !important;
}

#bookingModal .booking-summary-meta{
    color:#555 !important;

    opacity:1 !important;

    margin-top:8px !important;

    line-height:1.65 !important;
}


/* ============================================================
   FORM
   ============================================================ */

#bookingModal .form-group label{
    color:#373737 !important;

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


/* campos */
#bookingModal .form-group input,
#bookingModal .form-group select,
#bookingModal .form-group textarea{
    background:#fff !important;

    color:#111 !important;

    border:1.5px solid #d4d0ca !important;

    border-radius:10px !important;

    min-height:48px !important;

    padding:11px 13px !important;

    caret-color:#111 !important;

    box-shadow:none !important;
}


/* placeholder */
#bookingModal input::placeholder,
#bookingModal textarea::placeholder{
    color:#9a9a9a !important;

    opacity:1 !important;
}


/* autofill chrome */
#bookingModal input:-webkit-autofill,
#bookingModal input:-webkit-autofill:hover,
#bookingModal input:-webkit-autofill:focus{
    -webkit-text-fill-color:#111 !important;

    -webkit-box-shadow:
        0 0 0 1000px #fff inset !important;
}


/* focus */
#bookingModal .form-group input:focus,
#bookingModal .form-group textarea:focus,
#bookingModal .form-group select:focus{
    outline:none !important;

    border-color:#111 !important;

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


/* errores */
#bookingModal .form-error{
    color:#b91c1c !important;
}


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

#bookingModal .form-actions{
    border-top:1px solid #ece8e2;

    padding-top:22px !important;
    margin-top:26px !important;
}

#bookingModal .btn-primary{
    background:#111 !important;

    color:#fff !important;

    border:1px solid #111 !important;
}

#bookingModal .btn-primary:hover{
    background:var(--book-red) !important;

    color:#fff !important;

    border-color:var(--book-red) !important;
}


#bookingModal .btn-ghost{
    background:#fff !important;

    color:#444 !important;

    border:1px solid #ccc7c0 !important;
}

#bookingModal .btn-ghost:hover{
    background:#f3f1ee !important;

    color:#111 !important;

    border-color:#aaa49c !important;
}


/* ============================================================
   SUCCESS
   ============================================================ */

#bookingModal .booking-success{
    color:#171717 !important;
}

#bookingModal .booking-success h3{
    color:#111 !important;
}

#bookingModal .booking-success p{
    color:#5d5d5d !important;
}

#bookingModal .success-icon{
    background:#111 !important;

    color:#fff !important;
}


/* ============================================================
   SCROLLBAR DEL MODAL
   ============================================================ */

#bookingModal .modal-content{
    scrollbar-width:thin;
    scrollbar-color:#aaa transparent;
}

#bookingModal .modal-content::-webkit-scrollbar{
    width:9px;
}

#bookingModal .modal-content::-webkit-scrollbar-track{
    background:transparent;
}

#bookingModal .modal-content::-webkit-scrollbar-thumb{
    background:#b7b7b7;

    border-radius:999px;

    border:2px solid #fff;
}


/* ============================================================
   MOBILE
   ============================================================ */

@media(max-width:680px){

    #bookingModal.modal{
        padding:10px !important;
    }

    #bookingModal .modal-content{
        padding:
            28px 18px
            22px
            18px !important;

        border-radius:17px !important;
    }

    #bookingModal .modal-content h2{
        font-size:24px !important;
        padding-right:38px;
    }

    #bookingModal .form-row{
        grid-template-columns:1fr !important;
    }

    #booking .calendar-container{
        padding:16px !important;
    }

    #booking .calendar-nav .btn{
        padding:8px 10px !important;
        font-size:11px !important;
    }

    #booking .cal-month-label{
        font-size:17px !important;
    }

    #booking .cal-day{
        min-height:47px !important;
    }
}


/* ============================================================
   BFT TOUR CTA + ROUTE POLISH v4
   ============================================================ */

.phase2-tour .phase2-tour-actions{
    margin-top:22px !important;
}

.phase2-tour .phase2-tour-actions .btn,
.phase2-tour .phase2-tour-actions .btn-primary{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    width:auto !important;

    padding:11px 20px !important;

    background:#111 !important;
    color:#fff !important;

    border:1px solid #111 !important;
    border-radius:10px !important;

    font-size:14px !important;
    font-weight:750 !important;

    text-decoration:none !important;

    box-shadow:
        0 4px 12px rgba(0,0,0,.10) !important;

    transition:
        background .16s ease,
        border-color .16s ease,
        transform .16s ease !important;
}

.phase2-tour .phase2-tour-actions .btn:hover,
.phase2-tour .phase2-tour-actions .btn-primary:hover{
    background:#c82638 !important;
    color:#fff !important;

    border-color:#c82638 !important;

    transform:translateY(-1px) !important;
}


/* La ruta con 28 paradas será más compacta en escritorio */
.phase2-points{
    display:grid !important;
    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        ) !important;

    gap:8px 12px !important;
}

.phase2-point{
    min-height:54px;

    padding:10px 13px !important;

    background:#f6f6f6 !important;
    color:#272727 !important;

    border:1px solid #ededed;
}

.phase2-point-number{
    background:#c82638 !important;
    color:#fff !important;
}


@media(max-width:720px){

    .phase2-points{
        grid-template-columns:1fr !important;
    }

    .phase2-tour .phase2-tour-actions .btn,
    .phase2-tour .phase2-tour-actions .btn-primary{
        width:100% !important;
    }
}

/* ============================================================
   BFT COMPACT TYPOGRAPHY / LIGHTER UI
   Reduce tipografías y compacta todo el frontend
   ============================================================ */

/* ---------- base global ---------- */
html{
    font-size:14px;
}

body{
    font-size:14px;
    line-height:1.55;
    letter-spacing:-0.01em;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

p,
li,
label,
input,
select,
textarea,
button,
a{
    font-size:1rem;
}

strong,
b{
    font-weight:700;
}

h1{
    font-size:clamp(2.1rem, 4vw, 3.25rem) !important;
    line-height:1.06;
    letter-spacing:-0.03em;
}

h2{
    font-size:clamp(1.65rem, 3vw, 2.4rem) !important;
    line-height:1.12;
    letter-spacing:-0.02em;
}

h3{
    font-size:clamp(1.25rem, 2vw, 1.7rem) !important;
    line-height:1.18;
}

h4{
    font-size:1.1rem !important;
    line-height:1.2;
}

.section-title,
.section-heading{
    font-size:clamp(1.7rem, 2.5vw, 2.25rem) !important;
    line-height:1.12;
}

/* ---------- header / nav ---------- */
header,
.site-header{
    font-size:14px;
}

header nav a,
.site-header nav a,
.main-nav a{
    font-size:0.96rem !important;
    font-weight:600 !important;
    letter-spacing:-0.01em;
}

.site-header .logo-text,
.brand-text{
    font-size:0.95rem !important;
}

.site-header .logo-subtitle,
.brand-subtitle{
    font-size:0.8rem !important;
    letter-spacing:0.04em;
}

/* ---------- botones generales ---------- */
button,
.btn,
a.btn,
input[type="submit"]{
    font-size:0.98rem !important;
    font-weight:700 !important;
    padding:0.9rem 1.25rem !important;
    border-radius:14px !important;
}

/* ---------- tarjetas de tours ---------- */
.tour-card,
.home-tour-card{
    border-radius:24px !important;
}

.tour-card__content,
.home-tour-card__content{
    padding:1.6rem 1.7rem !important;
}

.tour-card__title,
.home-tour-card__title,
.tour-card h2,
.tour-card h3,
.home-tour-card h2,
.home-tour-card h3{
    font-size:clamp(1.7rem, 2.6vw, 2.5rem) !important;
    line-height:1.08 !important;
    margin-bottom:1rem !important;
}

.tour-card__excerpt,
.tour-card__description,
.home-tour-card__excerpt,
.home-tour-card__description,
.tour-card p,
.home-tour-card p{
    font-size:0.98rem !important;
    line-height:1.72 !important;
}

.tour-card__meeting,
.home-tour-card__meeting,
.tour-card__meeting-point,
.home-tour-card__meeting-point{
    font-size:0.96rem !important;
    line-height:1.65 !important;
}

.tour-card__meta,
.home-tour-card__meta{
    gap:0.7rem !important;
    margin-bottom:1rem !important;
}

.tour-card__pill,
.home-tour-card__pill,
.lang-chip,
.duration-chip{
    min-height:42px !important;
    padding:0.5rem 0.9rem !important;
    border-radius:999px !important;
    font-size:0.95rem !important;
    font-weight:700 !important;
}

.tour-card__actions,
.home-tour-card__actions{
    margin-top:1rem !important;
    gap:0.8rem !important;
}

/* boton reservar este tour */
.tour-card .reserve-tour-btn,
.home-tour-card .reserve-tour-btn,
.tour-card .tour-reserve-btn,
.home-tour-card .tour-reserve-btn{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:44px !important;
    padding:0.8rem 1.3rem !important;
    font-size:0.96rem !important;
    border-radius:14px !important;
}

/* ---------- toggle / ver la ruta ---------- */
.route-toggle,
.tour-route-toggle,
.route-accordion-toggle{
    min-height:46px !important;
    font-size:1rem !important;
    font-weight:700 !important;
}

.route-toggle .plus,
.tour-route-toggle .plus,
.route-accordion-toggle .plus{
    width:38px !important;
    height:38px !important;
    font-size:1.3rem !important;
}

/* ---------- ruta / paradas principales ---------- */
.route-panel,
.tour-route-panel,
.route-stops{
    margin-top:1rem !important;
}

.route-grid,
.tour-route-grid{
    gap:1rem !important;
}

.route-stop,
.tour-route-stop,
.route-item{
    min-height:86px !important;
    padding:1rem 1.2rem !important;
    border-radius:20px !important;
}

.route-stop__number,
.tour-route-stop__number,
.route-item__number{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    font-size:1.15rem !important;
    font-weight:800 !important;
}

.route-stop__title,
.tour-route-stop__title,
.route-item__title{
    font-size:0.98rem !important;
    line-height:1.35 !important;
    font-weight:500 !important;
}

.route-panel h3,
.route-panel h4,
.tour-route-panel h3,
.tour-route-panel h4{
    font-size:1.55rem !important;
    margin-bottom:1rem !important;
}

/* ---------- calendario ---------- */
#booking{
    font-size:14px;
}

#booking .booking-calendar,
#booking .calendar-shell,
#booking .calendar-panel{
    padding:1.8rem !important;
    border-radius:28px !important;
}

#booking .calendar-month-title,
#booking .booking-month-title,
#booking .month-title{
    font-size:2rem !important;
    line-height:1.05 !important;
}

#booking .calendar-nav button,
#booking .month-nav button,
#booking .calendar-prev,
#booking .calendar-next{
    min-width:170px !important;
    min-height:58px !important;
    font-size:1.05rem !important;
    border-radius:16px !important;
    padding:0.8rem 1rem !important;
}

#booking .calendar-weekdays,
#booking .weekday-row{
    margin-bottom:0.8rem !important;
}

#booking .calendar-weekdays span,
#booking .weekday{
    font-size:1rem !important;
    font-weight:700 !important;
}

#booking .calendar-day,
#booking .day-cell{
    min-height:98px !important;
    border-radius:18px !important;
    padding:0.55rem 0.45rem !important;
}

#booking .calendar-day-number,
#booking .day-number{
    font-size:1.1rem !important;
    font-weight:800 !important;
}

#booking .calendar-day .day-flags,
#booking .day-cell .day-flags,
#booking .day-languages{
    gap:0.2rem !important;
    margin-top:0.25rem !important;
}

#booking .calendar-day .day-flags img,
#booking .calendar-day .day-flags svg,
#booking .day-cell .day-flags img,
#booking .day-cell .day-flags svg,
#booking .day-languages img,
#booking .day-languages svg{
    width:20px !important;
    height:20px !important;
}

/* ---------- lista de horarios ---------- */
.booking-slots,
.day-slots,
.slot-list{
    gap:0.7rem !important;
}

.booking-slot,
.day-slot,
.slot-card{
    padding:0.9rem 1rem !important;
    min-height:56px !important;
    border-radius:16px !important;
}

.booking-slot__title,
.day-slot__title,
.slot-card__title{
    font-size:0.98rem !important;
    font-weight:700 !important;
}

.booking-slot__meta,
.day-slot__meta,
.slot-card__meta{
    font-size:0.9rem !important;
}

/* ---------- modal reserva ---------- */
.booking-modal,
#bookingModal,
.modal-booking{
    font-size:14px !important;
}

.booking-modal .modal-content,
#bookingModal .modal-content,
.modal-booking .modal-content{
    max-width:960px !important;
    border-radius:26px !important;
    padding:1.9rem 2rem !important;
}

.booking-modal h2,
#bookingModal h2,
.modal-booking h2{
    font-size:2rem !important;
    line-height:1.08 !important;
    margin-bottom:1rem !important;
}

.booking-modal h3,
#bookingModal h3,
.modal-booking h3{
    font-size:1.25rem !important;
}

.booking-modal .selected-tour,
#bookingModal .selected-tour,
.modal-booking .selected-tour{
    padding:1rem 1.1rem !important;
    border-radius:18px !important;
    margin-bottom:1.2rem !important;
}

.booking-modal label,
#bookingModal label,
.modal-booking label{
    font-size:0.96rem !important;
    font-weight:700 !important;
    margin-bottom:0.42rem !important;
}

.booking-modal input,
.booking-modal select,
.booking-modal textarea,
#bookingModal input,
#bookingModal select,
#bookingModal textarea,
.modal-booking input,
.modal-booking select,
.modal-booking textarea{
    min-height:52px !important;
    padding:0.85rem 0.95rem !important;
    font-size:0.98rem !important;
    border-radius:14px !important;
}

.booking-modal textarea,
#bookingModal textarea,
.modal-booking textarea{
    min-height:110px !important;
}

.booking-modal .form-row,
#bookingModal .form-row,
.modal-booking .form-row{
    gap:1rem !important;
    margin-bottom:1rem !important;
}

.booking-modal .close-modal,
#bookingModal .close-modal,
.modal-booking .close-modal{
    width:42px !important;
    height:42px !important;
    font-size:1.5rem !important;
    top:1rem !important;
    right:1rem !important;
}

.booking-modal .submit-btn,
#bookingModal .submit-btn,
.modal-booking .submit-btn{
    min-height:52px !important;
    font-size:1rem !important;
    border-radius:14px !important;
}

/* ---------- banderitas ---------- */
.lang-flag-icon,
.day-flag,
.slot-flag{
    transform:scale(.92);
    transform-origin:center center;
}

/* ---------- responsive ---------- */
@media (max-width: 992px){
    html{
        font-size:13.5px;
    }

    .route-stop,
    .tour-route-stop,
    .route-item{
        min-height:78px !important;
        padding:0.9rem 1rem !important;
    }

    #booking .calendar-day,
    #booking .day-cell{
        min-height:88px !important;
    }
}

@media (max-width: 768px){
    html{
        font-size:13px;
    }

    .tour-card__title,
    .home-tour-card__title,
    .tour-card h2,
    .tour-card h3,
    .home-tour-card h2,
    .home-tour-card h3{
        font-size:1.9rem !important;
    }

    #booking .calendar-nav button,
    #booking .month-nav button,
    #booking .calendar-prev,
    #booking .calendar-next{
        min-width:140px !important;
        min-height:52px !important;
        font-size:0.95rem !important;
    }

    #booking .calendar-day,
    #booking .day-cell{
        min-height:80px !important;
    }

    .route-stop__title,
    .tour-route-stop__title,
    .route-item__title{
        font-size:0.92rem !important;
    }
}

/* ============================================================
   BFT FINE UI v2
   Corrección real de tours, ruta, calendario y modal
   ============================================================ */


/* ------------------------------------------------------------
   GLOBAL
   ------------------------------------------------------------ */

body{
    font-size:14px !important;
    line-height:1.55 !important;
}

.section{
    padding:58px 0 !important;
}

.section-header{
    margin-bottom:30px !important;
}

.section-header h2{
    font-size:30px !important;
    line-height:1.1 !important;
}

.section-header p{
    font-size:14px !important;
    line-height:1.55 !important;
}


/* ------------------------------------------------------------
   TOUR CARD
   ------------------------------------------------------------ */

.phase2-tour{
    grid-template-columns:230px minmax(0,1fr) !important;

    border-radius:16px !important;
}

.phase2-tour-image{
    min-height:220px !important;
}

.phase2-tour-main{
    padding:22px 24px !important;
}

.phase2-tour-main h3{
    font-size:28px !important;
    line-height:1.05 !important;

    margin-bottom:9px !important;
}

.phase2-tour-description{
    font-size:14px !important;
    line-height:1.6 !important;

    margin-bottom:12px !important;
}

.phase2-tour-main > div{
    font-size:13px;
}


/* duración e idiomas */

.phase2-tour-meta{
    gap:7px !important;
    margin-bottom:12px !important;
}

.phase2-duration,
.phase2-language{
    min-height:32px !important;

    padding:5px 9px !important;

    font-size:12px !important;

    border-radius:999px !important;
}

.phase2-language{
    gap:6px !important;
}

.phase2-language .lang-flag-circle{
    --flag-size:18px !important;
}


/* botón reservar */

.phase2-tour .phase2-tour-actions{
    margin-top:15px !important;
}

.phase2-tour .phase2-tour-actions .btn{
    min-height:36px !important;

    padding:7px 14px !important;

    font-size:12px !important;

    border-radius:8px !important;
}


/* ------------------------------------------------------------
   VER LA RUTA
   ------------------------------------------------------------ */

.phase2-tour-details{
    margin-top:14px !important;
    padding-top:12px !important;
}

.phase2-tour-details summary{
    font-size:16px !important;
    font-weight:700 !important;
}

.phase2-tour-details summary::after{
    width:25px !important;
    height:25px !important;

    flex-basis:25px !important;

    font-size:14px !important;
}

.phase2-detail-content{
    padding-top:14px !important;
}

.phase2-long-description{
    font-size:13px !important;
    line-height:1.6 !important;

    margin-bottom:15px !important;
}

.phase2-detail-content h4{
    font-size:17px !important;
    margin-bottom:10px !important;
}


/* ------------------------------------------------------------
   28 PARADAS — MUCHO MÁS COMPACTAS
   ------------------------------------------------------------ */

.phase2-points{
    display:grid !important;

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

    gap:6px 8px !important;

    margin-bottom:14px !important;
}

.phase2-point{
    min-height:42px !important;

    padding:6px 9px !important;

    gap:8px !important;

    border-radius:8px !important;

    font-size:12px !important;
    line-height:1.25 !important;
}

.phase2-point-number{
    width:23px !important;
    height:23px !important;

    flex:0 0 23px !important;

    font-size:10px !important;
}

.phase2-endpoints{
    font-size:12px !important;

    padding:10px 12px !important;

    gap:4px !important;
}


/* ------------------------------------------------------------
   BOOKING LAYOUT
   ------------------------------------------------------------ */

#booking .booking-wrapper{
    display:grid !important;

    grid-template-columns:
        minmax(440px,500px)
        minmax(0,1fr) !important;

    gap:22px !important;

    align-items:start !important;
}


/* ------------------------------------------------------------
   CALENDAR CARD
   ------------------------------------------------------------ */

#booking .calendar-container{
    padding:18px !important;

    border-radius:18px !important;
}


/* NAV DEL MES
   Evita el problema que se ve en tu captura:
   dos botones enormes aplastando Septiembre 2026.
*/

#booking .calendar-nav{
    display:grid !important;

    grid-template-columns:
        105px
        minmax(0,1fr)
        105px !important;

    align-items:center !important;

    gap:8px !important;

    margin-bottom:17px !important;
}

#booking .calendar-nav .btn,
#booking .calendar-nav button{
    min-width:0 !important;
    width:100% !important;

    min-height:38px !important;

    padding:6px 7px !important;

    font-size:11px !important;

    border-radius:8px !important;
}

#booking .cal-month-label{
    display:block !important;

    min-width:0 !important;

    font-size:17px !important;
    line-height:1.08 !important;

    text-align:center !important;

    white-space:normal !important;
}


/* calendario */

#booking .calendar-grid{
    gap:4px !important;
}

#booking .cal-day-header{
    padding:6px 0 !important;

    font-size:11px !important;
}

#booking .cal-day{
    min-height:53px !important;

    padding:5px 2px !important;

    border-radius:9px !important;
}

#booking .cal-date-number{
    font-size:13px !important;
}

#booking .cal-language-flags{
    gap:2px !important;

    margin-top:3px !important;
}

#booking .cal-language-flag .lang-flag-circle{
    --flag-size:13px !important;
}


/* hoy */

#booking .cal-day.today:not(.selected){
    outline:1.5px solid #111 !important;
    outline-offset:1px !important;
}


/* ------------------------------------------------------------
   CAJA DE HORARIOS
   ------------------------------------------------------------ */

#booking .slots-container{
    min-height:220px !important;

    padding:22px !important;

    border-radius:18px !important;
}

#booking .slots-placeholder{
    padding:65px 15px !important;

    font-size:14px !important;
}

#booking .slots-group{
    margin-bottom:18px !important;
}

#booking .slots-group h3{
    font-size:18px !important;

    margin-bottom:9px !important;

    padding-bottom:8px !important;
}

#booking .phase2-slot-list{
    grid-template-columns:
        repeat(
            auto-fill,
            minmax(150px,1fr)
        ) !important;

    gap:7px !important;
}

#booking .phase2-slot{
    min-height:52px !important;

    padding:7px 10px !important;

    border-radius:9px !important;
}

#booking .slot-lang-flag .lang-flag-circle{
    --flag-size:18px !important;
}

#booking .slot-main strong{
    font-size:13px !important;
}

#booking .slot-main span{
    font-size:10px !important;
}


/* ------------------------------------------------------------
   MODAL DE RESERVA
   ------------------------------------------------------------ */

#bookingModal .modal-content{
    max-width:680px !important;

    padding:26px !important;

    border-radius:16px !important;
}

#bookingModal .modal-content h2{
    font-size:23px !important;

    margin-bottom:17px !important;
}

#bookingModal .modal-close{
    width:31px !important;
    height:31px !important;

    top:12px !important;
    right:12px !important;

    font-size:20px !important;
}

#bookingModal .booking-summary{
    padding:14px !important;

    margin-bottom:19px !important;

    border-radius:10px !important;
}

#bookingModal .booking-summary-tour{
    font-size:15px !important;
}

#bookingModal .booking-summary-meta{
    font-size:11px !important;

    line-height:1.5 !important;
}

#bookingModal .form-row{
    gap:11px !important;

    margin-bottom:11px !important;
}

#bookingModal .form-group{
    gap:4px !important;
}

#bookingModal .form-group label{
    font-size:11px !important;
}

#bookingModal .form-group input,
#bookingModal .form-group select,
#bookingModal .form-group textarea{
    min-height:40px !important;

    padding:7px 10px !important;

    font-size:12px !important;

    border-radius:8px !important;
}

#bookingModal .form-actions{
    padding-top:15px !important;

    margin-top:17px !important;
}

#bookingModal .form-actions .btn{
    min-height:38px !important;

    padding:7px 12px !important;

    font-size:12px !important;

    border-radius:8px !important;
}


/* ------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------ */

@media(max-width:1100px){

    #booking .booking-wrapper{
        grid-template-columns:
            minmax(390px,440px)
            minmax(0,1fr) !important;
    }

    .phase2-points{
        grid-template-columns:
            repeat(2,minmax(0,1fr)) !important;
    }
}


@media(max-width:900px){

    #booking .booking-wrapper{
        grid-template-columns:1fr !important;
    }

    #booking .slots-container{
        min-height:180px !important;
    }
}


@media(max-width:650px){

    .phase2-tour{
        grid-template-columns:1fr !important;
    }

    .phase2-tour-image{
        min-height:170px !important;
    }

    .phase2-tour-main{
        padding:17px !important;
    }

    .phase2-tour-main h3{
        font-size:23px !important;
    }

    .phase2-points{
        grid-template-columns:1fr !important;
    }

    #booking .calendar-nav{
        grid-template-columns:
            82px
            minmax(0,1fr)
            82px !important;
    }

    #booking .cal-month-label{
        font-size:15px !important;
    }

    #booking .cal-day{
        min-height:45px !important;
    }

    #bookingModal .modal-content{
        padding:20px 15px !important;
    }
}


/* ============================================================
   ROUTE STOPS — COMPACT SMALLER
   Números más pequeños y rectángulos menos altos
   ============================================================ */

.phase2-points{
    gap:6px 8px !important;
}

.phase2-point{
    min-height:34px !important;
    padding:5px 10px !important;
    gap:8px !important;
    border-radius:8px !important;

    font-size:11px !important;
    line-height:1.2 !important;
}

.phase2-point-number{
    width:18px !important;
    height:18px !important;
    flex:0 0 18px !important;

    font-size:9px !important;
    font-weight:700 !important;
}

.phase2-point span,
.phase2-point div,
.phase2-point p{
    font-size:11px !important;
    line-height:1.2 !important;
    margin:0 !important;
}

/* por si el texto del nombre está en un contenedor específico */
.phase2-point-label,
.phase2-point-name{
    font-size:11px !important;
    line-height:1.2 !important;
}

/* móvil */
@media (max-width: 768px){
    .phase2-point{
        min-height:32px !important;
        padding:5px 9px !important;
        font-size:10.5px !important;
    }

    .phase2-point-number{
        width:17px !important;
        height:17px !important;
        flex:0 0 17px !important;
        font-size:8.5px !important;
    }
}


/* ============================================================
   BFT FINER SCALE v3
   Sitio más delicado + calendario preparado para 4 idiomas
   ============================================================ */


/* ------------------------------------------------------------
   ESCALA GENERAL
   ------------------------------------------------------------ */

body{
    font-size:13px !important;
    line-height:1.5 !important;
}

.section{
    padding:50px 0 !important;
}

.section-header{
    margin-bottom:26px !important;
}

.section-header h2{
    font-size:26px !important;
    line-height:1.08 !important;
}

.section-header p{
    font-size:12px !important;
    line-height:1.5 !important;
}


/* ------------------------------------------------------------
   HEADER
   ------------------------------------------------------------ */

#main-header .nav-links a{
    font-size:12px !important;
}

#main-header .lang-btn{
    font-size:11px !important;
}

#main-header .nav-cta{
    font-size:11px !important;
    padding:7px 12px !important;
}


/* ------------------------------------------------------------
   HERO
   ------------------------------------------------------------ */

#hero h1,
.hero-content h1{
    font-size:clamp(32px,4.5vw,50px) !important;
}

.hero-sub{
    font-size:14px !important;
    max-width:560px !important;
}

.badge{
    font-size:10px !important;
    padding:5px 10px !important;
}

.hero-btns .btn{
    font-size:11px !important;
    padding:9px 16px !important;
}


/* ------------------------------------------------------------
   EXPERIENCE
   ------------------------------------------------------------ */

.exp-text{
    max-width:720px !important;
}

.exp-text p{
    font-size:12px !important;
    line-height:1.65 !important;
}

.exp-card{
    padding:22px !important;
}

.exp-card h3{
    font-size:13px !important;
}

.exp-card p{
    font-size:10.5px !important;
    line-height:1.5 !important;
}


/* ------------------------------------------------------------
   TOURS
   ------------------------------------------------------------ */

.phase2-tour-main h3{
    font-size:23px !important;
}

.phase2-tour-description{
    font-size:12px !important;
    line-height:1.55 !important;
}

.phase2-tour-main{
    font-size:11.5px !important;
}

.phase2-duration,
.phase2-language{
    font-size:10.5px !important;
    min-height:29px !important;
    padding:4px 8px !important;
}

.phase2-language .lang-flag-circle{
    --flag-size:16px !important;
}

.phase2-tour .phase2-tour-actions .btn{
    font-size:10.5px !important;
    padding:6px 11px !important;
}

.phase2-tour-details summary{
    font-size:14px !important;
}


/* ------------------------------------------------------------
   RUTA
   ------------------------------------------------------------ */

.phase2-detail-content h4{
    font-size:14px !important;
}

.phase2-point{
    min-height:31px !important;
    padding:4px 8px !important;
    gap:7px !important;

    font-size:10px !important;
    line-height:1.15 !important;
}

.phase2-point-number{
    width:16px !important;
    height:16px !important;

    flex:0 0 16px !important;

    font-size:7.5px !important;
}

.phase2-point span{
    font-size:10px !important;
}

.phase2-endpoints{
    font-size:10.5px !important;
}


/* ------------------------------------------------------------
   CALENDARIO
   ------------------------------------------------------------ */

#booking .calendar-container{
    padding:15px !important;
}

#booking .calendar-nav{
    grid-template-columns:
        90px
        minmax(0,1fr)
        90px !important;

    gap:6px !important;
}

#booking .calendar-nav .btn,
#booking .calendar-nav button{
    min-height:32px !important;

    padding:5px 6px !important;

    font-size:9px !important;
}

#booking .cal-month-label{
    font-size:14px !important;
    line-height:1.05 !important;
}

#booking .cal-day-header{
    font-size:9px !important;
    padding:4px 0 !important;
}

#booking .calendar-grid{
    gap:3px !important;
}

#booking .cal-day{
    min-height:46px !important;

    padding:4px 2px !important;

    border-radius:7px !important;
}

#booking .cal-date-number{
    font-size:11px !important;
}


/* ------------------------------------------------------------
   1–4 BANDERAS POR DÍA
   ------------------------------------------------------------ */

#booking .cal-language-flags{
    display:flex !important;

    flex-wrap:wrap !important;

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

    width:23px !important;

    margin:3px auto 0 !important;

    gap:1px !important;

    line-height:1 !important;
}

#booking .cal-language-flag{
    display:flex !important;

    width:10px !important;
    height:10px !important;

    align-items:center !important;
    justify-content:center !important;
}

#booking .cal-language-flag .lang-flag-circle{
    --flag-size:9px !important;

    width:9px !important;
    height:9px !important;

    flex:0 0 9px !important;

    box-shadow:
        0 0 0 .5px rgba(0,0,0,.15) !important;
}


/*
   Resultado:
   1 bandera = centrada
   2 = una fila
   3 = 2 + 1
   4 = 2 x 2
*/


/* ------------------------------------------------------------
   HORARIOS
   ------------------------------------------------------------ */

#booking .slots-container{
    min-height:185px !important;
    padding:18px !important;
}

#booking .slots-placeholder{
    padding:52px 12px !important;
    font-size:12px !important;
}

#booking .slots-group h3{
    font-size:15px !important;
}

#booking .phase2-slot{
    min-height:43px !important;
    padding:6px 8px !important;
}

#booking .slot-lang-flag .lang-flag-circle{
    --flag-size:15px !important;
}

#booking .slot-main strong{
    font-size:11px !important;
}

#booking .slot-main span{
    font-size:9px !important;
}


/* ------------------------------------------------------------
   REVIEWS
   ------------------------------------------------------------ */

.reviews-rating-big .rating-number{
    font-size:42px !important;
}

.review-card{
    padding:18px !important;
}

.review-text{
    font-size:10.5px !important;
    line-height:1.55 !important;
}

.review-author,
.review-date{
    font-size:10px !important;
}


/* ------------------------------------------------------------
   FAQ
   ------------------------------------------------------------ */

.faq-list{
    max-width:760px !important;
}

.faq-item summary{
    padding:12px 16px !important;

    font-size:11px !important;
}

.faq-answer{
    padding:0 16px 13px !important;

    font-size:10.5px !important;
    line-height:1.55 !important;
}


/* ------------------------------------------------------------
   CTA / FOOTER
   ------------------------------------------------------------ */

.cta-section h2{
    font-size:25px !important;
}

.cta-section p{
    font-size:12px !important;
}

.footer{
    font-size:10.5px !important;
}

.footer-links a{
    font-size:10.5px !important;
}


/* ------------------------------------------------------------
   MODAL
   ------------------------------------------------------------ */

#bookingModal .modal-content{
    max-width:620px !important;
    padding:22px !important;
}

#bookingModal .modal-content h2{
    font-size:20px !important;
}

#bookingModal .booking-summary-tour{
    font-size:13px !important;
}

#bookingModal .booking-summary-meta{
    font-size:10px !important;
}

#bookingModal .form-group label{
    font-size:10px !important;
}

#bookingModal .form-group input,
#bookingModal .form-group select,
#bookingModal .form-group textarea{
    min-height:36px !important;

    padding:6px 8px !important;

    font-size:11px !important;
}

#bookingModal .form-actions .btn{
    min-height:34px !important;

    font-size:10.5px !important;
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media(max-width:650px){

    body{
        font-size:12.5px !important;
    }

    .section-header h2{
        font-size:23px !important;
    }

    #booking .cal-day{
        min-height:42px !important;
    }

    #booking .cal-language-flags{
        width:21px !important;
    }

    #booking .cal-language-flag{
        width:9px !important;
        height:9px !important;
    }

    #booking .cal-language-flag .lang-flag-circle{
        --flag-size:8px !important;
    }
}


/* ============================================================
   BFT BOOKING BALANCE v4
   Calendario ligeramente mayor + panel derecho más equilibrado
   ============================================================ */

#booking .booking-wrapper{
    grid-template-columns:
        minmax(500px,540px)
        minmax(420px,1fr) !important;

    gap:26px !important;
}


/* calendario un poco más grande */
#booking .calendar-container{
    padding:18px !important;
}

#booking .calendar-nav{
    grid-template-columns:
        98px
        minmax(0,1fr)
        98px !important;

    gap:8px !important;
}

#booking .calendar-nav .btn,
#booking .calendar-nav button{
    min-height:36px !important;
    font-size:9.5px !important;
}

#booking .cal-month-label{
    font-size:16px !important;
}

#booking .cal-day-header{
    font-size:9.5px !important;
}

#booking .cal-day{
    min-height:50px !important;
    padding:5px 2px !important;
}

#booking .cal-date-number{
    font-size:12px !important;
}


/* banderas algo más visibles */
#booking .cal-language-flags{
    width:27px !important;
    gap:2px !important;
}

#booking .cal-language-flag{
    width:12px !important;
    height:12px !important;
}

#booking .cal-language-flag .lang-flag-circle{
    --flag-size:11px !important;

    width:11px !important;
    height:11px !important;

    flex:0 0 11px !important;
}


/* panel derecho menos vacío y mejor centrado */
#booking .slots-container{
    min-height:300px !important;

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

    padding:24px !important;
}

#booking .slots-placeholder{
    padding:0 !important;
    max-width:420px;

    margin:auto !important;

    font-size:12px !important;
    line-height:1.5 !important;

    text-align:center;
}


/* cuando ya hay horarios, dejar de centrar */
#booking .slots-container:has(.slots-group){
    justify-content:flex-start !important;
}


/* horarios un poco más cómodos */
#booking .phase2-slot-list{
    grid-template-columns:
        repeat(
            auto-fill,
            minmax(160px,1fr)
        ) !important;
}

#booking .phase2-slot{
    min-height:46px !important;
}


/* responsive */
@media(max-width:1050px){

    #booking .booking-wrapper{
        grid-template-columns:
            minmax(460px,500px)
            minmax(360px,1fr) !important;
    }
}

@media(max-width:900px){

    #booking .booking-wrapper{
        grid-template-columns:1fr !important;
    }

    #booking .slots-container{
        min-height:180px !important;
    }
}


/* BFT FRONT COMPACT BLACK START */

/* ---------- booking general ---------- */
#booking{
    --book-black:#111111;
    --book-black-2:#1b1b1b;
    --book-border:#d5cfc7;
    --book-soft:#f4f2ee;
    --book-text:#222222;
    --book-muted:#7a746c;
}

#booking .booking-wrapper{
    grid-template-columns:minmax(440px,520px) minmax(380px,1fr) !important;
    gap:24px !important;
    align-items:start !important;
}

#booking .calendar-container,
#booking .slots-container{
    border-radius:30px !important;
    padding:20px 22px !important;
}

/* ---------- título superior ---------- */
#booking .booking-heading,
#booking .booking-subtitle,
#booking > .container > p,
#booking > p{
    text-align:center !important;
}

/* ---------- navegación del calendario ---------- */
#booking .calendar-nav{
    display:grid !important;
    grid-template-columns:120px 1fr 120px !important;
    align-items:center !important;
    gap:14px !important;
    margin-bottom:16px !important;
}

#booking .calendar-nav .btn,
#booking .calendar-nav button{
    min-height:42px !important;
    padding:0 14px !important;
    font-size:12px !important;
    font-weight:700 !important;
    border-radius:14px !important;
}

#booking .cal-month-label,
#booking .calendar-month-title,
#booking .calendar-title{
    text-align:center !important;
    justify-self:center !important;
    align-self:center !important;
    font-size:17px !important;
    line-height:1.15 !important;
    font-weight:800 !important;
    margin:0 auto !important;
}

/* ---------- calendario más compacto ---------- */
#booking .calendar-grid{
    gap:8px !important;
}

#booking .cal-day-header{
    font-size:11px !important;
    font-weight:700 !important;
    color:var(--book-black) !important;
}

#booking .cal-day,
#booking .calendar-day{
    min-height:74px !important;
    padding:6px 4px !important;
    border-radius:14px !important;
    border:2px solid #e8b9bf !important;
}

#booking .cal-day.is-empty,
#booking .calendar-day.is-empty{
    border-color:transparent !important;
}

#booking .cal-date-number,
#booking .calendar-day-number{
    font-size:13px !important;
    font-weight:800 !important;
    line-height:1 !important;
}

/* ---------- activo en negro, no rojo ---------- */
#booking .cal-day.is-selected,
#booking .cal-day.active,
#booking .cal-day.selected,
#booking .calendar-day.is-selected,
#booking .calendar-day.active,
#booking .calendar-day.selected{
    background:var(--book-black) !important;
    border-color:var(--book-black) !important;
    color:#ffffff !important;
}

#booking .cal-day.is-selected *,
#booking .cal-day.active *,
#booking .cal-day.selected *,
#booking .calendar-day.is-selected *,
#booking .calendar-day.active *,
#booking .calendar-day.selected *{
    color:#ffffff !important;
}

/* hover más elegante */
#booking .cal-day:hover,
#booking .calendar-day:hover{
    border-color:var(--book-black) !important;
}

/* ---------- banderas del día: hasta 4 caben ---------- */
#booking .cal-language-flags,
#booking .calendar-day-flags{
    display:flex !important;
    flex-wrap:wrap !important;
    justify-content:center !important;
    align-items:center !important;
    gap:2px !important;
    max-width:34px !important;
    margin:4px auto 0 auto !important;
}

#booking .cal-language-flag,
#booking .calendar-day-flag{
    width:10px !important;
    height:10px !important;
    min-width:10px !important;
    min-height:10px !important;
    flex:0 0 10px !important;
}

#booking .cal-language-flag .lang-flag-circle,
#booking .calendar-day-flag .lang-flag-circle{
    --flag-size:10px !important;
    width:10px !important;
    height:10px !important;
    min-width:10px !important;
    min-height:10px !important;
    flex:0 0 10px !important;
}

/* ---------- panel derecho ---------- */
#booking .slots-container{
    min-height:300px !important;
}

#booking .slots-placeholder{
    max-width:420px !important;
    margin:0 auto !important;
    text-align:center !important;
    font-size:12px !important;
    color:var(--book-muted) !important;
}

/* título del tour */
#booking .slots-group-title,
#booking .tour-slots-title,
#booking .phase2-tour-title{
    font-size:15px !important;
    margin-bottom:12px !important;
}

/* grilla de horarios */
#booking .phase2-slot-list,
#booking .slots-grid{
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)) !important;
    gap:12px !important;
}

/* tarjeta de horario */
#booking .phase2-slot,
#booking .slot-card,
#booking .tour-slot{
    min-height:52px !important;
    padding:10px 12px !important;
    border-radius:16px !important;
    border:2px solid var(--book-border) !important;
    background:#ffffff !important;
    color:var(--book-text) !important;
}

#booking .phase2-slot:hover,
#booking .slot-card:hover,
#booking .tour-slot:hover{
    border-color:var(--book-black) !important;
}

#booking .phase2-slot.is-selected,
#booking .phase2-slot.active,
#booking .phase2-slot.selected,
#booking .slot-card.is-selected,
#booking .slot-card.active,
#booking .slot-card.selected,
#booking .tour-slot.is-selected,
#booking .tour-slot.active,
#booking .tour-slot.selected{
    background:var(--book-black) !important;
    border-color:var(--book-black) !important;
    color:#ffffff !important;
}

#booking .phase2-slot.is-selected *,
#booking .phase2-slot.active *,
#booking .phase2-slot.selected *,
#booking .slot-card.is-selected *,
#booking .slot-card.active *,
#booking .slot-card.selected *,
#booking .tour-slot.is-selected *,
#booking .tour-slot.active *,
#booking .tour-slot.selected *{
    color:#ffffff !important;
}

#booking .phase2-slot-time,
#booking .slot-time{
    font-size:12px !important;
    font-weight:800 !important;
}

#booking .phase2-slot-lang,
#booking .slot-lang{
    font-size:11px !important;
    font-weight:600 !important;
}

/* ---------- modal ---------- */
.booking-modal,
#bookingModal,
.modal-booking{
    color:var(--book-text) !important;
}

.booking-modal .modal-content,
#bookingModal .modal-content,
.modal-booking .modal-content{
    background:#f8f6f2 !important;
    color:var(--book-text) !important;
    border-radius:24px !important;
}

.booking-modal .modal-title,
#bookingModal .modal-title,
.modal-booking .modal-title{
    font-size:18px !important;
    margin-bottom:16px !important;
}

.booking-modal .booking-summary,
.booking-modal .selected-tour-card,
#bookingModal .booking-summary,
#bookingModal .selected-tour-card{
    background:#f1eeea !important;
    border:2px solid var(--book-border) !important;
    border-radius:18px !important;
}

.booking-modal .booking-summary-date,
.booking-modal .selected-tour-date,
#bookingModal .booking-summary-date,
#bookingModal .selected-tour-date{
    text-align:center !important;
    display:block !important;
    width:100% !important;
}

.booking-modal label,
#bookingModal label{
    font-size:11px !important;
    font-weight:700 !important;
    color:var(--book-text) !important;
}

.booking-modal input,
.booking-modal select,
.booking-modal textarea,
#bookingModal input,
#bookingModal select,
#bookingModal textarea{
    min-height:46px !important;
    border-radius:14px !important;
    border:2px solid #cfc8bf !important;
    background:#ffffff !important;
    color:var(--book-text) !important;
    font-size:12px !important;
}

.booking-modal .btn,
#bookingModal .btn,
.booking-modal button[type="submit"],
#bookingModal button[type="submit"]{
    background:var(--book-black) !important;
    border-color:var(--book-black) !important;
    color:#ffffff !important;
    border-radius:14px !important;
}

.booking-modal .btn:hover,
#bookingModal .btn:hover,
.booking-modal button[type="submit"]:hover,
#bookingModal button[type="submit"]:hover{
    background:var(--book-black-2) !important;
    border-color:var(--book-black-2) !important;
}

/* ---------- responsive ---------- */
@media (max-width:1100px){
    #booking .booking-wrapper{
        grid-template-columns:minmax(400px,500px) minmax(320px,1fr) !important;
        gap:18px !important;
    }
}

@media (max-width:900px){
    #booking .booking-wrapper{
        grid-template-columns:1fr !important;
    }

    #booking .slots-container{
        min-height:180px !important;
    }

    #booking .calendar-nav{
        grid-template-columns:110px 1fr 110px !important;
    }
}

/* BFT FRONT COMPACT BLACK END */


/* BFT CALENDAR SMALLER START */

#booking .booking-wrapper{
    grid-template-columns:minmax(360px,460px) minmax(360px,1fr) !important;
    gap:20px !important;
    align-items:start !important;
}

#booking .calendar-container{
    max-width:460px !important;
    padding:16px 16px 18px !important;
    border-radius:24px !important;
}

#booking .slots-container{
    padding:18px 20px !important;
    border-radius:24px !important;
    min-height:260px !important;
}

#booking .calendar-nav{
    grid-template-columns:96px 1fr 96px !important;
    gap:10px !important;
    margin-bottom:10px !important;
}

#booking .calendar-nav .btn,
#booking .calendar-nav button{
    min-height:38px !important;
    height:38px !important;
    padding:0 10px !important;
    font-size:11px !important;
    border-radius:12px !important;
}

#booking .cal-month-label,
#booking .calendar-month-title,
#booking .calendar-title{
    font-size:14px !important;
    line-height:1.1 !important;
    font-weight:800 !important;
    text-align:center !important;
    margin:0 auto !important;
}

#booking .calendar-grid{
    gap:6px !important;
}

#booking .cal-day-header{
    font-size:10px !important;
    font-weight:700 !important;
    margin-bottom:2px !important;
}

#booking .cal-day,
#booking .calendar-day{
    min-height:58px !important;
    height:58px !important;
    padding:4px 3px !important;
    border-radius:12px !important;
    border-width:2px !important;
}

#booking .cal-day.is-empty,
#booking .calendar-day.is-empty{
    min-height:58px !important;
    height:58px !important;
    border-color:transparent !important;
}

#booking .cal-date-number,
#booking .calendar-day-number{
    font-size:11px !important;
    line-height:1 !important;
    font-weight:800 !important;
    margin-bottom:2px !important;
}

#booking .cal-language-flags,
#booking .calendar-day-flags{
    gap:1px !important;
    max-width:28px !important;
    margin-top:2px !important;
}

#booking .cal-language-flag,
#booking .calendar-day-flag{
    width:9px !important;
    height:9px !important;
    min-width:9px !important;
    min-height:9px !important;
    flex:0 0 9px !important;
}

#booking .cal-language-flag .lang-flag-circle,
#booking .calendar-day-flag .lang-flag-circle{
    --flag-size:9px !important;
    width:9px !important;
    height:9px !important;
    min-width:9px !important;
    min-height:9px !important;
    flex:0 0 9px !important;
}

/* panel derecho */
#booking .slots-placeholder{
    font-size:11px !important;
}

#booking .slots-group-title,
#booking .tour-slots-title,
#booking .phase2-tour-title{
    font-size:14px !important;
    margin-bottom:10px !important;
}

#booking .phase2-slot-list,
#booking .slots-grid{
    grid-template-columns:repeat(auto-fit, minmax(145px, 1fr)) !important;
    gap:10px !important;
}

#booking .phase2-slot,
#booking .slot-card,
#booking .tour-slot{
    min-height:48px !important;
    padding:8px 10px !important;
    border-radius:14px !important;
}

#booking .phase2-slot-time,
#booking .slot-time{
    font-size:11px !important;
    font-weight:800 !important;
}

#booking .phase2-slot-lang,
#booking .slot-lang{
    font-size:10px !important;
    font-weight:600 !important;
}

/* responsive */
@media (max-width:1100px){
    #booking .booking-wrapper{
        grid-template-columns:1fr !important;
    }

    #booking .calendar-container{
        max-width:100% !important;
    }
}

/* BFT CALENDAR SMALLER END */


/* ============================================================
   BFT GREEN / NO-RED / HIDE-BLOCKED FIX
   Hover verde tipo bandera húngara
   ============================================================ */

:root{
    --bft-hu-green:#436F4D;
    --bft-hu-green-soft:rgba(67,111,77,.14);
    --bft-neutral-border:#d2cbc1;
    --bft-neutral-border-2:#e3ddd4;
    --bft-black:#111111;
}

/* ---------- calendario mas compacto ---------- */
#booking .booking-wrapper{
    grid-template-columns:minmax(350px,430px) minmax(360px,1fr) !important;
    gap:18px !important;
    align-items:start !important;
}

#booking .calendar-container{
    max-width:430px !important;
    padding:16px 16px 18px !important;
    border-radius:24px !important;
}

#booking .slots-container{
    border-radius:24px !important;
    padding:18px 18px 20px !important;
    min-height:240px !important;
}

#booking .calendar-nav{
    grid-template-columns:86px 1fr 86px !important;
    gap:10px !important;
    margin-bottom:10px !important;
}

#booking .calendar-nav .btn,
#booking .calendar-nav button{
    min-height:36px !important;
    height:36px !important;
    padding:0 8px !important;
    border-radius:12px !important;
    font-size:11px !important;
    border:2px solid #b7afa3 !important;
    color:#111 !important;
    background:#fff !important;
    box-shadow:none !important;
}

#booking .calendar-nav .btn:hover,
#booking .calendar-nav button:hover{
    border-color:var(--bft-hu-green) !important;
    color:var(--bft-hu-green) !important;
    box-shadow:0 0 0 3px var(--bft-hu-green-soft) !important;
}

#booking .cal-month-label,
#booking .calendar-month-title,
#booking .calendar-title{
    font-size:14px !important;
    line-height:1.1 !important;
    font-weight:800 !important;
    text-align:center !important;
    margin:0 auto !important;
}

#booking .calendar-grid{
    gap:6px !important;
}

#booking .cal-day-header{
    font-size:10px !important;
    font-weight:700 !important;
    margin-bottom:2px !important;
    color:#111 !important;
}

#booking .cal-day,
#booking .calendar-day{
    min-height:48px !important;
    height:48px !important;
    padding:4px 3px !important;
    border-radius:12px !important;
    border:2px solid var(--bft-neutral-border-2) !important;
    background:#fff !important;
    box-shadow:none !important;
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

#booking .cal-day:hover,
#booking .calendar-day:hover{
    border-color:var(--bft-hu-green) !important;
    box-shadow:0 0 0 3px var(--bft-hu-green-soft) !important;
    transform:translateY(-1px);
}

#booking .cal-day.is-selected,
#booking .calendar-day.is-selected,
#booking .cal-day.active,
#booking .calendar-day.active,
#booking .cal-day.selected,
#booking .calendar-day.selected,
#booking .cal-day[aria-selected="true"],
#booking .calendar-day[aria-selected="true"]{
    background:var(--bft-black) !important;
    border-color:var(--bft-black) !important;
    box-shadow:none !important;
}

#booking .cal-day.is-selected *,
#booking .calendar-day.is-selected *,
#booking .cal-day.active *,
#booking .calendar-day.active *,
#booking .cal-day.selected *,
#booking .calendar-day.selected *,
#booking .cal-day[aria-selected="true"] *,
#booking .calendar-day[aria-selected="true"] *{
    color:#fff !important;
}

#booking .cal-date-number,
#booking .calendar-day-number{
    font-size:11px !important;
    line-height:1 !important;
    font-weight:800 !important;
    margin-bottom:2px !important;
}

#booking .cal-language-flags,
#booking .calendar-day-flags{
    gap:1px !important;
    margin-top:2px !important;
}

#booking .cal-language-flag,
#booking .calendar-day-flag{
    width:10px !important;
    height:10px !important;
    min-width:10px !important;
    min-height:10px !important;
    flex:0 0 10px !important;
}

#booking .cal-language-flag .lang-flag-circle,
#booking .calendar-day-flag .lang-flag-circle{
    width:10px !important;
    height:10px !important;
    min-width:10px !important;
    min-height:10px !important;
    flex:0 0 10px !important;
}

/* ---------- slots del panel derecho ---------- */
#booking .slots-placeholder{
    font-size:11px !important;
    text-align:center !important;
    color:#6d6a66 !important;
}

#booking .slots-placeholder,
#booking .slots-empty-message{
    text-align:center !important;
}

#booking .slots-group-title,
#booking .tour-slots-title,
#booking .phase2-tour-title{
    font-size:14px !important;
    margin-bottom:10px !important;
    color:#111 !important;
}

#booking .phase2-slot-list,
#booking .slots-grid{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;
    gap:10px !important;
}

#booking .phase2-slot,
#booking .slot-card,
#booking .tour-slot,
#booking .booking-slot,
#booking .slot-option,
#booking .day-slot-card,
#booking [data-slot-card]{
    min-height:46px !important;
    padding:8px 10px !important;
    border-radius:14px !important;
    border:2px solid var(--bft-neutral-border) !important;
    background:#fff !important;
    box-shadow:none !important;
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

#booking .phase2-slot:hover,
#booking .slot-card:hover,
#booking .tour-slot:hover,
#booking .booking-slot:hover,
#booking .slot-option:hover,
#booking .day-slot-card:hover,
#booking [data-slot-card]:hover{
    border-color:var(--bft-hu-green) !important;
    box-shadow:0 0 0 3px var(--bft-hu-green-soft) !important;
    transform:translateY(-1px);
}

#booking .phase2-slot.active,
#booking .slot-card.active,
#booking .tour-slot.active,
#booking .booking-slot.active,
#booking .slot-option.active,
#booking .day-slot-card.active,
#booking .phase2-slot.selected,
#booking .slot-card.selected,
#booking .tour-slot.selected,
#booking .booking-slot.selected,
#booking .slot-option.selected,
#booking .day-slot-card.selected,
#booking .phase2-slot.is-selected,
#booking .slot-card.is-selected,
#booking .tour-slot.is-selected,
#booking .booking-slot.is-selected,
#booking .slot-option.is-selected,
#booking .day-slot-card.is-selected,
#booking .phase2-slot[aria-selected="true"],
#booking .slot-card[aria-selected="true"],
#booking .tour-slot[aria-selected="true"],
#booking .booking-slot[aria-selected="true"],
#booking .slot-option[aria-selected="true"],
#booking .day-slot-card[aria-selected="true"]{
    background:var(--bft-black) !important;
    border-color:var(--bft-black) !important;
    box-shadow:none !important;
}

#booking .phase2-slot.active *,
#booking .slot-card.active *,
#booking .tour-slot.active *,
#booking .booking-slot.active *,
#booking .slot-option.active *,
#booking .day-slot-card.active *,
#booking .phase2-slot.selected *,
#booking .slot-card.selected *,
#booking .tour-slot.selected *,
#booking .booking-slot.selected *,
#booking .slot-option.selected *,
#booking .day-slot-card.selected *,
#booking .phase2-slot.is-selected *,
#booking .slot-card.is-selected *,
#booking .tour-slot.is-selected *,
#booking .booking-slot.is-selected *,
#booking .slot-option.is-selected *,
#booking .day-slot-card.is-selected *,
#booking .phase2-slot[aria-selected="true"] *,
#booking .slot-card[aria-selected="true"] *,
#booking .tour-slot[aria-selected="true"] *,
#booking .booking-slot[aria-selected="true"] *,
#booking .slot-option[aria-selected="true"] *,
#booking .day-slot-card[aria-selected="true"] *{
    color:#fff !important;
}

#booking .phase2-slot-time,
#booking .slot-time{
    font-size:11px !important;
    font-weight:800 !important;
}

#booking .phase2-slot-lang,
#booking .slot-lang{
    font-size:10px !important;
    font-weight:600 !important;
}

/* ---------- ocultar visualmente cualquier slot bloqueado ---------- */
#booking .phase2-slot.is-blocked,
#booking .slot-card.is-blocked,
#booking .tour-slot.is-blocked,
#booking .booking-slot.is-blocked,
#booking .slot-option.is-blocked,
#booking .day-slot-card.is-blocked,
#booking .phase2-slot.blocked,
#booking .slot-card.blocked,
#booking .tour-slot.blocked,
#booking .booking-slot.blocked,
#booking .slot-option.blocked,
#booking .day-slot-card.blocked,
#booking [data-hidden-blocked="1"]{
    display:none !important;
}

/* ---------- quita rojo residual ---------- */
#booking *{
    box-shadow:none;
}

#booking .cal-day,
#booking .calendar-day,
#booking .phase2-slot,
#booking .slot-card,
#booking .tour-slot,
#booking .booking-slot,
#booking .slot-option,
#booking .day-slot-card{
    outline:none !important;
}

@media (max-width:1100px){
    #booking .booking-wrapper{
        grid-template-columns:1fr !important;
    }

    #booking .calendar-container{
        max-width:100% !important;
    }
}

