/* Site custom styles: booking, compact header, and alignment. */

.booking-section{padding:64px 0 90px}.booking-container{max-width:960px}.booking-intro{margin-bottom:32px}.booking-intro p{max-width:720px}.booking-required,.booking-error{color:#a32121}.booking-panel{padding:32px;margin:0 0 24px;background:#fff;border:1px solid #e4e5e7;border-radius:12px;box-shadow:0 12px 35px rgba(15,26,44,.06)}.booking-panel h3{margin-bottom:24px}.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.booking-wide{grid-column:1/-1}.booking-field{display:block;font-weight:600;color:#1b2638}.booking-field input,.booking-field select{display:block;width:100%;height:52px;margin-top:8px;padding:10px 14px;border:1px solid #b7bdc7;border-radius:6px;background:#fff;color:#182333;font:inherit}.booking-field input:focus,.booking-field select:focus{outline:2px solid #c9a35a;outline-offset:1px}.booking-error{display:block;margin-top:6px;font-weight:400}.booking-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.booking-card{position:relative;cursor:pointer}.booking-card input{position:absolute;top:16px;left:16px;width:18px;height:18px}.booking-card span{display:block;min-height:116px;padding:16px 12px 16px 42px;border:2px solid #d8dce2;border-radius:8px;transition:border-color .2s,background .2s}.booking-card strong,.booking-card small{display:block}.booking-card small{margin-top:8px;color:#526071}.booking-card input:checked+span{border-color:#b28b48;background:#fffaf0}.booking-card input:focus-visible+span{outline:2px solid #182333;outline-offset:2px}.booking-service{margin-top:26px}.booking-service[hidden]{display:none!important}.booking-note{margin:22px 0 0;padding:14px 18px;background:#f7f4ed;border-radius:6px}.booking-notice{padding:20px;margin:0 0 24px;border-radius:8px}.booking-alert{background:#fff1ef;color:#782116}.booking-success{background:#f1f8f3;color:#193c26}.booking-success h2{margin-bottom:12px}.booking-submit{min-height:54px}.booking-not-found{text-align:center;padding:64px 32px}.booking-not-found p{max-width:560px;margin:18px auto}.booking-kicker{font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:#9a7438}.booking-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}.booking-admin{max-width:1120px}.booking-login{max-width:480px;margin:auto}.booking-login .booking-field{margin:24px 0}.booking-admin-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.booking-text-button{padding:0;border:0;background:none;color:#8e682e;cursor:pointer}.booking-table-wrap{overflow-x:auto}.booking-table{width:100%;border-collapse:collapse;min-width:700px}.booking-table th,.booking-table td{padding:15px 12px;border-bottom:1px solid #e7e8ea;text-align:left;vertical-align:top}.booking-table td small{display:block;color:#66717c}.booking-status{display:inline-block;padding:5px 10px;border-radius:40px;background:#fff0dd;color:#795319;white-space:nowrap}.booking-status.is-processed{background:#e5f5e8;color:#245c32}.booking-detail-title{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.booking-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px;margin:24px 0}.booking-details>div{padding:14px 0;border-bottom:1px solid #e7e8ea}.booking-details dt{color:#5d6672;font-size:14px}.booking-details dd{margin:4px 0 0;overflow-wrap:anywhere}@media(max-width:767px){.booking-section{padding:36px 0 60px}.booking-panel{padding:22px 18px}.booking-grid,.booking-cards,.booking-details{grid-template-columns:1fr}.booking-wide{grid-column:auto}.booking-card span{min-height:0}.booking-intro h2,.booking-panel h2{font-size:30px}.booking-submit{width:100%}}

/* Compact header experiment. Keep these overrides separate for easy review. */
.breadcrumbs-custom-inner {
    padding: 24px 0 20px;
}

.breadcrumbs-custom-title {
    width: fit-content;
    max-width: 100%;
    padding: 12px;
    background: #FFBF26;
    color: #fff;
}

* + .breadcrumbs-custom-path {
    margin-top: 8px;
}

/* The homepage banner uses section-xl spacing; change only this banner. */
.page > .parallax-container.section-xl {
    padding-top: 48px;
    padding-bottom: 48px;
}

@media (min-width: 768px) {
    .breadcrumbs-custom-inner {
        padding: 36px 0 24px;
    }

    .page > .parallax-container.section-xl {
        padding-top: 65px;
        padding-bottom: 65px;
    }
}

@media (min-width: 992px) {
    .rd-navbar-modern.rd-navbar-static .rd-navbar-main {
        padding: 12px 0;
    }

    .rd-navbar-modern.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main,
    .rd-navbar-modern.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main {
        height: 56px;
    }

    .rd-navbar-modern.rd-navbar-static .rd-navbar-aside {
        padding: 8px 0;
    }

    .rd-navbar-modern.rd-navbar-static .rd-navbar-brand img {
        width: 240px;
        max-width: 240px;
        height: auto;
        max-height: 98px;
    }

    .rd-navbar-modern.rd-navbar-static .rd-navbar-nav > li + li {
        margin-left: 32px;
        margin-right: 0;
    }

    .breadcrumbs-custom-container {
        min-height: 240px;
    }

    .breadcrumbs-custom-inner {
        padding: 38px 0 26px;
    }
}

@media (min-width: 1200px) {
    .rd-navbar-modern.rd-navbar-static .rd-navbar-aside {
        min-height: 112px;
    }

    .rd-navbar-modern.rd-navbar-static .rd-navbar-main {
        padding: 14px 0;
    }

    .breadcrumbs-custom-container {
        min-height: 260px;
    }

    .page > .parallax-container.section-xl {
        padding-top: 76px;
        padding-bottom: 76px;
    }
}

@media (max-width: 575px) {
    .breadcrumbs-custom-title {
        padding: 8px;
    }

    .page > .parallax-container.section-xl {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}

/* Use the /book content edge throughout the site. */
.page .container {
    max-width: 960px;
}

/* Bootstrap containers have 15px inner padding. The header rows do not. */
@media (min-width: 992px) {
    .rd-navbar-modern.rd-navbar-static .rd-navbar-main,
    .rd-navbar-modern.rd-navbar-static .rd-navbar-aside {
        max-width: 930px;
    }
}

/* Keep the logo on the content edge while the mobile controls stay tappable. */
.rd-navbar-fixed .rd-navbar-brand {
    position: absolute;
    left: 15px;
    margin-left: 0;
}

.rd-navbar-fixed .rd-navbar-toggle {
    position: absolute;
    top: 4px;
    right: 4px;
}

.rd-navbar-modern.rd-navbar-fixed .rd-navbar-collapse-toggle {
    right: 56px;
}

.rd-navbar-fixed .rd-nav-link {
    padding-left: 14px;
}

@media (min-width: 992px) and (max-width: 1199px) {
    .page .box-1 {
        padding-left: 0;
    }
}

.homepage-hero-content {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
}

.homepage-hero-title {
    width: fit-content;
    max-width: 100%;
    background: #FFBF25;
    color: #fff;
    padding: 0.45em 12px;
}

/* Section titles share the grid even where the cards below are centered. */
.page section.text-center > .container > h2 {
    text-align: left;
}

/* Booking picker displays a fixed US date and 12-hour time. */
.booking-datetime {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.booking-datetime legend {
    width: auto;
    margin: 0 0 12px;
    padding: 0;
    color: #1b2638;
    font-size: inherit;
    font-weight: 600;
}

.booking-datetime-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.booking-datetime-grid label,
.booking-date-control {
    min-width: 0;
    font-size: 14px;
}

.booking-date-control {
    position: relative;
}

.booking-date-control > label {
    display: block;
}

.booking-date-input {
    position: relative;
}

.booking-date-input input {
    padding-right: 54px;
}

.booking-calendar-toggle {
    position: absolute;
    top: 8px;
    right: 0;
    width: 48px;
    height: 52px;
    border: 0;
    background: transparent;
    color: #182333;
    cursor: pointer;
    font-size: 20px;
}

.booking-calendar-toggle:focus-visible,
.booking-calendar button:focus-visible {
    outline: 2px solid #c9a35a;
    outline-offset: 1px;
}

.booking-calendar {
    position: absolute;
    z-index: 20;
    top: 100%;
    left: 0;
    width: min(320px, 100%);
    padding: 14px;
    border: 1px solid #b7bdc7;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 35px rgba(15,26,44,.14);
}

.booking-calendar[hidden] {
    display: none;
}

.booking-calendar-head,
.booking-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    align-items: center;
    text-align: center;
}

.booking-calendar-head strong {
    grid-column: span 5;
}

.booking-calendar-head button,
.booking-calendar-grid button {
    min-height: 36px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #182333;
    cursor: pointer;
}

.booking-calendar-grid > span {
    padding: 8px 0;
    font-size: 12px;
    color: #526071;
}

.booking-calendar-grid button:hover {
    background: #fff0cd;
}

.booking-calendar-grid button:disabled,
.booking-calendar-head button:disabled {
    color: #b7bdc7;
    cursor: not-allowed;
    background: transparent;
}

.booking-field:has(> .booking-error) input:not([readonly]),
.booking-field:has(> .booking-error) select,
.booking-datetime-grid label:has(> .booking-error) input,
.booking-date-control:has(> .booking-error) input,
.booking-cards-invalid .booking-card span {
    border-color: #a32121;
    background-color: #fff7f5;
}

.booking-error-list {
    margin: 10px 0 0;
    padding-left: 20px;
}

.booking-error-list li + li {
    margin-top: 4px;
}

.booking-done {
    max-width: 760px;
    margin: 0 auto;
}

.booking-done p {
    margin-top: 16px;
}

.booking-done-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 28px;
}

.booking-date-preview {
    margin-top: 12px;
    font-size: 14px;
    font-weight: 400;
    color: #526071;
}

.booking-airport-route {
    margin-top: 24px;
}

.booking-airport-route[hidden] {
    display: none !important;
}

.booking-airport-route input[readonly] {
    background: #f5f6f7;
    color: #526071;
}

@media (max-width: 575px) {
    .booking-datetime-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}
