/* =========================================================
   ZUMI NATIVE BOOKING PAGE — ELEMENTOR-FREE OUTER CONTAINER
   ========================================================= */

body.zumi-native-booking-page {
    overflow-x: hidden;
}

#zumi-native-booking-page {
    width: 100%;
    margin: 0;
    padding: 0;
    background: #FFFFFF;
}

#zumi-native-booking-page .zumi-native-booking-page__container {
    width: 100%;
    max-width: 2200px;
    margin: 0 auto;
    padding: 15px 0;
    box-sizing: border-box;
}

@media (max-width: 760px) {
    #zumi-native-booking-page .zumi-native-booking-page__container {
        padding-top: 8px;
        padding-bottom: 8px;
    }
}

@font-face {
    font-family: "Zumi Poppins";
    src: url("/cf-fonts/s/poppins/5.2.7/latin/400/normal.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Zumi Poppins";
    src: url("/cf-fonts/s/poppins/5.2.7/latin/500/normal.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Zumi Poppins";
    src: url("/cf-fonts/s/poppins/5.2.7/latin/600/normal.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Zumi Poppins";
    src: url("/cf-fonts/s/poppins/5.2.7/latin/700/normal.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

#zumi-booking-portal,
#zumi-booking-portal * {
    box-sizing: border-box;
}

#zumi-booking-portal {
    --z-orange: #E85E2A;
    --z-orange-dark: #E85E2A;
    --z-orange-soft: rgba(232,94,42,.10);
    --z-ink: #141414;
    --z-charcoal: #1B1B1B;
    --z-text: #252525;
    --z-muted: #6D6D6D;
    --z-line: #E7E3DF;
    --z-soft: #F7F5F2;
    --z-cream: #FCFAF7;
    --z-white: #FFFFFF;
    --z-green: #1FA463;
    --z-radius: clamp(16px, 1.1vw, 24px);
    --z-shadow: 0 18px 55px rgba(17,17,17,.10);
    --z-shadow-soft: 0 8px 30px rgba(17,17,17,.07);

    width: 100%;
    max-width: 2200px;
    margin: 0 auto;
    padding: clamp(6px, .55vw, 12px);
    color: var(--z-text);
    background: #FFFFFF;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

#zumi-booking-portal button,
#zumi-booking-portal input,
#zumi-booking-portal select,
#zumi-booking-portal textarea,
#zumi-booking-portal a {
    font: inherit;
}

#zumi-booking-portal button {
    border: 0;
}

#zumi-booking-portal a {
    color: inherit;
    text-decoration: none;
}

#zumi-booking-portal .zbp-section {
    margin-top: clamp(10px, .8vw, 18px);
}

#zumi-booking-portal .zbp-panel {
    overflow: hidden;
    border: 1px solid var(--z-line);
    border-radius: 4px;
    background: var(--z-white);
    box-shadow: var(--z-shadow-soft);
}

#zumi-booking-portal .zbp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    color: var(--z-orange);
    font-size: clamp(10px, .65vw, 13px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .14em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-eyebrow::before {
    content: "";
    width: 28px;
    height: 2px;
    background: currentColor;
}

#zumi-booking-portal .zbp-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: clamp(500px, 34vw, 670px);
    padding: clamp(34px, 4vw, 82px);
    color: #FFFFFF;

    background-image: url("https://zumirentals.com/wp-content/uploads/2026/09/sunset-namibia-giraffe-zebra.webp");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    border-radius: 4px;
    box-shadow: var(--z-shadow);
}


#zumi-booking-portal .zbp-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg,
            rgba(10,10,10,.94) 0%,
            rgba(12,12,12,.88) 30%,
            rgba(15,15,15,.70) 58%,
            rgba(18,12,9,.52) 100%
        ),
        radial-gradient(circle at 88% 10%, rgba(232,94,42,.25), transparent 34%),
        linear-gradient(0deg, rgba(0,0,0,.15), rgba(0,0,0,.03));
}


#zumi-booking-portal .zbp-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr);
    gap: clamp(35px, 5vw, 90px);
    align-items: center;
}

#zumi-booking-portal .zbp-hero .zbp-eyebrow {
    color: #E85E2A;
}

#zumi-booking-portal .zbp-hero h1 {
    max-width: 1050px;
    margin: 0;
    color: #FFFFFF;
    font-size: clamp(54px, 6vw, 122px);
    font-weight: 850;
    line-height: .82;
    letter-spacing: -.075em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-hero h1 span {
    display: block;
    color: var(--z-orange);
}

#zumi-booking-portal .zbp-hero-copy {
    max-width: 900px;
    margin: clamp(20px, 1.8vw, 32px) 0 0;
    color: rgba(255,255,255,.78);
    font-size: clamp(17px, 1.08vw, 22px);
    line-height: 1.5;
}

#zumi-booking-portal .zbp-hero-copy-lead {
    display: block;
    width: max-content;
    max-width: 100%;
    margin-bottom: 6px;
    color: #FFFFFF;
    font-size: clamp(21px, 1.42vw, 29px);
    font-weight: 850;
    line-height: 1.18;
    letter-spacing: -.02em;
    white-space: nowrap;
}

#zumi-booking-portal .zbp-hero-copy-lead strong {
    color: var(--z-orange);
    font-weight: inherit;
}

#zumi-booking-portal .zbp-hero-copy-sub {
    display: block;
    max-width: 790px;
}

@media (max-width: 720px) {
    #zumi-booking-portal .zbp-hero-copy-lead {
        width: auto;
        white-space: normal;
    }
}

#zumi-booking-portal .zbp-hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: clamp(23px, 2vw, 34px);
}

#zumi-booking-portal .zbp-hero-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    color: rgba(255,255,255,.88);
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
}

#zumi-booking-portal .zbp-hero-pill::before {
    content: "";
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    background: var(--z-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(232,94,42,.12);
}

#zumi-booking-portal .zbp-hero-card {
    align-self: stretch;
    padding: clamp(22px, 2vw, 30px);
    background:
        linear-gradient(145deg, rgba(24,24,24,.86), rgba(18,18,18,.74));
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 4px;
    box-shadow: 0 20px 48px rgba(0,0,0,.18);


}

#zumi-booking-portal .zbp-hero-card > strong {
    display: block;
    color: #FFFFFF;
    font-size: clamp(17px, 1.15vw, 22px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.025em;
}

#zumi-booking-portal .zbp-hero-card > p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.66);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.55;
}

#zumi-booking-portal .zbp-hero-paths {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

#zumi-booking-portal .zbp-hero-path {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 15px;
    align-items: center;
    padding: 14px 15px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-hero-path-icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    color: #FFFFFF;
    background: rgba(232,94,42,.14);
    border: 1px solid rgba(232,94,42,.34);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-hero-path-icon svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#zumi-booking-portal .zbp-hero-path-icon img {
    display: block;
    width: 29px !important;
    height: 29px !important;
    max-width: 29px !important;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

#zumi-booking-portal .zbp-hero-path-icon--combo {
    width: 70px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    padding: 0 7px;
}

#zumi-booking-portal .zbp-hero-path-icon--triple {
    width: 74px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3px;
    padding: 0 6px;
}

#zumi-booking-portal .zbp-hero-path-icon--combo img,
#zumi-booking-portal .zbp-hero-path-icon--combo svg {
    width: 25px !important;
    height: 25px !important;
    max-width: 25px !important;
}

#zumi-booking-portal .zbp-hero-path-icon--triple img,
#zumi-booking-portal .zbp-hero-path-icon--triple svg {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
}

#zumi-booking-portal .zbp-hero-path b {
    display: block;
    min-width: 0;
    color: #FFFFFF;
    font-size: clamp(12.5px, .86vw, 15px);
    font-weight: 750;
    line-height: 1.25;
}

#zumi-booking-portal .zbp-hero-path small {
    display: block;
    min-width: 0;
    margin-top: 3px;
    color: rgba(255,255,255,.60);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: clamp(10px, .66vw, 11.5px);
    line-height: 1.4;
}

#zumi-booking-portal .zbp-form-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
    gap: clamp(14px, 1.2vw, 22px);
    align-items: start;
}

#zumi-booking-portal .zbp-form-main {
    display: grid;
    gap: clamp(10px, .8vw, 18px);
}

#zumi-booking-portal .zbp-form-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(24px, 2.8vw, 52px);
    border: 1px solid var(--z-line);
    border-radius: 4px;
    background: #FFFFFF;
    box-shadow: var(--z-shadow-soft);
}

#zumi-booking-portal .zbp-form-section > * {
    position: relative;
    z-index: 2;
}

#zumi-booking-portal .zbp-form-section--soft {
    background:
        radial-gradient(circle at 100% 0%, rgba(232,94,42,.08), transparent 30%),
        var(--z-cream);
}

#zumi-booking-portal .zbp-form-section--dark {
    color: #FFFFFF;
    background:
        radial-gradient(circle at 95% 4%, rgba(232,94,42,.25), transparent 32%),
        #191919;
    border-color: #191919;
}

#zumi-booking-portal .zbp-form-section--dark .zbp-form-head h2,
#zumi-booking-portal .zbp-form-section--dark .zbp-group-label {
    color: #FFFFFF;
}

#zumi-booking-portal .zbp-form-section--dark .zbp-form-head p {
    color: rgba(255,255,255,.58);
}

#zumi-booking-portal .zbp-form-head {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    margin-bottom: clamp(22px, 2vw, 34px);
    padding-right: 0;
}

#zumi-booking-portal .zbp-step-icon {
    position: relative;
    inset: auto;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--z-orange);
    background: #FFF6EF;
    border: 1px solid rgba(232,94,42,.18);
    border-radius: 4px;
    box-shadow: none;
    opacity: 1;
    pointer-events: none;
    transform: none;
}

#zumi-booking-portal .zbp-step-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#zumi-booking-portal .zbp-step-icon img {
    display: block;
    width: 22px !important;
    height: 22px !important;
    max-width: 22px !important;
    object-fit: contain;
    filter: none;
}

#zumi-booking-portal .zbp-form-section--dark .zbp-step-icon {
    color: #FFFFFF;
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.12);
    opacity: 1;
}

#zumi-booking-portal .zbp-form-section--dark .zbp-step-icon img {
    filter: brightness(0) invert(1);
}

#zumi-booking-portal .zbp-form-head h2 {
    margin: 0;
    color: var(--z-ink);
    font-size: clamp(25px, 2vw, 40px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.045em;
}

#zumi-booking-portal .zbp-form-head p {
    margin: 7px 0 0;
    color: var(--z-muted);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.55;
}

#zumi-booking-portal .zbp-request-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

#zumi-booking-portal .zbp-request-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 190px;
    padding: clamp(18px, 1.35vw, 24px);
    cursor: pointer;
    text-align: left;
    color: #232323;
    background: #FFFFFF;
    border: 1px solid var(--z-line);
    border-radius: 4px;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease, color 160ms ease;
}

#zumi-booking-portal .zbp-request-card > *:not(.zbp-request-number) {
    position: relative;
    z-index: 2;
}

#zumi-booking-portal .zbp-request-card:hover {
    border-color: rgba(232,94,42,.58);
    background: #FFFDFC;
    box-shadow: 0 8px 22px rgba(0,0,0,.05);
}

#zumi-booking-portal .zbp-request-card.is-selected {
    color: #FFFFFF;
    background: #1A1A1A;
    border-color: #1A1A1A;
    box-shadow: 0 10px 25px rgba(0,0,0,.10);
}

#zumi-booking-portal .zbp-request-card.is-selected::after {
    content: "";
    position: absolute;
    top: 12px;
    right: 12px;
    width: 7px;
    height: 7px;
    background: var(--z-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(232,94,42,.18);
}

#zumi-booking-portal .zbp-request-card-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    width: 100%;
    min-width: 0;
}

#zumi-booking-portal .zbp-request-card-head strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

#zumi-booking-portal .zbp-request-number {
    position: relative;
    inset: auto;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 0;
    padding: 0;
    color: var(--z-orange);
    background: #FFF6EF;
    border: 1px solid rgba(232,94,42,.18);
    border-radius: 4px;
    box-shadow: none;
    opacity: 1;
    pointer-events: none;
    transform: none;
}

#zumi-booking-portal .zbp-request-number svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#zumi-booking-portal .zbp-request-number img {
    display: block;
    width: 22px !important;
    height: 22px !important;
    max-width: 22px !important;
    object-fit: contain;
    filter: none;
}

#zumi-booking-portal .zbp-request-number--combo {
    width: 64px;
    grid-template-columns: repeat(2, 1fr);
    gap: 2px;
    padding: 0 6px;
}

#zumi-booking-portal .zbp-request-number--triple {
    width: 82px;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    padding: 0 6px;
}

#zumi-booking-portal .zbp-request-number--combo img,
#zumi-booking-portal .zbp-request-number--combo svg {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
}

#zumi-booking-portal .zbp-request-number--triple img,
#zumi-booking-portal .zbp-request-number--triple svg {
    width: 17px !important;
    height: 17px !important;
    max-width: 17px !important;
}

#zumi-booking-portal .zbp-request-card.is-selected .zbp-request-number {
    color: #FFFFFF;
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.14);
    opacity: 1;
}

#zumi-booking-portal .zbp-request-card.is-selected .zbp-request-number img {
    filter: brightness(0) invert(1);
}

#zumi-booking-portal .zbp-request-card.is-selected .zbp-request-number svg {
    stroke: #FFFFFF;
}

#zumi-booking-portal .zbp-request-card strong {
    display: block;
    margin-top: 0;
    color: inherit;
    font-size: clamp(15px, 1.02vw, 20px);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -.025em;
}

#zumi-booking-portal .zbp-request-card p {
    margin: 11px 0 0;
    color: #717171;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11.5px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-request-card.is-selected p {
    color: rgba(255,255,255,.57);
}

#zumi-booking-portal .zbp-request-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: auto;
    padding-top: 13px;
}

#zumi-booking-portal .zbp-request-tag {
    padding: 5px 8px;
    color: #6F6F6F;
    background: #F7F5F2;
    border-radius: 4px;
    font-size: 9px;
    font-weight: 750;
    line-height: 1;
}

#zumi-booking-portal .zbp-request-card.is-selected .zbp-request-tag {
    color: #FFD9C4;
    background: rgba(232,94,42,.12);
    border: 1px solid rgba(232,94,42,.16);
}

#zumi-booking-portal .zbp-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

#zumi-booking-portal .zbp-field {
    min-width: 0;
}

#zumi-booking-portal .zbp-field--full {
    grid-column: 1 / -1;
}

#zumi-booking-portal .zbp-field label,
#zumi-booking-portal .zbp-group-label {
    display: block;
    margin-bottom: 7px;
    color: #3B3B3B;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: .06em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-group-help {
    display: block;
    margin: 6px 0 11px;
    color: #807A74;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.5;
}


#zumi-booking-portal .zbp-required {
    color: var(--z-orange);
}

#zumi-booking-portal .zbp-date-wrap {
    position: relative;
    width: 100%;
}

#zumi-booking-portal .zbp-date-placeholder {
    display: none;
}

#zumi-booking-portal .zbp-date-limit-hint {
    display: block;
    min-height: 15px;
    margin-top: 6px;
    color: #8A817A;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.5px;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-date-limit-hint strong {
    color: #E85E2A;
}

#zumi-booking-portal .zbp-field input,
#zumi-booking-portal .zbp-field select,
#zumi-booking-portal .zbp-field textarea {
    width: 100%;
    min-height: 48px;
    padding: 12px 13px;
    color: #202020;
    outline: none;
    background: #FFFFFF;
    border: 1px solid #DCD7D2;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.35;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

#zumi-booking-portal .zbp-field textarea {
    min-height: 118px;
    resize: vertical;
    line-height: 1.55;
}

#zumi-booking-portal .zbp-field input:hover,
#zumi-booking-portal .zbp-field select:hover,
#zumi-booking-portal .zbp-field textarea:hover {
    border-color: #C9C3BD;
}

#zumi-booking-portal .zbp-field input:focus,
#zumi-booking-portal .zbp-field select:focus,
#zumi-booking-portal .zbp-field textarea:focus {
    border-color: var(--z-orange);
    box-shadow: 0 0 0 3px rgba(232,94,42,.11);
}

#zumi-booking-portal .zbp-field input::placeholder,
#zumi-booking-portal .zbp-field textarea::placeholder {
    color: #A3A3A3;
}

#zumi-booking-portal .zbp-field small {
    display: block;
    margin-top: 6px;
    color: #8A8A8A;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

#zumi-booking-portal .zbp-choice-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

#zumi-booking-portal .zbp-choice-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

#zumi-booking-portal .zbp-choice {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 52px;
    padding: 10px 11px;
    color: #2C2C2C;
    cursor: pointer;
    text-align: center;
    background: #FFFFFF;
    border: 1px solid var(--z-line);
    border-radius: 4px;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.25;
    transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

#zumi-booking-portal .zbp-choice:hover {
    transform: translateY(-1px);
    border-color: rgba(232,94,42,.50);
}

#zumi-booking-portal .zbp-choice.is-selected {
    color: #FFFFFF;
    background: #1A1A1A;
    border-color: #1A1A1A;
    box-shadow: 0 8px 20px rgba(0,0,0,.10);
}

#zumi-booking-portal .zbp-choice.is-selected::after {
    content: "";
    position: absolute;
    top: 6px;
    right: 6px;
    width: 6px;
    height: 6px;
    background: var(--z-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(232,94,42,.18);
}

/* Traveller count slider */
#zumi-booking-portal .zbp-traveller-selector {
    --zbp-traveller-progress: 0%;
    padding: clamp(16px, 1.4vw, 22px);
    background: linear-gradient(145deg, #FCFAF7 0%, #FFFFFF 100%);
    border: 1px solid #E8E2DC;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-traveller-selector-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 17px;
}

#zumi-booking-portal .zbp-traveller-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

#zumi-booking-portal .zbp-traveller-heading .zbp-group-label {
    margin: 0;
}

#zumi-booking-portal .zbp-traveller-heading-icon {
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    background: #FFF3EA;
    border: 1px solid rgba(232,94,42,.20);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-traveller-heading-icon img {
    display: block;
    width: 23px !important;
    height: 23px !important;
    max-width: 23px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-traveller-current {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 5px;
    flex: 0 0 auto;
    min-width: 92px;
    padding: 8px 12px;
    color: #4B4540;
    background: #FFFFFF;
    border: 1px solid #E1DAD3;
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(17,17,17,.035);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

#zumi-booking-portal .zbp-traveller-current strong {
    color: var(--z-orange);
    font-size: 19px;
    font-weight: 850;
    line-height: 1;
}

#zumi-booking-portal .zbp-traveller-range-wrap {
    width: 100%;
    padding: 0 3px;
}

#zumi-booking-portal .zbp-field input.zbp-traveller-slider {
    display: block;
    width: 100%;
    min-height: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

#zumi-booking-portal .zbp-field input.zbp-traveller-slider:hover,
#zumi-booking-portal .zbp-field input.zbp-traveller-slider:focus {
    border: 0;
    box-shadow: none;
}

#zumi-booking-portal .zbp-field input.zbp-traveller-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 7px;
    background:
        linear-gradient(
            90deg,
            var(--z-orange) 0%,
            var(--z-orange) var(--zbp-traveller-progress),
            #DED8D2 var(--zbp-traveller-progress),
            #DED8D2 100%
        );
    border: 0;
    border-radius: 999px;
}

#zumi-booking-portal .zbp-field input.zbp-traveller-slider::-webkit-slider-thumb {
    width: 22px;
    height: 22px;
    margin-top: -7.5px;
    appearance: none;
    -webkit-appearance: none;
    background: #FFFFFF;
    border: 6px solid var(--z-orange);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}

#zumi-booking-portal .zbp-field input.zbp-traveller-slider::-moz-range-track {
    width: 100%;
    height: 7px;
    background: #DED8D2;
    border: 0;
    border-radius: 999px;
}

#zumi-booking-portal .zbp-field input.zbp-traveller-slider::-moz-range-progress {
    height: 7px;
    background: var(--z-orange);
    border-radius: 999px;
}

#zumi-booking-portal .zbp-field input.zbp-traveller-slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
    background: #FFFFFF;
    border: 6px solid var(--z-orange);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}

#zumi-booking-portal .zbp-traveller-scale {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 3px;
    color: #8A837D;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

#zumi-booking-portal .zbp-traveller-scale span {
    width: 22px;
    text-align: center;
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-traveller-selector {
        padding: 14px;
    }

    #zumi-booking-portal .zbp-traveller-selector-head {
        gap: 10px;
        margin-bottom: 14px;
    }

    #zumi-booking-portal .zbp-traveller-heading {
        gap: 8px;
    }

    #zumi-booking-portal .zbp-traveller-heading-icon {
        flex-basis: 34px;
        width: 34px;
        height: 34px;
        border-radius: 4px;
    }

    #zumi-booking-portal .zbp-traveller-heading-icon img {
        width: 20px !important;
        height: 20px !important;
        max-width: 20px !important;
    }

    #zumi-booking-portal .zbp-traveller-current {
        min-width: 76px;
        padding: 7px 9px;
        font-size: 10px;
    }

    #zumi-booking-portal .zbp-traveller-current strong {
        font-size: 17px;
    }
}

#zumi-booking-portal .zbp-chip-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

#zumi-booking-portal .zbp-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 11px;
    color: #3C3C3C;
    cursor: pointer;
    background: #FFFFFF;
    border: 1px solid var(--z-line);
    border-radius: 4px;
    font-size: 10.5px;
    font-weight: 750;
    line-height: 1.1;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

#zumi-booking-portal .zbp-chip.is-selected {
    color: #FFFFFF;
    background: #E85E2A !important;
    border-color: #E85E2A !important;
}

#zumi-booking-portal .zbp-vehicle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

#zumi-booking-portal .zbp-vehicle-grid--setup {
    max-width: 100%;
}

#zumi-booking-portal .zbp-vehicle-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 190px;
    padding: clamp(20px, 1.6vw, 28px);
    color: #222222;
    cursor: pointer;
    text-align: left;
    background:
        linear-gradient(145deg, #FFFFFF 0%, #FCFAF8 100%);
    border: 1px solid var(--z-line);
    border-radius: 4px;
    transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

#zumi-booking-portal .zbp-vehicle-card > *:not(.zbp-vehicle-ghost) {
    position: relative;
    z-index: 2;
}

#zumi-booking-portal .zbp-vehicle-card:hover {
    transform: none;
    border-color: rgba(232,94,42,.55);
    box-shadow: 0 10px 28px rgba(0,0,0,.055);
}

#zumi-booking-portal .zbp-vehicle-card.is-selected {
    color: #FFFFFF;
    background:
        radial-gradient(circle at 100% 0%, rgba(232,94,42,.22), transparent 44%),
        #1A1A1A;
    border-color: #1A1A1A;
    box-shadow: 0 12px 28px rgba(0,0,0,.12);
}

#zumi-booking-portal .zbp-vehicle-card .zbp-card-kicker {
    color: var(--z-orange);
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-vehicle-card strong {
    display: block;
    margin-top: 8px;
    color: inherit;
    font-size: clamp(14px, .95vw, 18px);
    font-weight: 800;
    line-height: 1.12;
}

#zumi-booking-portal .zbp-vehicle-card small {
    display: block;
    margin-top: 7px;
    color: #7C7C7C;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-vehicle-card.is-selected small {
    color: rgba(255,255,255,.54);
}

#zumi-booking-portal .zbp-check {
    display: none;
    align-items: center;
    gap: 5px;
    width: fit-content;
    margin-top: 13px;
    padding: 6px 9px;
    color: #FFFFFF;
    background: var(--z-orange);
    border: 0;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .02em;
}

#zumi-booking-portal .zbp-check span {
    display: inline-grid;
    place-items: center;
    width: 14px;
    height: 14px;
    color: var(--z-orange);
    background: #FFFFFF;
    border-radius: 50%;
    font-size: 9px;
    line-height: 1;
}

#zumi-booking-portal .zbp-vehicle-card.is-selected .zbp-check {
    display: inline-flex;
}

#zumi-booking-portal .zbp-vehicle-card--setup strong {
    max-width: 100%;
    font-size: clamp(18px, 1.2vw, 24px);
}

#zumi-booking-portal .zbp-vehicle-card--setup small {
    max-width: 100%;
    margin-top: 9px;
    font-size: 11.5px;
    line-height: 1.5;
}

#zumi-booking-portal .zbp-vehicle-ghost {
    position: absolute;
    right: -10px;
    bottom: -18px;
    z-index: 1;
    display: block;
    width: clamp(105px, 9vw, 155px);
    height: clamp(105px, 9vw, 155px);
    max-width: none !important;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
    opacity: .055;
    filter: brightness(0);
    transform: rotate(-4deg);
}

#zumi-booking-portal .zbp-vehicle-card--setup[data-value="Camping 4x4"] .zbp-vehicle-ghost {
    right: -4px;
    bottom: -13px;
    width: clamp(100px, 8.5vw, 145px);
    height: clamp(100px, 8.5vw, 145px);
    transform: rotate(-2deg);
}

#zumi-booking-portal .zbp-vehicle-card.is-selected .zbp-vehicle-ghost {
    opacity: .09;
    filter: brightness(0) invert(1);
}

#zumi-booking-portal .zbp-label-with-icon {
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
}

#zumi-booking-portal .zbp-label-with-icon img {
    display: block;
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
    flex: 0 0 16px;
    object-fit: contain;
}

#zumi-booking-portal .zbp-budget-symbol {
    display: inline-block;
    margin-left: 4px;
    color: var(--z-orange);
    font-size: 1.05em;
    font-weight: 900;
    line-height: 1;
}

#zumi-booking-portal .zbp-vehicle-next-step {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px 16px;
    align-items: baseline;
    margin-top: 14px;
    padding: 12px 14px;
    color: #68625D;
    background: #FAF8F5;
    border: 1px solid #ECE6E0;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-vehicle-next-step strong {
    color: #4A443F;
    font-size: 10.5px;
    font-weight: 800;
    white-space: nowrap;
}

#zumi-booking-portal .zbp-vehicle-next-step span {
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10.5px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-vehicle-details-stage {
    display: none;
    background:
        radial-gradient(circle at 96% 0%, rgba(232,94,42,.065), transparent 30%),
        #FFFFFF;
}

#zumi-booking-portal .zbp-vehicle-details-stage.is-unlocked {
    display: block;
    animation: zbpReveal 240ms ease both;
}

#zumi-booking-portal .zbp-fleet-toolbar,
#zumi-booking-portal .zbp-addon-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}

#zumi-booking-portal .zbp-fleet-eyebrow {
    display: block;
    color: var(--z-orange);
    font-size: 9.5px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .085em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-fleet-toolbar strong {
    display: block;
    margin-top: 6px;
    color: #272727;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.3;
}

#zumi-booking-portal .zbp-slider-controls {
    display: flex;
    gap: 7px;
    flex: 0 0 auto;
}

#zumi-booking-portal .zbp-slider-arrow {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    color: #262626;
    background: #FFFFFF;
    border: 1px solid var(--z-line);
    border-radius: 50%;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
    transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease;
}

#zumi-booking-portal .zbp-slider-arrow:hover {
    color: #FFFFFF;
    background: #E85E2A !important;
    border-color: #E85E2A !important;
}


#zumi-booking-portal .zbp-currency-bar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px 14px;
    align-items: center;
    margin: 13px 0 4px;
    padding: 11px 12px;
    background: #FAF8F5;
    border: 1px solid #E8E2DC;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-currency-label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #514B46;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

#zumi-booking-portal .zbp-currency-label-icon {
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    color: var(--z-orange);
    background: #FFF3EA;
    border: 1px solid rgba(232,94,42,.18);
    border-radius: 4px;
    font-size: 13px;
    font-weight: 800;
}

#zumi-booking-portal .zbp-currency-buttons {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
}

#zumi-booking-portal .zbp-currency-buttons button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    min-height: 36px;
    padding: 7px 8px;
    color: #4A4642;
    cursor: pointer;
    background: #FFFFFF;
    border: 1px solid #DDD7D1;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 800;
    transition: border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

#zumi-booking-portal .zbp-currency-buttons button:hover {
    border-color: rgba(232,94,42,.50);
}

#zumi-booking-portal .zbp-currency-buttons button.is-active {
    color: #FFFFFF;
    background: #E85E2A !important;
    border-color: #E85E2A !important;
    box-shadow: 0 5px 14px rgba(232,94,42,.20);
}

#zumi-booking-portal .zbp-currency-buttons img {
    display: block;
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    object-fit: cover;
    border-radius: 50%;
}

#zumi-booking-portal .zbp-currency-bar > small {
    grid-column: 2;
    color: #918A84;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9px;
    line-height: 1.4;
}

@media (max-width: 700px) {
    #zumi-booking-portal .zbp-currency-bar {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    #zumi-booking-portal .zbp-currency-bar > small {
        grid-column: 1;
    }

    #zumi-booking-portal .zbp-currency-buttons {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


#zumi-booking-portal .zbp-season-note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    margin-top: -2px;
    padding: 11px 13px;
    color: #5F5852;
    background: #FAF8F5;
    border: 1px solid #E8E2DC;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-season-note[hidden] {
    display: none !important;
}

#zumi-booking-portal .zbp-season-icons {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

#zumi-booking-portal .zbp-season-icons img {
    display: block;
    width: 29px !important;
    height: 29px !important;
    max-width: 29px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-season-note strong {
    display: block;
    color: #34302D;
    font-size: 10.5px;
    font-weight: 850;
    line-height: 1.3;
}

#zumi-booking-portal .zbp-season-note span:not(.zbp-season-icons) {
    display: block;
    margin-top: 2px;
    color: #7B746E;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.8px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-camping-capacity-note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    margin-top: 11px;
    padding: 10px 12px;
    color: #6B5445;
    background: #FFF6EF;
    border: 1px solid rgba(232,94,42,.24);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-camping-capacity-note[hidden] {
    display: none !important;
}

#zumi-booking-portal .zbp-capacity-warning-icon {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    background: rgba(232,94,42,.12);
    border: 1px solid rgba(232,94,42,.22);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-capacity-warning-icon img {
    display: block;
    width: 15px !important;
    height: 15px !important;
    max-width: 15px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-camping-capacity-note span {
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-guided-capacity-note.is-required {
    color: #5B3825;
    background: #FFF0E7;
    border-color: rgba(232,94,42,.44);
    box-shadow: inset 3px 0 0 var(--z-orange);
}

/* 5+ traveller custom-group status */
#zumi-booking-portal .zbp-large-group-note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 11px;
    align-items: start;
    margin-top: 14px;
    padding: 13px 14px;
    color: #5B3825;
    background: linear-gradient(135deg, #FFF1E8 0%, #FFF8F3 100%);
    border: 1px solid rgba(232,94,42,.38);
    border-radius: 4px;
    box-shadow: inset 3px 0 0 var(--z-orange);
}

#zumi-booking-portal .zbp-large-group-note[hidden],
#zumi-booking-portal .zbp-vehicle-grid[hidden] {
    display: none !important;
}

#zumi-booking-portal .zbp-large-group-note-icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    background: rgba(232,94,42,.13);
    border: 1px solid rgba(232,94,42,.25);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-large-group-note-icon img {
    display: block;
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-large-group-note-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-large-group-status {
    display: inline-block;
    margin-bottom: 3px;
    color: var(--z-orange);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 8.5px;
    font-weight: 850;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-large-group-note strong {
    display: block;
    color: #4D3324;
    font-size: 11.5px;
    font-weight: 850;
    line-height: 1.35;
}

#zumi-booking-portal .zbp-large-group-note p {
    margin: 3px 0 0;
    color: #735A4B;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    line-height: 1.5;
}

#zumi-booking-portal .zbp-config-capacity {
    display: block;
    margin-top: 6px;
    color: #827C76;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.5px;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-config-option.is-selected .zbp-config-capacity {
    color: rgba(255,255,255,.62);
}

#zumi-booking-portal .zbp-camping-pricing-note {
    display: none;
    margin-top: 10px;
    padding: 9px 10px;
    color: #6D665F;
    background: #FFF8F2;
    border: 1px solid rgba(232,94,42,.18);
    border-radius: 4px;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.5px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-camping-pricing-note.is-visible {
    display: block;
}

#zumi-booking-portal .zbp-config-option-note {
    display: block;
    margin-top: 6px;
    color: #A05C2F;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.35;
}

