.booking-intro {
    padding:32px;
    border:1px solid #d8e7f5;
    border-radius:8px;
    background:linear-gradient(125deg, #fff, #e9f4ff);
}

.booking-page .booking-story-illustrated {
    grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr);
    gap:0;
    align-items:stretch;
    background:linear-gradient(135deg, #fff, #fbfdff 68%, #edf5ff)
}

.booking-page .booking-story-illustrated:nth-of-type(even) {
    grid-template-columns:minmax(0, 1fr) minmax(0, 1.05fr)
}

.booking-story-illustrated .finance-copy {
    padding:36px
}

.booking-page .booking-story-illustrated .section-index {
    width:44px;
    height:44px;
    border-color:#cce0fb;
    border-radius:7px;
    background:#eaf3ff;
    color:#1768df;
    font-size:14px
}

.booking-page .booking-story-illustrated h2 {
    display:flex;
    align-items:center;
    min-height:44px;
    margin:-58px 0 22px 62px;
    font-size:clamp(24px, 2vw, 31px);
    line-height:1.13;
    letter-spacing:0;
    text-wrap:balance
}

.booking-page .booking-story-illustrated p,
.booking-page .booking-story-illustrated li {
    font-size:14px;
    line-height:1.6;
    color:#53647d
}

.booking-story-illustrated .finance-copy > :last-child {
    margin-bottom:0
}

.booking-page .booking-story-illustrated .booking-visual-photo {
    display:block;
    align-self:stretch;
    min-height:360px;
    margin:0;
    padding:0;
    border-radius:0;
    background:#edf5ff;
    -webkit-mask-image:linear-gradient(to right, transparent, #000 8%);
    mask-image:linear-gradient(to right, transparent, #000 8%)
}

.booking-page .booking-story-illustrated:nth-of-type(even) .booking-visual-photo {
    margin:0;
    -webkit-mask-image:linear-gradient(to left, transparent, #000 8%);
    mask-image:linear-gradient(to left, transparent, #000 8%)
}

.booking-page .booking-visual-photo::before {
    content:none
}

.booking-page .booking-visual-photo > img {
    position:absolute;
    z-index:0;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    max-height:none;
    aspect-ratio:auto;
    object-fit:cover;
    object-position:center;
    border-radius:0
}

@media (max-width:1100px) {
    .booking-story-illustrated .finance-copy { padding:28px }
}

@media (max-width:860px) {
    .booking-page .booking-story-illustrated,
    .booking-page .booking-story-illustrated:nth-of-type(even) {
        grid-template-columns:minmax(0, 1fr)
    }

    .booking-page .booking-story-illustrated .booking-visual-photo,
    .booking-page .booking-story-illustrated:nth-of-type(even) .booking-visual-photo {
        margin:0;
        min-height:0;
        border-radius:0;
        -webkit-mask-image:none;
        mask-image:none
    }

    .booking-page .booking-visual-photo > img {
        position:static;
        height:auto;
        border-radius:0
    }
}

@media (max-width:600px) {
    .booking-story-illustrated .finance-copy { padding:22px }
    .booking-page .booking-story-illustrated h2 { font-size:25px }
}

.booking-intro h1 {
    max-width:940px;
    margin:12px 0 20px;
    color:#102246;
    font-size:clamp(28px, 2.7vw, 43px);
    line-height:1.12;
    letter-spacing:-.04em;
}

.booking-page .booking-intro p { max-width:940px;font-size:16px;line-height:1.7 }
.booking-page .booking-intro .eyebrow { color:#1973e9;font-size:11px;letter-spacing:.12em }
.booking-page .booking-intro p:last-child { margin-bottom:0 }
.booking-page .booking-story { align-items:stretch }

.booking-visual {
    gap:18px;
    min-height:460px;
    padding:32px 26px 48px;
    overflow:hidden;
    background:radial-gradient(ellipse at 80% 15%, #fff 0, #e5f2ff 45%, #c9e2ff 100%);
}

.booking-visual::before { content:none }
.booking-visual figcaption { color:#58749a;background:transparent }
.booking-visual-heading > span { display:block;color:#1973e9;font-size:10px;font-weight:750;letter-spacing:.12em }
.booking-visual-heading h3 { margin:12px 0 8px;color:#15345e;font-size:clamp(24px, 2.3vw, 34px);line-height:1.12;letter-spacing:-.035em }
.booking-panel { min-width:0;padding:20px;border:1px solid #c5ddfb;border-radius:9px;background:#fffffff5;box-shadow:0 10px 28px #386ca917;color:#233f65 }
.booking-panel > b { display:block;margin-bottom:14px;font-size:15px }
.booking-panel small { display:block;color:#6882a1;font-size:11px;line-height:1.5 }
.booking-row { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e6eef8;font-size:12px;line-height:1.5 }
.booking-row:last-child { border-bottom:0 }
.booking-row > span { color:#6882a1 }
.booking-row strong { text-align:right }
.booking-note { padding:14px 16px;border:1px solid #afd2fa;border-radius:7px;background:#f4f9ff;color:#22578f;font-size:13px;line-height:1.5;text-align:center }
.booking-lifestyle { justify-content:flex-end;min-height:530px }
.booking-lifestyle > img { object-position:60% center }
.booking-lifestyle::before { content:'';background:linear-gradient(180deg, transparent 45%, #18375c70) }
.booking-lifestyle figcaption { color:#fff;background:#142f56b3 }
.booking-floating { width:100%;max-width:340px;align-self:center;margin-bottom:12px }
.booking-card-kicker { display:block;margin-bottom:10px;color:#6882a1;font-size:10px;letter-spacing:.08em }
.booking-confirmation { display:flex;align-items:center;gap:8px;margin-top:14px;padding:12px;border-radius:6px;background:#edf9f3;color:#15815b;font-size:11px;line-height:1.5 }
.booking-confirmation > span { display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:#15946a;color:#fff;font-weight:750 }

.booking-service { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 0;border-bottom:1px solid #e6eef8 }
.booking-service:last-child { border-bottom:0;padding-bottom:0 }
.booking-service strong { display:block;margin-bottom:4px;font-size:13px;line-height:1.5 }
.booking-status { flex-shrink:0;padding:6px 8px;border:1px solid #bde9d8;border-radius:5px;background:#edfbf5;color:#13815b;font-size:10px }
.booking-status-off { border-color:#dce5ef;background:#f2f5f9;color:#7a8da4 }
.booking-slots { display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:8px;margin-top:14px }
.booking-slots > span { padding:12px 6px;border:1px solid #cce0fa;border-radius:6px;background:#f5faff;color:#305c92;font-size:13px;font-weight:600;text-align:center }
.booking-slots .booking-slot-selected { border-color:#1973e9;background:#1973e9;color:#fff;box-shadow:0 5px 12px #1973e92a }
.booking-schedule { gap:14px }
.booking-schedule .booking-panel { padding:17px }
.booking-schedule .booking-panel > b { margin-bottom:6px }

.booking-channel-grid { display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:10px }
.booking-channel-grid > span { display:grid;min-height:65px;place-items:center;padding:12px 7px;border:1px solid #c5ddfb;border-radius:8px;background:#fffffff0;box-shadow:0 8px 20px #386ca910;color:#315b8b;font-size:12px;font-weight:650 }
.booking-channel-grid > span:first-child { border-color:#e2c5df;color:#a14187;background:#fff8fd }
.booking-channel-grid > span:nth-child(2) { color:#18314d;background:#f7faff }
.booking-channel-grid > span:nth-child(3) { color:#1b64c5;background:#f4f8ff }
.booking-channel-grid > span:nth-child(4) { color:#1682b7;background:#f1fbff }
.booking-connector { height:24px;color:#4f91e2;font-size:25px;line-height:24px;text-align:center }
.booking-link-card { display:flex;align-items:center;flex-direction:column;gap:10px;padding:26px 18px;border:1px solid #7fb2f3;border-radius:10px;background:linear-gradient(130deg, #1973e9, #1358cc);box-shadow:0 14px 30px #1973e930;color:#fff;text-align:center }
.booking-link-symbol { display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff50;border-radius:10px;background:#ffffff17;font-size:26px }
.booking-link-card strong { font-size:20px }
.booking-link-card small { color:#d8eaff;font-size:11px }
.booking-notification { display:flex;align-items:center;gap:12px;padding:18px;border:1px solid #a9d8c9;border-radius:8px;background:#f5fffa;box-shadow:0 12px 28px #386ca914;color:#234f43 }
.booking-notification b { display:block;margin-bottom:5px;font-size:14px }
.booking-notification small { display:block;font-size:11px;line-height:1.5 }
.booking-notification-icon { display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:50%;background:#16956b;color:#fff;font-size:18px }
.booking-live-dot { flex:0 0 7px;height:7px;margin-left:auto;border-radius:50%;background:#15a675 }
.booking-admin { background:radial-gradient(ellipse at 70% 20%, #f2fff9, #dceeff 75%) }

.booking-page .booking-timeline { display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:visit }
.booking-page .booking-timeline li { position:relative;min-height:88px;padding:6px 0 24px 58px;counter-increment:visit }
.booking-timeline li::before { content:counter(visit, decimal-leading-zero);position:absolute;z-index:1;top:0;left:0;display:grid;place-items:center;width:38px;height:38px;border:1px solid #afcff7;border-radius:10px;background:#fff;color:#1973e9;font-size:12px;font-weight:750;box-shadow:0 5px 15px #386ca910 }
.booking-timeline li:not(:last-child)::after { content:'';position:absolute;top:38px;bottom:0;left:19px;border-left:1px dashed #7babeb }
.booking-timeline b { display:block;color:#233f65;font-size:15px }
.booking-timeline span { display:block;margin-top:5px;font-size:12px }
.booking-timeline li:last-child::before { background:#1973e9;color:#fff }
.booking-page .booking-checklist { display:grid;gap:12px;margin:0;padding:0;list-style:none }
.booking-page .booking-checklist li { position:relative;padding:0 0 0 26px;color:#3d617e;font-size:13px }
.booking-checklist li::before { content:'✓';position:absolute;left:0;color:#13946a;font-weight:750 }
.booking-page .booking-test-flow { display:grid;gap:8px;margin:0;padding:0;list-style:none;counter-reset:test }
.booking-page .booking-test-flow li { display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 14px;border:1px solid #c5ddfb;border-radius:6px;background:#ffffffc9;color:#335c8b;font-size:12px;counter-increment:test }
.booking-test-flow li::before { content:counter(test, decimal-leading-zero);color:#1973e9;font-weight:750;font-size:11px }

@media (max-width:1000px) and (min-width:861px) {
    .booking-visual { padding-inline:18px }
    .booking-panel { padding:16px }
    .booking-channel-grid { grid-template-columns:repeat(2, minmax(0, 1fr)) }
}

@media (max-width:860px) {
    .booking-visual { min-height:420px;padding:30px 24px 44px }
    .booking-lifestyle { min-height:520px }
    .booking-channel-grid { width:100%;max-width:500px;align-self:center }
    .booking-page .booking-timeline { padding-top:8px }
}

@media (max-width:600px) {
    .booking-intro { padding:24px 18px }
    .booking-intro h1 { font-size:29px }
    .booking-visual { padding:28px 16px 44px }
    .booking-lifestyle { min-height:470px }
    .booking-panel { padding:18px 14px }
    .booking-visual-heading h3 { font-size:28px }
    .booking-service { gap:8px }
    .booking-service strong { font-size:12px }
    .booking-status { padding:5px 6px;font-size:9px }
    .booking-channel-grid { gap:8px }
    .booking-channel-grid > span { min-height:60px;font-size:11px }
    .booking-link-card strong { font-size:19px }
    .booking-notification { padding:15px 12px;gap:10px }
    .booking-notification b { font-size:13px }
    .booking-notification small { font-size:10px }
}
