
:root{--b-navy:#02172f;--b-blue:#075eae;--b-cyan:#24b7f2;--b-red:#e31b2f;--b-text:#10233f;--b-muted:#61748b;--b-border:#dbe7f2;--b-bg:#f4f9fd;--b-width:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--b-text);background:#fff;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}.booking-main{overflow:clip}.booking-wrap{width:min(calc(100% - 64px),var(--b-width));margin-inline:auto}.booking-section{padding:82px 0;scroll-margin-top:110px}.booking-section--soft{background:var(--b-bg)}.booking-section--blue{background:linear-gradient(125deg,#edf7ff,#fff)}.booking-eyebrow{display:inline-flex;align-items:center;gap:11px;margin:0 0 16px;color:var(--b-blue);font-size:.77rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.booking-eyebrow:before{content:"";width:27px;height:3px;background:var(--b-red)}.booking-title{max-width:900px;margin:0 0 19px;color:var(--b-navy);font-size:clamp(2rem,3.2vw,3.35rem);font-weight:850;letter-spacing:-.045em;line-height:1.14}.booking-lead{max-width:780px;margin:0 0 26px;color:var(--b-muted);font-size:1.06rem;line-height:1.82}.booking-prose{color:var(--b-muted);line-height:1.82;font-size:1rem}.booking-prose p{margin:0 0 16px}.booking-prose p:last-child{margin-bottom:0}.booking-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 23px;border-radius:7px;background:var(--b-blue);color:#fff;text-decoration:none;font-size:.9rem;font-weight:750;transition:background .2s,transform .2s}.booking-button:hover{background:#0b83ce;transform:translateY(-2px)}.booking-button--outline{background:transparent;border:1px solid rgba(255,255,255,.7)}.booking-button--outline:hover{background:rgba(255,255,255,.14)}

/* =========================================================
   HERO — BASE (mobile and default)
========================================================= */

.booking-hero{
    position:relative;
    isolation:isolate;
    display:flex;
    align-items:center;
    min-height:620px;
    color:#fff;
    background-color:var(--b-navy);
    background-image:
        linear-gradient(90deg,
            rgba(2,18,43,.98) 0%,
            rgba(2,23,47,.91) 34%,
            rgba(2,31,70,.47) 65%,
            rgba(2,31,70,.09) 100%),
        url('/img/services/booking/hero.jpg');
    background-size:cover,cover;
    background-position:center center,center center;
    background-repeat:no-repeat,no-repeat;
}

/* =========================================================
   DESKTOP HERO — PRESERVE COMPLETE IMAGE
   (image scales to container width, no horizontal crop)
========================================================= */

@media (min-width:751px){

    .booking-hero{
        min-height:620px;

        background-size:
            cover,
            100% auto;

        background-position:
            center center,
            center top;

        background-repeat:
            no-repeat,
            no-repeat;
    }

}

.booking-hero:after{position:absolute;bottom:0;left:0;right:0;height:5px;content:"";background:linear-gradient(90deg,var(--b-red) 0 18%,var(--b-cyan) 18%)}
.booking-hero__inner{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:44px;align-items:center;padding:62px 0}
.booking-breadcrumb{margin-bottom:24px;color:#bed5e8;font-size:.8rem}
.booking-breadcrumb a{color:#fff;text-decoration:none}
.booking-hero .booking-eyebrow{color:#8ddfff}
.booking-hero h1{max-width:750px;margin:0;font-size:clamp(2.35rem,3.6vw,4rem);line-height:1.08;letter-spacing:-.045em;text-transform:uppercase}
.booking-hero h1 span{display:block;color:#36c5ff}
.booking-hero__text{max-width:640px;margin:23px 0 0;color:#e3eef8;font-size:1.04rem;line-height:1.78}
.booking-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px}
.booking-directory{padding:22px 24px;border-left:1px solid var(--b-red);border-radius:12px;background:rgba(2,23,47,.74);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.booking-directory__title{margin:0 0 12px;color:#8ddfff;font-size:.78rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.booking-directory a{display:flex;align-items:center;gap:11px;min-height:32px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.13);color:#fff;font-size:.8rem;font-weight:700;line-height:1.35;text-decoration:none}
.booking-directory a:before{content:"";width:11px;height:3px;flex:0 0 11px;background:var(--b-red);border-radius:2px}
.booking-directory a:last-child{border-bottom:0}
.booking-directory a:hover{color:#8ddfff}

.booking-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:58px;align-items:center}
.booking-split--top{align-items:start}
.booking-narrow{max-width:830px}
.booking-statement{margin-top:24px;padding:21px 25px;border-left:4px solid var(--b-red);background:#edf6ff;color:var(--b-navy);font-size:1.08rem;font-weight:800;line-height:1.55}
.booking-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:27px}
.booking-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.booking-card{padding:25px;border:1px solid var(--b-border);border-top:3px solid var(--b-blue);border-radius:10px;background:#fff;min-width:0}
.booking-card:nth-child(3n+2){border-top-color:var(--b-red)}
.booking-card:nth-child(3n){border-top-color:var(--b-cyan)}
.booking-card__icon{display:grid;place-items:center;width:45px;height:45px;margin-bottom:15px;border-radius:10px;background:#e8f5ff;color:var(--b-blue);font-size:1.25rem;font-weight:850}
.booking-card h3{margin:0 0 11px;color:var(--b-navy);font-size:1.15rem;line-height:1.4}
.booking-card p{margin:0;color:var(--b-muted);line-height:1.74;font-size:.93rem}
.booking-card ul{padding-left:19px;margin:11px 0 0;color:var(--b-muted);line-height:1.75;font-size:.92rem}
.booking-card li{margin-bottom:6px}
.booking-mini{margin:0 0 10px;color:var(--b-red);font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.booking-list{display:grid;gap:12px;margin:20px 0 0;padding:0;list-style:none}
.booking-list li{position:relative;padding:13px 17px 13px 34px;border:1px solid var(--b-border);border-radius:8px;background:#fff;color:var(--b-text);font-size:.94rem;line-height:1.6}
.booking-list li:before{position:absolute;left:15px;top:21px;content:"";width:8px;height:8px;border-radius:50%;background:var(--b-blue)}
.booking-section-head{max-width:850px;margin-bottom:28px}
.booking-note{margin-top:23px;padding:20px 23px;border-left:4px solid var(--b-red);border-radius:0 8px 8px 0;background:#edf6ff;color:var(--b-navy);font-size:.96rem;font-weight:700;line-height:1.7}
.booking-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:28px}
.booking-flow div{padding:20px 14px;border:1px solid var(--b-border);border-top:3px solid var(--b-blue);border-radius:9px;background:#fff;color:var(--b-navy);font-size:.88rem;font-weight:750;text-align:center}
.booking-flow small{display:block;margin-bottom:8px;color:var(--b-red);letter-spacing:.1em}
.booking-connected{display:grid;grid-template-columns:1fr;gap:20px;max-width:930px;margin:30px auto 0}
.booking-hub{padding:25px;border-radius:12px;background:linear-gradient(125deg,#052e59,#075eae);color:#fff;text-align:center}
.booking-hub strong{display:block;font-size:1.2rem}
.booking-hub span{display:block;margin-top:8px;color:#d5edff;font-size:.9rem}
.booking-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.booking-role{padding:24px 20px;border:1px solid var(--b-border);border-top:3px solid var(--b-blue);border-radius:10px;background:#fff;text-align:center}
.booking-role h3{margin:0 0 9px;color:var(--b-navy)}
.booking-role p{margin:0;color:var(--b-muted);font-size:.91rem;line-height:1.7}
.booking-connector{height:24px;width:2px;margin:-4px auto;background:var(--b-blue)}
.booking-visual{display:block;width:100%;height:auto;object-fit:contain;border-radius:14px;box-shadow:0 18px 44px rgba(2,23,47,.12)}
.booking-visual--full{max-width:1100px;margin:28px auto 0}
.booking-picture{display:block;min-width:0}
.booking-picture img{width:100%}
.booking-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.booking-tags span{padding:10px 14px;border:1px solid #cfe3f4;border-radius:7px;background:#fff;color:var(--b-blue);font-size:.84rem;font-weight:750}

.booking-calendar-feature{position:relative;min-height:570px;display:flex;align-items:center;background-color:#edf7ff;background-image:url('/img/services/booking/calendar.jpg');background-repeat:no-repeat;background-size:cover;background-position:center}
.booking-calendar-feature:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,251,255,.94) 0%,rgba(247,251,255,.84) 25%,rgba(247,251,255,.08) 58%,transparent 100%)}
.booking-calendar-feature__inner{position:relative;z-index:1;padding:68px 0}
.booking-calendar-copy{max-width:490px}
.booking-calendar-copy .booking-title{font-size:clamp(1.9rem,2.8vw,3rem)}
.booking-calendar-copy p:not(.booking-eyebrow){max-width:455px;color:#284360;line-height:1.8}
.booking-calendar-copy .booking-button{margin-top:15px}
.booking-calendar-caption{margin-top:12px;font-size:.83rem;color:var(--b-muted)}
.booking-cta{padding:85px 0;background:linear-gradient(120deg,#02172f,#06477d);color:#fff}
.booking-cta__inner{display:flex;justify-content:space-between;align-items:center;gap:44px}
.booking-cta h2{max-width:780px;margin:0 0 16px;font-size:clamp(2rem,3.2vw,3.5rem);letter-spacing:-.04em}
.booking-cta p{max-width:770px;color:#cbddec;line-height:1.8}
.booking-cta .booking-eyebrow{color:#8ddfff}
.booking-cta__actions{flex-shrink:0}
.booking-anchor{scroll-margin-top:110px}

/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media(max-width:1050px){
    .booking-hero__inner{grid-template-columns:1fr;gap:25px}
    .booking-directory nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
    .booking-split{gap:32px}
    .booking-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .booking-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media(max-width:750px){
    .booking-wrap{width:min(calc(100% - 36px),var(--b-width))}
    .booking-section{padding:62px 0}
    .booking-hero{
        min-height:unset;
        background-image:
            linear-gradient(0deg,
                rgba(2,18,43,.98) 0%,
                rgba(2,31,70,.88) 35%,
                rgba(2,31,70,.32) 77%,
                rgba(2,31,70,.13) 100%),
            url('/img/services/booking/hero-mobile.jpg');
        background-size:cover,cover;
        background-position:center center,center top;
    }
    .booking-hero__inner{padding:110px 0 40px}
    .booking-hero h1{font-size:clamp(2.1rem,7.3vw,3.15rem)}
    .booking-split{grid-template-columns:1fr}
    .booking-grid,.booking-grid--two{grid-template-columns:1fr}
    .booking-roles{grid-template-columns:1fr}
    .booking-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
    .booking-calendar-feature{
        min-height:850px;
        align-items:flex-start;
        background-image:url('/img/services/booking/calendar-mobile.jpg');
        background-size:cover;
        background-position:center center;
    }
    .booking-calendar-feature:before{background:linear-gradient(180deg,rgba(247,251,255,.98) 0%,rgba(247,251,255,.92) 32%,rgba(247,251,255,.25) 55%,transparent 77%)}
    .booking-calendar-feature__inner{padding:53px 0}
    .booking-calendar-copy{max-width:440px}
    .booking-cta__inner{flex-direction:column;align-items:flex-start}
    .booking-cta__actions{width:100%}
}

/* =========================================================
   RESPONSIVE — SMALL MOBILE
========================================================= */

@media(max-width:440px){
    .booking-directory nav{grid-template-columns:1fr}
    .booking-flow{grid-template-columns:1fr}
    .booking-hero__actions,.booking-cta__actions{width:100%}
    .booking-hero__actions .booking-button,.booking-cta__actions .booking-button{width:100%}
    .booking-calendar-feature{min-height:780px}
}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*:before,*:after{transition:none!important}
}

.booking-button:focus-visible,.booking-directory a:focus-visible{outline:3px solid #24b7f2;outline-offset:3px}