#zumi-booking-portal .zbp-config-option.is-selected .zbp-config-option-note {
    color: #F3A273;
}

#zumi-booking-portal .zbp-config-option--auto {
    cursor: default;
}

#zumi-booking-portal .zbp-summary-price-note {
    display: block;
    margin-top: 5px;
    color: rgba(255,255,255,.48);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 8.5px;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-summary-anomaly-note {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

#zumi-booking-portal .zbp-summary-anomaly-note[hidden] {
    display: none !important;
}

#zumi-booking-portal .zbp-summary-anomaly-entry {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 11px;
    border: 1px solid rgba(232,94,42,.30);
    border-radius: 4px;
    background: rgba(232,94,42,.10);
    color: rgba(255,255,255,.82);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-summary-anomaly-icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    border-radius: 4px;
    background: rgba(232,94,42,.16);
    border: 1px solid rgba(232,94,42,.28);
}

#zumi-booking-portal .zbp-summary-anomaly-icon img {
    display: block;
    width: 14px !important;
    height: 14px !important;
    max-width: 14px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-camping-pricing-note {
    position: relative;
    padding-left: 38px;
}

#zumi-booking-portal .zbp-camping-pricing-note::before {
    content: "i";
    position: absolute;
    left: 11px;
    top: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #E85E2A;
    color: #fff;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}


@media (max-width: 700px) {
    #zumi-booking-portal .zbp-season-note {
        grid-template-columns: 1fr;
        gap: 7px;
    }
}

#zumi-booking-portal .zbp-fleet-slider {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(285px, 36%);
    gap: 13px;
    margin-top: 15px;
    padding: 2px 2px 10px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
    scrollbar-color: rgba(232,94,42,.42) transparent;
}

#zumi-booking-portal .zbp-fleet-slider::-webkit-scrollbar {
    height: 6px;
}

#zumi-booking-portal .zbp-fleet-slider::-webkit-scrollbar-thumb {
    background: rgba(232,94,42,.40);
    border-radius: 999px;
}

#zumi-booking-portal .zbp-fleet-card {
    position: relative;
    min-width: 0;
    overflow: hidden;
    scroll-snap-align: start;
    background: #FFFFFF;
    border: 1px solid var(--z-line);
    border-radius: 4px;
    box-shadow: 0 8px 22px rgba(0,0,0,.035);
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

#zumi-booking-portal .zbp-fleet-card.is-selected {
    border-color: var(--z-orange);
    box-shadow: 0 0 0 2px rgba(232,94,42,.10), 0 12px 28px rgba(0,0,0,.055);
}

#zumi-booking-portal .zbp-fleet-image {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #F1EFEC;
}

#zumi-booking-portal .zbp-fleet-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

#zumi-booking-portal .zbp-fleet-selected-badge {
    position: absolute;
    z-index: 2;
    top: 10px;
    right: 10px;
    display: none;
    align-items: center;
    gap: 5px;
    padding: 6px 9px;
    color: #FFFFFF;
    background: #E85E2A !important;
    border-radius: 4px;
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .05em;
}

#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-selected-badge {
    display: inline-flex;
}

#zumi-booking-portal .zbp-fleet-body {
    padding: 16px;
}

#zumi-booking-portal .zbp-fleet-type {
    display: block;
    color: var(--z-orange);
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-fleet-body h3 {
    margin: 7px 0 0;
    color: #202020;
    font-size: clamp(16px, 1.05vw, 21px);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -.025em;
}

#zumi-booking-portal .zbp-fleet-body p {
    min-height: 46px;
    margin: 8px 0 0;
    color: #73706C;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10.5px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-fleet-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 11px;
}

#zumi-booking-portal .zbp-fleet-specs span {
    padding: 5px 7px;
    color: #5D5853;
    background: #FAF7F4;
    border: 1px solid #EEE7E0;
    border-radius: 4px;
    font-size: 8.5px;
    font-weight: 750;
    line-height: 1;
}

#zumi-booking-portal .zbp-fleet-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
    margin-top: 14px;
}

#zumi-booking-portal .zbp-fleet-select,
#zumi-booking-portal .zbp-fleet-learn {
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 12px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.1;
    text-decoration: none !important;
}

#zumi-booking-portal .zbp-fleet-select {
    color: #FFFFFF;
    background: #1B1B1B;
    border: 1px solid #1B1B1B;
    cursor: pointer;
}

#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select {
    background: #E85E2A !important;
    border-color: #E85E2A !important;
}

#zumi-booking-portal .zbp-fleet-learn {
    color: #45413D;
    background: #FFFFFF;
    border: 1px solid var(--z-line);
}

#zumi-booking-portal .zbp-fleet-learn img {
    display: block;
    width: 15px !important;
    height: 15px !important;
    max-width: 15px !important;
    flex: 0 0 15px;
    object-fit: contain;
    margin-right: 5px;
}

#zumi-booking-portal .zbp-addon-head h3 {
    margin: 6px 0 0;
    color: #232323;
    font-size: clamp(17px, 1.15vw, 23px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.025em;
}

#zumi-booking-portal .zbp-addon-head p {
    max-width: 700px;
    margin: 7px 0 0;
    color: #77716C;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10.5px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-addon-count {
    flex: 0 0 auto;
    padding: 7px 9px;
    color: #7A4A29;
    background: #FFF5ED;
    border: 1px solid #F1D4BF;
    border-radius: 4px;
    font-size: 9.5px;
    font-weight: 800;
}

#zumi-booking-portal .zbp-addon-groups {
    display: grid;
    gap: 16px;
    margin-top: 16px;
}

#zumi-booking-portal .zbp-addon-group-title {
    display: block;
    margin-bottom: 8px;
    color: #3D3935;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .065em;
}

#zumi-booking-portal .zbp-addon-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

#zumi-booking-portal .zbp-addon-choice {
    position: relative;
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 22px;
    gap: 9px;
    align-items: center;
    min-width: 0;
    min-height: 67px;
    padding: 9px;
    cursor: pointer;
    text-align: left;
    color: #2D2D2D;
    background: #FFFFFF;
    border: 1px solid var(--z-line);
    border-radius: 4px;
    transition: border-color 160ms ease, background-color 160ms ease;
}

#zumi-booking-portal .zbp-addon-choice:hover {
    border-color: rgba(232,94,42,.48);
}

#zumi-booking-portal .zbp-addon-choice.is-selected {
    background: #FFF8F2;
    border-color: var(--z-orange);
}

/* Add-ons already supplied by the selected insurance option remain visible
   for clarity, but cannot be purchased a second time. */
#zumi-booking-portal .zbp-addon-choice.is-included-with-insurance,
#zumi-booking-portal .zbp-addon-choice:disabled {
    cursor: not-allowed;
    color: #77716C;
    background: #F4F2F0;
    border-color: #DED9D4;
    box-shadow: none;
    opacity: .82;
}

#zumi-booking-portal .zbp-addon-choice.is-included-with-insurance:hover,
#zumi-booking-portal .zbp-addon-choice:disabled:hover {
    border-color: #DED9D4;
    background: #F4F2F0;
}

#zumi-booking-portal .zbp-addon-choice.is-included-with-insurance img,
#zumi-booking-portal .zbp-addon-choice:disabled img {
    filter: grayscale(1);
    opacity: .55;
}

#zumi-booking-portal .zbp-addon-choice.is-included-with-insurance .zbp-addon-price {
    color: #96908A;
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

#zumi-booking-portal .zbp-addon-included-note {
    display: block;
    margin-top: 4px;
    color: #5E5954;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.5px;
    font-weight: 800;
    line-height: 1.3;
}

#zumi-booking-portal .zbp-addon-choice.is-included-with-insurance .zbp-addon-check {
    color: #85807B;
    background: #E7E3DF;
    border-color: #D2CCC6;
}

#zumi-booking-portal .zbp-addon-choice img {
    display: block;
    width: 34px !important;
    height: 34px !important;
    max-width: 34px !important;
    object-fit: contain;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

#zumi-booking-portal .zbp-addon-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-addon-copy strong {
    display: block;
    min-width: 0;
    color: inherit;
    font-size: 9.5px;
    font-weight: 800;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

#zumi-booking-portal .zbp-addon-copy small {
    display: block;
    margin-top: 4px;
    color: #6F6861;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.3;
}

#zumi-booking-portal .zbp-addon-check {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    color: transparent;
    background: #FFFFFF;
    border: 1px solid #DCD6D0;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 900;
}

#zumi-booking-portal .zbp-addon-choice.is-selected .zbp-addon-check {
    color: #FFFFFF;
    background: #E85E2A !important;
    border-color: #E85E2A !important;
}

@media (max-width: 1200px) {
    #zumi-booking-portal .zbp-fleet-slider {
        grid-auto-columns: minmax(280px, 54%);
    }

    #zumi-booking-portal .zbp-addon-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    #zumi-booking-portal .zbp-fleet-toolbar,
    #zumi-booking-portal .zbp-addon-head {
        align-items: flex-start;
    }

    #zumi-booking-portal .zbp-fleet-slider {
        grid-auto-columns: minmax(270px, 88%);
    }

    #zumi-booking-portal .zbp-fleet-body p {
        min-height: 0;
    }

    #zumi-booking-portal .zbp-addon-grid {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-addon-count {
        display: none;
    }
}
#zumi-booking-portal .zbp-config-panel {
    margin-top: 15px;
    padding: 16px;
    background: #FCFAF8;
    border: 1px solid #EAE4DE;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-config-panel[hidden],
#zumi-booking-portal .zbp-vehicle-price-panel[hidden],
#zumi-booking-portal .zbp-summary-pricing[hidden] {
    display: none !important;
}

#zumi-booking-portal .zbp-config-panel-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
}

#zumi-booking-portal .zbp-config-panel-copy > strong {
    display: block;
    margin-top: 5px;
    color: #282828;
    font-size: 13px;
    font-weight: 800;
}

#zumi-booking-portal .zbp-insurance-link {
    display: inline-flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    min-width: 0;
    color: var(--z-orange) !important;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.3;
    text-decoration: none !important;
    white-space: normal;
}

#zumi-booking-portal .zbp-insurance-link img {
    display: block;
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
    flex: 0 0 16px;
    object-fit: contain;
}

#zumi-booking-portal .zbp-insurance-link > span {
    display: block;
    min-width: 0;
}

#zumi-booking-portal .zbp-config-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
}

#zumi-booking-portal .zbp-config-options--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

#zumi-booking-portal .zbp-insurance-recommendation {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    margin-top: 12px;
    padding: 11px 12px;
    color: #6A4A0A;
    cursor: default;
    background: linear-gradient(180deg, #FFF9DD 0%, #FFF0B8 100%);
    border: 1px solid #E8BE52;
    border-radius: 4px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}

#zumi-booking-portal .zbp-insurance-recommendation-icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    padding: 0;
    color: #FFFFFF;
    background: #E3A322;
    border: 0;
    border-radius: 4px;
    box-shadow: 0 3px 8px rgba(173,116,0,.18);
    line-height: 1;
}

#zumi-booking-portal .zbp-insurance-recommendation-icon img {
    display: block;
    width: 17px !important;
    height: 17px !important;
    max-width: 17px !important;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

#zumi-booking-portal .zbp-insurance-recommendation-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-insurance-recommendation-copy strong {
    display: block;
    min-width: 0;
    margin: 0;
    color: #C47800;
    font-size: 10px;
    font-weight: 850;
    line-height: 1.25;
}

#zumi-booking-portal .zbp-insurance-recommendation-copy p {
    margin: 2px 0 0;
    color: #6A4A0A;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-config-option {
    position: relative;
    min-width: 0;
    min-height: 66px;
    padding: 12px;
    color: #2F2F2F;
    cursor: pointer;
    text-align: left;
    background: #FFFFFF;
    border: 1px solid #DDD7D1;
    border-radius: 4px;
    transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

#zumi-booking-portal .zbp-config-option > *:not(.zbp-insurance-ghost) {
    position: relative;
    z-index: 2;
}

#zumi-booking-portal .zbp-insurance-ghost {
    position: absolute;
    right: -7px;
    bottom: -10px;
    z-index: 1;
    display: block;
    width: clamp(62px, 5.6vw, 92px) !important;
    height: clamp(62px, 5.6vw, 92px) !important;
    max-width: none !important;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
    opacity: .055;
    filter: brightness(0);
    transform: rotate(-4deg);
}

#zumi-booking-portal .zbp-config-option.is-selected .zbp-insurance-ghost {
    opacity: .10;
    filter: brightness(0) invert(1);
}

/* Camping sleeping-setup tent icons */
#zumi-booking-portal .zbp-tent-option-row {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    width: 100%;
}

#zumi-booking-portal .zbp-tent-option-copy {
    display: block;
    min-width: 0;
}

#zumi-booking-portal .zbp-tent-option-icon {
    position: relative;
    display: block;
    width: 48px;
    height: 44px;
    flex: 0 0 48px;
    border-radius: 4px;
    background: rgba(232,94,42,.08);
    border: 1px solid rgba(232,94,42,.16);
}

#zumi-booking-portal .zbp-tent-option-icon img {
    position: absolute;
    display: block;
    width: 32px !important;
    height: 32px !important;
    max-width: 32px !important;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
}

#zumi-booking-portal .zbp-tent-option-icon--single img {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

#zumi-booking-portal .zbp-tent-option-icon--double .zbp-tent-icon--back {
    left: 3px;
    top: 4px;
    opacity: .26;
    transform: scale(.86);
    transform-origin: center;
}

#zumi-booking-portal .zbp-tent-option-icon--double .zbp-tent-icon--front {
    right: 3px;
    bottom: 3px;
    opacity: 1;
}

#zumi-booking-portal .zbp-config-option.is-selected .zbp-tent-option-icon--double .zbp-tent-icon--back {
    opacity: .30;
}

#zumi-booking-portal .zbp-config-option.is-selected .zbp-tent-option-icon {
    background: rgba(232,94,42,.14);
    border-color: rgba(232,94,42,.34);
}

#zumi-booking-portal .zbp-config-option.is-selected .zbp-tent-option-icon img {
    filter: brightness(0) invert(1);
}

@media (max-width: 520px) {
    #zumi-booking-portal .zbp-tent-option-row {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 9px;
    }

    #zumi-booking-portal .zbp-tent-option-icon {
        width: 43px;
        height: 40px;
    }

    #zumi-booking-portal .zbp-tent-option-icon img {
        width: 29px !important;
        height: 29px !important;
        max-width: 29px !important;
    }
}

#zumi-booking-portal .zbp-config-option:hover {
    border-color: rgba(232,94,42,.52);
}

#zumi-booking-portal .zbp-config-option--recommended {
    background:
        radial-gradient(circle at 100% 0%, rgba(232,94,42,.13), transparent 44%),
        #FFF9F4;
    border-color: rgba(232,94,42,.58);
    box-shadow: 0 0 0 1px rgba(232,94,42,.05), 0 8px 20px rgba(232,94,42,.07);
}

#zumi-booking-portal .zbp-config-option--recommended:hover {
    border-color: var(--z-orange);
    box-shadow: 0 0 0 2px rgba(232,94,42,.10), 0 10px 24px rgba(232,94,42,.09);
}

#zumi-booking-portal .zbp-config-option--recommended.is-selected {
    color: #FFFFFF;
    background:
        radial-gradient(circle at 100% 0%, rgba(232,94,42,.28), transparent 46%),
        #1A1A1A;
    border-color: var(--z-orange);
    box-shadow: 0 0 0 2px rgba(232,94,42,.15), 0 10px 24px rgba(0,0,0,.10);
}

#zumi-booking-portal .zbp-config-option--recommended .zbp-insurance-ghost {
    opacity: .09;
}

#zumi-booking-portal .zbp-config-option--recommended.is-selected .zbp-insurance-ghost {
    opacity: .14;
}

#zumi-booking-portal .zbp-config-option.is-selected {
    color: #FFFFFF;
    background: #1A1A1A;
    border-color: #1A1A1A;
    box-shadow: 0 8px 20px rgba(0,0,0,.07);
}

#zumi-booking-portal .zbp-config-option strong {
    display: block;
    min-width: 0;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

#zumi-booking-portal .zbp-config-option small {
    display: block;
    margin-top: 4px;
    color: #827C76;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.5px;
    line-height: 1.3;
}

#zumi-booking-portal .zbp-config-option.is-selected small {
    color: rgba(255,255,255,.58);
}

#zumi-booking-portal .zbp-config-recommended {
    display: inline-block;
    margin-bottom: 6px;
    padding: 4px 6px;
    color: var(--z-orange);
    background: #FFF2E8;
    border-radius: 4px;
    font-size: 8px;
    font-weight: 850;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .05em;
}

#zumi-booking-portal .zbp-config-option.is-selected .zbp-config-recommended {
    color: #FFFFFF;
    background: rgba(232,94,42,.82);
}

#zumi-booking-portal .zbp-vehicle-price-panel {
    margin-top: 15px;
    padding: 15px 16px;
    background: #191919;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-vehicle-price-panel .zbp-fleet-eyebrow {
    color: #F59A63;
}

#zumi-booking-portal .zbp-vehicle-price-panel strong {
    display: block;
    margin-top: 5px;
    color: #FFFFFF;
    font-size: clamp(15px, 1.05vw, 20px);
    font-weight: 800;
    line-height: 1.2;
}

#zumi-booking-portal .zbp-vehicle-price-panel small {
    display: block;
    margin-top: 5px;
    color: rgba(255,255,255,.58);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-fleet-price {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-top: 10px;
}

#zumi-booking-portal .zbp-fleet-price strong {
    color: #222222;
    font-size: 15px;
    font-weight: 850;
}

#zumi-booking-portal .zbp-fleet-price small {
    color: #88827C;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9px;
}

#zumi-booking-portal .zbp-summary-pricing {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 9px 13px 11px;
    box-sizing: border-box;
    background: #2A2A2A;
    border-top: 1px solid rgba(255,255,255,.10);
}

#zumi-booking-portal .zbp-summary-pricing > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(92px, auto);
    gap: 10px;
    align-items: center;
    min-width: 0;
    padding: 6px 2px;
    color: rgba(255,255,255,.58);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    line-height: 1.3;
}

#zumi-booking-portal .zbp-summary-pricing > div span {
    min-width: 0;
}

#zumi-booking-portal .zbp-summary-pricing > div strong {
    min-width: 0;
    color: rgba(255,255,255,.90);
    font-family: inherit;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

#zumi-booking-portal .zbp-summary-pricing-total {
    margin-top: 5px;
    padding-top: 10px !important;
    border-top: 1px solid rgba(255,255,255,.12);
}

#zumi-booking-portal .zbp-summary-pricing-total span,
#zumi-booking-portal .zbp-summary-pricing-total strong {
    color: #FFFFFF !important;
    font-size: 11px;
    font-weight: 850 !important;
}
@media (max-width: 700px) {
#zumi-booking-portal .zbp-config-panel-head {
        display: block;
    }

    #zumi-booking-portal .zbp-insurance-link {
        display: inline-flex;
        margin-top: 8px;
    }

    #zumi-booking-portal .zbp-config-options,
    #zumi-booking-portal .zbp-config-options--three {
        grid-template-columns: 1fr;
    }
}

#zumi-booking-portal .zbp-divider {
    height: 1px;
    margin: clamp(22px, 2vw, 34px) 0;
    background: var(--z-line);
}

#zumi-booking-portal .zbp-mode-section {
    display: none;
}

#zumi-booking-portal .zbp-mode-section.is-active {
    display: block;
    animation: zbpReveal 220ms ease both;
}

@keyframes zbpReveal {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

#zumi-booking-portal .zbp-mode-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    margin-bottom: clamp(22px, 2vw, 34px);
    padding: 16px 18px;
    color: #6C3C20;
    background: #FFF5EF;
    border: 1px solid #F1D1BF;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-mode-intro-copy {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    min-width: 0;
}

#zumi-booking-portal .zbp-mode-intro-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    background: rgba(232,94,42,.10);
    border: 1px solid rgba(232,94,42,.18);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-mode-intro-icon img {
    display: block;
    width: 19px !important;
    height: 19px !important;
    max-width: 19px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-mode-intro-copy-text {
    min-width: 0;
}

#zumi-booking-portal .zbp-mode-intro strong {
    display: block;
    color: #E85E2A;
    font-size: 13px;
    font-weight: 800;
}

#zumi-booking-portal .zbp-mode-intro-copy-text > span {
    display: block;
    margin-top: 3px;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-change-type {
    padding: 8px 10px;
    color: #E85E2A;
    cursor: pointer;
    background: #FFFFFF;
    border: 1px solid #E8C6B2 !important;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

#zumi-booking-portal .zbp-info-strip {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin-top: 16px;
    padding: 13px 14px;
    background: #F7F5F2;
    border: 1px solid var(--z-line);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-info-strip > span {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: #FFFFFF;
    background: var(--z-orange);
    border-radius: 4px;
    font-size: 15px;
    font-weight: 850;
}

#zumi-booking-portal .zbp-info-strip strong {
    display: block;
    color: #272727;
    font-size: 11px;
}

#zumi-booking-portal .zbp-info-strip small {
    display: block;
    margin-top: 2px;
    color: #777;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10.5px;
    line-height: 1.4;
}


#zumi-booking-portal .zbp-minimum-note {
    display: none;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin: 0 0 18px;
    padding: 13px 14px;
    color: #6F3B16;
    background: #FFF5EC;
    border: 1px solid #F1CFB6;
    border-radius: 4px;
}

#zumi-booking-portal .zbp-minimum-note.is-visible {
    display: grid;
}

#zumi-booking-portal .zbp-minimum-note-icon {
    position: relative;
    display: block;
    width: 42px;
    height: 42px;
    color: #FFFFFF;
    background: var(--z-orange);
    border-radius: 4px;
    overflow: hidden;
}

#zumi-booking-portal .zbp-minimum-note-icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#zumi-booking-portal .zbp-minimum-note-icon img {
    position: absolute;
    left: 50%;
    top: 50%;
    display: block;
    width: 26px !important;
    height: 26px !important;
    max-width: 26px !important;
    margin: 0 !important;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) invert(1);
    transform: translate(-50%, calc(-50% + 2px)) scale(1.06);
    transform-origin: center;
}

#zumi-booking-portal .zbp-minimum-note strong {
    display: block;
    color: #8E4A1D;
    font-size: 11px;
    font-weight: 850;
}

#zumi-booking-portal .zbp-minimum-note span {
    display: block;
    margin-top: 2px;
    color: #805638;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-payment {
    padding: clamp(20px, 2vw, 32px);
    background:
        linear-gradient(135deg, #FCFAF7 0%, #FFFFFF 68%);
    border-color: var(--z-line);
}

#zumi-booking-portal .zbp-payment-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(18px, 2vw, 34px);
    align-items: center;
}

#zumi-booking-portal .zbp-payment-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-payment-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

#zumi-booking-portal .zbp-payment-icon {
    display: grid;
    place-items: center;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    color: var(--z-orange);
    background: transparent;
    border: 0;
    border-radius: 0;
    opacity: .65;
}

#zumi-booking-portal .zbp-payment-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#zumi-booking-portal .zbp-payment-copy h3 {
    margin: 0;
    color: var(--z-ink);
    font-size: clamp(16px, 1.05vw, 21px);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.025em;
}

#zumi-booking-portal .zbp-payment-copy p {
    max-width: 880px;
    margin: 8px 0 0;
    color: var(--z-muted);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.55;
}

#zumi-booking-portal .zbp-payment-copy strong {
    color: #343434;
    font-weight: 700;
}

#zumi-booking-portal .zbp-payment-logos {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px;
    max-width: 470px;
}

#zumi-booking-portal .zbp-payment-logo {
    display: grid;
    place-items: center;
    min-width: 82px;
    height: 52px;
    padding: 4px 6px;
    background: #FFFFFF;
    border: 1px solid #E8E3DE;
    border-radius: 4px;
    box-shadow: 0 3px 10px rgba(0,0,0,.025);
}

#zumi-booking-portal .zbp-payment-logo img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
    image-rendering: auto !important;
}

/* v3.10.61 — keep the existing payment tiles exactly the same size while
   reducing only the artwork inside each tile for more white space. */
#zumi-booking-portal .zbp-payment-logo--visa img {
    max-width: 82px !important;
    max-height: 33px !important;
}

#zumi-booking-portal .zbp-payment-logo--mastercard img {
    max-width: 64px !important;
    max-height: 34px !important;
}

#zumi-booking-portal .zbp-payment-logo--fnb img {
    max-width: 82px !important;
    max-height: 34px !important;
}

#zumi-booking-portal .zbp-payment-logo--dpo img {
    max-width: 88px !important;
    max-height: 33px !important;
}

#zumi-booking-portal .zbp-payment-note {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 9px;
    color: #8A8A8A;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-payment-note svg {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    fill: none;
    stroke: var(--z-orange);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Payment section: switch to a stacked layout before the copy becomes cramped
   beside the booking summary on smaller desktop / tablet-width screens. */
@media (max-width: 1180px) {
    #zumi-booking-portal .zbp-payment-row {
        grid-template-columns: 1fr;
        gap: 18px;
        align-items: start;
    }

    #zumi-booking-portal .zbp-payment-copy,
    #zumi-booking-portal .zbp-payment-copy p {
        width: 100%;
        max-width: none;
    }

    #zumi-booking-portal .zbp-payment-heading {
        align-items: center;
    }

    #zumi-booking-portal .zbp-payment-logos {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
        max-width: none;
        gap: 8px;
        justify-content: stretch;
    }

    #zumi-booking-portal .zbp-payment-logo {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-payment-logos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

#zumi-booking-portal .zbp-summary {
    position: sticky;
    top: clamp(96px, 6vw, 118px);
    align-self: start;
    overflow: hidden;
    border-radius: 4px;
    background: #191919;
    box-shadow: var(--z-shadow);
}

#zumi-booking-portal .zbp-summary-top {
    padding: clamp(22px, 2vw, 32px);
    color: #FFFFFF;
    background:
        radial-gradient(circle at 100% 0%, rgba(232,94,42,.26), transparent 42%),
        #191919;
}

#zumi-booking-portal .zbp-summary-top .zbp-eyebrow {
    color: #E85E2A;
}

#zumi-booking-portal .zbp-summary h3 {
    margin: 0;
    color: #FFFFFF;
    font-size: clamp(23px, 1.6vw, 32px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.035em;
}

#zumi-booking-portal .zbp-summary-copy {
    margin: 8px 0 0;
    color: rgba(255,255,255,.52);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.5;
}

#zumi-booking-portal .zbp-summary-list {
    display: grid;
    gap: 1px;
    margin-top: 21px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 4px;
    background: rgba(255,255,255,.08);
}

#zumi-booking-portal .zbp-summary-item {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 10px;
    padding: 12px;
    background: #202020;
}

#zumi-booking-portal .zbp-summary-item span {
    color: rgba(255,255,255,.42);
    font-size: 9px;
    font-weight: 750;
    line-height: 1.3;
    letter-spacing: .07em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-summary-item strong {
    min-width: 0;
    padding-right: 2px;
    color: rgba(255,255,255,.90);
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.35;
    text-align: right;
    overflow-wrap: anywhere;
}

#zumi-booking-portal .zbp-summary-actions {
    display: grid;
    gap: 8px;
    padding: clamp(20px, 1.8vw, 28px);
    background: #151515;
    border-top: 1px solid rgba(255,255,255,.06);
}

#zumi-booking-portal .zbp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 11px 16px;
    border-radius: 4px;
    color: #FFFFFF !important;
    cursor: pointer;
    text-decoration: none !important;
    font-size: clamp(11px, .72vw, 14px);
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
    transform: none;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 90ms ease;
}

#zumi-booking-portal .zbp-btn--primary {
    background: #E85E2A !important;
    border: 1px solid var(--z-orange);
    box-shadow: 0 6px 19px rgba(0,0,0,.22);
}

#zumi-booking-portal .zbp-btn--primary:hover {
    background: #E85E2A !important;
    border-color: #E85E2A !important;
    box-shadow: 0 0 0 3px rgba(232,94,42,.18), 0 6px 19px rgba(0,0,0,.22);
}

#zumi-booking-portal .zbp-btn--ghost {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.28);
}

#zumi-booking-portal .zbp-btn--ghost:hover {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.55);
}

#zumi-booking-portal .zbp-btn:active {
    transform: scale(.985);
}

#zumi-booking-portal .zbp-btn:disabled {
    opacity: .68;
    cursor: wait;
    transform: none;
}

#zumi-booking-portal .zbp-btn:focus-visible,
#zumi-booking-portal .zbp-choice:focus-visible,
#zumi-booking-portal .zbp-chip:focus-visible,
#zumi-booking-portal .zbp-vehicle-card:focus-visible,
#zumi-booking-portal .zbp-request-card:focus-visible {
    outline: 2px solid var(--z-orange);
    outline-offset: 3px;
}

#zumi-booking-portal .zbp-summary-note {
    margin: 3px 0 0;
    color: rgba(255,255,255,.43);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    line-height: 1.45;
    text-align: center;
}

#zumi-booking-portal .zbp-turnstile-shell {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0 0 12px;
}

#zumi-booking-portal .zbp-security-panel {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 10px;
    margin: 0 0 12px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 4px;
    background: rgba(255,255,255,.045);
    box-sizing: border-box;
    overflow: visible;
}

#zumi-booking-portal .zbp-turnstile-widget,
#zumi-booking-portal .zbp-turnstile-widget > div,
#zumi-booking-portal .zbp-turnstile-shell .cf-turnstile {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

#zumi-booking-portal .zbp-turnstile-widget {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 65px;
    overflow: visible;
}

#zumi-booking-portal .zbp-turnstile-widget iframe,
#zumi-booking-portal .zbp-turnstile-shell iframe {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border: 0 !important;
}

#zumi-booking-portal .zbp-turnstile-status {
    display: none;
    width: 100%;
    margin-top: 7px;
    color: rgba(255,255,255,.52);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9px;
    line-height: 1.4;
    text-align: center;
    overflow-wrap: anywhere;
}

#zumi-booking-portal .zbp-turnstile-status.is-error {
    display: block;
    color: #FFB49D;
}

#zumi-booking-portal .zbp-turnstile-status.is-success {
    display: none;
}

#zumi-booking-portal #zbp-submit-request:disabled {
    cursor: not-allowed;
    opacity: .5;
    filter: saturate(.45);
}

#zumi-booking-portal #zbp-submit-request:not(:disabled) {
    opacity: 1;
    filter: none;
}

#zumi-booking-portal .zbp-submit-error {
    display: none;
    margin-top: 10px;
    padding: 10px 12px;
    color: #8A3518;
    background: #FFF0E8;
    border: 1px solid #F4C4AB;
    border-radius: 4px;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.45;
}

#zumi-booking-portal .zbp-submit-error.is-visible {
    display: block;
}

#zumi-booking-portal .zbp-submit-success {
    display: none;
    margin-top: 10px;
    padding: 12px 13px;
    color: #0F6A3B;
    background: #EAF8F1;
    border: 1px solid #B9E5CD;
    border-radius: 4px;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.5;
}

