@font-face {
    font-family: Montserrat;
    src: url("assets/fonts/montserrat-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
}

body.vb-booking-brand-font { --vb-booking-font: Montserrat, Arial, sans-serif; }
body.vb-booking-brand-font .vb2,
body.vb-booking-brand-font .vb2 :is(h1, h2, h3, h4, p, a, label, legend, summary, strong, button, input, select, textarea),
body.vb-booking-brand-font .vb-native-booking :is(#amelia-container, [id^="amelia-v2-booking-"]),
body.vb-booking-brand-font .am-select-popper {
    font-family: var(--vb-booking-font) !important;
}
body.vb-booking-brand-font .vb-native-booking :is(#amelia-container, [id^="amelia-v2-booking-"]),
body.vb-booking-brand-font .am-select-popper {
    --am-font-family: var(--vb-booking-font) !important;
}

.vb-pilot {
    --pilot-paper: #fbf8f2;
    --pilot-ink: #252420;
    --pilot-muted: #605b51;
    --pilot-rule: #ded6c8;
    --pilot-gold: #a78040;
    margin-block: 0 clamp(3rem, 8vw, 6rem);
    scroll-margin-top: 7rem;
    color: var(--pilot-ink);
}
.vb-pilot [hidden] { display: none !important; }
.vb-pilot-header { max-width: 40rem; margin-block: 0 1.75rem; }
.vb-pilot h2, .vb-pilot h3, .vb-pilot p { margin: 0; }
.vb-pilot h2 { font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.08; }
.vb-pilot h3 { font-size: 1.2rem; line-height: 1.25; }
body.vb-templates .vb2 .vb-pilot h3 { margin: 0 !important; font-size: 1.2rem !important; }
.vb-pilot-header p + h2, .vb-pilot h2 + p { margin-top: .5rem; }
.vb-pilot-header a { display: inline-flex; align-items: center; min-height: 44px; margin-top: .4rem; }
.vb-pilot-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(16rem, 1fr); gap: clamp(1rem, 4vw, 3rem); align-items: start; }
.vb-pilot-vehicle {
    min-inline-size: 0;
    margin: 0 0 1rem;
    padding: clamp(.8rem, 2.8vw, 1.65rem);
    border: 1px solid var(--pilot-rule);
    border-radius: .75rem;
    background: var(--pilot-paper);
    animation: vb-pilot-settle 240ms ease-out both;
}
.vb-pilot-vehicle legend { padding-inline: .5rem; font-size: 1.05rem; font-weight: 700; }
.vb-pilot-size { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: .75rem; }
.vb-pilot-size label { flex: 1 0 12rem; }
.vb-pilot label strong { display: block; font-size: .93rem; }
.vb2 .vb-pilot label, .vb2 .vb-pilot label span, .vb2 .vb-pilot label strong { color: var(--pilot-ink) !important; }
.vb-pilot select {
    display: block;
    width: 100%;
    min-height: 48px;
    margin-top: .28rem;
    padding: .6rem .65rem;
    border: 1px solid #a69b89;
    border-radius: .35rem;
    background-color: #fffdf8;
    color: var(--pilot-ink);
    font: inherit;
    font-size: 1rem;
}
.vb-pilot-size + div:not([hidden]) { margin-top: 1rem; }
.vb-pilot-base {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .35rem 1rem;
    align-items: center;
    padding: 1rem;
    border-radius: .5rem;
    background: #eee7da;
}
.vb-pilot-base p:last-child { grid-column: 1 / -1; font-size: .94rem; color: #484338; }
.vb-pilot-base > strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.vb-pilot-presets { display: flex; flex-wrap: wrap; gap: .4rem; padding-block: .85rem; }
.vb-pilot button {
    min-height: 44px;
    padding: .5rem .75rem;
    border: 1px solid #a69b89;
    border-radius: .35rem;
    background: #fffdf8;
    color: var(--pilot-ink);
    font: inherit;
    font-size: .9rem;
    font-weight: 650;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.vb-pilot button:hover, .vb-pilot button[aria-pressed="true"] { background: #ece1cc; border-color: var(--pilot-gold); }
.vb-pilot button:active { transform: translateY(1px); }
.vb-pilot .vb-pilot-quiet { border-color: transparent; background: transparent; text-decoration: underline; }
.vb-pilot .vb-pilot-add {
    background: transparent;
    border-color: transparent;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.vb-pilot-detail { border-top: 1px solid var(--pilot-rule); }
.vb-pilot-detail summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 52px;
    gap: 1rem;
    padding: .65rem .15rem;
    color: var(--pilot-ink);
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}
.vb-pilot-detail summary::-webkit-details-marker { display: none; }
.vb-pilot-detail summary::after {
    content: '';
    width: .47rem;
    height: .47rem;
    margin-right: .4rem;
    border-right: 2px solid #715528;
    border-bottom: 2px solid #715528;
    transform: rotate(45deg);
    transition: transform 160ms ease;
}
.vb-pilot-detail[open] summary::after { transform: rotate(225deg); }
.vb-pilot-detail[open] .vb-pilot-detail-body { animation: vb-pilot-settle 190ms ease-out both; }
.vb-pilot-detail-body { display: grid; gap: .5rem; padding: .1rem 0 .9rem; }
.vb-pilot-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.vb-pilot small { display: block; color: var(--pilot-muted); font-size: .84rem; line-height: 1.45; }
.vb-pilot-fields small, .vb-pilot-polish small { margin-top: .35rem; }
.vb-pilot-check {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: .65rem;
    min-height: 48px;
    padding: .65rem;
    border: 1px solid var(--pilot-rule);
    border-radius: .4rem;
    background: #fffdf8;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease;
}
.vb-pilot-check:has(input:checked) { border-color: #94703a; background: #f3e9d7; }
.vb-pilot-check input { width: 1.16rem; height: 1.16rem; margin: .15rem 0 0; accent-color: #725523; }
.vb-pilot-qualify { font-size: .89rem; color: var(--pilot-muted); }
.vb-pilot-price { white-space: nowrap; font-weight: 700; font-variant-numeric: tabular-nums; }
.vb-pilot-line { display: flex; flex-wrap: wrap; gap: .35rem .65rem; align-items: baseline; padding-top: .75rem; border-top: 1px solid var(--pilot-rule); font-size: .9rem; }
.vb-pilot-line strong { margin-left: auto; }
.vb-pilot-line :is([data-pilot-row-time], [data-pilot-row-taxes]) { flex-basis: 100%; color: var(--pilot-muted); }
.vb-pilot-summary {
    position: sticky;
    top: 7rem;
    display: grid;
    gap: .7rem;
    padding: clamp(1rem, 2.5vw, 1.65rem);
    border-radius: .75rem;
    background: #282723;
    color: #fff9ec;
}
.vb-pilot-summary h3 { color: #fff9ec; }
.vb-pilot-summary .vb-eyebrow { color: #e3be7a; }
.vb-pilot-summary p:not(.vb-eyebrow) { color: #e2d8c9; font-size: .9rem; }
.vb-pilot-total { display: grid; gap: .25rem; padding-block: .7rem; border-block: 1px solid #615a4d; }
.vb-pilot-total strong { font-size: clamp(1.25rem, 2.5vw, 1.75rem); line-height: 1.15; font-variant-numeric: tabular-nums; }
.vb-pilot-total span { font-size: .9rem; }
.vb-pilot-total span:empty { display: none; }
.vb2 .vb-pilot .vb-pilot-book {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: .7rem 1rem;
    border: 1px solid transparent;
    border-radius: .35rem;
    background: #d6b268;
    color: #251d10 !important;
    font-weight: 750;
    letter-spacing: .045em;
    text-align: center;
    text-decoration: none;
    scroll-margin-bottom: 6rem;
    transition: background-color 160ms ease;
}
.vb2 .vb-pilot .vb-pilot-book:is([href], button):hover { background: #edcd89; }
.vb2 .vb-pilot .vb-pilot-book[data-pilot-quote] {
    border-color: #b89658;
    background: transparent;
    color: #f2d39a !important;
}
.vb2 .vb-pilot .vb-pilot-book[data-pilot-quote]:hover { background: #3c3932; }
.vb2 .vb-pilot .vb-pilot-book[aria-disabled="true"] {
    background: #3c3932;
    border-color: #6b6457;
    color: #e0d8ca !important;
    cursor: default;
}
.vb-pilot-help { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.75rem; padding-top: 1rem; border-top: 1px solid var(--pilot-rule); }
.vb-pilot-help h3 { font-size: 1rem; }
.vb-pilot-help p { margin-top: .35rem; color: var(--pilot-muted); font-size: .9rem; }
.vb-pilot-help a { display: inline-block; padding-block: .35rem; color: #674a1d; text-decoration: underline; text-underline-offset: .15em; }
.vb-pilot :is(a, button, input, select, summary):focus-visible { outline: 2px solid #876120; outline-offset: 3px; }
.vb-pilot-summary a:focus-visible { outline-color: #f2d39a; }
@keyframes vb-pilot-settle {
    from { opacity: .82; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 760px) {
    .vb-pilot-layout, .vb-pilot-help { grid-template-columns: minmax(0, 1fr); }
    .vb-pilot-summary { position: static; }
}
@media (max-width: 500px) {
    .vb-pilot-fields { grid-template-columns: minmax(0, 1fr); }
    .vb-pilot-check { grid-template-columns: auto minmax(0, 1fr); gap: .3rem .65rem; }
    .vb-pilot-price { grid-column: 2; font-size: .88rem; }
}
@media (prefers-reduced-motion: reduce) {
    .vb-pilot *, .vb-pilot *::after { animation: none !important; transition: none !important; }
    .vb-pilot button:active { transform: none; }
}