#zumi-booking-portal .zbp-submit-success.is-visible {
    display: block;
}

#zumi-booking-portal .zbp-bottom-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 30px;
    align-items: center;
    padding: clamp(30px, 3.5vw, 66px);
    color: #FFFFFF;
    background:
        radial-gradient(circle at 88% 10%, rgba(232,94,42,.34), rgba(232,94,42,0) 38%),
        #171717;
    border-radius: 4px;
    box-shadow: var(--z-shadow-soft);
}

#zumi-booking-portal .zbp-bottom-cta h2 {
    margin: 0;
    color: #FFFFFF;
    font-size: clamp(31px, 3.1vw, 64px);
    font-weight: 800;
    line-height: .96;
    letter-spacing: -.05em;
}

#zumi-booking-portal .zbp-bottom-cta p {
    max-width: 820px;
    margin: 11px 0 0;
    color: rgba(255,255,255,.58);
    font-size: clamp(13px, .82vw, 16px);
    line-height: 1.55;
}

#zumi-booking-portal .zbp-bottom-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

@media (min-width: 1250px) {
    #zumi-booking-portal .zbp-hero-card > strong {
        font-size: 23px;
    }

    #zumi-booking-portal .zbp-hero-card > p {
        font-size: 13px;
    }

    #zumi-booking-portal .zbp-hero-path {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 16px;
        padding: 15px 16px;
    }

    #zumi-booking-portal .zbp-hero-path-icon {
        width: 62px;
        height: 62px;
    }

    #zumi-booking-portal .zbp-hero-path-icon--combo {
        width: 74px;
    }

    #zumi-booking-portal .zbp-hero-path-icon--triple {
        width: 80px;
    }

    #zumi-booking-portal .zbp-hero-path-icon > img {
        width: 31px !important;
        height: 31px !important;
        max-width: 31px !important;
    }

    #zumi-booking-portal .zbp-hero-path-icon--combo img,
    #zumi-booking-portal .zbp-hero-path-icon--combo svg {
        width: 26px !important;
        height: 26px !important;
        max-width: 26px !important;
    }

    #zumi-booking-portal .zbp-hero-path-icon--triple img,
    #zumi-booking-portal .zbp-hero-path-icon--triple svg {
        width: 21px !important;
        height: 21px !important;
        max-width: 21px !important;
    }

    #zumi-booking-portal .zbp-hero-path b {
        font-size: 15px;
    }

    #zumi-booking-portal .zbp-hero-path small {
        font-size: 11.5px;
    }
}

@media (max-width: 1450px) {
    #zumi-booking-portal .zbp-request-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #zumi-booking-portal .zbp-request-card {
        min-height: 205px;
    }
}

@media (max-width: 700px) {
    #zumi-booking-portal .zbp-vehicle-grid {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-vehicle-card {
        min-height: 172px;
    }

    #zumi-booking-portal .zbp-vehicle-card--setup strong,
    #zumi-booking-portal .zbp-vehicle-card--setup small {
        max-width: 82%;
    }

    #zumi-booking-portal .zbp-vehicle-next-step {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    #zumi-booking-portal .zbp-vehicle-next-step strong {
        white-space: normal;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-hero-card {
        padding: 18px;
    }

    #zumi-booking-portal .zbp-hero-card > strong {
        font-size: 16px;
    }

    #zumi-booking-portal .zbp-hero-card > p {
        margin-top: 6px;
        font-size: 11px;
        line-height: 1.4;
    }

    #zumi-booking-portal .zbp-hero-paths {
        margin-top: 13px;
        gap: 6px;
    }

    #zumi-booking-portal .zbp-hero-path {
        grid-template-columns: 66px minmax(0, 1fr);
        gap: 11px;
        padding: 11px;
    }

    #zumi-booking-portal .zbp-hero-path-icon {
        width: 54px;
        height: 54px;
        border-radius: 4px;
    }

    #zumi-booking-portal .zbp-hero-path-icon--combo {
        width: 60px;
        height: 54px;
        padding: 0 5px;
        gap: 3px;
    }

    #zumi-booking-portal .zbp-hero-path-icon--triple {
        width: 64px;
        height: 54px;
        padding: 0 4px;
        gap: 2px;
    }

    #zumi-booking-portal .zbp-hero-path-icon > img {
        width: 27px !important;
        height: 27px !important;
        max-width: 27px !important;
    }

    #zumi-booking-portal .zbp-hero-path-icon--combo img,
    #zumi-booking-portal .zbp-hero-path-icon--combo svg {
        width: 22px !important;
        height: 22px !important;
        max-width: 22px !important;
    }

    #zumi-booking-portal .zbp-hero-path-icon--triple img,
    #zumi-booking-portal .zbp-hero-path-icon--triple svg {
        width: 17px !important;
        height: 17px !important;
        max-width: 17px !important;
    }

    #zumi-booking-portal .zbp-hero-path b {
        font-size: 12.5px;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }

    #zumi-booking-portal .zbp-hero-path small {
        display: none;
    }

    #zumi-booking-portal .zbp-request-card {
        min-height: 0;
        padding: 16px;
    }

    #zumi-booking-portal .zbp-request-card-head {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 10px;
    }

    #zumi-booking-portal .zbp-request-number {
        width: 38px;
        height: 38px;
    }

    #zumi-booking-portal .zbp-request-number--combo {
        width: 58px;
    }

    #zumi-booking-portal .zbp-request-number--triple {
        width: 72px;
    }

    #zumi-booking-portal .zbp-request-card strong {
        font-size: 15px;
        line-height: 1.15;
    }

    #zumi-booking-portal .zbp-request-card p {
        margin-top: 8px;
        font-size: 11.25px;
        line-height: 1.4;
    }

    #zumi-booking-portal .zbp-request-tags {
        display: none;
    }

    #zumi-booking-portal .zbp-form-head p {
        font-size: 11.5px;
        line-height: 1.45;
    }

    #zumi-booking-portal .zbp-group-help {
        margin: 4px 0 9px;
        font-size: 10.5px;
        line-height: 1.4;
    }

    #zumi-booking-portal .zbp-vehicle-next-step {
        padding: 10px 11px;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-request-grid {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-request-card {
        min-height: 0;
    }
}

@media (max-width: 1250px) {

    #zumi-booking-portal .zbp-vehicle-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1050px) {
    #zumi-booking-portal .zbp-hero-grid,
    #zumi-booking-portal .zbp-form-shell {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-summary {
        position: relative;
        top: auto;
        align-self: stretch;
    }

    #zumi-booking-portal .zbp-summary-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1px;
    }

    #zumi-booking-portal .zbp-bottom-cta {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-bottom-actions {
        justify-content: flex-start;
    }
}


/*
 * iPad / touch-tablet date input normalization.
 *
 * WebKit can give native date controls an oversized internal block on iPad.
 * The visible control is therefore constrained by the wrapper itself, while
 * the native date input is absolutely positioned inside that fixed-height box.
 */
@media (min-width: 768px) and (max-width: 1366px) and (pointer: coarse) {
    #zumi-booking-portal .zbp-date-wrap {
        position: relative;
        width: 100%;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
        overflow: hidden;
        background: #FFFFFF;
        border: 1px solid #DCD7D2;
        border-radius: 4px;
        box-sizing: border-box;
    }

    #zumi-booking-portal .zbp-date-wrap:focus-within {
        border-color: var(--z-orange);
        box-shadow: 0 0 0 3px rgba(232,94,42,.11);
    }

    #zumi-booking-portal .zbp-date-wrap:hover {
        border-color: #C9C3BD;
    }

    #zumi-booking-portal .zbp-field .zbp-date-wrap input[type="date"] {
        position: absolute !important;
        inset: 0 !important;
        display: block !important;

        width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;

        margin: 0 !important;
        padding: 0 44px 0 13px !important;

        border: 0 !important;
        border-radius: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
        background: transparent !important;

        color: #202020 !important;
        -webkit-text-fill-color: #202020;
        font-size: 16px !important;
        line-height: 48px !important;
        text-align: left !important;

        box-sizing: border-box !important;
        -webkit-text-size-adjust: 100%;
        color-scheme: light;
    }

    /*
     * iPad may render its minimum/current date inside an otherwise empty
     * control. Hide WebKit's internal date text until the user actually
     * chooses a date; our "Select date" label remains visible instead.
     */
    #zumi-booking-portal .zbp-date-wrap:not(.has-value) input[type="date"] {
        color: transparent !important;
        -webkit-text-fill-color: transparent !important;
    }

    #zumi-booking-portal .zbp-date-wrap:not(.has-value) input[type="date"]::-webkit-date-and-time-value,
    #zumi-booking-portal .zbp-date-wrap:not(.has-value) input[type="date"]::-webkit-datetime-edit {
        opacity: 0 !important;
        color: transparent !important;
        -webkit-text-fill-color: transparent !important;
    }

    #zumi-booking-portal .zbp-date-wrap.has-value input[type="date"]::-webkit-date-and-time-value,
    #zumi-booking-portal .zbp-date-wrap.has-value input[type="date"]::-webkit-datetime-edit {
        opacity: 1 !important;
        color: #202020 !important;
        -webkit-text-fill-color: #202020 !important;
    }

    #zumi-booking-portal .zbp-field input[type="date"]::-webkit-date-and-time-value {
        min-height: 0 !important;
        height: 48px !important;
        margin: 0 !important;
        padding: 0 !important;
        line-height: 48px !important;
        text-align: left !important;
    }

    #zumi-booking-portal .zbp-field input[type="date"]::-webkit-datetime-edit {
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        line-height: 48px !important;
    }

    #zumi-booking-portal .zbp-field input[type="date"]::-webkit-calendar-picker-indicator {
        position: absolute;
        right: 10px;
        top: 50%;
        width: 22px;
        height: 22px;
        margin: 0 !important;
        padding: 0 !important;
        opacity: .92;
        transform: translateY(-50%);
    }

    #zumi-booking-portal .zbp-date-placeholder {
        position: absolute;
        z-index: 3;
        left: 13px;
        top: 50%;
        display: block;
        max-width: calc(100% - 60px);
        overflow: hidden;
        color: #777777;
        pointer-events: none;
        transform: translateY(-50%);
        font-size: 16px;
        font-weight: 400;
        line-height: 1;
        white-space: nowrap;
    }

    #zumi-booking-portal .zbp-date-wrap.has-value .zbp-date-placeholder {
        display: none;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal {
        padding: 5px;
    }

    #zumi-booking-portal .zbp-hero {
        padding: 29px 20px 31px;

        /*
         * Mobile hero treatment:
         * keep the giraffe large enough to read as a hero image, but scale the
         * landscape photo by height instead of forcing it to cover the entire
         * very-tall mobile hero. This keeps the giraffe's head, body and legs
         * visible instead of cropping down to its torso/rear.
         */
        background-size: auto clamp(440px, 128vw, 570px);
        background-position: 35% 0;
        background-color: #171717;
    }

    #zumi-booking-portal .zbp-hero::after {
        /*
         * Fade the lower edge of the photograph into the dark hero background
         * so there is no visible hard line where the image ends.
         */
        background:
            linear-gradient(
                180deg,
                rgba(10,10,10,.54) 0%,
                rgba(10,10,10,.61) 18%,
                rgba(13,13,13,.76) 30%,
                rgba(17,17,17,.94) 41%,
                #171717 52%,
                #171717 100%
            ),
            linear-gradient(
                90deg,
                rgba(10,10,10,.76) 0%,
                rgba(10,10,10,.52) 55%,
                rgba(18,12,9,.34) 100%
            ),
            radial-gradient(
                circle at 88% 8%,
                rgba(232,94,42,.20),
                transparent 34%
            );
    }

    #zumi-booking-portal .zbp-hero-grid {
        gap: 28px;
    }

    #zumi-booking-portal .zbp-hero h1 {
        font-size: clamp(48px, 15vw, 76px);
    }

    #zumi-booking-portal .zbp-form-section {
        padding: 23px 17px;
    }

    #zumi-booking-portal .zbp-fields,
    #zumi-booking-portal .zbp-choice-grid,
    #zumi-booking-portal .zbp-choice-grid--three,
    #zumi-booking-portal .zbp-choice-grid--two,
    #zumi-booking-portal .zbp-vehicle-grid,
    #zumi-booking-portal .zbp-summary-list {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-field--full {
        grid-column: auto;
    }

    #zumi-booking-portal .zbp-choice-grid--compact {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #zumi-booking-portal .zbp-form-head {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 11px;
        padding-right: 0;
    }

    #zumi-booking-portal .zbp-step-icon {
        width: 40px;
        height: 40px;
    }

    #zumi-booking-portal .zbp-step-icon svg,
    #zumi-booking-portal .zbp-step-icon img {
        width: 19px !important;
        height: 19px !important;
        max-width: 19px !important;
    }

    #zumi-booking-portal .zbp-request-number {
        width: 40px;
        height: 40px;
        margin-bottom: 13px;
    }

    #zumi-booking-portal .zbp-request-number--combo {
        width: 60px;
    }

    #zumi-booking-portal .zbp-request-number--triple {
        width: 76px;
    }

    #zumi-booking-portal .zbp-mode-intro {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-change-type {
        width: 100%;
    }

    #zumi-booking-portal .zbp-bottom-cta {
        padding: 28px 20px;
    }

    #zumi-booking-portal .zbp-bottom-actions,
    #zumi-booking-portal .zbp-bottom-actions .zbp-btn {
        width: 100%;
    }
}

@media (max-width: 430px) {
    #zumi-booking-portal .zbp-hero {
        background-size: auto clamp(455px, 132vw, 545px);
        background-position: 33% 0;
    }

    #zumi-booking-portal .zbp-choice-grid--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #zumi-booking-portal .zbp-hero-pills {
        display: grid;
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-summary-item {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-summary-item strong {
        text-align: left;
    }
}

@media (max-width: 700px) {
    #zumi-booking-portal .zbp-vehicle-card--setup {
        min-height: 0;
        padding: 17px;
    }

    #zumi-booking-portal .zbp-vehicle-card--setup strong,
    #zumi-booking-portal .zbp-vehicle-card--setup small {
        max-width: 100%;
    }
}


@media (max-width: 390px) {
    #zumi-booking-portal .zbp-hero-path {
        grid-template-columns: 60px minmax(0, 1fr);
        gap: 9px;
        padding: 10px 9px;
    }

    #zumi-booking-portal .zbp-hero-path-icon {
        width: 50px;
        height: 50px;
    }

    #zumi-booking-portal .zbp-hero-path-icon--combo {
        width: 56px;
        height: 50px;
        padding: 0 4px;
    }

    #zumi-booking-portal .zbp-hero-path-icon--triple {
        width: 58px;
        height: 50px;
        padding: 0 3px;
    }

    #zumi-booking-portal .zbp-hero-path-icon > img {
        width: 25px !important;
        height: 25px !important;
        max-width: 25px !important;
    }

    #zumi-booking-portal .zbp-hero-path-icon--combo img,
    #zumi-booking-portal .zbp-hero-path-icon--combo svg {
        width: 20px !important;
        height: 20px !important;
        max-width: 20px !important;
    }

    #zumi-booking-portal .zbp-hero-path-icon--triple img,
    #zumi-booking-portal .zbp-hero-path-icon--triple svg {
        width: 16px !important;
        height: 16px !important;
        max-width: 16px !important;
    }

    #zumi-booking-portal .zbp-hero-path b {
        font-size: 12px;
    }
}


/* =========================================================
   MOBILE / IPAD TURNSTILE WIDTH FIX
   Keep the native Cloudflare widget fully visible inside the
   sticky summary without clipping or horizontal overflow.
   ========================================================= */

#zumi-booking-portal,
#zumi-booking-portal * {
    box-sizing: border-box;
}

#zumi-booking-portal .zbp-summary,
#zumi-booking-portal .zbp-summary-actions,
#zumi-booking-portal .zbp-security-panel,
#zumi-booking-portal .zbp-turnstile-widget,
#zumi-booking-portal .zbp-turnstile-widget > div {
    min-width: 0 !important;
    max-width: 100% !important;
}

#zumi-booking-portal .zbp-security-panel,
#zumi-booking-portal .zbp-turnstile-widget {
    overflow: visible !important;
}

#zumi-booking-portal .zbp-turnstile-widget > div,
#zumi-booking-portal .zbp-turnstile-widget iframe {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-summary {
        width: 100% !important;
        max-width: 100% !important;
    }

    #zumi-booking-portal .zbp-summary-actions {
        width: 100%;
        padding-left: 10px;
        padding-right: 10px;
        overflow: visible;
    }

    #zumi-booking-portal .zbp-security-panel {
        width: 100%;
        padding: 8px;
        margin-left: 0;
        margin-right: 0;
        border-radius: 4px;
    }

    #zumi-booking-portal .zbp-turnstile-widget {
        width: 100% !important;
        min-height: 65px;
        overflow: visible !important;
    }

    #zumi-booking-portal .zbp-turnstile-status {
        padding: 0 2px;
        font-size: 8.5px;
    }

    #zumi-booking-portal #zbp-submit-request,
    #zumi-booking-portal .zbp-summary-actions .zbp-btn {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 390px) {
    #zumi-booking-portal .zbp-summary-actions {
        padding-left: 6px;
        padding-right: 6px;
    }

    #zumi-booking-portal .zbp-security-panel {
        padding: 6px 2px;
    }
}

@media (max-width: 340px) {
    #zumi-booking-portal .zbp-summary-actions {
        padding-left: 3px;
        padding-right: 3px;
    }

    #zumi-booking-portal .zbp-security-panel {
        padding-left: 0;
        padding-right: 0;
        border-left-color: transparent;
        border-right-color: transparent;
    }
}

/* =========================================================
   TRUST INTRODUCTION — PREMIUM CREDIBILITY PANEL
   ========================================================= */

#zumi-booking-portal .zbp-trust-intro {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    min-height: 0;
    padding: clamp(24px, 2.15vw, 34px);
    overflow: hidden;

    background:
        linear-gradient(
            150deg,
            rgba(18,18,18,.985) 0%,
            rgba(25,22,20,.98) 52%,
            rgba(43,27,19,.96) 100%
        );

    border:
        1px solid
        rgba(255,255,255,.075);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.025),
        0 24px 54px rgba(0,0,0,.16);
}

#zumi-booking-portal .zbp-trust-intro::before {
    content: "";
    position: absolute;
    z-index: -2;
    right: -120px;
    top: -95px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background:
        radial-gradient(
            circle,
            rgba(232,94,42,.14) 0%,
            rgba(232,94,42,.055) 35%,
            rgba(232,94,42,0) 72%
        );
    pointer-events: none;
}

#zumi-booking-portal .zbp-trust-intro::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,.018),
            transparent 28%,
            transparent 72%,
            rgba(232,94,42,.018)
        );
    pointer-events: none;
}

#zumi-booking-portal .zbp-trust-ghost-caracal {
    position: absolute;
    z-index: 0;
    right: -12%;
    bottom: -13%;
    display: block;
    width: min(72%, 360px) !important;
    max-width: none !important;
    height: auto !important;

    object-fit: contain;

    opacity: .13;

    filter:
        saturate(1.18)
        brightness(1.04)
        contrast(1.02)
        drop-shadow(0 16px 30px rgba(0,0,0,.18));

    transform:
        rotate(-3deg)
        scale(1.02);

    transform-origin: center bottom;

    pointer-events: none;
    user-select: none;
}

#zumi-booking-portal .zbp-trust-intro-top,
#zumi-booking-portal .zbp-trust-grid,
#zumi-booking-portal .zbp-trust-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 9px;

    color: #E85E2A;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size: 9.5px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: .12em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-trust-kicker::before {
    content: "";

    width: 22px;
    height: 1px;

    background:
        rgba(242,139,80,.80);
}

#zumi-booking-portal .zbp-trust-title {
    margin: 0;

    max-width: 520px;

    color: #FFFFFF;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        clamp(27px, 2.15vw, 38px);

    font-weight: 800;

    line-height: .98;

    letter-spacing: -.045em;
}

#zumi-booking-portal .zbp-trust-title span {
    color:
        rgba(255,255,255,.84);
}

#zumi-booking-portal .zbp-trust-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 0 18px;

    width: 100%;
    min-width: 0;

    margin-top: 22px;

    border-top:
        1px solid
        rgba(255,255,255,.10);
}

#zumi-booking-portal .zbp-trust-proof {
    display: grid;

    grid-template-columns:
        46px
        minmax(0, 1fr);

    gap: 11px;

    align-items: center;

    min-width: 0;

    padding:
        14px
        0;

    border-bottom:
        1px solid
        rgba(255,255,255,.075);
}

#zumi-booking-portal .zbp-trust-proof:nth-child(odd) {
    padding-right: 5px;
}

#zumi-booking-portal .zbp-trust-proof-value,
#zumi-booking-portal .zbp-trust-proof-logo,
#zumi-booking-portal .zbp-trust-proof-symbol {
    display: flex;

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

    width: 42px;
    height: 42px;

    border:
        1px solid
        rgba(232,94,42,.24);

    border-radius:
        4px;

    background:
        rgba(232,94,42,.085);
}

#zumi-booking-portal .zbp-trust-proof-value {
    gap: 1px;

    color: #FFFFFF;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size: 16px;
    font-weight: 800;
    line-height: 1;
}

#zumi-booking-portal .zbp-trust-proof-value span {
    align-self: flex-start;

    margin-top: 8px;

    color: #E85E2A;

    font-size: 8px;
    font-weight: 900;
}

#zumi-booking-portal .zbp-trust-proof-logo {
    padding: 5px;

    background:
        rgba(255,255,255,.95);
}

#zumi-booking-portal .zbp-trust-proof-logo img {
    display: block;

    width: 100% !important;
    height: 100% !important;

    object-fit: contain;
}

#zumi-booking-portal .zbp-trust-proof-symbol {
    color: #E85E2A;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size: 19px;
    font-weight: 900;
}

#zumi-booking-portal .zbp-trust-proof-symbol--local {
    font-size: 20px;
}

#zumi-booking-portal .zbp-trust-proof-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-trust-proof-copy strong {
    display: block;

    color: #FFFFFF;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        clamp(10.7px, .72vw, 12.2px);

    font-weight: 700;

    line-height: 1.28;
}

#zumi-booking-portal .zbp-trust-proof-copy small {
    display: block;

    margin-top: 3px;

    color:
        rgba(255,255,255,.47);

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        clamp(8.5px, .56vw, 9.5px);

    line-height: 1.40;
}

/* Keep the trust panel comfortably wide at desktop hero sizes. */
@media (min-width: 1181px) {
    #zumi-booking-portal .zbp-hero-grid {
        grid-template-columns:
            minmax(0, 1.22fr)
            minmax(410px, .78fr);

        gap:
            clamp(32px, 4vw, 72px);

        align-items: center;
    }
}

/* Medium layouts stack instead of compressing the credibility panel. */
@media (min-width: 761px) and (max-width: 1180px) {
    #zumi-booking-portal .zbp-hero-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    #zumi-booking-portal .zbp-trust-intro {
        max-width: 800px;
    }

    #zumi-booking-portal .zbp-trust-ghost-caracal {
        right: -3%;
        width: 250px !important;
        opacity: .09;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-trust-intro {
        padding:
            20px
            16px
            17px;
    }

    #zumi-booking-portal .zbp-trust-title {
        font-size: 26px;
    }

    #zumi-booking-portal .zbp-trust-grid {
        grid-template-columns: 1fr;

        gap: 0;

        margin-top: 17px;
    }

    #zumi-booking-portal .zbp-trust-proof {
        grid-template-columns:
            42px
            minmax(0, 1fr);

        gap: 10px;

        padding:
            11px
            0;
    }

    #zumi-booking-portal .zbp-trust-proof:nth-child(odd) {
        padding-right: 0;
    }

    #zumi-booking-portal .zbp-trust-proof-value,
    #zumi-booking-portal .zbp-trust-proof-logo,
    #zumi-booking-portal .zbp-trust-proof-symbol {
        width: 38px;
        height: 38px;

        border-radius:
            4px;
    }

    #zumi-booking-portal .zbp-trust-ghost-caracal {
        right: -16%;
        bottom: -8%;

        width: 210px !important;

        opacity: .07;
    }

    @media (max-width: 390px) {
    #zumi-booking-portal .zbp-trust-intro {
        padding-left: 14px;
        padding-right: 14px;
    }

    #zumi-booking-portal .zbp-trust-title {
        font-size: 24px;
    }

        #zumi-booking-portal .zbp-trust-proof {
        grid-template-columns:
            39px
            minmax(0, 1fr);

        gap: 9px;
    }

    #zumi-booking-portal .zbp-trust-proof-value,
    #zumi-booking-portal .zbp-trust-proof-logo,
    #zumi-booking-portal .zbp-trust-proof-symbol {
        width: 36px;
        height: 36px;
    }

    #zumi-booking-portal .zbp-trust-ghost-caracal {
        width: 185px !important;
    }

}
}

/* =========================================================
   REQUEST TYPE — CHECKBOX-STYLE SINGLE SELECTION
   ========================================================= */

#zumi-booking-portal .zbp-request-checklist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

#zumi-booking-portal .zbp-request-checkrow {
    position: relative;
    display: grid;
    grid-template-columns: 24px 54px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
    min-height: 92px;
    padding: 14px 16px;
    background: #FFFFFF;
    border: 1px solid #E2DED9;
    border-radius: 4px;
    cursor: pointer;
    transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

#zumi-booking-portal .zbp-request-checkrow:hover {
    border-color: rgba(232,94,42,.52);
    background: #FFFDFC;
    box-shadow: 0 6px 16px rgba(0,0,0,.035);
}

#zumi-booking-portal .zbp-request-checkrow.is-selected {
    border-color: #E85E2A;
    background: #FFF8F3;
    box-shadow: 0 0 0 2px rgba(232,94,42,.08);
}

#zumi-booking-portal .zbp-request-checkrow input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

#zumi-booking-portal .zbp-request-checkbox {
    position: relative;
    display: block;
    width: 22px;
    height: 22px;
    border: 2px solid #B7B0A9;
    border-radius: 4px;
    background: #FFFFFF;
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

#zumi-booking-portal .zbp-request-checkrow.is-selected .zbp-request-checkbox {
    background: #E85E2A;
    border-color: #E85E2A;
    box-shadow: 0 0 0 3px rgba(232,94,42,.12);
}

#zumi-booking-portal .zbp-request-checkrow.is-selected .zbp-request-checkbox::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 2px;
    width: 6px;
    height: 11px;
    border-right: 2px solid #FFFFFF;
    border-bottom: 2px solid #FFFFFF;
    transform: rotate(42deg);
}

#zumi-booking-portal .zbp-request-checkrow:focus-within {
    outline: 3px solid rgba(232,94,42,.20);
    outline-offset: 2px;
}

#zumi-booking-portal .zbp-request-check-icon {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    padding: 0;
    border-radius: 4px;
    background: #FFF5EE;
    border: 1px solid rgba(232,94,42,.18);
}

#zumi-booking-portal .zbp-request-check-icon img {
    display: block;
    width: 27px !important;
    height: 27px !important;
    max-width: 27px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-request-check-icon--combo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px;
    padding: 0 5px;
}

#zumi-booking-portal .zbp-request-check-icon--combo img {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
}

#zumi-booking-portal .zbp-request-check-icon--triple {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    padding: 0 4px;
}

#zumi-booking-portal .zbp-request-check-icon--triple img {
    width: 14px !important;
    height: 14px !important;
    max-width: 14px !important;
}

#zumi-booking-portal .zbp-request-check-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-request-check-copy strong {
    display: block;
    color: #222222;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: clamp(14px, 1vw, 17px);
    font-weight: 750;
    line-height: 1.2;
}

#zumi-booking-portal .zbp-request-check-copy small {
    display: block;
    margin-top: 4px;
    color: #77716B;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10.5px;
    line-height: 1.4;
}

@media (max-width: 900px) {
    #zumi-booking-portal .zbp-trust-intro {
        grid-template-columns: minmax(0, 1fr) 190px;
    }

    #zumi-booking-portal .zbp-trust-points {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-trust-caracal img {
        right: -20%;
        width: 270px !important;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-trust-intro {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 20px 17px 0;
    }

    #zumi-booking-portal .zbp-trust-intro-copy > strong {
        font-size: 22px;
    }

    #zumi-booking-portal .zbp-trust-intro-copy > p {
        font-size: 10.5px;
    }

    #zumi-booking-portal .zbp-trust-points {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 13px;
        margin-top: 16px;
    }

    #zumi-booking-portal .zbp-trust-point {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 9px;
        padding: 12px 0;
    }

    #zumi-booking-portal .zbp-trust-point-mark,
    #zumi-booking-portal .zbp-trust-point-icon,
    #zumi-booking-portal .zbp-trust-point-logo {
        width: 35px;
        height: 35px;
        border-radius: 4px;
    }

    #zumi-booking-portal .zbp-trust-point strong {
        font-size: 10.5px;
    }

    #zumi-booking-portal .zbp-trust-point small {
        font-size: 8.5px;
    }

    #zumi-booking-portal .zbp-trust-caracal {
        min-height: 145px;
        margin-top: -5px;
        overflow: hidden;
    }

    #zumi-booking-portal .zbp-trust-caracal-ring {
        right: 10%;
        bottom: -55%;
        width: 150px;
    }

    #zumi-booking-portal .zbp-trust-caracal img {
        right: -9px;
        bottom: -68px;
        width: 195px !important;
    }

    #zumi-booking-portal .zbp-request-checklist {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    #zumi-booking-portal .zbp-request-checkrow {
        grid-template-columns: 22px 48px minmax(0, 1fr);
        gap: 10px;
        min-height: 82px;
        padding: 12px 13px;
    }

    #zumi-booking-portal .zbp-request-checkbox {
        width: 20px;
        height: 20px;
    }

    #zumi-booking-portal .zbp-request-checkrow.is-selected .zbp-request-checkbox::after {
        left: 5px;
        top: 2px;
        width: 5px;
        height: 10px;
    }

    #zumi-booking-portal .zbp-request-check-icon {
        width: 44px;
        height: 44px;
    }

    #zumi-booking-portal .zbp-request-check-icon img {
        width: 24px !important;
        height: 24px !important;
        max-width: 24px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon--combo img {
        width: 16px !important;
        height: 16px !important;
        max-width: 16px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon--triple img {
        width: 12px !important;
        height: 12px !important;
        max-width: 12px !important;
    }

    #zumi-booking-portal .zbp-request-check-copy strong {
        font-size: 13px;
    }

    #zumi-booking-portal .zbp-request-check-copy small {
        font-size: 9.5px;
    }
}

@media (max-width: 430px) {
    #zumi-booking-portal .zbp-trust-points {
        grid-template-columns: 1fr;
        gap: 0;
    }

    #zumi-booking-portal .zbp-trust-caracal {
        min-height: 125px;
    }

    #zumi-booking-portal .zbp-trust-caracal img {
        width: 170px !important;
        bottom: -58px;
    }

    #zumi-booking-portal .zbp-request-checkrow {
        grid-template-columns: 20px 42px minmax(0, 1fr);
        gap: 9px;
        padding: 11px;
    }

    #zumi-booking-portal .zbp-request-check-icon {
        width: 40px;
        height: 40px;
        border-radius: 4px;
    }

    #zumi-booking-portal .zbp-request-check-icon img {
        width: 21px !important;
        height: 21px !important;
        max-width: 21px !important;
    }

    #zumi-booking-portal .zbp-request-check-copy strong {
        font-size: 12.5px;
    }

    #zumi-booking-portal .zbp-request-check-copy small {
        font-size: 9px;
    }
}

/* =========================================================
   HERO TRUST REFINEMENT
   ========================================================= */

#zumi-booking-portal .zbp-hero-main {
    position: relative;
    z-index: 1;
    min-width: 0;
}

#zumi-booking-portal .zbp-hero-main > .zbp-eyebrow,
#zumi-booking-portal .zbp-hero-main > h1,
#zumi-booking-portal .zbp-hero-main > .zbp-hero-copy,
#zumi-booking-portal .zbp-hero-main > .zbp-hero-pills {
    position: relative;
    z-index: 2;
}

#zumi-booking-portal .zbp-hero-ghost-caracal {
    position: absolute;
    z-index: 1;
    right: 3%;
    top: 47%;
    display: block;
    width: clamp(180px, 20vw, 320px) !important;
    max-width: 44% !important;
    height: auto !important;
    object-fit: contain;
    opacity: .16;
    filter:
        saturate(1.16)
        brightness(1.04)
        contrast(1.02)
        drop-shadow(0 14px 26px rgba(0,0,0,.18));
    transform: translateY(-20%) rotate(-4deg);
    pointer-events: none;
    user-select: none;
}

/* Let the giraffe background remain visible through the trust panel. */
#zumi-booking-portal .zbp-trust-intro {
    background:
        linear-gradient(
            150deg,
            rgba(15,15,15,.70) 0%,
            rgba(23,20,18,.64) 54%,
            rgba(45,28,19,.58) 100%
        ) !important;

    border-color:
        rgba(255,255,255,.12) !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.035),
        0 18px 42px rgba(0,0,0,.12) !important;
}

/* The Caracal now belongs to the main hero rather than this panel. */
#zumi-booking-portal .zbp-trust-ghost-caracal {
    display: none !important;
}

/* Cleaner typography — less blocky and less aggressively bold. */
#zumi-booking-portal .zbp-trust-title {
    font-family:
        "Roboto", Arial, Helvetica, sans-serif !important;

    font-size:
        clamp(25px, 2vw, 35px) !important;

    font-weight:
        650 !important;

    line-height:
        1.04 !important;

    letter-spacing:
        -.028em !important;
}

#zumi-booking-portal .zbp-trust-title span {
    color:
        rgba(255,255,255,.82) !important;

    font-weight:
        550 !important;
}

#zumi-booking-portal .zbp-trust-proof-copy strong {
    font-family:
        "Roboto", Arial, Helvetica, sans-serif !important;

    font-size:
        clamp(11px, .72vw, 12.5px) !important;

    font-weight:
        600 !important;

    line-height:
        1.32 !important;

    letter-spacing:
        0 !important;

    text-transform:
        none !important;
}

#zumi-booking-portal .zbp-trust-proof-copy small {
    font-family:
        "Roboto", Arial, Helvetica, sans-serif !important;

    font-size:
        clamp(9px, .58vw, 10px) !important;

    font-weight:
        400 !important;

    line-height:
        1.45 !important;

    letter-spacing:
        0 !important;

    text-transform:
        none !important;
}

#zumi-booking-portal .zbp-trust-proof-value {
    font-weight:
        700 !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
    #zumi-booking-portal .zbp-hero-ghost-caracal {
        right: 4%;
        top: 43%;
        width: 250px !important;
        max-width: 32% !important;
        opacity: .12;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-hero-ghost-caracal {
        right: -4%;
        top: 49%;
        width: 175px !important;
        max-width: 43% !important;
        opacity: .10;
    }

    #zumi-booking-portal .zbp-trust-intro {
        background:
            linear-gradient(
                150deg,
                rgba(16,16,16,.76),
                rgba(41,27,20,.68)
            ) !important;

    }

    #zumi-booking-portal .zbp-trust-title {
        font-size:
            25px !important;
    }
}

@media (max-width: 390px) {
    #zumi-booking-portal .zbp-hero-ghost-caracal {
        right: -9%;
        width: 150px !important;
        opacity: .09;
    }
}


/* =========================================================
   TRUST PANEL — TWO LARGE PRIMARY PROOFS
   ========================================================= */

#zumi-booking-portal .zbp-trust-grid {
    grid-template-columns:
        repeat(2, minmax(0, 1fr)) !important;

    gap:
        clamp(15px, 1.5vw, 24px) !important;

    margin-top:
        clamp(20px, 1.6vw, 27px) !important;

    border-top:
        1px solid rgba(255,255,255,.14) !important;
}

#zumi-booking-portal .zbp-trust-proof--primary {
    position: relative;

    grid-template-columns:
        clamp(70px, 4.8vw, 88px)
        minmax(0, 1fr) !important;

    gap:
        clamp(15px, 1.1vw, 20px) !important;

    align-items: center;

    min-height:
        clamp(130px, 9vw, 164px);

    padding:
        clamp(19px, 1.5vw, 27px)
        clamp(16px, 1.25vw, 22px) !important;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.065),
            rgba(232,94,42,.075)
        );

    border:
        1px solid rgba(255,255,255,.11) !important;

    border-radius:
        4px;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.035),
        0 14px 32px rgba(0,0,0,.14);

    overflow: hidden;
}

#zumi-booking-portal .zbp-trust-proof--primary::before {
    content: "";

    position: absolute;

    left: 0;
    top: 0;
    bottom: 0;

    width: 3px;

    background:
        linear-gradient(
            180deg,
            #E85E2A,
            #E85E2A
        );
}

#zumi-booking-portal .zbp-trust-proof--primary::after {
    content: "";

    position: absolute;

    right: -54px;
    bottom: -60px;

    width: 125px;
    height: 125px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(232,94,42,.18),
            rgba(232,94,42,0) 69%
        );

    pointer-events: none;
}

#zumi-booking-portal .zbp-trust-proof--primary:nth-child(odd) {
    padding-right:
        clamp(16px, 1.25vw, 22px) !important;
}

#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value,
#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-logo {
    width:
        clamp(68px, 4.6vw, 84px) !important;

    height:
        clamp(68px, 4.6vw, 84px) !important;

    border-radius:
        4px !important;

    border:
        1px solid rgba(232,94,42,.42) !important;

    box-shadow:
        0 9px 24px rgba(0,0,0,.18);
}

#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value {
    background:
        linear-gradient(
            145deg,
            rgba(232,94,42,.24),
            rgba(232,94,42,.11)
        ) !important;

    color: #FFFFFF;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        clamp(26px, 1.9vw, 34px) !important;

    font-weight:
        800 !important;

    letter-spacing:
        -.05em;
}

#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value span {
    margin-top:
        9px !important;

    color:
        #E85E2A !important;

    font-size:
        clamp(11px, .78vw, 14px) !important;
}

#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-logo {
    padding:
        clamp(3px, .28vw, 5px) !important;

    background:
        rgba(255,255,255,.98) !important;
}

#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy strong {
    font-family:
        "Roboto", Arial, Helvetica, sans-serif !important;

    font-size:
        clamp(16px, 1.12vw, 20px) !important;

    font-weight:
        700 !important;

    line-height:
        1.12 !important;

    letter-spacing:
        -.022em !important;
}

#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy small {
    display: block;

    max-width:
        350px;

    margin-top:
        7px !important;

    color:
        rgba(255,255,255,.76) !important;

    font-size:
        clamp(12px, .82vw, 13.8px) !important;

    font-weight:
        400 !important;

    line-height:
        1.48 !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
    #zumi-booking-portal .zbp-trust-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary {
        min-height:
            138px;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-trust-grid {
        grid-template-columns:
            1fr !important;

        gap:
            11px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary {
        grid-template-columns:
            66px
            minmax(0, 1fr) !important;

        min-height:
            112px;

        padding:
            16px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value,
    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-logo {
        width:
            62px !important;

        height:
            62px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy strong {
        font-size:
            14.5px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy small {
        font-size:
            11.3px !important;
    }
}

@media (max-width: 390px) {
    #zumi-booking-portal .zbp-trust-proof--primary {
        grid-template-columns:
            58px
            minmax(0, 1fr) !important;

        gap:
            11px !important;

        padding:
            14px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value,
    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-logo {
        width:
            54px !important;

        height:
            54px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy strong {
        font-size:
            13.4px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy small {
        font-size:
            10.8px !important;
    }
}


/* =========================================================
   TRUST PANEL — GIRAFFE BACKGROUND VISIBLE
   ========================================================= */

/* Caracal removed entirely. */
#zumi-booking-portal .zbp-hero-ghost-caracal,
#zumi-booking-portal .zbp-trust-ghost-caracal {
    display: none !important;
}

/* Make the credibility panel substantially more transparent so the
   hero photography, especially the giraffe, remains visible behind it. */
#zumi-booking-portal .zbp-trust-intro {
    background:
        linear-gradient(
            150deg,
            rgba(12,12,12,.52) 0%,
            rgba(20,18,17,.46) 55%,
            rgba(39,24,17,.40) 100%
        ) !important;

    border-color:
        rgba(255,255,255,.14) !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.035),
        0 18px 40px rgba(0,0,0,.10) !important;
}

/* Reduce the orange haze that could obscure the photograph. */
#zumi-booking-portal .zbp-trust-intro::before {
    opacity: .42 !important;
}

#zumi-booking-portal .zbp-trust-intro::after {
    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,.01),
            transparent 30%,
            transparent 78%,
            rgba(232,94,42,.008)
        ) !important;
}

/* Keep the two proof cards readable while letting more of the
   photograph show through around and behind them. */
#zumi-booking-portal .zbp-trust-proof--primary {
    background:
        linear-gradient(
            145deg,
            rgba(18,18,18,.50),
            rgba(34,23,18,.42)
        ) !important;

    border-color:
        rgba(255,255,255,.12) !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.03),
        0 10px 24px rgba(0,0,0,.10) !important;
}

/* Slightly increase contrast of the text now that the panel is more transparent. */
#zumi-booking-portal .zbp-trust-title,
#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy strong {
    text-shadow:
        0 1px 12px rgba(0,0,0,.28);
}

#zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy small {
    color:
        rgba(255,255,255,.72) !important;
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-trust-intro {
        background:
            linear-gradient(
                150deg,
                rgba(13,13,13,.60),
                rgba(38,25,18,.50)
            ) !important;

    }

    #zumi-booking-portal .zbp-trust-proof--primary {
        background:
            linear-gradient(
                145deg,
                rgba(18,18,18,.58),
                rgba(36,24,18,.48)
            ) !important;
    }
}


/* =========================================================
   DIRECT COMMUNICATION / TRIP CONFIGURATOR
   ========================================================= */

#zumi-booking-portal .zbp-direct-contact {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(230px, .85fr);

    gap:
        clamp(16px, 1.5vw, 24px);

    align-items: center;

    margin-top:
        clamp(18px, 1.5vw, 24px);

    padding-top:
        clamp(17px, 1.35vw, 22px);

    /* Match the breathing room above the contact area so the
       WhatsApp / Email buttons never sit against the panel edge. */
    padding-bottom:
        clamp(17px, 1.35vw, 22px);

    border-top:
        1px solid rgba(255,255,255,.13);
}

#zumi-booking-portal .zbp-direct-contact-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-direct-contact-kicker {
    display: block;

    margin-bottom: 5px;

    color: #E85E2A;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size: 9px;
    font-weight: 700;

    line-height: 1.2;

    letter-spacing: .10em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-direct-contact-copy > strong {
    display: block;

    color: #FFFFFF;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        clamp(14px, .95vw, 17px);

    font-weight: 600;

    line-height: 1.25;

    letter-spacing: -.015em;
}

#zumi-booking-portal .zbp-direct-contact-copy > p {
    max-width: 620px;

    margin:
        8px
        0
        0;

    color:
        rgba(255,255,255,.78);

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        clamp(11.5px, .76vw, 13px);

    font-weight: 400;

    line-height: 1.52;
}

#zumi-booking-portal .zbp-response-time {
    color: #FFFFFF;
    font-weight: 700;
    white-space: nowrap;
    border-bottom: 1px solid rgba(242,139,80,.82);
    padding-bottom: 1px;
}

#zumi-booking-portal .zbp-zoom-note {
    display: flex;
    align-items: center;
    gap: 9px;
    max-width: 620px;
    margin-top: 9px;
    color: rgba(255,255,255,.72);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: clamp(11.5px, .76vw, 13px);
    line-height: 1.45;
}

#zumi-booking-portal .zbp-zoom-note img {
    display: block;
    width: 42px !important;
    height: 22px !important;
    max-width: 42px !important;
    flex: 0 0 42px;
    object-fit: contain;
    padding: 2px 4px;
    background: rgba(255,255,255,.94);
    border-radius: 4px;
}

#zumi-booking-portal .zbp-direct-contact-actions {
    display: grid;

    grid-template-columns:
        1fr;

    gap: 7px;

    min-width: 0;
}

#zumi-booking-portal .zbp-direct-contact-action {
    display: grid;

    grid-template-columns:
        36px
        minmax(0, 1fr);

    gap: 10px;

    align-items: center;

    width: 100%;
    min-width: 0;

    padding:
        9px
        10px;

    color:
        #FFFFFF;

    text-decoration:
        none !important;

    background:
        rgba(16,16,16,.34);

    border:
        1px solid
        rgba(255,255,255,.12);

    border-radius:
        4px;

    transition:
        border-color 160ms ease,
        background-color 160ms ease,
        transform 160ms ease;
}

#zumi-booking-portal .zbp-direct-contact-action:hover {
    border-color:
        rgba(232,94,42,.52);

    background:
        rgba(35,25,20,.56);

    transform:
        translateY(-1px);
}

#zumi-booking-portal .zbp-direct-contact-action-icon,
#zumi-booking-portal .zbp-direct-contact-zoom-logo {
    display: flex;

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

    width: 34px;
    height: 34px;

    border-radius:
        4px;

    background:
        rgba(232,94,42,.12);

    border:
        1px solid
        rgba(232,94,42,.20);

    color:
        #E85E2A;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        16px;

    font-weight:
        700;
}

#zumi-booking-portal .zbp-direct-contact-action-icon--whatsapp {
    font-size: 14px;
}

#zumi-booking-portal .zbp-direct-contact-zoom-logo {
    padding: 5px;

    background:
        rgba(255,255,255,.94);

    border-color:
        rgba(255,255,255,.32);
}

#zumi-booking-portal .zbp-direct-contact-zoom-logo img {
    display: block;

    width: 100% !important;
    height: 100% !important;

    object-fit: contain;
}

#zumi-booking-portal .zbp-direct-contact-action > span:last-child {
    min-width: 0;
}

#zumi-booking-portal .zbp-direct-contact-action strong {
    display: block;

    color: #FFFFFF;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size: 10.5px;
    font-weight: 600;

    line-height: 1.25;
}

#zumi-booking-portal .zbp-direct-contact-action small {
    display: block;

    margin-top: 2px;

    color:
        rgba(255,255,255,.62);

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size: 9.5px;

    line-height: 1.35;
}

@media (max-width: 1180px) {
    #zumi-booking-portal .zbp-direct-contact {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(230px, 300px);
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-direct-contact {
        grid-template-columns: 1fr;

        gap: 13px;

        margin-top: 16px;
        padding-top: 15px;
    }

    #zumi-booking-portal .zbp-direct-contact-copy > strong {
        font-size: 14px;
    }

    #zumi-booking-portal .zbp-direct-contact-copy > p {
        font-size: 11.2px;
    }

    #zumi-booking-portal .zbp-direct-contact-actions {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap: 6px;
    }

    #zumi-booking-portal .zbp-direct-contact-action {
        grid-template-columns: 1fr;

        gap: 6px;

        justify-items: center;

        padding: 9px 6px;

        text-align: center;
    }

    #zumi-booking-portal .zbp-direct-contact-action strong {
        font-size: 9px;
    }

    #zumi-booking-portal .zbp-direct-contact-action small {
        font-size: 8.8px;
    }
}

@media (max-width: 430px) {
    #zumi-booking-portal .zbp-direct-contact-actions {
        grid-template-columns: 1fr;
    }

    #zumi-booking-portal .zbp-direct-contact-action {
        grid-template-columns:
            34px
            minmax(0, 1fr);

        justify-items: stretch;

        gap: 9px;

        padding: 9px 10px;

        text-align: left;
    }

    #zumi-booking-portal .zbp-direct-contact-action strong {
        font-size: 10px;
    }

    #zumi-booking-portal .zbp-direct-contact-action small {
        font-size: 9.2px;
    }
}


/* =========================================================
   REQUEST TYPE — MODERN SINGLE-SELECTION UI
   ========================================================= */

/* Retire the old checkbox/checkmark UI. */
#zumi-booking-portal .zbp-request-checkbox {
    display: none !important;
}

#zumi-booking-portal .zbp-request-checkrow {
    position: relative;

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

    gap:
        14px !important;

    align-items:
        center;

    min-height:
        96px;

    padding:
        14px
        16px !important;

    background:
        rgba(255,255,255,.95);

    border:
        1px solid
        #E2DED9;

    box-shadow:
        none;

    overflow:
        hidden;
}

#zumi-booking-portal .zbp-request-checkrow::before {
    content: "";

    position:
        absolute;

    left: 0;
    top: 13px;
    bottom: 13px;

    width: 3px;

    border-radius:
        0 4px 4px 0;

    background:
        transparent;

    transition:
        background-color 160ms ease;
}

#zumi-booking-portal .zbp-request-checkrow:hover {
    border-color:
        rgba(232,94,42,.42);

    background:
        #FFFCFA;

    box-shadow:
        0 7px 18px rgba(0,0,0,.035);
}

#zumi-booking-portal .zbp-request-checkrow.is-selected {
    border-color:
        rgba(232,94,42,.72);

    background:
        linear-gradient(
            90deg,
            rgba(232,94,42,.055),
            rgba(255,255,255,.985) 30%
        );

    box-shadow:
        0 0 0 2px rgba(232,94,42,.055);
}

#zumi-booking-portal .zbp-request-checkrow.is-selected::before {
    background:
        #E85E2A;
}

/* Modern radio-dot indicator: no checkmark. */
#zumi-booking-portal .zbp-request-radio {
    position:
        relative;

    display:
        block;

    width:
        18px;

    height:
        18px;

    justify-self:
        end;

    border:
        1.5px solid
        #B9B2AB;

    border-radius:
        50%;

    background:
        #FFFFFF;

    transition:
        border-color 150ms ease,
        box-shadow 150ms ease;
}

#zumi-booking-portal .zbp-request-radio::after {
    content: "";

    position:
        absolute;

    left: 50%;
    top: 50%;

    width: 8px;
    height: 8px;

    border-radius:
        50%;

    background:
        #E85E2A;

    transform:
        translate(-50%, -50%)
        scale(0);

    transition:
        transform 150ms ease;
}

#zumi-booking-portal .zbp-request-checkrow.is-selected .zbp-request-radio {
    border-color:
        #E85E2A;

    box-shadow:
        0 0 0 3px rgba(232,94,42,.10);
}

#zumi-booking-portal .zbp-request-checkrow.is-selected .zbp-request-radio::after {
    transform:
        translate(-50%, -50%)
        scale(1);
}

/* Cleaner service icons. */
#zumi-booking-portal .zbp-request-check-icon {
    width:
        56px !important;

    height:
        56px !important;

    border-radius:
        4px !important;

    background:
        linear-gradient(
            145deg,
            rgba(232,94,42,.11),
            rgba(232,94,42,.045)
        ) !important;

    border:
        1px solid
        rgba(232,94,42,.20) !important;
}

#zumi-booking-portal .zbp-request-check-icon img {
    display: block;

    width:
        30px !important;

    height:
        30px !important;

    max-width:
        30px !important;

    object-fit:
        contain;

    /* Normalize black SVG artwork to Zumi orange. */
    filter:
        invert(49%)
        sepia(89%)
        saturate(2099%)
        hue-rotate(347deg)
        brightness(97%)
        contrast(88%);
}

#zumi-booking-portal .zbp-request-check-icon--combo {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        4px !important;

    padding:
        0 7px !important;
}

#zumi-booking-portal .zbp-request-check-icon--combo img {
    width:
        20px !important;

    height:
        20px !important;

    max-width:
        20px !important;
}

#zumi-booking-portal .zbp-request-check-icon--triple {
    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        3px !important;

    padding:
        0 6px !important;
}

#zumi-booking-portal .zbp-request-check-icon--triple img {
    width:
        16px !important;

    height:
        16px !important;

    max-width:
        16px !important;
}

#zumi-booking-portal .zbp-request-check-copy strong {
    font-size:
        clamp(14px, 1vw, 17px);

    line-height:
        1.18;
}

#zumi-booking-portal .zbp-request-check-copy small {
    margin-top:
        5px;

    font-size:
        10.5px;

    line-height:
        1.42;
}

/* =========================================================
   DIRECT CONTACT — REAL EMAIL / WHATSAPP ICONS
   ========================================================= */

#zumi-booking-portal .zbp-direct-contact-action-icon--image {
    padding:
        6px;

    background:
        rgba(255,255,255,.96);

    border-color:
        rgba(255,255,255,.30);
}

#zumi-booking-portal .zbp-direct-contact-action-icon--image img {
    display:
        block;

    width:
        100% !important;

    height:
        100% !important;

    max-width:
        100% !important;

    object-fit:
        contain;
}

#zumi-booking-portal .zbp-direct-contact-action-icon--whatsapp {
    background:
        rgba(255,255,255,.98);
}

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

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-request-checkrow {
        grid-template-columns:
            50px
            minmax(0, 1fr)
            18px !important;

        gap:
            11px !important;

        min-height:
            88px;

        padding:
            12px 13px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon {
        width:
            48px !important;

        height:
            48px !important;

        border-radius:
            4px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon img {
        width:
            26px !important;

        height:
            26px !important;

        max-width:
            26px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon--combo img {
        width:
            18px !important;

        height:
            18px !important;

        max-width:
            18px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon--triple img {
        width:
            14px !important;

        height:
            14px !important;

        max-width:
            14px !important;
    }

    #zumi-booking-portal .zbp-request-check-copy strong {
        font-size:
            13px;
    }

    #zumi-booking-portal .zbp-request-check-copy small {
        font-size:
            9.5px;
    }

    #zumi-booking-portal .zbp-request-radio {
        width:
            17px;

        height:
            17px;
    }

    #zumi-booking-portal .zbp-request-radio::after {
        width:
            7px;

        height:
            7px;
    }
}

@media (max-width: 390px) {
    #zumi-booking-portal .zbp-request-checkrow {
        grid-template-columns:
            44px
            minmax(0, 1fr)
            17px !important;

        gap:
            9px !important;

        padding:
            11px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon {
        width:
            42px !important;

        height:
            42px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon img {
        width:
            23px !important;

        height:
            23px !important;

        max-width:
            23px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon--combo img {
        width:
            16px !important;

        height:
            16px !important;

        max-width:
            16px !important;
    }

    #zumi-booking-portal .zbp-request-check-icon--triple img {
        width:
            12px !important;

        height:
            12px !important;

        max-width:
            12px !important;
    }

    #zumi-booking-portal .zbp-request-check-copy strong {
        font-size:
            12.4px;
    }

    #zumi-booking-portal .zbp-request-check-copy small {
        font-size:
            9px;
    }
}


/* =========================================================
   TRUST PANEL — WIDTH-AWARE RESPONSIVE FIX
   Prevents the panel from becoming squeezed at intermediate
   Elementor / tablet / browser widths.
   ========================================================= */

#zumi-booking-portal .zbp-trust-intro {
    container-type: inline-size;
    container-name: zumi-trust-panel;
    min-width: 0;
}

/* Never allow the trust panel content to create its own horizontal squeeze. */
#zumi-booking-portal .zbp-trust-grid,
#zumi-booking-portal .zbp-trust-proof,
#zumi-booking-portal .zbp-trust-proof-copy,
#zumi-booking-portal .zbp-direct-contact,
#zumi-booking-portal .zbp-direct-contact-copy,
#zumi-booking-portal .zbp-direct-contact-actions {
    min-width: 0;
}

/* At comfortable panel widths, keep the strong two-column proof layout. */
@container zumi-trust-panel (min-width: 700px) {
    #zumi-booking-portal .zbp-trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #zumi-booking-portal .zbp-direct-contact {
        grid-template-columns:
            minmax(0, 1.08fr)
            minmax(250px, .92fr) !important;
    }
}

/* The important fix: once the panel itself becomes narrow,
   stack internal content instead of squeezing text into skinny columns. */
@container zumi-trust-panel (max-width: 699px) {
    #zumi-booking-portal .zbp-trust-title {
        max-width: 100%;
        font-size: clamp(25px, 7cqw, 34px) !important;
        line-height: 1.02 !important;
    }

    #zumi-booking-portal .zbp-trust-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-top: 18px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary {
        grid-template-columns:
            clamp(64px, 17cqw, 82px)
            minmax(0, 1fr) !important;

        min-height: 0 !important;
        padding: 16px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value,
    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-logo {
        width: clamp(60px, 16cqw, 76px) !important;
        height: clamp(60px, 16cqw, 76px) !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy strong {
        font-size: clamp(14px, 3.9cqw, 18px) !important;
        line-height: 1.18 !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy small {
        max-width: none !important;
        font-size: clamp(11.2px, 3cqw, 12.8px) !important;
        line-height: 1.45 !important;
    }

    #zumi-booking-portal .zbp-direct-contact {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-copy > strong {
        max-width: 440px;
        font-size: clamp(14px, 4cqw, 17px) !important;
    }

    #zumi-booking-portal .zbp-direct-contact-copy > p {
        max-width: none !important;
        font-size: clamp(11px, 3cqw, 12.4px) !important;
        line-height: 1.5 !important;
    }

    #zumi-booking-portal .zbp-direct-contact-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action {
        grid-template-columns: 1fr !important;
        justify-items: center;
        gap: 6px !important;
        padding: 10px 7px !important;
        text-align: center;
    }

    #zumi-booking-portal .zbp-direct-contact-action strong {
        font-size: 9.5px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action small {
        font-size: 8.8px !important;
    }
}

/* Very narrow panel: keep everything comfortably readable. */
@container zumi-trust-panel (max-width: 440px) {
    #zumi-booking-portal .zbp-trust-intro {
        padding: 18px 15px !important;
    }

    #zumi-booking-portal .zbp-trust-grid {
        gap: 8px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary {
        grid-template-columns: 58px minmax(0, 1fr) !important;
        gap: 11px !important;
        padding: 14px !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value,
    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-logo {
        width: 54px !important;
        height: 54px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-actions {
        grid-template-columns: 1fr !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action {
        grid-template-columns: 36px minmax(0, 1fr) !important;
        justify-items: stretch;
        text-align: left;
        padding: 9px 10px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action strong {
        font-size: 10px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action small {
        font-size: 9.1px !important;
    }
}

/* Fallback for environments where container queries are unavailable.
   This also catches Elementor editor widths that do not match normal
   browser breakpoints cleanly. */
@media (min-width: 761px) and (max-width: 1320px) {
    #zumi-booking-portal .zbp-hero-grid {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    #zumi-booking-portal .zbp-trust-intro {
        width: 100% !important;
        max-width: 860px !important;
        justify-self: end;
    }
}


/* =========================================================
   VEHICLE-PAGE ENTRY / PRESELECTED VEHICLE
   ========================================================= */

#zumi-booking-portal .zbp-entry-vehicle-wrap {
    padding-top: 14px;
    padding-bottom: 0;
}

#zumi-booking-portal .zbp-entry-vehicle-wrap[hidden] {
    display: none !important;
}

#zumi-booking-portal .zbp-entry-vehicle {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    width: 100%;
    min-width: 0;
    padding: 12px 14px;
    background:
        linear-gradient(
            110deg,
            rgba(232,94,42,.075),
            rgba(255,255,255,.985) 38%,
            rgba(255,255,255,.985)
        );
    border: 1px solid rgba(232,94,42,.24);
    border-radius: 4px;
    box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

#zumi-booking-portal .zbp-entry-vehicle-image {
    width: 96px;
    height: 66px;
    overflow: hidden;
    border-radius: 4px;
    background: #EFECE8;
}

#zumi-booking-portal .zbp-entry-vehicle-image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
}

#zumi-booking-portal .zbp-entry-vehicle-copy {
    min-width: 0;
}

#zumi-booking-portal .zbp-entry-vehicle-kicker {
    display: block;
    margin-bottom: 3px;
    color: #E85E2A;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 8.5px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: .10em;
    text-transform: uppercase;
}

#zumi-booking-portal .zbp-entry-vehicle-copy strong {
    display: block;
    color: #222222;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: clamp(13px, .95vw, 16px);
    font-weight: 700;
    line-height: 1.22;
}

#zumi-booking-portal .zbp-entry-vehicle-copy small {
    display: block;
    margin-top: 3px;
    color: #77716B;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.5px;
    line-height: 1.4;
}

#zumi-booking-portal .zbp-entry-vehicle-change {
    min-width: 116px;
    min-height: 40px;
    padding: 8px 13px;
    color: #2B2B2B;
    background: #FFFFFF;
    border: 1px solid #D8D3CE;
    border-radius: 4px;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9.5px;
    font-weight: 700;
    cursor: pointer;
    transition:
        color 150ms ease,
        border-color 150ms ease,
        background-color 150ms ease;
}

#zumi-booking-portal .zbp-entry-vehicle-change:hover {
    color: #FFFFFF;
    background: #E85E2A;
    border-color: #E85E2A;
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-entry-vehicle-wrap {
        padding-top: 10px;
    }

    #zumi-booking-portal .zbp-entry-vehicle {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 11px;
        padding: 10px;
    }

    #zumi-booking-portal .zbp-entry-vehicle-image {
        width: 72px;
        height: 54px;
    }

    #zumi-booking-portal .zbp-entry-vehicle-change {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
        min-height: 38px;
    }
}


/* =========================================================
   COMPACT DIRECT-CONTACT MESSAGE
   ========================================================= */

#zumi-booking-portal .zbp-direct-contact--compact {
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(230px, .85fr) !important;

    gap:
        clamp(14px, 1.25vw, 20px) !important;
}

#zumi-booking-portal .zbp-direct-contact--compact
.zbp-direct-contact-copy > p {
    max-width: 610px;
}

#zumi-booking-portal .zbp-direct-contact--compact
.zbp-direct-contact-copy > p strong {
    color: #FFFFFF;
    font-weight: 700;
}

#zumi-booking-portal .zbp-direct-contact--compact
.zbp-direct-contact-copy > p strong.zbp-response-time {
    color: #FFFFFF;
    font-weight: 700;
}

#zumi-booking-portal .zbp-direct-contact-actions--two {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
}

#zumi-booking-portal .zbp-direct-contact-actions--two
.zbp-direct-contact-action {
    min-height: 54px;
}

/* =========================================================
   ZOOM MEETING REQUEST FIELD
   ========================================================= */

#zumi-booking-portal .zbp-field--zoom {
    position: relative;
}

#zumi-booking-portal .zbp-group-label--with-logo {
    display: flex;
    align-items: center;
    gap: 7px;
}

#zumi-booking-portal .zbp-group-label--with-logo img {
    display: block;
    width: 34px !important;
    height: 18px !important;
    max-width: 34px !important;
    object-fit: contain;
}

#zumi-booking-portal .zbp-field-help {
    display: block;
    margin-top: 7px;
    color: #847D76;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 9px;
    line-height: 1.4;
}

@container zumi-trust-panel (max-width: 699px) {
    #zumi-booking-portal .zbp-direct-contact--compact {
        grid-template-columns: 1fr !important;
    }

    #zumi-booking-portal .zbp-direct-contact-actions--two {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #zumi-booking-portal .zbp-direct-contact-actions--two
    .zbp-direct-contact-action {
        grid-template-columns: 34px minmax(0, 1fr) !important;
        justify-items: stretch;
        text-align: left;
        padding: 9px 10px !important;
    }
}

@container zumi-trust-panel (max-width: 440px) {
    #zumi-booking-portal .zbp-direct-contact-actions--two {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-direct-contact--compact {
        grid-template-columns: 1fr !important;
    }

    #zumi-booking-portal .zbp-direct-contact-actions--two {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #zumi-booking-portal .zbp-direct-contact-actions--two
    .zbp-direct-contact-action {
        grid-template-columns: 34px minmax(0, 1fr) !important;
        justify-items: stretch;
        text-align: left;
        padding: 9px 10px !important;
    }
}

@media (max-width: 430px) {
    #zumi-booking-portal .zbp-direct-contact-actions--two {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   CONTACT DETAILS — COMPACT MOBILE CHOICES
   ========================================================= */

@media (max-width: 760px) {
    #zumi-booking-portal #zbp-contact-section .zbp-choice-grid--two {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap:
            7px !important;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-choice {
        min-height:
            40px !important;

        padding:
            7px 9px !important;

        border-radius:
            4px !important;

        font-size:
            10.5px !important;

        line-height:
            1.15 !important;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-choice.is-selected {
        box-shadow:
            0 5px 12px rgba(0,0,0,.08) !important;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-choice.is-selected::after {
        top:
            5px;

        right:
            5px;

        width:
            5px;

        height:
            5px;

        box-shadow:
            0 0 0 2px rgba(232,94,42,.15);
    }

    #zumi-booking-portal #zbp-contact-section .zbp-group-label {
        margin-bottom:
            6px;

        font-size:
            10px;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-group-label--with-logo {
        gap:
            6px;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-group-label--with-logo img {
        width:
            30px !important;

        height:
            16px !important;

        max-width:
            30px !important;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-field-help {
        margin-top:
            5px;

        font-size:
            8.5px;

        line-height:
            1.35;
    }
}

@media (max-width: 390px) {
    #zumi-booking-portal #zbp-contact-section .zbp-choice {
        min-height:
            38px !important;

        padding:
            6px 7px !important;

        font-size:
            10px !important;
    }
}

/* =========================================================
   BOTTOM CTA — EMAIL + WHATSAPP CONTACT ACTIONS
   ========================================================= */

#zumi-booking-portal .zbp-bottom-actions--contact {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(155px, 1fr));

    gap:
        8px;

    width:
        min(100%, 390px);
}

#zumi-booking-portal .zbp-bottom-contact {
    display: grid;
    grid-template-columns:
        38px
        minmax(0, 1fr);

    gap:
        10px;

    align-items:
        center;

    min-width: 0;

    padding:
        10px 12px;

    color:
        #FFFFFF;

    text-decoration:
        none !important;

    background:
        rgba(255,255,255,.055);

    border:
        1px solid
        rgba(255,255,255,.15);

    border-radius:
        4px;

    transition:
        border-color 150ms ease,
        background-color 150ms ease,
        transform 150ms ease;
}

#zumi-booking-portal .zbp-bottom-contact:hover {
    color:
        #FFFFFF;

    background:
        rgba(255,255,255,.095);

    border-color:
        rgba(232,94,42,.62);

    transform:
        translateY(-1px);
}

#zumi-booking-portal .zbp-bottom-contact-icon {
    display: flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        36px;

    height:
        36px;

    padding:
        6px;

    border-radius:
        4px;

    background:
        rgba(255,255,255,.96);
}

#zumi-booking-portal .zbp-bottom-contact-icon img {
    display:
        block;

    width:
        100% !important;

    height:
        100% !important;

    max-width:
        100% !important;

    object-fit:
        contain;
}

#zumi-booking-portal .zbp-bottom-contact > span:last-child {
    min-width:
        0;
}

#zumi-booking-portal .zbp-bottom-contact strong {
    display:
        block;

    color:
        #FFFFFF;

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        13px;

    font-weight:
        700;

    line-height:
        1.2;
}

#zumi-booking-portal .zbp-bottom-contact small {
    display:
        block;

    margin-top:
        2px;

    color:
        rgba(255,255,255,.52);

    font-family:
        "Roboto", Arial, Helvetica, sans-serif;

    font-size:
        10.5px;

    line-height:
        1.25;
}

@media (max-width: 1050px) {
    #zumi-booking-portal .zbp-bottom-actions--contact {
        width:
            min(100%, 430px);
    }
}

@media (max-width: 520px) {
    #zumi-booking-portal .zbp-bottom-cta {
        gap:
            18px;
    }

    #zumi-booking-portal .zbp-bottom-cta h2 {
        font-size:
            clamp(27px, 9vw, 38px);
    }

    #zumi-booking-portal .zbp-bottom-cta p {
        margin-top:
            8px;

        font-size:
            11px;

        line-height:
            1.45;
    }

    #zumi-booking-portal .zbp-bottom-actions--contact {
        grid-template-columns:
            1fr;

        width:
            100%;
    }

    #zumi-booking-portal .zbp-bottom-contact {
        min-height:
            50px;

        padding:
            8px 10px;
    }
}


/* =========================================================
   INTERACTION BEHAVIOR — NO BOUNCE / NO MOVEMENT
   ========================================================= */

/*
 * Keep every clickable control physically stationary.
 * Hover/selected feedback may still use color, border, background,
 * shadow and opacity, but never translate, scale or bounce.
 */
#zumi-booking-portal button,
#zumi-booking-portal a,
#zumi-booking-portal label[for],
#zumi-booking-portal .zbp-choice,
#zumi-booking-portal .zbp-request-checkrow,
#zumi-booking-portal .zbp-fleet-card,
#zumi-booking-portal .zbp-addon-choice,
#zumi-booking-portal .zbp-fleet-select,
#zumi-booking-portal .zbp-fleet-learn,
#zumi-booking-portal .zbp-entry-vehicle-change,
#zumi-booking-portal .zbp-direct-contact-action,
#zumi-booking-portal .zbp-bottom-contact,
#zumi-booking-portal .zbp-btn {
    transform: none !important;
    -webkit-transform: none !important;
    animation: none !important;
    translate: none !important;
}

/* Explicitly neutralize movement in all interaction states. */
#zumi-booking-portal button:hover,
#zumi-booking-portal button:focus,
#zumi-booking-portal button:focus-visible,
#zumi-booking-portal button:active,
#zumi-booking-portal a:hover,
#zumi-booking-portal a:focus,
#zumi-booking-portal a:focus-visible,
#zumi-booking-portal a:active,
#zumi-booking-portal .zbp-choice:hover,
#zumi-booking-portal .zbp-choice:focus,
#zumi-booking-portal .zbp-choice:active,
#zumi-booking-portal .zbp-request-checkrow:hover,
#zumi-booking-portal .zbp-request-checkrow:focus-within,
#zumi-booking-portal .zbp-request-checkrow:active,
#zumi-booking-portal .zbp-fleet-card:hover,
#zumi-booking-portal .zbp-addon-choice:hover,
#zumi-booking-portal .zbp-addon-choice:active,
#zumi-booking-portal .zbp-fleet-select:hover,
#zumi-booking-portal .zbp-fleet-select:active,
#zumi-booking-portal .zbp-fleet-learn:hover,
#zumi-booking-portal .zbp-entry-vehicle-change:hover,
#zumi-booking-portal .zbp-entry-vehicle-change:active,
#zumi-booking-portal .zbp-direct-contact-action:hover,
#zumi-booking-portal .zbp-direct-contact-action:active,
#zumi-booking-portal .zbp-bottom-contact:hover,
#zumi-booking-portal .zbp-bottom-contact:active,
#zumi-booking-portal .zbp-btn:hover,
#zumi-booking-portal .zbp-btn:active {
    transform: none !important;
    -webkit-transform: none !important;
    translate: none !important;
}

/*
 * Prevent touch browsers from applying springy transitions after taps.
 * We keep only non-geometric properties in transition lists.
 */
#zumi-booking-portal button,
#zumi-booking-portal a,
#zumi-booking-portal .zbp-choice,
#zumi-booking-portal .zbp-request-checkrow,
#zumi-booking-portal .zbp-addon-choice,
#zumi-booking-portal .zbp-fleet-select,
#zumi-booking-portal .zbp-fleet-learn,
#zumi-booking-portal .zbp-entry-vehicle-change,
#zumi-booking-portal .zbp-direct-contact-action,
#zumi-booking-portal .zbp-bottom-contact,
#zumi-booking-portal .zbp-btn {
    transition-property:
        background-color,
        border-color,
        color,
        box-shadow,
        opacity,
        filter !important;

    transition-duration: 150ms !important;
    transition-timing-function: ease !important;
}

/* Remove the native iOS tap flash without changing accessibility focus. */
#zumi-booking-portal button,
#zumi-booking-portal a,
#zumi-booking-portal .zbp-choice,
#zumi-booking-portal .zbp-request-checkrow,
#zumi-booking-portal .zbp-addon-choice {
    -webkit-tap-highlight-color: transparent;
}

/* Respect reduced-motion preference across all portal interactions. */
@media (prefers-reduced-motion: reduce) {
    #zumi-booking-portal *,
    #zumi-booking-portal *::before,
    #zumi-booking-portal *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}


/* =========================================================
   TRUST PROOF DIVIDER — BREATHING ROOM ABOVE CARDS
   Keeps the divider visually separate from the proof cards.
   ========================================================= */
#zumi-booking-portal .zbp-trust-grid {
    padding-top: clamp(16px, 1.2vw, 20px) !important;
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-trust-grid {
        padding-top: 14px !important;
    }
}

@container zumi-trust-panel (max-width: 440px) {
    #zumi-booking-portal .zbp-trust-grid {
        padding-top: 12px !important;
    }
}


@media (max-width: 640px) {
    #zumi-booking-portal .zbp-vehicle-ghost {
        right: -8px;
        bottom: -13px;
        width: 112px;
        height: 112px;
        opacity: .05;
    }

    #zumi-booking-portal .zbp-vehicle-card--setup[data-value="Camping 4x4"] .zbp-vehicle-ghost {
        right: -3px;
        bottom: -10px;
        width: 106px;
        height: 106px;
    }

    #zumi-booking-portal .zbp-vehicle-card.is-selected .zbp-vehicle-ghost {
        opacity: .08;
    }

    #zumi-booking-portal .zbp-label-with-icon {
        gap: 6px;
    }

    #zumi-booking-portal .zbp-label-with-icon img {
        width: 15px !important;
        height: 15px !important;
        max-width: 15px !important;
        flex-basis: 15px;
    }
}


@media (max-width: 700px) {
    #zumi-booking-portal .zbp-insurance-ghost {
        right: -5px;
        bottom: -8px;
        width: 66px !important;
        height: 66px !important;
    }
}
@media (max-width: 640px) {
    #zumi-booking-portal .zbp-insurance-recommendation {
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 9px;
        align-items: center;
    }

    #zumi-booking-portal .zbp-insurance-recommendation-icon {
        width: 28px;
        height: 28px;
        min-width: 28px;
    }
}


/* Keep the booking-summary warning icon in Zumi orange. */
#zumi-booking-portal .zbp-summary-anomaly-icon img {
    filter: brightness(0) saturate(100%) invert(49%) sepia(91%) saturate(2570%) hue-rotate(347deg) brightness(96%) contrast(89%) !important;
    opacity: 1 !important;
}

/* =========================================================
   ALL-VIEW PERFORMANCE — REMOVE LIVE BACKDROP BLUR
   Live backdrop filtering forces repeated background sampling and
   compositing while the hero enters/leaves the viewport. The
   translucent backgrounds remain, so the visual treatment stays
   very similar without the expensive live blur on any screen size.
   ========================================================= */
#zumi-booking-portal .zbp-hero-card,
#zumi-booking-portal .zbp-trust-intro,
#zumi-booking-portal .zbp-direct-contact-action {


}

/* =========================================================
   LARGE-SCREEN TYPOGRAPHY
   Makes portal text easier to read on wide desktop displays.
   Mobile/tablet sizing and the oversized hero headline are unchanged.
   ========================================================= */
@media (min-width: 1400px) {
    #zumi-booking-portal .zbp-eyebrow {
        font-size: clamp(12.2px, .793vw, 15.86px) !important;
    }

    #zumi-booking-portal .zbp-hero-copy {
        font-size: clamp(19.72px, 1.2528vw, 25.52px) !important;
    }

    #zumi-booking-portal .zbp-hero-copy-lead {
        font-size: clamp(24.36px, 1.6472vw, 33.64px) !important;
    }

    #zumi-booking-portal .zbp-hero-pill {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-form-head h2 {
        font-size: clamp(27.5px, 2.2vw, 44px) !important;
    }

    #zumi-booking-portal .zbp-form-head p {
        font-size: 15.86px !important;
    }

    #zumi-booking-portal .zbp-request-card strong {
        font-size: clamp(18.3px, 1.2444vw, 24.4px) !important;
    }

    #zumi-booking-portal .zbp-request-card p {
        font-size: 14.03px !important;
    }

    #zumi-booking-portal .zbp-request-tag {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-field label,
    #zumi-booking-portal .zbp-group-label {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-group-help {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-date-limit-hint {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-field input,
    #zumi-booking-portal .zbp-field select,
    #zumi-booking-portal .zbp-field textarea {
        font-size: 15.86px !important;
    }

    #zumi-booking-portal .zbp-field small {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-choice {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-traveller-current {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-traveller-current strong {
        font-size: 23.18px !important;
    }

    #zumi-booking-portal .zbp-traveller-scale {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-chip {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-vehicle-card .zbp-card-kicker {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-vehicle-card strong {
        font-size: clamp(17.08px, 1.159vw, 21.96px) !important;
    }

    #zumi-booking-portal .zbp-vehicle-card small {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-check {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-check span {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-vehicle-card--setup strong {
        font-size: clamp(20.88px, 1.392vw, 27.84px) !important;
    }

    #zumi-booking-portal .zbp-vehicle-card--setup small {
        font-size: 14.03px !important;
    }

    #zumi-booking-portal .zbp-budget-symbol {
        font-size: 1.239em !important;
    }

    #zumi-booking-portal .zbp-vehicle-next-step strong {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-vehicle-next-step span {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-fleet-eyebrow {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-fleet-toolbar strong {
        font-size: 15.86px !important;
    }

    #zumi-booking-portal .zbp-slider-arrow {
        font-size: 20.74px !important;
    }

    #zumi-booking-portal .zbp-currency-label {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-currency-label-icon {
        font-size: 15.86px !important;
    }

    #zumi-booking-portal .zbp-currency-buttons button {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-currency-bar > small {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-season-note strong {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-season-note span:not(.zbp-season-icons) {
        font-size: 11.956px !important;
    }

    #zumi-booking-portal .zbp-camping-capacity-note span {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-large-group-status {
        font-size: 10.37px !important;
    }

    #zumi-booking-portal .zbp-large-group-note strong {
        font-size: 14.03px !important;
    }

    #zumi-booking-portal .zbp-large-group-note p {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-config-capacity {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-camping-pricing-note {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-config-option-note {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-summary-price-note {
        font-size: 10.37px !important;
    }

    #zumi-booking-portal .zbp-summary-anomaly-note {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-camping-pricing-note::before {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-fleet-selected-badge {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-fleet-type {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-fleet-body h3 {
        font-size: clamp(18.56px, 1.218vw, 24.36px) !important;
    }

    #zumi-booking-portal .zbp-fleet-body p {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-fleet-specs span {
        font-size: 10.37px !important;
    }

    #zumi-booking-portal .zbp-fleet-select,
    #zumi-booking-portal .zbp-fleet-learn {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-addon-head h3 {
        font-size: clamp(19.72px, 1.334vw, 26.68px) !important;
    }

    #zumi-booking-portal .zbp-addon-head p {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-addon-count {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-addon-group-title {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-addon-copy strong {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-addon-copy small {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-addon-check {
        font-size: 13.42px !important;
    }
#zumi-booking-portal .zbp-config-panel-copy > strong {
        font-size: 15.86px !important;
    }

    #zumi-booking-portal .zbp-insurance-link {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-insurance-recommendation-copy strong {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-insurance-recommendation-copy p {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-config-option strong {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-config-option small {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-config-recommended {
        font-size: 9.76px !important;
    }

    #zumi-booking-portal .zbp-vehicle-price-panel strong {
        font-size: clamp(18.3px, 1.281vw, 24.4px) !important;
    }

    #zumi-booking-portal .zbp-vehicle-price-panel small {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-fleet-price strong {
        font-size: 18.3px !important;
    }

    #zumi-booking-portal .zbp-fleet-price small {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-summary-pricing > div {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-summary-pricing-total span,
    #zumi-booking-portal .zbp-summary-pricing-total strong {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-mode-intro strong {
        font-size: 15.86px !important;
    }

    #zumi-booking-portal .zbp-mode-intro-copy-text > span {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-change-type {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-info-strip > span {
        font-size: 18.3px !important;
    }

    #zumi-booking-portal .zbp-info-strip strong {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-info-strip small {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-minimum-note strong {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-minimum-note span {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-payment-copy h3 {
        font-size: clamp(18.56px, 1.218vw, 24.36px) !important;
    }

    #zumi-booking-portal .zbp-payment-copy p {
        font-size: 14.64px !important;
    }

    #zumi-booking-portal .zbp-payment-note {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-summary h3 {
        font-size: clamp(26.68px, 1.856vw, 37.12px) !important;
    }

    #zumi-booking-portal .zbp-summary-copy {
        font-size: 14.64px !important;
    }

    #zumi-booking-portal .zbp-summary-item span {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-summary-item strong {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-btn {
        font-size: clamp(13.42px, .8784vw, 17.08px) !important;
    }

    #zumi-booking-portal .zbp-summary-note {
        font-size: 12.2px !important;
    }

    #zumi-booking-portal .zbp-turnstile-status {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-submit-error {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-submit-success {
        font-size: 13.42px !important;
    }

    #zumi-booking-portal .zbp-bottom-cta p {
        font-size: clamp(15.86px, 1.0004vw, 19.52px) !important;
    }

    #zumi-booking-portal .zbp-hero-card > strong {
        font-size: 26.68px !important;
    }

    #zumi-booking-portal .zbp-hero-card > p {
        font-size: 15.86px !important;
    }

    #zumi-booking-portal .zbp-hero-path b {
        font-size: 18.3px !important;
    }

    #zumi-booking-portal .zbp-hero-path small {
        font-size: 14.03px !important;
    }

    #zumi-booking-portal .zbp-trust-intro-top,
    #zumi-booking-portal .zbp-trust-grid,
    #zumi-booking-portal .zbp-trust-kicker {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-trust-proof-value {
        font-size: 19.52px !important;
    }

    #zumi-booking-portal .zbp-trust-proof-value span {
        font-size: 9.76px !important;
    }

    #zumi-booking-portal .zbp-trust-proof-symbol {
        font-size: 23.18px !important;
    }

    #zumi-booking-portal .zbp-trust-proof-symbol--local {
        font-size: 24.4px !important;
    }

    #zumi-booking-portal .zbp-trust-title {
        font-size: clamp(27.5px, 2.2vw, 38.5px) !important;
    }

    #zumi-booking-portal .zbp-trust-proof-copy strong {
        font-size: clamp(13.42px, .8784vw, 15.25px) !important;
    }

    #zumi-booking-portal .zbp-trust-proof-copy small {
        font-size: clamp(10.98px, .7076vw, 12.2px) !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value {
        font-size: clamp(28.6px, 2.09vw, 37.4px) !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-value span {
        font-size: clamp(13.42px, .9516vw, 17.08px) !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy strong {
        font-size: clamp(19.52px, 1.3664vw, 24.4px) !important;
    }

    #zumi-booking-portal .zbp-trust-proof--primary .zbp-trust-proof-copy small {
        font-size: clamp(14.64px, 1.0004vw, 16.836px) !important;
    }

    #zumi-booking-portal .zbp-direct-contact-kicker {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-copy > strong {
        font-size: clamp(17.08px, 1.159vw, 20.74px) !important;
    }

    #zumi-booking-portal .zbp-direct-contact-copy > p {
        font-size: clamp(14.03px, .9272vw, 15.86px) !important;
    }

    #zumi-booking-portal .zbp-zoom-note {
        font-size: clamp(14.03px, .9272vw, 15.86px) !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action-icon,
    #zumi-booking-portal .zbp-direct-contact-zoom-logo {
        font-size: 19.52px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action-icon--whatsapp {
        font-size: 17.08px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action strong {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-direct-contact-action small {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-request-check-copy strong {
        font-size: clamp(17.08px, 1.22vw, 20.74px) !important;
    }

    #zumi-booking-portal .zbp-request-check-copy small {
        font-size: 12.81px !important;
    }

    #zumi-booking-portal .zbp-entry-vehicle-kicker {
        font-size: 10.37px !important;
    }

    #zumi-booking-portal .zbp-entry-vehicle-copy strong {
        font-size: clamp(15.86px, 1.159vw, 19.52px) !important;
    }

    #zumi-booking-portal .zbp-entry-vehicle-copy small {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-entry-vehicle-change {
        font-size: 11.59px !important;
    }

    #zumi-booking-portal .zbp-field-help {
        font-size: 10.98px !important;
    }

    #zumi-booking-portal .zbp-bottom-contact strong {
        font-size: 15.5px !important;
    }

    #zumi-booking-portal .zbp-bottom-contact small {
        font-size: 12.5px !important;
    }
}


/* =========================================================
   DESKTOP BOOKING SUMMARY — BEST-PRACTICE STICKY SIDEBAR
   ---------------------------------------------------------
   - No scroll-linked JavaScript.
   - No dynamic height changes near the footer.
   - The summary panel remains a normal CSS sticky sidebar.
   - Only the summary DETAILS list scrolls independently.
   - The title/header and submit/security controls stay visible.
   - At the top/bottom of the list, wheel/trackpad scrolling
     naturally continues through to the page.
   ========================================================= */
@media (min-width: 1051px) {
    #zumi-booking-portal .zbp-summary {
        --zbp-summary-sticky-top: clamp(96px, 6vw, 118px);

        position: sticky;
        top: var(--zbp-summary-sticky-top);
        align-self: start;

        display: flex;
        flex-direction: column;
        min-height: 0;
        max-height: calc(100dvh - var(--zbp-summary-sticky-top) - 16px);

        overflow: hidden;
        border-radius: 4px;
        background: #191919;
        box-shadow: var(--z-shadow);
    }

    /* Fallback for older desktop browsers without dynamic viewport units. */
    @supports not (height: 100dvh) {
        #zumi-booking-portal .zbp-summary {
            max-height: calc(100vh - var(--zbp-summary-sticky-top) - 16px);
        }
    }

    /* Header remains visible. The list below it gets the remaining space. */
    #zumi-booking-portal .zbp-summary-top {
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
    }

    /* This is the ONLY independently scrolling region. */
    #zumi-booking-portal .zbp-summary-list {
        flex: 1 1 auto;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;

        -webkit-overflow-scrolling: touch;
        overscroll-behavior-y: auto;
        scrollbar-gutter: stable;
        scrollbar-width: thin;
        scrollbar-color: rgba(232,94,42,.58) rgba(255,255,255,.035);
    }

    /* Keep the action/security area permanently accessible. */
    #zumi-booking-portal .zbp-summary-actions {
        position: relative;
        z-index: 3;
        flex: 0 0 auto;
        box-shadow: 0 -10px 24px rgba(0,0,0,.08);
    }

    #zumi-booking-portal .zbp-summary-list::-webkit-scrollbar {
        width: 7px;
    }

    #zumi-booking-portal .zbp-summary-list::-webkit-scrollbar-track {
        background: rgba(255,255,255,.035);
    }

    #zumi-booking-portal .zbp-summary-list::-webkit-scrollbar-thumb {
        background: rgba(232,94,42,.58);
        border: 2px solid #202020;
        border-radius: 999px;
    }

    #zumi-booking-portal .zbp-summary-list::-webkit-scrollbar-thumb:hover {
        background: rgba(232,94,42,.82);
    }
}

/* Tablet and mobile: ordinary document flow, exactly as before. */
@media (max-width: 1050px) {
    #zumi-booking-portal .zbp-summary {
        display: block;
        max-height: none;
        overflow: hidden;
    }

    #zumi-booking-portal .zbp-summary-top {
        display: block;
        overflow: visible;
    }

    #zumi-booking-portal .zbp-summary-list {
        max-height: none;
        overflow: hidden;
        scrollbar-gutter: auto;
    }
}


/* =========================================================
   IMPORTANT NOTICE READABILITY
   Warning/capacity messages can change the traveller's actual
   vehicle, guide or sleeping arrangement, so they must remain
   comfortably readable at every viewport size.
   ========================================================= */
#zumi-booking-portal .zbp-summary-anomaly-entry {
    gap: 10px !important;
    padding: 12px 13px !important;
    color: rgba(255,255,255,.90) !important;
    font-size: clamp(11.5px, .72vw, 13px) !important;
    line-height: 1.52 !important;
}

#zumi-booking-portal .zbp-summary-anomaly-icon {
    flex: 0 0 26px !important;
    width: 26px !important;
    height: 26px !important;
    margin-top: 0 !important;
}

#zumi-booking-portal .zbp-summary-anomaly-icon img {
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
}

/* Matching important notices inside the configurator itself. */
#zumi-booking-portal .zbp-camping-capacity-note {
    gap: 10px !important;
    padding: 12px 14px !important;
}

#zumi-booking-portal .zbp-camping-capacity-note span {
    font-size: clamp(11.5px, .72vw, 13px) !important;
    line-height: 1.52 !important;
}

#zumi-booking-portal .zbp-capacity-warning-icon {
    width: 27px !important;
    height: 27px !important;
    flex-basis: 27px !important;
}

#zumi-booking-portal .zbp-capacity-warning-icon img {
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
}

#zumi-booking-portal .zbp-large-group-note {
    gap: 12px !important;
    padding: 14px 15px !important;
}

#zumi-booking-portal .zbp-large-group-status {
    font-size: clamp(9.5px, .60vw, 11px) !important;
}

#zumi-booking-portal .zbp-large-group-note strong {
    font-size: clamp(13px, .82vw, 15px) !important;
    line-height: 1.4 !important;
}

#zumi-booking-portal .zbp-large-group-note p {
    font-size: clamp(11.5px, .72vw, 13px) !important;
    line-height: 1.52 !important;
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-summary-anomaly-entry,
    #zumi-booking-portal .zbp-camping-capacity-note span,
    #zumi-booking-portal .zbp-large-group-note p {
        font-size: 12px !important;
    }

    #zumi-booking-portal .zbp-large-group-note strong {
        font-size: 13.5px !important;
    }
}


/* =========================================================
   LARGE-DISPLAY ADD-ON EMPHASIS
   Paid extras are intentionally larger and easier to scan on
   wide desktop displays. Tablet/mobile layouts are unchanged.
   ========================================================= */
@media (min-width: 1400px) {
    #zumi-booking-portal .zbp-addon-head {
        gap: 24px;
        align-items: center;
    }

    #zumi-booking-portal .zbp-addon-head h3 {
        font-size: clamp(25px, 1.55vw, 32px) !important;
        line-height: 1.08 !important;
    }

    #zumi-booking-portal .zbp-addon-head p {
        max-width: 860px;
        margin-top: 9px;
        font-size: clamp(14px, .82vw, 16px) !important;
        line-height: 1.5 !important;
    }

    #zumi-booking-portal .zbp-addon-count {
        padding: 9px 13px;
        font-size: 13px !important;
    }

    #zumi-booking-portal .zbp-addon-groups {
        gap: 22px;
        margin-top: 22px;
    }

    #zumi-booking-portal .zbp-addon-group-title {
        margin-bottom: 10px;
        font-size: 13.5px !important;
        letter-spacing: .07em;
    }

    #zumi-booking-portal .zbp-addon-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    #zumi-booking-portal .zbp-addon-choice {
        grid-template-columns: 48px minmax(0, 1fr) 28px;
        gap: 13px;
        min-height: 96px;
        padding: 14px 15px;
        border-radius: 4px;
    }

    #zumi-booking-portal .zbp-addon-choice img {
        width: 44px !important;
        height: 44px !important;
        max-width: 44px !important;
    }

    #zumi-booking-portal .zbp-addon-copy strong {
        font-size: clamp(14px, .82vw, 16px) !important;
        line-height: 1.25 !important;
    }

    #zumi-booking-portal .zbp-addon-copy small {
        margin-top: 6px;
        font-size: clamp(13.5px, .76vw, 15px) !important;
        line-height: 1.3 !important;
    }

    #zumi-booking-portal .zbp-addon-check {
        width: 28px;
        height: 28px;
        font-size: 15px !important;
    }
}

@media (min-width: 1900px) {
    #zumi-booking-portal .zbp-addon-choice {
        min-height: 104px;
        padding: 16px 17px;
    }

    #zumi-booking-portal .zbp-addon-choice img {
        width: 48px !important;
        height: 48px !important;
        max-width: 48px !important;
    }

    #zumi-booking-portal .zbp-addon-copy strong {
        font-size: 16px !important;
    }

    #zumi-booking-portal .zbp-addon-copy small {
        font-size: 15px !important;
    }
}


/* =========================================================
   VEHICLE / TRAVEL NOTES — RESPONSIVE PLACEHOLDER FIX
   Allow the long helper text to wrap instead of clipping.
   ========================================================= */
#zumi-booking-portal textarea#zbp-vehicle-notes {
    min-height: 54px;
    height: 54px;
    padding: 12px 13px;
    line-height: 1.4;
    resize: vertical;
    overflow-y: auto;
}

#zumi-booking-portal textarea#zbp-vehicle-notes::placeholder {
    white-space: normal;
    line-height: 1.4;
}

@media (max-width: 1180px) {
    #zumi-booking-portal textarea#zbp-vehicle-notes {
        min-height: 68px;
        height: 68px;
    }
}

@media (max-width: 760px) {
    #zumi-booking-portal textarea#zbp-vehicle-notes {
        min-height: 72px;
        height: 72px;
        padding: 11px 12px;
        font-size: 15px;
        line-height: 1.42;
    }
}


/* =========================================================
   ZUMI PORTAL ICON ENHANCEMENTS — CONTACT + TRIP PLANNING
   ========================================================= */
#zumi-booking-portal .zbp-choice--with-icon,
#zumi-booking-portal .zbp-chip--with-icon {
    gap: 7px;
}

#zumi-booking-portal .zbp-choice-icon,
#zumi-booking-portal .zbp-chip-icon {
    display: block;
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    flex: 0 0 18px;
    object-fit: contain;
}

#zumi-booking-portal .zbp-chip-icon {
    width: 17px !important;
    height: 17px !important;
    max-width: 17px !important;
    flex-basis: 17px;
}

#zumi-booking-portal .zbp-choice--with-icon span,
#zumi-booking-portal .zbp-chip--with-icon span {
    min-width: 0;
}

/* Keep dark/orange selected states readable without destroying branded SVG colour. */
#zumi-booking-portal .zbp-choice.is-selected .zbp-choice-icon:not(.zbp-choice-icon--native),
#zumi-booking-portal .zbp-chip.is-selected .zbp-chip-icon {
    filter: brightness(0) invert(1);
}

#zumi-booking-portal .zbp-choice.is-selected .zbp-choice-icon--native {
    filter: none;
}

#zumi-booking-portal .zbp-group-label--with-logo {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

#zumi-booking-portal .zbp-zoom-separator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--z-orange);
    font-size: 15px;
    font-weight: 900;
    line-height: 1;
}

@media (max-width: 760px) {
    #zumi-booking-portal #zbp-contact-section .zbp-choice--with-icon {
        gap: 5px !important;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-choice-icon {
        width: 15px !important;
        height: 15px !important;
        max-width: 15px !important;
        flex-basis: 15px;
    }

    #zumi-booking-portal .zbp-chip--with-icon {
        gap: 5px;
    }

    #zumi-booking-portal .zbp-chip-icon {
        width: 15px !important;
        height: 15px !important;
        max-width: 15px !important;
        flex-basis: 15px;
    }
}

/* =========================================================
   MULTILINGUAL RESPONSIVE TEXT SAFETY
   German and Russian strings can be materially longer than English.
   Never let translated UI text clip or force horizontal overflow.
   ========================================================= */
#zumi-booking-portal,
#zumi-booking-portal * {
    min-inline-size: 0;
}

#zumi-booking-portal h1,
#zumi-booking-portal h2,
#zumi-booking-portal h3,
#zumi-booking-portal p,
#zumi-booking-portal label,
#zumi-booking-portal strong,
#zumi-booking-portal small,
#zumi-booking-portal button,
#zumi-booking-portal a,
#zumi-booking-portal .zbp-choice,
#zumi-booking-portal .zbp-chip,
#zumi-booking-portal .zbp-summary-item span,
#zumi-booking-portal .zbp-summary-item strong,
#zumi-booking-portal .zbp-mode-intro-copy-text,
#zumi-booking-portal .zbp-request-check-copy,
#zumi-booking-portal .zbp-direct-contact-copy {
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
}

#zumi-booking-portal .zbp-choice,
#zumi-booking-portal .zbp-chip,
#zumi-booking-portal .zbp-config-option,
#zumi-booking-portal .zbp-btn,
#zumi-booking-portal .zbp-change-type,
#zumi-booking-portal .zbp-entry-vehicle-change {
    white-space: normal !important;
    height: auto;
}

#zumi-booking-portal .zbp-choice--with-icon span,
#zumi-booking-portal .zbp-chip--with-icon span,
#zumi-booking-portal .zbp-request-check-copy strong,
#zumi-booking-portal .zbp-request-check-copy small,
#zumi-booking-portal .zbp-config-option strong,
#zumi-booking-portal .zbp-config-option small,
#zumi-booking-portal .zbp-direct-contact-action > span:last-child {
    min-width: 0;
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
}

#zumi-booking-portal .zbp-response-time,
#zumi-booking-portal .zbp-vehicle-next-step strong,
#zumi-booking-portal .zbp-insurance-recommendation-copy strong,
#zumi-booking-portal .zbp-insurance-recommendation-copy p {
    white-space: normal !important;
}

#zumi-booking-portal .zbp-hero h1,
#zumi-booking-portal .zbp-hero h1 span,
#zumi-booking-portal .zbp-trust-title,
#zumi-booking-portal .zbp-trust-title span,
#zumi-booking-portal .zbp-form-head h2 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-hero h1 {
        font-size: clamp(39px, 12.6vw, 62px) !important;
        line-height: .90 !important;
        letter-spacing: -.055em !important;
    }

    body.zumi-booking-lang-de #zumi-booking-portal .zbp-hero h1 {
        font-size: clamp(36px, 11.8vw, 58px) !important;
        line-height: .93 !important;
        letter-spacing: -.045em !important;
    }

    body.zumi-booking-lang-ru #zumi-booking-portal .zbp-hero h1 {
        font-size: clamp(34px, 11vw, 54px) !important;
        line-height: .95 !important;
        letter-spacing: -.035em !important;
    }

    #zumi-booking-portal .zbp-form-head h2 {
        line-height: 1.08 !important;
        letter-spacing: -.035em !important;
    }

    #zumi-booking-portal .zbp-trust-title,
    body.zumi-booking-lang-de #zumi-booking-portal .zbp-trust-title,
    body.zumi-booking-lang-ru #zumi-booking-portal .zbp-trust-title {
        font-size: clamp(22px, 6.9vw, 27px) !important;
        line-height: 1.08 !important;
        letter-spacing: -.025em !important;
    }

    #zumi-booking-portal .zbp-hero-pill,
    #zumi-booking-portal .zbp-choice,
    #zumi-booking-portal .zbp-chip,
    #zumi-booking-portal .zbp-config-option,
    #zumi-booking-portal .zbp-request-checkrow,
    #zumi-booking-portal .zbp-direct-contact-action {
        max-width: 100%;
    }

    #zumi-booking-portal .zbp-chip {
        flex: 0 1 auto;
        line-height: 1.25 !important;
    }

    #zumi-booking-portal .zbp-choice {
        min-height: 46px;
        line-height: 1.28 !important;
    }

    #zumi-booking-portal #zbp-contact-section .zbp-choice {
        min-height: 44px !important;
        line-height: 1.25 !important;
    }

    #zumi-booking-portal .zbp-mode-intro-copy-text > span,
    #zumi-booking-portal .zbp-vehicle-next-step span,
    #zumi-booking-portal .zbp-summary-copy,
    #zumi-booking-portal .zbp-summary-note {
        overflow-wrap: anywhere;
    }

    #zumi-booking-portal .zbp-vehicle-next-step {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 5px;
    }
}

@media (max-width: 390px) {
    #zumi-booking-portal .zbp-hero h1,
    body.zumi-booking-lang-de #zumi-booking-portal .zbp-hero h1,
    body.zumi-booking-lang-ru #zumi-booking-portal .zbp-hero h1 {
        font-size: clamp(32px, 10.6vw, 45px) !important;
        line-height: .97 !important;
    }

    #zumi-booking-portal .zbp-form-section {
        padding-left: 14px;
        padding-right: 14px;
    }

    #zumi-booking-portal .zbp-request-checkrow {
        grid-template-columns: 18px 40px minmax(0, 1fr);
        gap: 8px;
        padding-left: 10px;
        padding-right: 10px;
    }
}

/* =========================================================
   MOBILE-FIRST FORM VALIDATION
   Always show the error next to the field that needs attention and
   scroll that field below the site header instead of relying on the
   browser's inconsistent native validation bubbles.
   ========================================================= */
#zumi-booking-portal .zbp-field,
#zumi-booking-portal .zbp-form-section {
    scroll-margin-top: 110px;
}

#zumi-booking-portal .zbp-validation-invalid input:not([type="range"]),
#zumi-booking-portal .zbp-validation-invalid select,
#zumi-booking-portal .zbp-validation-invalid textarea,
#zumi-booking-portal .zbp-validation-invalid .zbp-date-wrap,
#zumi-booking-portal .zbp-validation-invalid .zbp-choice,
#zumi-booking-portal .zbp-validation-invalid .zbp-config-option {
    border-color: #E85E2A !important;
    box-shadow: 0 0 0 3px rgba(232,94,42,.12) !important;
}

#zumi-booking-portal .zbp-inline-validation-error {
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 9px 11px;
    color: #8A3518;
    background: #FFF0E8;
    border: 1px solid #F4C4AB;
    border-radius: 4px;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

#zumi-booking-portal .zbp-form-section.zbp-validation-invalid {
    outline: 2px solid rgba(232,94,42,.30);
    outline-offset: -2px;
}

@media (max-width: 760px) {
    #zumi-booking-portal .zbp-field,
    #zumi-booking-portal .zbp-form-section {
        scroll-margin-top: 88px;
    }

    #zumi-booking-portal .zbp-inline-validation-error {
        margin-top: 7px;
        padding: 9px 10px;
        font-size: 12.5px;
        line-height: 1.42;
    }
}


/* ZUMI 2.8.1 — localized vehicle names use the same compact truncation
   treatment when a two-column vehicle card is too narrow. */
@media (min-width: 701px) {
    html[lang^="de"] #zumi-booking-portal .zbp-vehicle-card strong,
    html[lang^="ru"] #zumi-booking-portal .zbp-vehicle-card strong {
        min-width: 0;
        max-width: 100%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* =========================================================
   ZUMI 2.8.2 — iPhone/iPad native date-control hardening
   iOS WebKit can give <input type="date"> an intrinsic width larger than
   its CSS grid cell and may omit the calendar glyph. The wrapper owns the
   visible box; the native input remains the full-size interactive target.
   ========================================================= */
#zumi-booking-portal .zbp-date-icon {
    display: none;
}

@media (max-width: 760px),
       (min-width: 768px) and (max-width: 1366px) and (pointer: coarse) {
    #zumi-booking-portal .zbp-field,
    #zumi-booking-portal .zbp-date-wrap {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    #zumi-booking-portal .zbp-date-wrap {
        position: relative !important;
        display: block !important;
        width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        background: #FFFFFF !important;
        border: 1px solid #DCD7D2 !important;
        border-radius: 4px !important;
    }

    #zumi-booking-portal .zbp-date-wrap:hover {
        border-color: #C9C3BD !important;
    }

    #zumi-booking-portal .zbp-date-wrap:focus-within {
        border-color: var(--z-orange) !important;
        box-shadow: 0 0 0 3px rgba(232,94,42,.11) !important;
    }

    #zumi-booking-portal .zbp-field .zbp-date-wrap input[type="date"] {
        position: absolute !important;
        inset: 0 !important;
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
        margin: 0 !important;
        padding: 0 46px 0 13px !important;
        box-sizing: border-box !important;
        border: 0 !important;
        border-radius: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
        color: #202020 !important;
        -webkit-text-fill-color: #202020;
        font-size: 16px !important;
        line-height: 48px !important;
        text-align: left !important;
        -webkit-text-size-adjust: 100%;
        color-scheme: light;
    }

    #zumi-booking-portal .zbp-date-wrap:not(.has-value) input[type="date"] {
        color: transparent !important;
        -webkit-text-fill-color: transparent !important;
    }

    #zumi-booking-portal .zbp-date-wrap:not(.has-value) input[type="date"]::-webkit-date-and-time-value,
    #zumi-booking-portal .zbp-date-wrap:not(.has-value) input[type="date"]::-webkit-datetime-edit {
        opacity: 0 !important;
        color: transparent !important;
        -webkit-text-fill-color: transparent !important;
    }

    #zumi-booking-portal .zbp-date-wrap.has-value input[type="date"]::-webkit-date-and-time-value,
    #zumi-booking-portal .zbp-date-wrap.has-value input[type="date"]::-webkit-datetime-edit {
        opacity: 1 !important;
        color: #202020 !important;
        -webkit-text-fill-color: #202020 !important;
    }

    #zumi-booking-portal .zbp-field .zbp-date-wrap input[type="date"]::-webkit-date-and-time-value,
    #zumi-booking-portal .zbp-field .zbp-date-wrap input[type="date"]::-webkit-datetime-edit {
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 0 !important;
        height: 48px !important;
        margin: 0 !important;
        padding: 0 !important;
        line-height: 48px !important;
        text-align: left !important;
    }

    /* Keep the native date picker target but hide WebKit's inconsistent glyph.
       The visible, consistent calendar icon below is pointer-events:none. */
    #zumi-booking-portal .zbp-field .zbp-date-wrap input[type="date"]::-webkit-calendar-picker-indicator {
        position: absolute !important;
        right: 0 !important;
        top: 0 !important;
        width: 48px !important;
        height: 48px !important;
        margin: 0 !important;
        padding: 0 !important;
        opacity: 0 !important;
        cursor: pointer;
    }

    #zumi-booking-portal .zbp-date-placeholder {
        position: absolute !important;
        z-index: 3 !important;
        left: 13px !important;
        right: 46px !important;
        top: 50% !important;
        display: block !important;
        width: auto !important;
        max-width: none !important;
        overflow: hidden !important;
        color: #777777 !important;
        pointer-events: none !important;
        transform: translateY(-50%) !important;
        font-size: 16px !important;
        font-weight: 400 !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
    }

    #zumi-booking-portal .zbp-date-wrap.has-value .zbp-date-placeholder {
        display: none !important;
    }

    #zumi-booking-portal .zbp-date-icon {
        position: absolute !important;
        z-index: 4 !important;
        right: 13px !important;
        top: 50% !important;
        display: grid !important;
        place-items: center !important;
        width: 21px !important;
        height: 21px !important;
        color: #777777 !important;
        pointer-events: none !important;
        transform: translateY(-50%) !important;
    }

    #zumi-booking-portal .zbp-date-icon svg {
        display: block !important;
        width: 21px !important;
        height: 21px !important;
        fill: none !important;
        stroke: currentColor !important;
        stroke-width: 1.8 !important;
        stroke-linecap: round !important;
        stroke-linejoin: round !important;
    }
}

@media (max-width: 390px) {
    #zumi-booking-portal .zbp-date-placeholder {
        font-size: 15px !important;
    }
}


/* =========================================================
   v2.8.4 — Radio indicators for vehicle setup + insurance
   Match the request-type radio language while preserving the
   existing card selection logic and full-card click targets.
   ========================================================= */
#zumi-booking-portal .zbp-option-radio {
    position: absolute !important;
    top: 50%;
    right: 16px;
    z-index: 5 !important;
    display: block;
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    border: 1.5px solid #B9B2AB;
    border-radius: 50%;
    background: #FFFFFF;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
    transform: translateY(-50%);
    pointer-events: none;
    transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

#zumi-booking-portal .zbp-option-radio::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #E85E2A;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 150ms ease;
}

#zumi-booking-portal .zbp-vehicle-card--setup,
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option {
    padding-right: 52px;
}

#zumi-booking-portal .zbp-vehicle-card--setup.is-selected .zbp-option-radio,
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option.is-selected .zbp-option-radio {
    border-color: #E85E2A;
    background: #FFFFFF;
    box-shadow: 0 0 0 3px rgba(232,94,42,.12);
}

#zumi-booking-portal .zbp-vehicle-card--setup.is-selected .zbp-option-radio::after,
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option.is-selected .zbp-option-radio::after {
    transform: translate(-50%, -50%) scale(1);
}

#zumi-booking-portal .zbp-vehicle-card--setup:focus-visible .zbp-option-radio,
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option:focus-visible .zbp-option-radio {
    box-shadow: 0 0 0 4px rgba(232,94,42,.16);
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-option-radio {
        right: 14px;
        width: 18px;
        height: 18px;
    }

    #zumi-booking-portal .zbp-option-radio::after {
        width: 8px;
        height: 8px;
    }

    #zumi-booking-portal .zbp-vehicle-card--setup,
    #zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option {
        padding-right: 46px !important;
    }
}

/* =========================================================
   v2.8.5 — Move setup + insurance radios away from ghost icons
   Keep the decorative vehicle/insurance artwork on the right;
   place the actual single-choice radio indicator on the left.
   ========================================================= */
#zumi-booking-portal .zbp-vehicle-card--setup .zbp-option-radio,
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option .zbp-option-radio {
    left: 16px !important;
    right: auto !important;
}

#zumi-booking-portal .zbp-vehicle-card--setup {
    padding-left: 52px !important;
    padding-right: clamp(20px, 1.6vw, 28px) !important;
}

#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option {
    padding-left: 52px !important;
    padding-right: 12px !important;
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-vehicle-card--setup .zbp-option-radio,
    #zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option .zbp-option-radio {
        left: 14px !important;
        right: auto !important;
    }

    #zumi-booking-portal .zbp-vehicle-card--setup {
        padding-left: 46px !important;
        padding-right: 17px !important;
    }

    #zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option {
        padding-left: 46px !important;
        padding-right: 12px !important;
    }
}


/* v3.8.17 — Hilux instant-booking and split-payment messaging */
#zumi-booking-portal .zbp-instant-booking{display:flex;gap:9px;align-items:flex-start;margin:10px 0 0;padding:10px 11px;border:1px solid rgba(232,94,42,.24);border-radius:4px;background:rgba(232,94,42,.055)}
#zumi-booking-portal .zbp-instant-check{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:#E85E2A;color:#fff;font-weight:900;font-size:14px;line-height:1}
#zumi-booking-portal .zbp-instant-booking strong{display:block;color:#171717;font-size:12px;line-height:1.2}
#zumi-booking-portal .zbp-instant-booking small{display:block;margin-top:3px;color:#6d625b;font-size:11px;line-height:1.4}
#zumi-booking-portal .zbp-summary-price-note{line-height:1.45}


/* =========================================================
   v3.8.19 — SIMPLE VEHICLE PAYMENT HERO NOTE
   ========================================================= */
#zumi-booking-portal .zbp-hero-payment-note {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: flex-start;
    gap: 10px;
    max-width: 690px;
    margin-top: 14px;
    padding: 11px 13px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 4px;
    background: rgba(0,0,0,.16);
}
#zumi-booking-portal .zbp-hero-payment-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 23px;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    background: var(--z-orange);
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
}
#zumi-booking-portal .zbp-hero-payment-note strong {
    display: block;
    color: #fff;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
}
#zumi-booking-portal .zbp-hero-payment-note small {
    display: block;
    margin-top: 3px;
    color: rgba(255,255,255,.68);
    font-size: 11.5px;
    line-height: 1.45;
}
@media (max-width: 720px) {
    #zumi-booking-portal .zbp-hero-payment-note {
        width: 100%;
        max-width: none;
    }
}


/* v3.8.25 — flexible camping sleeping combinations */
#zumi-booking-portal .zbp-camping-custom-notice {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(232,94,42,.28);
    border-radius: 4px;
    background: rgba(232,94,42,.06);
    display: grid;
    gap: 4px;
}
#zumi-booking-portal .zbp-camping-custom-notice strong { color:#E85E2A; font-size:13px; }
#zumi-booking-portal .zbp-camping-custom-notice span { color:#625b56; font-size:12px; line-height:1.45; }
#zumi-booking-portal .zbp-camping-builder { display:grid; gap:10px; width:100%; }
#zumi-booking-portal .zbp-camping-builder-row {
    display:grid;
    grid-template-columns:54px minmax(0,1fr) 86px;
    align-items:center;
    gap:12px;
    padding:14px;
    border:1px solid #e6e0dc;
    border-radius:4px;
    background:#fff;
}
#zumi-booking-portal .zbp-camping-builder-row--own { background:#fffaf7; border-color:#efd8ce; }
#zumi-booking-portal .zbp-camping-builder-icon {
    width:48px;height:48px;border-radius:4px;background:#fff4ee;display:grid;place-items:center;color:#E85E2A;font-weight:900;font-size:22px;
}
#zumi-booking-portal .zbp-camping-builder-icon img { width:38px;height:38px;object-fit:contain; }
#zumi-booking-portal .zbp-camping-builder-icon--ground { font-size:28px; }
#zumi-booking-portal .zbp-camping-builder-icon--own { background:#f0f8f1;color:#2c8a45; }
#zumi-booking-portal .zbp-camping-builder-copy { display:grid; gap:4px; min-width:0; }
#zumi-booking-portal .zbp-camping-builder-copy strong { font-size:14px; color:#171717; }
#zumi-booking-portal .zbp-camping-builder-copy small { font-size:12px; line-height:1.45; color:#6f6762; }
#zumi-booking-portal .zbp-camping-count { display:grid; gap:4px; }
#zumi-booking-portal .zbp-camping-count span { font-size:9px; text-transform:uppercase; letter-spacing:.8px; color:#8b817a; font-weight:800; }
#zumi-booking-portal .zbp-camping-count select {
    width:100%; min-height:40px; border:1px solid #d9d1cc; border-radius:4px; background:#fff; padding:6px 9px; font-weight:800; color:#171717;
}
#zumi-booking-portal .zbp-camping-pricing-note.is-warning { border-color:rgba(232,94,42,.38); background:rgba(232,94,42,.07); }
#zumi-booking-portal .zbp-camping-pricing-note.is-error { border-color:#c73a2a; background:#fff2f0; color:#8f251a; }
@media (max-width: 700px) {
    #zumi-booking-portal .zbp-camping-builder-row { grid-template-columns:44px minmax(0,1fr) 72px; gap:9px; padding:11px; }
    #zumi-booking-portal .zbp-camping-builder-icon { width:40px;height:40px;border-radius:4px; }
    #zumi-booking-portal .zbp-camping-builder-icon img { width:32px;height:32px; }
    #zumi-booking-portal .zbp-camping-builder-copy strong { font-size:13px; }
    #zumi-booking-portal .zbp-camping-builder-copy small { font-size:11px; }
}

/* v3.9.1 — simplified camping layout, quantity controls and denser summary */
#zumi-booking-portal .zbp-camping-layout {
    display: block;
}
#zumi-booking-portal .zbp-camping-builder-row--included {
    background:#f8fbf7;
    border-color:#dbe8d8;
}
#zumi-booking-portal .zbp-camping-builder-icon--included {
    background:#eef7ec;
    color:#2f7d3d;
}
#zumi-booking-portal .zbp-camping-included-count {
    display:grid;
    place-items:center;
    min-width:42px;
    min-height:42px;
    padding:6px 9px;
    border-radius:4px;
    background:#eef7ec;
    color:#2f7d3d;
    font-size:16px;
    font-weight:900;
}
#zumi-booking-portal .zbp-camping-custom-notice.is-missing-sleeping {
    border-color:rgba(196,57,38,.42);
    background:#fff4f1;
}
#zumi-booking-portal .zbp-camping-custom-notice.is-missing-sleeping strong {
    color:#a72f20;
}
#zumi-booking-portal .zbp-sleeping-ack {
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin-top:6px;
    padding-top:8px;
    border-top:1px solid rgba(167,47,32,.14);
    cursor:pointer;
}
#zumi-booking-portal .zbp-sleeping-ack input {
    width:18px;
    height:18px;
    margin:1px 0 0;
    flex:0 0 auto;
    accent-color:#E85E2A;
}
#zumi-booking-portal .zbp-sleeping-ack span {
    color:#514844;
    font-size:12px;
    line-height:1.45;
}

@media (min-width:700px) {
    #zumi-booking-portal .zbp-camping-layout {
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px;
        align-items:stretch;
    }
    #zumi-booking-portal .zbp-camping-layout > #zbp-camping-options {
        display:contents;
    }
    #zumi-booking-portal .zbp-camping-layout .zbp-camping-builder-row,
    #zumi-booking-portal .zbp-camping-layout .zbp-camping-custom-notice {
        margin:0;
        min-height:100%;
    }
    #zumi-booking-portal .zbp-camping-layout .zbp-camping-builder-row {
        grid-template-columns:48px minmax(0,1fr) 74px;
        gap:10px;
        padding:12px;
    }
    #zumi-booking-portal .zbp-camping-layout .zbp-camping-custom-notice {
        align-content:center;
        padding:14px;
    }
}

#zumi-booking-portal .zbp-addon-quantity-card {
    display:grid;
    grid-template-columns:56px minmax(0,1fr) minmax(104px,132px);
    align-items:center;
    gap:12px;
    min-width:0;
    padding:13px;
    border:1px solid #e7ded9;
    border-radius:4px;
    background:#fff;
}
#zumi-booking-portal .zbp-addon-quantity-card > img {
    width:52px;
    height:52px;
    object-fit:contain;
    border-radius:4px;
}
#zumi-booking-portal .zbp-addon-quantity-control {
    display:grid;
    gap:4px;
}
#zumi-booking-portal .zbp-addon-quantity-control > span {
    font-size:9px;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:.75px;
    color:#857a74;
    font-weight:800;
}
#zumi-booking-portal .zbp-addon-quantity-control select {
    width:100%;
    min-height:42px;
    border:1px solid #d8d0cb;
    border-radius:4px;
    background:#fff;
    color:#171717;
    font-weight:800;
    padding:7px 9px;
}
#zumi-booking-portal .zbp-addon-quantity-control select:disabled {
    background:#f4f1ef;
    color:#857a74;
}
@media (max-width:699px) {
    #zumi-booking-portal .zbp-addon-quantity-card {
        grid-template-columns:48px minmax(0,1fr);
        gap:10px;
    }
    #zumi-booking-portal .zbp-addon-quantity-control {
        grid-column:1 / -1;
        grid-template-columns:auto minmax(0,1fr);
        align-items:center;
        gap:10px;
    }
}

/* Summary text becomes modestly denser as options are added. Mobile stays unchanged. */
@media (min-width:701px) {
    #zumi-booking-portal .zbp-summary.zbp-summary-density-1 .zbp-summary-item span {
        font-size:10.5px !important;
    }
    #zumi-booking-portal .zbp-summary.zbp-summary-density-1 .zbp-summary-item strong {
        font-size:12.5px !important;
        line-height:1.32 !important;
    }
    #zumi-booking-portal .zbp-summary.zbp-summary-density-2 .zbp-summary-item {
        padding-top:7px !important;
        padding-bottom:7px !important;
    }
    #zumi-booking-portal .zbp-summary.zbp-summary-density-2 .zbp-summary-item span {
        font-size:10px !important;
    }
    #zumi-booking-portal .zbp-summary.zbp-summary-density-2 .zbp-summary-item strong {
        font-size:11.75px !important;
        line-height:1.28 !important;
    }
    #zumi-booking-portal .zbp-summary.zbp-summary-density-2 .zbp-summary-pricing > div span,
    #zumi-booking-portal .zbp-summary.zbp-summary-density-2 .zbp-summary-pricing > div strong {
        font-size:11.5px !important;
    }
}


/* v3.9.4 — compact quantities, informational camping tile, responsive trust panel */
#zumi-booking-portal .zbp-camping-count,
#zumi-booking-portal .zbp-addon-quantity-control {
    justify-items: center;
    align-items: center;
    text-align: center;
}
#zumi-booking-portal .zbp-camping-count span,
#zumi-booking-portal .zbp-addon-quantity-control > span {
    width: 100%;
    text-align: center;
}
#zumi-booking-portal .zbp-camping-count select,
#zumi-booking-portal .zbp-addon-quantity-control select {
    width: auto !important;
    min-width: 68px !important;
    max-width: none !important;
    justify-self: center;
    padding-left: 10px;
    padding-right: 28px;
}
#zumi-booking-portal .zbp-addon-quantity-card {
    grid-template-columns: 56px minmax(0,1fr) max-content !important;
}
#zumi-booking-portal .zbp-camping-builder-icon--ground img {
    width: 34px !important;
    height: 34px !important;
    object-fit: contain;
    filter: brightness(0) saturate(100%);
}
#zumi-booking-portal .zbp-camping-builder-row--info {
    cursor: default;
    background: #f7faf5 !important;
    border: 1px dashed #cfdcc9 !important;
    box-shadow: none !important;
    grid-template-columns: 48px minmax(0,1fr) !important;
}
#zumi-booking-portal .zbp-camping-builder-row--info:hover {
    border-color: #cfdcc9 !important;
    box-shadow: none !important;
    transform: none !important;
}
#zumi-booking-portal .zbp-camping-builder-row--info .zbp-camping-builder-copy small b {
    color: #263b29;
    font-weight: 900;
}
#zumi-booking-portal .zbp-camping-included-count { display:none !important; }
#zumi-booking-portal .zbp-fleet-price-icon {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    align-self: center;
    background: var(--z-orange);
    -webkit-mask: url('https://zumirentals.com/wp-content/uploads/2026/10/currency-icon.svg') center / contain no-repeat;
    mask: url('https://zumirentals.com/wp-content/uploads/2026/10/currency-icon.svg') center / contain no-repeat;
}
#zumi-booking-portal .zbp-fleet-price { align-items:center; }

/* When the hero stacks at tablet/intermediate widths, the confidence panel uses
   all available width instead of remaining a narrower desktop card. */
@media (min-width:761px) and (max-width:1320px) {
    #zumi-booking-portal .zbp-trust-intro {
        width:100% !important;
        max-width:none !important;
        justify-self:stretch !important;
    }
}
@media (max-width:699px) {
    #zumi-booking-portal .zbp-addon-quantity-card {
        grid-template-columns:48px minmax(0,1fr) !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-control {
        grid-template-columns:auto max-content !important;
        justify-content:start;
    }
}

#zumi-booking-portal .zbp-currency-label-icon{
    width:18px!important;
    height:18px!important;
    flex:0 0 18px;
    background:var(--z-orange)!important;
    border:0!important;
    border-radius:0!important;
    -webkit-mask:url('https://zumirentals.com/wp-content/uploads/2026/10/currency-icon.svg') center/contain no-repeat;
    mask:url('https://zumirentals.com/wp-content/uploads/2026/10/currency-icon.svg') center/contain no-repeat;
}


/* v3.9.7 — intermediate-width camping spacing and typography */
@media (min-width:700px) and (max-width:1250px) {
    #zumi-booking-portal #zbp-camping-config-panel > .zbp-config-panel-copy {
        margin-bottom: 22px;
    }
    #zumi-booking-portal #zbp-camping-config-panel .zbp-camping-builder-copy {
        gap: 3px;
    }
    #zumi-booking-portal #zbp-camping-config-panel .zbp-camping-builder-copy strong {
        font-size: 12.25px !important;
        line-height: 1.25 !important;
    }
    #zumi-booking-portal #zbp-camping-config-panel .zbp-camping-builder-copy small {
        font-size: 10.5px !important;
        line-height: 1.38 !important;
    }
    #zumi-booking-portal #zbp-camping-config-panel .zbp-camping-custom-notice strong {
        font-size: 12px !important;
        line-height: 1.25 !important;
    }
    #zumi-booking-portal #zbp-camping-config-panel .zbp-camping-custom-notice span,
    #zumi-booking-portal #zbp-camping-config-panel .zbp-sleeping-ack span {
        font-size: 10.5px !important;
        line-height: 1.38 !important;
    }
}

/* v3.9.9 — compact quantity controls + resilient responsive cards */
#zumi-booking-portal .zbp-addon-quantity-card {
    grid-template-columns: 42px minmax(120px,1fr) max-content !important;
    gap: 8px !important;
    align-items: center !important;
}
#zumi-booking-portal .zbp-addon-quantity-card > img {
    width: 40px !important;
    height: 40px !important;
    max-width: 40px !important;
}
#zumi-booking-portal .zbp-addon-quantity-card .zbp-addon-copy strong,
#zumi-booking-portal .zbp-addon-quantity-card .zbp-addon-copy small {
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}
#zumi-booking-portal .zbp-addon-quantity-control {
    width: auto !important;
    min-width: 0 !important;
    justify-self: end !important;
    gap: 3px !important;
}
#zumi-booking-portal .zbp-addon-quantity-control > span,
#zumi-booking-portal .zbp-camping-count > span {
    font-size: 8px !important;
    line-height: 1 !important;
}
#zumi-booking-portal .zbp-addon-quantity-control select,
#zumi-booking-portal .zbp-camping-count select {
    width: auto !important;
    min-width: 52px !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 3px 24px 3px 8px !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
    border-radius: 4px !important;
}

/* When the booking form and sticky summary share the screen, give quantity
   cards enough horizontal room so labels never collapse into vertical text. */
@media (min-width:701px) and (max-width:1650px) {
    #zumi-booking-portal .zbp-addon-grid > .zbp-addon-quantity-card {
        grid-column: span 2;
    }
}

/* Mobile: keep quantity cards horizontal and make the numeric control compact. */
@media (max-width:700px) {
    #zumi-booking-portal .zbp-addon-quantity-card {
        grid-template-columns: 36px minmax(0,1fr) max-content !important;
        gap: 7px !important;
        padding: 10px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-card > img {
        width: 34px !important;
        height: 34px !important;
        max-width: 34px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-card .zbp-addon-copy strong {
        font-size: 10px !important;
        line-height: 1.2 !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-card .zbp-addon-copy small {
        font-size: 9.5px !important;
        line-height: 1.25 !important;
        margin-top: 2px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-control {
        grid-column: auto !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        gap: 2px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-control select,
    #zumi-booking-portal .zbp-camping-count select {
        min-width: 46px !important;
        min-height: 32px !important;
        height: 32px !important;
        padding: 2px 21px 2px 7px !important;
        font-size: 11px !important;
    }
}

/* In the two-column summary layout, notes should keep their natural content
   height rather than stretching to match the pricing block beside them. */
#zumi-booking-portal .zbp-summary-anomaly-note,
#zumi-booking-portal .zbp-summary-anomaly-entry {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
}
@media (max-width:1050px) {
    #zumi-booking-portal .zbp-summary-list {
        align-items: start !important;
        grid-auto-rows: max-content !important;
    }
}


/* v4.0.0 — guided insurance state, sleeping icons and rental-cap clarity */
#zumi-booking-portal .zbp-config-panel.is-guided-disabled {
    background: #f4f4f4;
    border-color: #d9d9d9;
}
#zumi-booking-portal .zbp-config-panel.is-guided-disabled .zbp-config-panel-head,
#zumi-booking-portal .zbp-config-panel.is-guided-disabled .zbp-insurance-recommendation,
#zumi-booking-portal .zbp-config-panel.is-guided-disabled .zbp-config-options {
    opacity: .58;
}
#zumi-booking-portal .zbp-config-panel.is-guided-disabled .zbp-config-option {
    cursor: not-allowed;
    filter: grayscale(.2);
}
#zumi-booking-portal .zbp-guided-insurance-note {
    margin: 12px 0 14px;
    padding: 12px 14px;
    border: 1px solid #d5d5d5;
    border-left: 4px solid #8b8b8b;
    border-radius: 4px;
    background: #fff;
    color: #555;
    font-size: 13px;
    line-height: 1.5;
}
#zumi-booking-portal .zbp-guided-insurance-note strong { display:block; color:#333; margin-bottom:3px; }
#zumi-booking-portal .zbp-camping-builder-icon--duo { display:flex; align-items:center; justify-content:center; gap:2px; }
#zumi-booking-portal .zbp-camping-builder-icon--duo img { width:48%; height:48%; object-fit:contain; }
#zumi-booking-portal .zbp-flex-sleep-icon {
    display:inline-block;
    width:22px;
    height:22px;
    margin-right:7px;
    vertical-align:-5px;
    filter: brightness(0) saturate(100%) invert(48%) sepia(96%) saturate(2573%) hue-rotate(345deg) brightness(98%) contrast(85%);
}
#zumi-booking-portal .zbp-sleeping-warning-icon {
    display:inline-block;
    width:18px;
    height:18px;
    margin-left:5px;
    vertical-align:-4px;
    filter: brightness(0) saturate(100%) invert(23%) sepia(93%) saturate(3470%) hue-rotate(352deg) brightness(87%) contrast(96%);
}
#zumi-booking-portal .zbp-cap-help,
#zumi-booking-portal .zbp-rental-cap-help { color:#766b64; font-weight:500; }
#zumi-booking-portal .zbp-addon-choice.is-not-required-guided { opacity:.55; cursor:not-allowed; }
@media (max-width: 640px) {
    #zumi-booking-portal .zbp-guided-insurance-note { padding:10px 11px; font-size:12.5px; }
    #zumi-booking-portal .zbp-flex-sleep-icon { width:20px; height:20px; }
}


/* v3.10.1 — summary geometry, responsive sleeping cards, supplemental cover and compact rental-cap help */
#zumi-booking-portal .zbp-summary-anomaly-note { margin:0 !important; }
@media (max-width:1050px) {
    #zumi-booking-portal .zbp-summary-list {
        align-items:stretch !important;
        grid-auto-rows:auto !important;
    }
    #zumi-booking-portal .zbp-summary-item { align-self:stretch !important; height:100%; }
    #zumi-booking-portal .zbp-summary-pricing,
    #zumi-booking-portal .zbp-summary-anomaly-note {
        grid-column:1 / -1 !important;
        align-self:start !important;
        height:auto !important;
    }
}
@media (max-width:640px) {
    #zumi-booking-portal .zbp-summary-list { grid-template-columns:1fr !important; }
}

/* The configurator column becomes too narrow before the viewport itself is
   mobile-sized. Stack sleeping setup cards at these intermediate widths. */
@media (min-width:700px) and (max-width:1350px) {
    #zumi-booking-portal .zbp-camping-layout {
        display:block !important;
    }
    #zumi-booking-portal .zbp-camping-layout > #zbp-camping-options {
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:10px !important;
    }
    #zumi-booking-portal .zbp-camping-layout .zbp-camping-builder-row,
    #zumi-booking-portal .zbp-camping-layout .zbp-camping-custom-notice {
        min-height:0 !important;
        height:auto !important;
        margin:0 !important;
    }
    #zumi-booking-portal .zbp-camping-layout .zbp-camping-custom-notice { margin-top:10px !important; }
}

#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental {
    position:relative;
    border-style:dashed;
    border-color:#b9c8d0;
    background:#f7fafb;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected {
    border-style:solid;
    border-color:#E85E2A;
    background:#fff8f4;
}
#zumi-booking-portal .zbp-config-supplemental {
    display:inline-flex;
    width:max-content;
    max-width:100%;
    margin:0 0 5px;
    padding:3px 7px;
    border-radius:4px;
    background:#e9f0f4;
    color:#52646d;
    font-size:8px;
    line-height:1.2;
    font-weight:850;
    letter-spacing:.05em;
    text-transform:uppercase;
}
#zumi-booking-portal .zbp-tyre-windscreen-status {
    display:block;
    margin-top:5px;
    color:#67747a;
    font-size:9px;
    line-height:1.3;
    font-weight:750;
}
#zumi-booking-portal #zbp-tyre-windscreen-option:disabled,
#zumi-booking-portal #zbp-tyre-windscreen-option.is-included-with-zero,
#zumi-booking-portal #zbp-tyre-windscreen-option.is-not-required-guided {
    cursor:not-allowed;
    border-style:solid;
    border-color:#d6dadd;
    background:#f1f2f2;
    opacity:.62;
    filter:grayscale(.18);
}

#zumi-booking-portal .zbp-rental-cap-inline {
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:3px;
    white-space:nowrap;
}
#zumi-booking-portal .zbp-cap-info-button {
    display:inline-grid;
    place-items:center;
    width:17px;
    height:17px;
    min-width:17px;
    padding:0;
    border:1px solid #B8C0C6;
    border-radius:50%;
    background:#fff;
    color:#65717a;
    font:800 10px/1 Arial,sans-serif;
    cursor:pointer;
    vertical-align:middle;
}
#zumi-booking-portal .zbp-cap-info-button:hover,
#zumi-booking-portal .zbp-cap-info-button:focus-visible {
    border-color:#8f9aa1;
    color:#3f4b52;
    outline:none;
}
#zumi-booking-portal .zbp-cap-info-popover {
    position:absolute;
    left:0;
    top:calc(100% + 7px);
    z-index:80;
    width:max-content;
    max-width:min(290px, calc(100vw - 36px));
    padding:10px 12px;
    border:1px solid #DDE1E4;
    border-radius:4px;
    background:#F5F7F8;
    color:#4F575D;
    box-shadow:0 8px 22px rgba(35,44,49,.12);
    font:500 11px/1.45 Arial,sans-serif;
    white-space:normal;
    text-align:left;
}
#zumi-booking-portal .zbp-cap-info-popover[hidden] { display:none !important; }


/* v3.10.2 — supplemental Tyre/Windscreen checkbox treatment + one rental-cap explanation */
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental {
    padding-right:46px;
}
#zumi-booking-portal .zbp-supplemental-checkbox {
    position:absolute;
    right:13px;
    top:50%;
    display:grid;
    place-items:center;
    width:24px;
    height:24px;
    transform:translateY(-50%);
    border:1.5px solid #9eabb2;
    border-radius:4px;
    background:#fff;
    color:transparent;
    font-size:13px;
    font-weight:900;
    line-height:1;
    transition:background-color 80ms ease,border-color 80ms ease,color 80ms ease;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected {
    border-style:solid;
    border-color:#E85E2A;
    background:#30383c;
    color:#f8f5f2;
    box-shadow:0 0 0 2px rgba(232,94,42,.08);
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected strong,
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected small,
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-tyre-windscreen-status {
    color:#f3f0ed !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected small,
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-tyre-windscreen-status {
    opacity:.82;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-config-supplemental {
    background:rgba(255,255,255,.12);
    color:#fff;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox {
    border-color:#E85E2A;
    background:#E85E2A;
    color:#fff;
}
#zumi-booking-portal #zbp-tyre-windscreen-option:disabled .zbp-supplemental-checkbox,
#zumi-booking-portal #zbp-tyre-windscreen-option.is-included-with-zero .zbp-supplemental-checkbox {
    border-color:#9ca7a0;
    background:#9ca7a0;
    color:#fff;
}

#zumi-booking-portal .zbp-rental-cap-notice {
    margin:12px 0 16px;
    padding:10px 12px;
    border:1px solid #e2e6e8;
    border-left:3px solid #E85E2A;
    border-radius:4px;
    background:#f7f9fa;
    color:#5d666b;
    font-size:11.5px;
    line-height:1.45;
}
#zumi-booking-portal .zbp-rental-cap-notice strong { color:#2f373b; }

/* Legacy per-item question-mark UI is intentionally retired. */
#zumi-booking-portal .zbp-cap-info-button,
#zumi-booking-portal .zbp-cap-info-popover { display:none !important; }

@media (max-width:640px) {
    #zumi-booking-portal .zbp-rental-cap-notice {
        margin-top:10px;
        font-size:11px;
    }
}

/* Turnstile recovery control shown only if verification stalls or errors. */
#zumi-booking-portal .zbp-turnstile-status .zbp-turnstile-retry {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin:8px 0 0 8px;
    padding:7px 10px;
    border:1px solid #E85E2A;
    border-radius:4px;
    background:#fff;
    color:#E85E2A;
    font:800 11px/1 Arial,sans-serif;
    cursor:pointer;
}
#zumi-booking-portal .zbp-turnstile-status .zbp-turnstile-retry:hover,
#zumi-booking-portal .zbp-turnstile-status .zbp-turnstile-retry:focus-visible {
    background:#fff6f1;
    outline:none;
}


/* =========================================================
   v3.10.4 — make supplemental Tyre & Windscreen selection
   unmistakable: square checkbox aligned with tier radios.
   ========================================================= */
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental {
    padding-left:52px !important;
    padding-right:12px !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental .zbp-supplemental-checkbox {
    left:16px !important;
    right:auto !important;
    top:50% !important;
    z-index:6 !important;
    display:grid !important;
    width:20px !important;
    height:20px !important;
    min-width:20px !important;
    min-height:20px !important;
    transform:translateY(-50%) !important;
    border:2px solid #9eabb2 !important;
    border-radius:4px !important;
    background:#fff !important;
    color:transparent !important;
    box-shadow:0 1px 3px rgba(0,0,0,.05) !important;
    opacity:1 !important;
    visibility:visible !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox {
    border-color:#E85E2A !important;
    background:#E85E2A !important;
    color:#fff !important;
    box-shadow:0 0 0 3px rgba(232,94,42,.14) !important;
}
#zumi-booking-portal #zbp-tyre-windscreen-option:disabled .zbp-supplemental-checkbox,
#zumi-booking-portal #zbp-tyre-windscreen-option.is-included-with-zero .zbp-supplemental-checkbox,
#zumi-booking-portal #zbp-tyre-windscreen-option.is-not-required-guided .zbp-supplemental-checkbox {
    border-color:#9ca7a0 !important;
    background:#9ca7a0 !important;
    color:#fff !important;
}
@media (max-width:640px) {
    #zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental {
        padding-left:46px !important;
        padding-right:12px !important;
    }
    #zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental .zbp-supplemental-checkbox {
        left:14px !important;
        width:19px !important;
        height:19px !important;
        min-width:19px !important;
        min-height:19px !important;
    }
}


/* =========================================================
   v3.10.5 — stable selection outlines, compact upgrade cards,
   Roboto summary and fully itemised pricing transactions.
   ========================================================= */

/* Use the same Roboto family as Zumi quote/invoice documents throughout the summary. */
#zumi-booking-portal .zbp-summary,
#zumi-booking-portal .zbp-summary * {
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
}

/* Selected-state orange must be contained inside each control so parent overflow
   can never crop one or more sides. Retire the tiny corner dot in favour of a
   complete, deterministic orange selection frame. */
#zumi-booking-portal .zbp-choice.is-selected,
#zumi-booking-portal .zbp-request-checkrow.is-selected,
#zumi-booking-portal .zbp-addon-choice.is-selected,
#zumi-booking-portal .zbp-config-option.is-selected,
#zumi-booking-portal .zbp-vehicle-card--setup.is-selected {
    border-color: var(--z-orange) !important;
    box-shadow: inset 0 0 0 1px var(--z-orange) !important;
}
#zumi-booking-portal .zbp-choice.is-selected::after {
    display: none !important;
}

/* Compact add-on / upgrade cards at every breakpoint. */
#zumi-booking-portal .zbp-addon-grid {
    gap: 8px !important;
}
#zumi-booking-portal .zbp-addon-choice {
    grid-template-columns: 32px minmax(0,1fr) 20px !important;
    gap: 8px !important;
    min-height: 58px !important;
    padding: 8px 10px !important;
    border-radius: 4px !important;
}
#zumi-booking-portal .zbp-addon-choice img {
    width: 30px !important;
    height: 30px !important;
    max-width: 30px !important;
}
#zumi-booking-portal .zbp-addon-copy strong {
    font-size: 11px !important;
    line-height: 1.2 !important;
}
#zumi-booking-portal .zbp-addon-copy small {
    margin-top: 2px !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
}
#zumi-booking-portal .zbp-addon-check {
    width: 20px !important;
    height: 20px !important;
    font-size: 10px !important;
}
#zumi-booking-portal .zbp-addon-quantity-card {
    grid-template-columns: 34px minmax(110px,1fr) max-content !important;
    gap: 8px !important;
    min-height: 58px !important;
    padding: 8px 10px !important;
    border-radius: 4px !important;
}
#zumi-booking-portal .zbp-addon-quantity-card > img {
    width: 32px !important;
    height: 32px !important;
    max-width: 32px !important;
}

@media (min-width: 1400px) {
    #zumi-booking-portal .zbp-addon-groups {
        gap: 17px !important;
        margin-top: 17px !important;
    }
    #zumi-booking-portal .zbp-addon-group-title {
        margin-bottom: 8px !important;
        font-size: 12px !important;
    }
    #zumi-booking-portal .zbp-addon-choice {
        grid-template-columns: 38px minmax(0,1fr) 24px !important;
        gap: 10px !important;
        min-height: 72px !important;
        padding: 10px 12px !important;
        border-radius: 4px !important;
    }
    #zumi-booking-portal .zbp-addon-choice img {
        width: 36px !important;
        height: 36px !important;
        max-width: 36px !important;
    }
    #zumi-booking-portal .zbp-addon-copy strong {
        font-size: 14px !important;
    }
    #zumi-booking-portal .zbp-addon-copy small {
        margin-top: 3px !important;
        font-size: 12.5px !important;
        line-height: 1.25 !important;
    }
    #zumi-booking-portal .zbp-addon-check {
        width: 24px !important;
        height: 24px !important;
        font-size: 12px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-card {
        grid-template-columns: 38px minmax(120px,1fr) max-content !important;
        min-height: 72px !important;
        padding: 10px 12px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-card > img {
        width: 36px !important;
        height: 36px !important;
        max-width: 36px !important;
    }
}

@media (min-width: 1900px) {
    #zumi-booking-portal .zbp-addon-choice,
    #zumi-booking-portal .zbp-addon-quantity-card {
        min-height: 76px !important;
        padding-top: 11px !important;
        padding-bottom: 11px !important;
    }
}

@media (max-width: 700px) {
    #zumi-booking-portal .zbp-addon-choice {
        grid-template-columns: 30px minmax(0,1fr) 19px !important;
        min-height: 54px !important;
        padding: 7px 9px !important;
    }
    #zumi-booking-portal .zbp-addon-choice img {
        width: 28px !important;
        height: 28px !important;
        max-width: 28px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-card {
        grid-template-columns: 30px minmax(0,1fr) max-content !important;
        min-height: 54px !important;
        padding: 7px 9px !important;
    }
    #zumi-booking-portal .zbp-addon-quantity-card > img {
        width: 28px !important;
        height: 28px !important;
        max-width: 28px !important;
    }
}

/* Detailed payment ledger: every positive/negative adjustment is visible as
   its own row rather than being netted into an opaque extras subtotal. */
#zumi-booking-portal .zbp-summary-line-items {
    display: contents;
}
#zumi-booking-portal .zbp-summary-pricing-line {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(92px,auto);
    gap: 10px;
    align-items: center;
    min-width: 0;
    padding: 6px 2px;
    color: rgba(255,255,255,.68);
    font-size: 10px;
    line-height: 1.3;
    border-top: 1px solid rgba(255,255,255,.055);
}
#zumi-booking-portal .zbp-summary-pricing-line span {
    min-width: 0;
    overflow-wrap: anywhere;
}
#zumi-booking-portal .zbp-summary-pricing-line strong {
    min-width: 0;
    color: rgba(255,255,255,.94);
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}
#zumi-booking-portal .zbp-summary-pricing-line.is-positive strong {
    color: #F3D0BE;
}
#zumi-booking-portal .zbp-summary-pricing-line.is-negative strong {
    color: #A8E0BE;
}
#zumi-booking-portal .zbp-summary-pricing-line.is-custom strong {
    color: #FFB689;
    white-space: normal;
}

/* The ledger wrapper must not become an extra visual row from the generic
   .zbp-summary-pricing > div rule. */
#zumi-booking-portal .zbp-summary-pricing > .zbp-summary-line-items {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}


/* =========================================================
   v3.10.6 — harden supplemental checkbox + summary warnings
   ========================================================= */

/*
 * Render the Tyre & Windscreen checkbox on the card itself rather than
 * depending on a nested decorative span. This makes the control impossible
 * to lose to child-layout, overflow or translated-content rules.
 */
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental {
    position: relative !important;
    padding-left: 54px !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental .zbp-supplemental-checkbox {
    display: none !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental::before {
    content: "" !important;
    position: absolute !important;
    left: 16px !important;
    top: 50% !important;
    z-index: 12 !important;
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    box-sizing: border-box !important;
    transform: translateY(-50%) !important;
    border: 2px solid #9aa6ad !important;
    border-radius: 5px !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.08) !important;
    opacity: 1 !important;
    pointer-events: none !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental::after {
    content: "" !important;
    position: absolute !important;
    left: 22px !important;
    top: 50% !important;
    z-index: 13 !important;
    display: block !important;
    width: 8px !important;
    height: 4px !important;
    transform: translateY(-62%) rotate(-45deg) scale(0) !important;
    transform-origin: center !important;
    border-left: 2px solid #fff !important;
    border-bottom: 2px solid #fff !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected::before {
    border-color: #E85E2A !important;
    background: #E85E2A !important;
    box-shadow: 0 0 0 3px rgba(232,94,42,.14) !important;
}
#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected::after {
    transform: translateY(-62%) rotate(-45deg) scale(1) !important;
    opacity: 1 !important;
}
#zumi-booking-portal #zbp-tyre-windscreen-option.is-included-with-zero::before {
    border-color: #8e9a94 !important;
    background: #8e9a94 !important;
}
#zumi-booking-portal #zbp-tyre-windscreen-option.is-included-with-zero::after {
    transform: translateY(-62%) rotate(-45deg) scale(1) !important;
    opacity: 1 !important;
}
#zumi-booking-portal #zbp-tyre-windscreen-option.is-not-required-guided::before {
    border-color: #adb4b8 !important;
    background: #f4f5f5 !important;
}
#zumi-booking-portal #zbp-tyre-windscreen-option.is-not-required-guided::after {
    transform: translateY(-62%) rotate(-45deg) scale(0) !important;
    opacity: 0 !important;
}
@media (max-width: 640px) {
    #zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental {
        padding-left: 48px !important;
    }
    #zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental::before {
        left: 14px !important;
        width: 20px !important;
        height: 20px !important;
    }
    #zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental::after {
        left: 19px !important;
    }
}

/* Every warning belongs after the factual summary rows, never between them. */
#zumi-booking-portal .zbp-summary-anomaly-note {
    grid-column: 1 / -1 !important;
    order: 999 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}
#zumi-booking-portal .zbp-summary-anomaly-entry {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}
#zumi-booking-portal .zbp-summary-anomaly-entry > span:last-child {
    display: block !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    color: rgba(255,255,255,.92) !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
}

/* The summary can be a narrow sticky sidebar even on a very wide desktop.
   Container sizing fixes that case instead of relying only on viewport width. */
#zumi-booking-portal .zbp-summary {
    container-type: inline-size;
    container-name: zbp-summary-card;
}
@container zbp-summary-card (max-width: 520px) {
    #zumi-booking-portal .zbp-summary-list {
        grid-template-columns: 1fr !important;
    }
    #zumi-booking-portal .zbp-summary-anomaly-note {
        grid-column: 1 !important;
    }
}

/* Fallback for browsers without container queries: JS also adds this class. */
#zumi-booking-portal .zbp-summary.is-narrow-summary .zbp-summary-list {
    grid-template-columns: 1fr !important;
}
#zumi-booking-portal .zbp-summary.is-narrow-summary .zbp-summary-anomaly-note {
    grid-column: 1 !important;
}

/* Roboto for secondary/service copy explicitly requested by Zumi. */
#zumi-booking-portal .zbp-addon-copy small,
#zumi-booking-portal .zbp-addon-quantity-card .zbp-addon-copy small,
#zumi-booking-portal .zbp-request-check-copy small,
#zumi-booking-portal .zbp-mode-intro-copy-text > span,
#zumi-booking-portal .zbp-config-capacity,
#zumi-booking-portal .zbp-config-option small {
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
}


/* =========================================================
   v3.10.7 — validation toast, summary warning breathing room,
   visible excess amounts and global no-auto-hyphenation.
   ========================================================= */

/* Do not auto-hyphenate or split words anywhere in the booking portal. */
#zumi-booking-portal,
#zumi-booking-portal * {
    -webkit-hyphens: none !important;
    hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

/* Excess amount is part of every tier label. Zero Excess is intentionally
   orange to make the N$0 exposure visually unmistakable. */
#zumi-booking-portal .zbp-excess-amount {
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-weight: 700;
    white-space: nowrap;
}
#zumi-booking-portal .zbp-zero-excess-label,
#zumi-booking-portal .zbp-zero-excess-label span {
    color: var(--z-orange) !important;
}

/* In a vertical/narrow summary, warnings must never sit directly against the
   summary-list border. The wrapper supplies breathing room on all four sides. */
@container zbp-summary-card (max-width: 520px) {
    #zumi-booking-portal .zbp-summary-anomaly-note {
        padding: 10px !important;
        gap: 9px !important;
        background: #202020 !important;
    }
}
#zumi-booking-portal .zbp-summary.is-narrow-summary .zbp-summary-anomaly-note {
    padding: 10px !important;
    gap: 9px !important;
    background: #202020 !important;
}
@media (max-width: 640px) {
    #zumi-booking-portal .zbp-summary.is-narrow-summary .zbp-summary-anomaly-note,
    #zumi-booking-portal .zbp-summary-anomaly-note {
        padding: 9px !important;
    }
}

/* One consistent floating error notification for every incomplete/invalid
   field instead of inserting differently-sized inline error boxes. */
#zumi-booking-portal > .zbp-submit-error {
    position: fixed !important;
    top: 92px !important;
    right: 22px !important;
    z-index: 2147483000 !important;
    display: none !important;
    width: min(390px, calc(100vw - 32px)) !important;
    max-width: calc(100vw - 32px) !important;
    margin: 0 !important;
    padding: 14px 16px 14px 46px !important;
    border: 1px solid rgba(232,94,42,.46) !important;
    border-radius: 4px !important;
    background: #FFF7F2 !important;
    color: #783218 !important;
    box-shadow: 0 14px 38px rgba(34,20,12,.22) !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.45 !important;
    text-align: left !important;
}
#zumi-booking-portal > .zbp-submit-error::before {
    content: "!";
    position: absolute;
    left: 14px;
    top: 50%;
    width: 22px;
    height: 22px;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    border: 1px solid rgba(232,94,42,.45);
    border-radius: 7px;
    background: rgba(232,94,42,.12);
    color: var(--z-orange);
    font: 900 14px/1 "Roboto", Arial, sans-serif;
}
#zumi-booking-portal > .zbp-submit-error.is-visible {
    display: block !important;
    animation: zbpValidationToastIn .18s ease-out both;
}
@keyframes zbpValidationToastIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 760px) {
    #zumi-booking-portal > .zbp-submit-error {
        top: 74px !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
        max-width: none !important;
        padding: 13px 14px 13px 43px !important;
        font-size: 12.5px !important;
    }
    #zumi-booking-portal > .zbp-submit-error::before {
        left: 12px;
        width: 21px;
        height: 21px;
    }
}

/* Inline error boxes from older cached markup/scripts are suppressed; the
   floating notification above is the single validation-message surface. */
#zumi-booking-portal .zbp-inline-validation-error {
    display: none !important;
}

/* =========================================================
   v3.10.8 — Zero Excess becomes the recommendation banner.
   The separate recommendation banner above the tiers has been removed.
   ========================================================= */
#zumi-booking-portal .zbp-config-option--zero-banner {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) 20px !important;
    gap: 10px !important;
    align-items: center !important;
    min-height: 66px !important;
    padding: 11px 12px !important;
    color: #6A4A0A !important;
    background: linear-gradient(180deg, #FFF9DD 0%, #FFF0B8 100%) !important;
    border: 1px solid #E8BE52 !important;
    border-radius: 4px !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72) !important;
}

#zumi-booking-portal .zbp-config-option--zero-banner:hover {
    border-color: #DFA52A !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.78), 0 5px 14px rgba(173,116,0,.10) !important;
}

#zumi-booking-portal .zbp-config-option--zero-banner.is-selected {
    color: #6A4A0A !important;
    background: linear-gradient(180deg, #FFF7D1 0%, #FFEAA1 100%) !important;
    border-color: #E3A322 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.82), 0 0 0 2px rgba(227,163,34,.17), 0 6px 16px rgba(173,116,0,.12) !important;
}

#zumi-booking-portal .zbp-zero-banner-icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    padding: 0;
    background: #E3A322;
    border: 0;
    border-radius: 4px;
    box-shadow: 0 3px 8px rgba(173,116,0,.18);
    line-height: 1;
}

#zumi-booking-portal .zbp-zero-banner-icon img {
    display: block;
    width: 17px !important;
    height: 17px !important;
    max-width: 17px !important;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

#zumi-booking-portal .zbp-zero-banner-copy {
    display: block;
    min-width: 0;
}

#zumi-booking-portal .zbp-config-option--zero-banner .zbp-config-recommended {
    display: block !important;
    width: auto !important;
    margin: 0 0 2px !important;
    padding: 0 !important;
    color: #C47800 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-size: 10px !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

#zumi-booking-portal .zbp-config-option--zero-banner .zbp-zero-excess-label,
#zumi-booking-portal .zbp-config-option--zero-banner .zbp-zero-excess-label span {
    display: inline !important;
    color: #C47800 !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    line-height: 1.25 !important;
}

#zumi-booking-portal .zbp-config-option--zero-banner small {
    display: block !important;
    margin-top: 2px !important;
    color: #6A4A0A !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
}

#zumi-booking-portal .zbp-config-option--zero-banner .zbp-option-radio {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    justify-self: end !important;
    transform: none !important;
}

#zumi-booking-portal .zbp-config-option--zero-banner.is-selected .zbp-option-radio {
    border-color: #E3A322 !important;
    background: #FFFFFF !important;
    box-shadow: 0 0 0 3px rgba(227,163,34,.15) !important;
}

#zumi-booking-portal .zbp-config-option--zero-banner.is-selected .zbp-option-radio::after {
    background: #E3A322 !important;
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-config-option--zero-banner {
        grid-template-columns: 32px minmax(0, 1fr) 18px !important;
        gap: 9px !important;
        padding: 10px 11px !important;
    }

    #zumi-booking-portal .zbp-zero-banner-icon {
        width: 28px;
        height: 28px;
        min-width: 28px;
    }
}


/* =========================================================
   v3.10.9 — consistent notice inset + real information icons
   ========================================================= */

/* Give the orange warning/adjustment surfaces the same breathing room at
   every viewport width rather than changing spacing between breakpoints. */
#zumi-booking-portal .zbp-summary-anomaly-note {
    padding: 10px !important;
    gap: 9px !important;
    background: #202020 !important;
    box-sizing: border-box !important;
}
#zumi-booking-portal .zbp-summary-anomaly-entry {
    padding: 11px 12px !important;
}
#zumi-booking-portal .zbp-camping-custom-notice {
    padding: 12px 14px !important;
}

/* Sleeping-adjustment notice: use the supplied Zumi information artwork,
   tint it orange and center it vertically regardless of text wrapping. */
#zumi-booking-portal .zbp-camping-pricing-note {
    min-height: 42px;
    margin-top: 10px !important;
    padding: 11px 14px 11px 44px !important;
    box-sizing: border-box !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
}
#zumi-booking-portal .zbp-camping-pricing-note::before {
    content: "" !important;
    position: absolute !important;
    left: 14px !important;
    top: 50% !important;
    width: 18px !important;
    height: 18px !important;
    transform: translateY(-50%) !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    background-image: url("https://zumirentals.com/wp-content/uploads/2026/10/info-icon.svg") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    filter: brightness(0) saturate(100%) invert(49%) sepia(91%) saturate(2570%) hue-rotate(347deg) brightness(96%) contrast(89%) !important;
    color: transparent !important;
    font-size: 0 !important;
}

/* Itinerary helper uses the same supplied icon instead of a text letter i. */
#zumi-booking-portal .zbp-info-strip > .zbp-info-strip-icon {
    display: grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    color: transparent !important;
    background: rgba(232,94,42,.08) !important;
    border: 1px solid rgba(232,94,42,.22) !important;
    border-radius: 4px !important;
    font-size: 0 !important;
}
#zumi-booking-portal .zbp-info-strip > .zbp-info-strip-icon img {
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    object-fit: contain !important;
    filter: brightness(0) saturate(100%) invert(49%) sepia(91%) saturate(2570%) hue-rotate(347deg) brightness(96%) contrast(89%) !important;
}

/* Neutralize older breakpoint-specific notice padding so spacing is identical
   from mobile through ultrawide desktop. */
@media (max-width: 640px) {
    #zumi-booking-portal .zbp-summary-anomaly-note {
        padding: 10px !important;
    }
    #zumi-booking-portal .zbp-camping-pricing-note {
        padding: 11px 14px 11px 44px !important;
    }
}


/* =========================================================
   v3.10.10 — camping copy spacing, tighter fleet cards,
   square flags, stateful fleet navigation and tyre/windscreen SVG ghost
   ========================================================= */

/* On wide layouts, keep the sleeping-setup intro from touching the cards. */
@media (min-width: 1251px) {
    #zumi-booking-portal #zbp-camping-config-panel > .zbp-config-panel-copy {
        margin-bottom: 12px !important;
    }
}

/* Emphasise only the number of rooftop tents included in the package. */
#zumi-booking-portal .zbp-rooftop-included-count {
    color: inherit;
    font: inherit;
    font-weight: 800 !important;
}

/* Vehicle cards: reduce empty vertical space without crowding the copy. */
#zumi-booking-portal .zbp-fleet-body p {
    margin-top: 6px !important;
}
#zumi-booking-portal .zbp-fleet-specs {
    margin-top: 6px !important;
}
#zumi-booking-portal .zbp-fleet-actions {
    margin-top: 8px !important;
}
@media (min-width: 701px) {
    #zumi-booking-portal .zbp-fleet-body p {
        min-height: 34px !important;
    }
}

/* Currency flags should read as flags, not circular avatars. */
#zumi-booking-portal .zbp-currency-buttons img {
    border-radius: 0 !important;
}

/* Fleet controls use literal < and > glyphs. Grey out directions that cannot scroll. */
#zumi-booking-portal .zbp-slider-arrow {
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}
#zumi-booking-portal .zbp-slider-arrow:disabled,
#zumi-booking-portal .zbp-slider-arrow[aria-disabled="true"] {
    color: #A8A39E !important;
    background: #F3F1EF !important;
    border-color: #E2DEDA !important;
    box-shadow: none !important;
    cursor: default !important;
    opacity: .62 !important;
}
#zumi-booking-portal .zbp-slider-arrow:disabled:hover,
#zumi-booking-portal .zbp-slider-arrow[aria-disabled="true"]:hover {
    color: #A8A39E !important;
    background: #F3F1EF !important;
    border-color: #E2DEDA !important;
}

/* The new local tyre + windscreen SVG uses the same ghost treatment as the
   excess shield artwork. Keep it decorative and away from the checkbox. */
#zumi-booking-portal .zbp-insurance-ghost--tyre {
    right: -7px !important;
    bottom: -10px !important;
    opacity: .055 !important;
    filter: brightness(0) !important;
    transform: rotate(-4deg) !important;
}
#zumi-booking-portal .zbp-config-option--supplemental.is-selected .zbp-insurance-ghost--tyre {
    opacity: .10 !important;
    filter: brightness(0) invert(1) !important;
}

/* ==========================================================================
   v3.10.11 — guided insurance cancellation icon
   ========================================================================== */
#zumi-booking-portal .zbp-guided-insurance-note:not([hidden]) {
    display: flex;
    align-items: center;
    gap: 11px;
}
#zumi-booking-portal .zbp-guided-insurance-note-icon {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(56%) sepia(0%) saturate(0%) hue-rotate(194deg) brightness(94%) contrast(89%);
    opacity: .95;
}
#zumi-booking-portal .zbp-guided-insurance-note-copy {
    display: block;
    min-width: 0;
}
#zumi-booking-portal .zbp-guided-insurance-note-copy > strong {
    display: block;
}
#zumi-booking-portal .zbp-guided-insurance-note-copy > span {
    display: block;
}
@media (max-width: 640px) {
    #zumi-booking-portal .zbp-guided-insurance-note:not([hidden]) {
        gap: 9px;
    }
    #zumi-booking-portal .zbp-guided-insurance-note-icon {
        width: 20px;
        height: 20px;
    }
}



/* =========================================================
   v3.10.12 — keep Zero Excess visually recommended while aligning
   its radio and content with Standard / Reduced Excess exactly.
   ========================================================= */
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-banner {
    display: block !important;
    min-height: 66px !important;
    padding: 12px 70px 12px 52px !important;
    text-align: left !important;
}
#zumi-booking-portal .zbp-config-option--zero-banner .zbp-option-radio {
    position: absolute !important;
    top: 50% !important;
    left: 16px !important;
    right: auto !important;
    bottom: auto !important;
    justify-self: auto !important;
    transform: translateY(-50%) !important;
}
#zumi-booking-portal .zbp-config-option--zero-banner .zbp-zero-banner-copy {
    display: block !important;
    min-width: 0 !important;
}
#zumi-booking-portal .zbp-config-option--zero-banner .zbp-zero-banner-ghost {
    position: absolute !important;
    top: 50% !important;
    right: 12px !important;
    bottom: auto !important;
    width: 46px !important;
    height: 46px !important;
    opacity: .12 !important;
    filter: brightness(0) saturate(100%) sepia(72%) saturate(1047%) hue-rotate(359deg) brightness(93%) contrast(92%) !important;
    transform: translateY(-50%) rotate(-4deg) !important;
}
#zumi-booking-portal .zbp-config-option--zero-banner.is-selected .zbp-zero-banner-ghost {
    opacity: .18 !important;
}
@media (max-width: 640px) {
    #zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-banner {
        padding: 11px 58px 11px 46px !important;
    }
    #zumi-booking-portal .zbp-config-option--zero-banner .zbp-option-radio {
        left: 14px !important;
    }
    #zumi-booking-portal .zbp-config-option--zero-banner .zbp-zero-banner-ghost {
        right: 10px !important;
        width: 40px !important;
        height: 40px !important;
    }
}


/* =========================================================
   v3.10.13 — Zero Excess uses the exact Standard/Reduced card
   geometry, border, background, selected state and ghost-art
   treatment on every screen size. Only its recommendation copy
   is intentionally more prominent.
   ========================================================= */
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-priority {
    /* Match the base insurance card exactly. */
    position: relative !important;
    display: block !important;
    min-width: 0 !important;
    min-height: 66px !important;
    padding-top: 12px !important;
    padding-right: 12px !important;
    padding-bottom: 12px !important;
    padding-left: 52px !important;
    color: #2F2F2F !important;
    text-align: left !important;
    background: #FFFFFF !important;
    border: 1px solid #DDD7D1 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
}

#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-priority:hover {
    border-color: rgba(232,94,42,.52) !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
}

#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-priority.is-selected {
    color: #FFFFFF !important;
    background: #1A1A1A !important;
    border-color: #1A1A1A !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.07) !important;
}

#zumi-booking-portal .zbp-config-option--zero-priority .zbp-zero-priority-copy {
    display: block !important;
    min-width: 0 !important;
}

/* Same label styling as Standard/Reduced. */
#zumi-booking-portal .zbp-config-option--zero-priority strong,
#zumi-booking-portal .zbp-config-option--zero-priority strong span,
#zumi-booking-portal .zbp-config-option--zero-priority .zbp-excess-amount {
    color: inherit !important;
}

/* Recommendation is intentionally more visible without changing the card. */
#zumi-booking-portal .zbp-config-option--zero-priority .zbp-config-recommended {
    display: block !important;
    width: fit-content !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    color: var(--z-orange) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: .01em !important;
    text-transform: none !important;
}

#zumi-booking-portal .zbp-config-option--zero-priority small {
    margin-top: 4px !important;
    color: #706A64 !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.32 !important;
}

#zumi-booking-portal .zbp-config-option--zero-priority.is-selected .zbp-config-recommended {
    color: #E85E2A !important;
}

#zumi-booking-portal .zbp-config-option--zero-priority.is-selected small {
    color: rgba(255,255,255,.72) !important;
}

/* Use the identical ghost artwork treatment as Standard/Reduced. */
#zumi-booking-portal .zbp-config-option--zero-priority .zbp-insurance-ghost {
    position: absolute !important;
    right: -7px !important;
    bottom: -10px !important;
    top: auto !important;
    width: clamp(62px, 5.6vw, 92px) !important;
    height: clamp(62px, 5.6vw, 92px) !important;
    opacity: .055 !important;
    filter: brightness(0) !important;
    transform: rotate(-4deg) !important;
}

#zumi-booking-portal .zbp-config-option--zero-priority.is-selected .zbp-insurance-ghost {
    opacity: .10 !important;
    filter: brightness(0) invert(1) !important;
}

/* Use the exact same radio geometry as the other excess tiers. */
#zumi-booking-portal .zbp-config-option--zero-priority .zbp-option-radio {
    position: absolute !important;
    top: 50% !important;
    left: 16px !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
}

@media (max-width: 640px) {
    #zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-priority {
        padding-top: 12px !important;
        padding-right: 12px !important;
        padding-bottom: 12px !important;
        padding-left: 46px !important;
    }

    #zumi-booking-portal .zbp-config-option--zero-priority .zbp-option-radio {
        left: 14px !important;
    }

    #zumi-booking-portal .zbp-config-option--zero-priority .zbp-config-recommended {
        font-size: 11px !important;
    }

    #zumi-booking-portal .zbp-config-option--zero-priority small {
        font-size: 11px !important;
    }
}


/* =========================================================
   v3.10.15 — gold Zero Excess emphasis without changing its
   geometry, radio alignment, typography family or ghost art.
   Validation toast is positioned by JS over the invalid section.
   ========================================================= */
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-priority {
    background: linear-gradient(180deg, #fff9df 0%, #fff4c7 100%) !important;
    border-color: #e3a322 !important;
    box-shadow: 0 0 0 1px rgba(227,163,34,.08) !important;
}
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-priority:hover {
    background: linear-gradient(180deg, #fff7d4 0%, #ffefb8 100%) !important;
    border-color: #cf8f0d !important;
    box-shadow: 0 5px 16px rgba(176,119,0,.10) !important;
}
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option--zero-priority.is-selected {
    color: #2f2f2f !important;
    background: linear-gradient(180deg, #f8d96b 0%, #efc84d 100%) !important;
    border-color: #c98a00 !important;
    box-shadow: 0 0 0 3px rgba(227,163,34,.16), 0 8px 20px rgba(116,77,0,.10) !important;
}
#zumi-booking-portal .zbp-config-option--zero-priority strong,
#zumi-booking-portal .zbp-config-option--zero-priority strong span,
#zumi-booking-portal .zbp-config-option--zero-priority .zbp-excess-amount {
    font-family: inherit !important;
    font-size: 13px !important;
    line-height: 1.22 !important;
}
#zumi-booking-portal .zbp-config-option--zero-priority .zbp-config-recommended {
    color: #bd7000 !important;
    font-family: inherit !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
}
#zumi-booking-portal .zbp-config-option--zero-priority small {
    color: #654f21 !important;
    font-family: inherit !important;
    font-size: 11.5px !important;
    font-weight: 650 !important;
    line-height: 1.32 !important;
}
#zumi-booking-portal .zbp-config-option--zero-priority.is-selected .zbp-config-recommended {
    color: #8a5100 !important;
}
#zumi-booking-portal .zbp-config-option--zero-priority.is-selected small {
    color: #4e3b15 !important;
}
#zumi-booking-portal .zbp-config-option--zero-priority .zbp-insurance-ghost,
#zumi-booking-portal .zbp-config-option--zero-priority.is-selected .zbp-insurance-ghost {
    /* Keep the same neutral ghost artwork treatment as Standard/Reduced. */
    opacity: .055 !important;
    filter: brightness(0) !important;
}

/* JS calculates the precise target-relative top/left values. These rules are
   intentionally only fallbacks so the notice never snaps back to the corner. */
#zumi-booking-portal > .zbp-submit-error {
    right: auto !important;
    left: var(--zbp-validation-left, 16px) !important;
    top: var(--zbp-validation-top, 100px) !important;
    width: var(--zbp-validation-width, min(390px, calc(100vw - 32px))) !important;
    max-width: var(--zbp-validation-max-width, calc(100vw - 32px)) !important;
}
@media (max-width: 760px) {
    #zumi-booking-portal > .zbp-submit-error {
        right: auto !important;
        left: var(--zbp-validation-left, 12px) !important;
        top: var(--zbp-validation-top, 74px) !important;
        width: var(--zbp-validation-width, calc(100vw - 24px)) !important;
        max-width: var(--zbp-validation-max-width, calc(100vw - 24px)) !important;
    }
}


/* =========================================================
   v3.10.18 — normalize insurance ghost shield alignment and
   enlarge the tyre & windscreen ghost artwork.
   ========================================================= */
#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option .zbp-insurance-ghost {
    right: 8px !important;
    bottom: 8px !important;
    width: 74px !important;
    height: 74px !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
}

#zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option .zbp-insurance-ghost--tyre {
    right: 4px !important;
    bottom: 4px !important;
    width: 90px !important;
    height: 90px !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
}

@media (max-width: 700px) {
    #zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option .zbp-insurance-ghost {
        right: 7px !important;
        bottom: 7px !important;
        width: 66px !important;
        height: 66px !important;
    }

    #zumi-booking-portal .zbp-config-options[data-config-group="insurance"] .zbp-config-option .zbp-insurance-ghost--tyre {
        right: 3px !important;
        bottom: 3px !important;
        width: 80px !important;
        height: 80px !important;
    }
}


/* =========================================================
   v3.10.27 — season duration, add-on help and rectangular flags
   ========================================================= */

/* The season notice is always a two-column information banner: season at left,
   selected rental-day count at right. */
#zumi-booking-portal .zbp-season-note {
    grid-template-columns: minmax(0, 1fr) 126px !important;
    gap: 12px !important;
    align-items: stretch !important;
}
#zumi-booking-portal .zbp-season-main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    min-width: 0;
}
#zumi-booking-portal .zbp-season-text {
    min-width: 0;
}
#zumi-booking-portal .zbp-season-duration {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding-left: 12px;
    text-align: center;
    border-left: 1px solid #E3DDD7;
}
#zumi-booking-portal .zbp-season-duration .zbp-season-duration-label {
    display: block !important;
    margin: 0 0 3px !important;
    color: #756D67 !important;
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em;
    text-transform: uppercase;
}
#zumi-booking-portal .zbp-season-duration #zbp-season-days {
    display: block !important;
    margin: 0 !important;
    color: var(--z-orange) !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    white-space: nowrap;
}
@media (max-width: 700px) {
    #zumi-booking-portal .zbp-season-note {
        grid-template-columns: minmax(0, 1fr) 88px !important;
        gap: 9px !important;
    }
    #zumi-booking-portal .zbp-season-main {
        gap: 8px;
    }
    #zumi-booking-portal .zbp-season-duration {
        padding-left: 8px;
    }
    #zumi-booking-portal .zbp-season-duration #zbp-season-days {
        font-size: 14px !important;
    }
}

/* Add a compact ? affordance to every vehicle add-on. The description opens
   on hover/focus on desktop and on tap via the JS .is-open state. */
#zumi-booking-portal .zbp-addon-choice,
#zumi-booking-portal .zbp-addon-quantity-card {
    overflow: visible !important;
}
#zumi-booking-portal .zbp-addon-quantity-card {
    position: relative;
}
#zumi-booking-portal .zbp-addon-title-row {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}
#zumi-booking-portal .zbp-addon-title-row > strong {
    min-width: 0;
}
#zumi-booking-portal .zbp-addon-help {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    color: #E85E2A;
    background: #FFF7F1;
    border: 1px solid rgba(232,94,42,.42);
    border-radius: 50%;
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    cursor: help;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
#zumi-booking-portal .zbp-addon-help:hover,
#zumi-booking-portal .zbp-addon-help:focus-visible,
#zumi-booking-portal .zbp-addon-help.is-open {
    color: #FFFFFF;
    background: var(--z-orange);
    border-color: var(--z-orange);
    outline: none;
}
#zumi-booking-portal .zbp-addon-tooltip {
    position: absolute;
    left: 8px;
    right: 8px;
    top: calc(100% + 6px);
    z-index: 80;
    display: block;
    padding: 9px 10px;
    color: #FFFFFF;
    background: rgba(24, 22, 21, .96);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 4px;
    box-shadow: 0 10px 24px rgba(0,0,0,.20);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
    text-align: left;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-3px);
    transition: opacity 120ms ease, transform 120ms ease, visibility 120ms ease;
}
#zumi-booking-portal .zbp-addon-help:hover + .zbp-addon-tooltip,
#zumi-booking-portal .zbp-addon-help:focus-visible + .zbp-addon-tooltip,
#zumi-booking-portal .zbp-addon-help.is-open + .zbp-addon-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
#zumi-booking-portal .zbp-addon-choice:has(.zbp-addon-help:hover),
#zumi-booking-portal .zbp-addon-choice:has(.zbp-addon-help.is-open),
#zumi-booking-portal .zbp-addon-quantity-card:has(.zbp-addon-help:hover),
#zumi-booking-portal .zbp-addon-quantity-card:has(.zbp-addon-help.is-open) {
    z-index: 75;
}
@media (min-width: 1400px) {
    #zumi-booking-portal .zbp-addon-help {
        width: 18px;
        height: 18px;
        font-size: 11px;
    }
    #zumi-booking-portal .zbp-addon-tooltip {
        font-size: 11.5px;
    }
}
@media (max-width: 700px) {
    #zumi-booking-portal .zbp-addon-tooltip {
        left: 5px;
        right: 5px;
        width: auto;
        max-width: calc(100vw - 46px);
        font-size: 10.5px;
    }
}

/* Match the rectangular flag treatment in the supplied currency-control
   reference rather than square/circular avatar-style flags. */
#zumi-booking-portal .zbp-currency-buttons img {
    width: 27px !important;
    height: 18px !important;
    max-width: 27px !important;
    min-width: 27px !important;
    object-fit: fill !important;
    border-radius: 0 !important;
}


/* =========================================================
   v3.10.28 — compact UI, Roboto targets and unclipped add-on help
   ========================================================= */

/* Requested Roboto treatment for the rental-day display, self-drive
   protection block and contact-details heading/copy. */
#zumi-booking-portal .zbp-season-duration,
#zumi-booking-portal .zbp-season-duration *,
#zumi-booking-portal #zbp-insurance-panel .zbp-config-panel-copy,
#zumi-booking-portal #zbp-insurance-panel .zbp-config-panel-copy *,
#zumi-booking-portal #zbp-insurance-panel .zbp-config-option,
#zumi-booking-portal #zbp-insurance-panel .zbp-config-option *,
#zumi-booking-portal #zbp-contact-section .zbp-form-head,
#zumi-booking-portal #zbp-contact-section .zbp-form-head * {
    font-family: "Roboto", Arial, Helvetica, sans-serif !important;
}

/* Make the contact-details panel more compact without changing its structure. */
#zumi-booking-portal #zbp-contact-section {
    padding-top: clamp(18px, 2vw, 30px) !important;
    padding-bottom: clamp(18px, 2vw, 30px) !important;
}
#zumi-booking-portal #zbp-contact-section .zbp-form-head {
    grid-template-columns: 38px minmax(0, 1fr) !important;
    gap: 12px !important;
    margin-bottom: clamp(16px, 1.4vw, 24px) !important;
}
#zumi-booking-portal #zbp-contact-section .zbp-step-icon {
    width: 38px !important;
    height: 38px !important;
    border-radius: 4px !important;
}
#zumi-booking-portal #zbp-contact-section .zbp-step-icon svg,
#zumi-booking-portal #zbp-contact-section .zbp-step-icon img {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
}
#zumi-booking-portal #zbp-contact-section .zbp-form-head h2 {
    font-size: clamp(23px, 1.75vw, 34px) !important;
    line-height: 1.02 !important;
}
#zumi-booking-portal #zbp-contact-section .zbp-form-head p {
    margin-top: 5px !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
}

/* Keep the currency layout exactly the same, but make the control more compact. */
#zumi-booking-portal .zbp-currency-bar {
    margin-top: 10px !important;
    padding: 8px 9px !important;
    gap: 6px 10px !important;
    border-radius: 4px !important;
}
#zumi-booking-portal .zbp-currency-label {
    gap: 6px !important;
    font-size: 9.5px !important;
}
#zumi-booking-portal .zbp-currency-label-icon {
    width: 23px !important;
    height: 23px !important;
    border-radius: 4px !important;
}
#zumi-booking-portal .zbp-currency-buttons {
    gap: 4px !important;
}
#zumi-booking-portal .zbp-currency-buttons button {
    min-height: 31px !important;
    padding: 5px 7px !important;
    gap: 5px !important;
    border-radius: 4px !important;
    font-size: 9.5px !important;
}
/* Preserve the rectangular flag treatment. */
#zumi-booking-portal .zbp-currency-buttons img {
    width: 25px !important;
    height: 16px !important;
    min-width: 25px !important;
    max-width: 25px !important;
    object-fit: fill !important;
    border-radius: 0 !important;
}
#zumi-booking-portal .zbp-currency-bar > small {
    font-size: 8.5px !important;
    line-height: 1.3 !important;
}

/* The in-card copy remains in the DOM for semantics, but the visible help bubble
   is rendered into <body> by JS so no parent card/section can clip it. */
#zumi-booking-portal .zbp-addon-tooltip {
    display: none !important;
}
.zbp-addon-tooltip-portal {
    position: fixed;
    z-index: 2147483000;
    display: block;
    width: max-content;
    max-width: min(280px, calc(100vw - 24px));
    padding: 7px 9px;
    color: #fff;
    background: rgba(24,22,21,.98);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 4px;
    box-shadow: 0 12px 30px rgba(0,0,0,.24);
    font-family: "Roboto", Arial, Helvetica, sans-serif;
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.36;
    text-align: left;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-2px);
    transition: opacity 100ms ease, transform 100ms ease;
}
.zbp-addon-tooltip-portal.is-visible {
    opacity: 1;
    transform: translateY(0);
}
@media (max-width: 700px) {
    #zumi-booking-portal #zbp-contact-section {
        padding-top: 16px !important;
        padding-bottom: 16px !important;
    }
    #zumi-booking-portal #zbp-contact-section .zbp-form-head {
        grid-template-columns: 36px minmax(0, 1fr) !important;
        gap: 10px !important;
        margin-bottom: 16px !important;
    }
    #zumi-booking-portal #zbp-contact-section .zbp-step-icon {
        width: 36px !important;
        height: 36px !important;
    }
    #zumi-booking-portal .zbp-currency-bar {
        padding: 7px 8px !important;
    }
    #zumi-booking-portal .zbp-currency-buttons button {
        min-height: 30px !important;
        padding: 5px 6px !important;
    }
    .zbp-addon-tooltip-portal {
        max-width: calc(100vw - 20px);
        font-size: 10.5px;
    }
}


/* v3.10.29 — repeat instant-booking confirmation above Turnstile for eligible vehicle-only bookings */
#zumi-booking-portal .zbp-instant-booking--summary {
    margin: 0 0 10px;
    width: 100%;
    box-sizing: border-box;
}
#zumi-booking-portal .zbp-instant-booking--summary[hidden] {
    display: none !important;
}


/* v3.10.30 — improve contrast for the final instant-booking notice on the dark submission panel */
#zumi-booking-portal .zbp-instant-booking--summary strong {
    color: #ffffff !important;
}
#zumi-booking-portal .zbp-instant-booking--summary small {
    color: rgba(255,255,255,.82) !important;
}


/* ZUMI SOFT DESERT DESIGN SYSTEM — 2026-10-08
   Consistent 4px soft corners on sections, buttons, media, images and icon tiles.
   SVG artwork, image pixels, sizing, layout, and interactive behaviour unchanged.
   Doubled ID specificity intentionally supersedes previous square-corner rules.
*/
#zumi-booking-portal#zumi-booking-portal { --z-orange:#E85E2A;--z-orange-dark:#E85E2A;--z-orange-soft:rgba(232,94,42,.13); --zumi-corner: 4px; }

/* Keep native radio circles identifiable as radio inputs. */
#zumi-booking-portal#zumi-booking-portal input[type="radio"] { border-radius: 50% !important; }
/* Preserve contrast: pale sand is used on photographic/dark hero kickers. */
#zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:not(:disabled):not(.is-disabled) { background-color:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:hover:not(:disabled):not(.is-disabled), #zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:focus-visible:not(:disabled):not(.is-disabled) { background-color:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }

/* ZUMI BUTTON PALETTE — screenshot-matched orange #E85E2A (2026-10-08).
   Surface-only accents: preserves section colours, body copy, images and 4px corners. */
#zumi-booking-portal#zumi-booking-portal .zbp-btn--primary { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:is(:hover,:focus-visible):not(:disabled):not(.is-disabled) { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-chip.is-selected { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-chip.is-selected:is(:hover,:focus-visible):not(:disabled):not(.is-disabled) { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-currency-buttons button.is-active { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-currency-buttons button.is-active:is(:hover,:focus-visible):not(:disabled):not(.is-disabled) { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select:is(:hover,:focus-visible):not(:disabled):not(.is-disabled) { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-slider-arrow:hover { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle-change:hover { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-addon-help:hover { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-addon-help:focus-visible { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-addon-help.is-open { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }
#zumi-booking-portal#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox { background:#E85E2A !important; border-color:#E85E2A !important; color:#FFFFFF !important; }


/* ZUMI: 4px on ordinary content surfaces; original banner artwork/radii preserved. */
#zumi-booking-portal#zumi-booking-portal .zbp-addon-choice,
#zumi-booking-portal#zumi-booking-portal .zbp-addon-quantity-card,
#zumi-booking-portal#zumi-booking-portal .zbp-camping-builder-row,
#zumi-booking-portal#zumi-booking-portal .zbp-camping-capacity-note,
#zumi-booking-portal#zumi-booking-portal .zbp-camping-custom-notice,
#zumi-booking-portal#zumi-booking-portal .zbp-camping-pricing-note,
#zumi-booking-portal#zumi-booking-portal .zbp-cap-info-popover,
#zumi-booking-portal#zumi-booking-portal .zbp-choice,
#zumi-booking-portal#zumi-booking-portal .zbp-config-option,
#zumi-booking-portal#zumi-booking-portal .zbp-config-option--zero-priority,
#zumi-booking-portal#zumi-booking-portal .zbp-config-panel,
#zumi-booking-portal#zumi-booking-portal .zbp-currency-bar,
#zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle,
#zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle-image,
#zumi-booking-portal#zumi-booking-portal .zbp-fleet-card,
#zumi-booking-portal#zumi-booking-portal .zbp-guided-insurance-note,
#zumi-booking-portal#zumi-booking-portal .zbp-info-strip,
#zumi-booking-portal#zumi-booking-portal .zbp-inline-validation-error,
#zumi-booking-portal#zumi-booking-portal .zbp-instant-booking,
#zumi-booking-portal#zumi-booking-portal .zbp-insurance-recommendation,
#zumi-booking-portal#zumi-booking-portal .zbp-large-group-note,
#zumi-booking-portal#zumi-booking-portal .zbp-minimum-note,
#zumi-booking-portal#zumi-booking-portal .zbp-panel,
#zumi-booking-portal#zumi-booking-portal .zbp-rental-cap-notice,
#zumi-booking-portal#zumi-booking-portal .zbp-request-card,
#zumi-booking-portal#zumi-booking-portal .zbp-request-checkrow,
#zumi-booking-portal#zumi-booking-portal .zbp-season-note,
#zumi-booking-portal#zumi-booking-portal .zbp-security-panel,
#zumi-booking-portal#zumi-booking-portal .zbp-submit-error,
#zumi-booking-portal#zumi-booking-portal .zbp-submit-success,
#zumi-booking-portal#zumi-booking-portal .zbp-summary,
#zumi-booking-portal#zumi-booking-portal .zbp-summary-anomaly-entry,
#zumi-booking-portal#zumi-booking-portal .zbp-summary-list,
#zumi-booking-portal#zumi-booking-portal .zbp-traveller-selector,
#zumi-booking-portal#zumi-booking-portal .zbp-trust-proof--primary,
#zumi-booking-portal#zumi-booking-portal .zbp-vehicle-card,
#zumi-booking-portal#zumi-booking-portal .zbp-vehicle-price-panel,
#zumi-booking-portal#zumi-booking-portal .zbp-info-strip > span {border-radius:4px!important;}

/* Corner radius for real controls only, never banner layers or decorative pseudo-elements. */
#zumi-booking-portal#zumi-booking-portal :is(button, input:not([type="radio"]), textarea, select, a[class*="btn"], a[class*="button"], a[class*="action"]) {border-radius:4px!important;}

/* Final solid orange surface contract — all orange action states use exact #E85E2A. */
#zumi-booking-portal#zumi-booking-portal .zbp-btn--primary, #zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:hover, #zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:focus, #zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:focus-visible, #zumi-booking-portal#zumi-booking-portal .zbp-btn--primary:active {background-color:#E85E2A!important; border-color:#E85E2A!important;}
#zumi-booking-portal#zumi-booking-portal .zbp-chip.is-selected, #zumi-booking-portal#zumi-booking-portal .zbp-chip.is-selected:hover, #zumi-booking-portal#zumi-booking-portal .zbp-chip.is-selected:focus, #zumi-booking-portal#zumi-booking-portal .zbp-chip.is-selected:focus-visible, #zumi-booking-portal#zumi-booking-portal .zbp-chip.is-selected:active {background-color:#E85E2A!important; border-color:#E85E2A!important;}
#zumi-booking-portal#zumi-booking-portal .zbp-currency-buttons button.is-active, #zumi-booking-portal#zumi-booking-portal .zbp-currency-buttons button.is-active:hover, #zumi-booking-portal#zumi-booking-portal .zbp-currency-buttons button.is-active:focus, #zumi-booking-portal#zumi-booking-portal .zbp-currency-buttons button.is-active:focus-visible, #zumi-booking-portal#zumi-booking-portal .zbp-currency-buttons button.is-active:active {background-color:#E85E2A!important; border-color:#E85E2A!important;}
#zumi-booking-portal#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select, #zumi-booking-portal#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select:hover, #zumi-booking-portal#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select:focus, #zumi-booking-portal#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select:focus-visible, #zumi-booking-portal#zumi-booking-portal .zbp-fleet-card.is-selected .zbp-fleet-select:active {background-color:#E85E2A!important; border-color:#E85E2A!important;}
#zumi-booking-portal#zumi-booking-portal .zbp-slider-arrow:hover, #zumi-booking-portal#zumi-booking-portal .zbp-slider-arrow:hover:hover, #zumi-booking-portal#zumi-booking-portal .zbp-slider-arrow:hover:focus, #zumi-booking-portal#zumi-booking-portal .zbp-slider-arrow:hover:focus-visible, #zumi-booking-portal#zumi-booking-portal .zbp-slider-arrow:hover:active {background-color:#E85E2A!important; border-color:#E85E2A!important;}
#zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle-change:hover, #zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle-change:hover:hover, #zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle-change:hover:focus, #zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle-change:hover:focus-visible, #zumi-booking-portal#zumi-booking-portal .zbp-entry-vehicle-change:hover:active {background-color:#E85E2A!important; border-color:#E85E2A!important;}
#zumi-booking-portal#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox, #zumi-booking-portal#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox:hover, #zumi-booking-portal#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox:focus, #zumi-booking-portal#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox:focus-visible, #zumi-booking-portal#zumi-booking-portal .zbp-config-options--insurance-four .zbp-config-option--supplemental.is-selected .zbp-supplemental-checkbox:active {background-color:#E85E2A!important; border-color:#E85E2A!important;}


/* Zumi 2026-10-08: enforce 4px corners on every button-like control, including greyed-out, disabled and secondary span-based CTAs. Do not change pseudo-element artwork or the disabled state. */
#zumi-booking-portal#zumi-booking-portal :is(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  [role="link"][aria-disabled="true"][class*="button"],
  [aria-disabled="true"][class*="btn"],
  [aria-disabled="true"][class*="button"],
  [aria-disabled="true"][class*="action"],
  a[class*="btn"]:not([class*="icon"]),
  a[class*="button"]:not([class*="icon"]),
  a[class*="action"]:not([class*="actions"]):not([class*="icon"]),
  .zbp-btn,
  .zbp-direct-contact-action,
  .zbp-fleet-select,
  .zbp-chip,
  .zbp-currency-option,
  .zbp-entry-vehicle-change,
  .zbp-config-option
) {
  border-radius: 4px !important;
}


/* ZUMI BANNER HEADING TYPE — POPPINS, October 2026.
   Scope: large banner/hero headings only. Body, controls and other headings stay Roboto.
   Existing sizes, layout, colour, weight and decoration are unchanged. */
#zumi-booking-portal#zumi-booking-portal .zbp-hero h1 {
  font-family: "Zumi Poppins", "Poppins", Arial, sans-serif !important;
  letter-spacing: -.047em !important;
}
#zumi-booking-portal#zumi-booking-portal .zbp-hero h1 span {
  font-family: "Zumi Poppins", "Poppins", Arial, sans-serif !important;
}


/* All booking-portal vehicle cards: equal card heights and a fixed 16:10
   image frame. Keep images edge-to-edge regardless of their source ratio. */
#zumi-booking-portal .zbp-fleet-slider {
    align-items: stretch;
}
#zumi-booking-portal .zbp-fleet-card {
    display: flex;
    flex-direction: column;
    align-self: stretch;
}
#zumi-booking-portal .zbp-fleet-image {
    width: 100%;
    flex: 0 0 auto;
    aspect-ratio: 16 / 10;
}
#zumi-booking-portal .zbp-fleet-image img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover !important;
}
#zumi-booking-portal .zbp-fleet-body {
    flex: 1 1 auto;
}
