/*
 * Belopa — NovaCMS theme for PT. Belopa Trans Utama (rental mobil, tour & travel, Sulawesi Selatan).
 * World: a travel-and-rental booking site — wide sunset photo with the booking card in front, a navy trust band,
 * white vehicle cards with day rates, photo tiles for tour packages. Logo blue for structure (navy),
 * logo red for the one action colour, a handwritten line for warmth.
 *
 * Contrast (tokens in config/tokens.json): ink on white 17.1:1 · text on white 10.4:1 · muted on white 5.4:1 ·
 * muted on mist 5.0:1 · white on accent #D93236 4.7:1 · white on navy 13.9:1 · #C5D3E8 on navy 9.6:1.
 *
 * Block classes for the page builder (Advanced → CSS classes), see README.md:
 *   section   bl-hero | bl-banner | bl-s--white | bl-s--mist | bl-s--flush-top | bl-service-detail
 *   heading   bl-display | bl-title | bl-card__title | bl-banner__title | bl-booking__title
 *   text      bl-script | bl-hero__lead | bl-lead | bl-trust | bl-features | bl-checklist | bl-faq | bl-legal | bl-statement | bl-banner__lead
 *   columns   bl-hero__grid | bl-panel | bl-split | bl-duo | bl-services | bl-contact | bl-faq-grid
 *   column    bl-hero__copy | bl-card (+ bl-card--contact) | bl-service
 *   container bl-head | bl-btn-row (+ bl-btn-row--center) | bl-booking (booking form slot) | bl-fleet-item / bl-tile-item (inside a query)
 *   image     bl-hero__bg | bl-photo
 *   query     bl-fleet-grid | bl-tiles
 *   button    primary = red, secondary = navy, outline
 */

/* ---------- Tokens ---------- */
:root {
    --bl-navy: var(--nova-color-navy, #0B2D57);
    --bl-navy-deep: var(--nova-color-navy-deep, #0A1D3D);
    --bl-blue: var(--nova-color-blue, #0069AA);
    --bl-accent: var(--nova-color-accent, #D93236);
    --bl-accent-dark: var(--nova-color-accent-dark, #B8262A);
    --bl-red: var(--nova-color-brand-red, #EE3E41);
    --bl-red-soft: var(--nova-color-red-soft, #FDECEC);
    --bl-ink: var(--nova-color-ink, #0E1A2E);
    --bl-text: var(--nova-color-text, #33415A);
    --bl-muted: var(--nova-color-muted, #5D6B82);
    --bl-mist: var(--nova-color-mist, #F3F6FA);
    --bl-line: var(--nova-color-line, #E1E7EF);
    --bl-surface: var(--nova-color-surface, #FFFFFF);
    --bl-on-navy: #C5D3E8;
    --bl-font: var(--nova-font-body, 'Plus Jakarta Sans', 'Segoe UI', Roboto, Arial, sans-serif);
    --bl-script: var(--nova-font-script, 'Caveat', 'Segoe Script', cursive);
    --bl-r-sm: var(--nova-radius-sm, 8px);
    --bl-r: var(--nova-radius-md, 12px);
    --bl-r-lg: var(--nova-radius-lg, 18px);
    --bl-container: var(--nova-container-max-width, 1240px);
    --bl-gutter: clamp(18px, 4vw, 40px);
    --bl-section: clamp(56px, 7vw, 104px);
    --bl-header-h: 80px;
    --bl-ease: cubic-bezier(.16, 1, .3, 1);
    --bl-shadow-sm: 0 2px 6px -2px rgba(14, 26, 46, .10), 0 8px 20px -12px rgba(14, 26, 46, .16);
    --bl-shadow: 0 4px 10px -4px rgba(14, 26, 46, .14), 0 24px 48px -20px rgba(11, 45, 87, .34);

    /* Line icons (24 grid, 1.8 stroke) used as masks on lists the editor writes as plain text. */
    --i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
    --i-wheel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='2.2'/%3E%3Cpath d='M12 3v6.8M4.4 16.5l5.8-3.3M19.6 16.5l-5.8-3.3'/%3E%3C/svg%3E");
    --i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4.5 6v5.5c0 4.6 3.2 8.3 7.5 9.5 4.3-1.2 7.5-4.9 7.5-9.5V6Z'/%3E%3Cpath d='m8.8 12 2.2 2.2 4.3-4.4'/%3E%3C/svg%3E");
    --i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E");
    --i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
    --i-car: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17H3.5v-4.5L6 7h12l2.5 5.5V17H19'/%3E%3Cpath d='M3.5 12.5h17'/%3E%3Ccircle cx='7.5' cy='17' r='2'/%3E%3Ccircle cx='16.5' cy='17' r='2'/%3E%3Cpath d='M9.5 17h5'/%3E%3C/svg%3E");
    --i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
    --i-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='19' r='2'/%3E%3Ccircle cx='18' cy='5' r='2'/%3E%3Cpath d='M8 19h8.5a3.5 3.5 0 0 0 0-7h-9a3.5 3.5 0 0 1 0-7H16'/%3E%3C/svg%3E");
    --i-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8.5 8.5 0 0 1-12.6 7.4L3.5 20.5l1.1-4.6A8.5 8.5 0 1 1 21 12Z'/%3E%3Cpath d='M8.5 11h.01M12 11h.01M15.5 11h.01'/%3E%3C/svg%3E");
    --i-badge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='m8.5 14 -1.5 7 5-2.5 5 2.5-1.5-7'/%3E%3Cpath d='m9.8 9 1.6 1.6 2.8-2.9'/%3E%3C/svg%3E");
    --i-plane: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2Z'/%3E%3C/svg%3E");
    --i-kaaba: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7.5 12 4l8 3.5v10L12 21l-8-3.5Z'/%3E%3Cpath d='M4 7.5 12 11l8-3.5M12 11v10M4 11.5l8 3.5 8-3.5'/%3E%3C/svg%3E");
    --i-spark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8'/%3E%3C/svg%3E");
    --i-people: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='M16 4.6a3.5 3.5 0 0 1 0 6.8M18.5 14.2A6.5 6.5 0 0 1 21.5 20'/%3E%3C/svg%3E");
    --i-hotel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5.5A1.5 1.5 0 0 1 5.5 4h9A1.5 1.5 0 0 1 16 5.5V21M16 10h2.5A1.5 1.5 0 0 1 20 11.5V21M2.5 21h19'/%3E%3Cpath d='M8 8h1M11 8h1M8 11.5h1M11 11.5h1M8 15h1M11 15h1'/%3E%3C/svg%3E");
    --i-doc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6.5A1.5 1.5 0 0 0 5 4.5v15A1.5 1.5 0 0 0 6.5 21h11a1.5 1.5 0 0 0 1.5-1.5V8Z'/%3E%3Cpath d='M14 3v5h5M8.5 13h7M8.5 16.5h5'/%3E%3C/svg%3E");
    --i-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
    --i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--bl-header-h) + 16px); scrollbar-color: #B4C0D0 var(--bl-mist); }
body {
    margin: 0;
    font-family: var(--bl-font);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--bl-text);
    background: var(--bl-surface);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
::selection { background: var(--bl-navy); color: #fff; }
img { max-width: 100%; height: auto; }
a { color: var(--bl-blue); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--bl-navy); }
h1, h2, h3, h4 { color: var(--bl-ink); line-height: 1.2; letter-spacing: -.02em; font-weight: 800; text-wrap: balance; margin: 0 0 .5em; }
p { margin: 0 0 1em; text-wrap: pretty; }
input, select, textarea, button { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--bl-blue); outline-offset: 2px; border-radius: 4px; }
main:focus { outline: none; }
input, textarea { caret-color: var(--bl-accent); }

.bl-container { width: 100%; max-width: calc(var(--bl-container) + 2 * var(--bl-gutter)); margin-inline: auto; padding-inline: var(--bl-gutter); }
.bl-container--narrow { max-width: calc(780px + 2 * var(--bl-gutter)); }
.bl-section { padding-block: var(--bl-section); }
.bl-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.bl-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--bl-navy); color: #fff; border-radius: var(--bl-r-sm); font-weight: 700; }
.bl-skip:focus { top: 12px; color: #fff; }
.bl-icon { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- Buttons ---------- */
.bl-btn, .bl-canvas .nb-button {
    display: inline-flex; align-items: center; justify-content: center; gap: .55em;
    min-height: 48px; padding: .75em 1.5em;
    border: 1.5px solid transparent; border-radius: var(--bl-r-sm);
    font-weight: 700; font-size: .975rem; line-height: 1.2; text-decoration: none; cursor: pointer;
    transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s var(--bl-ease);
}
.bl-btn--accent, .bl-canvas .nb-button--primary { background: var(--bl-accent); color: #fff; box-shadow: 0 6px 16px -8px rgba(217, 50, 54, .7); }
.bl-btn--accent:hover, .bl-canvas .nb-button--primary:hover { background: var(--bl-accent-dark); color: #fff; transform: translateY(-1px); }
.bl-btn--navy, .bl-canvas .nb-button--secondary { background: var(--bl-navy); color: #fff; }
.bl-btn--navy:hover, .bl-canvas .nb-button--secondary:hover { background: var(--bl-navy-deep); color: #fff; }
.bl-btn--outline, .bl-canvas .nb-button--outline { background: #fff; color: var(--bl-accent); border-color: var(--bl-accent); }
.bl-btn--outline:hover, .bl-canvas .nb-button--outline:hover { background: var(--bl-red-soft); color: var(--bl-accent-dark); }
.bl-btn--block { width: 100%; }
.bl-canvas .nb-button:hover { opacity: 1; }
.bl-canvas .nb-button--sm { min-height: 40px; font-size: .9rem; padding: .55em 1.1em; }
.bl-canvas .nb-button--lg { min-height: 52px; font-size: 1rem; }
.bl-canvas .nb-button-wrap { margin: 0; }
.bl-btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.bl-btn-row--center { justify-content: center; margin-top: 40px; }

/* ---------- Header ---------- */
.bl-header {
    position: sticky; top: 0; z-index: 50;
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--bl-line);
    transition: box-shadow .3s;
}
.bl-header.is-scrolled { box-shadow: 0 8px 24px -18px rgba(14, 26, 46, .45); }
.bl-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--bl-header-h); }
.bl-brand { display: inline-flex; flex: none; }
.bl-brand img { display: block; height: 46px; width: auto; }
.bl-brand--inverse { padding: 10px 14px; background: #fff; border-radius: var(--bl-r); }
.bl-brand--inverse img { height: 40px; }
.bl-nav { display: flex; align-items: center; gap: 28px; flex: 1; justify-content: space-between; }
.bl-menu { display: flex; align-items: center; gap: 4px; margin: 0 auto; padding: 0; list-style: none; }
.bl-menu__item { position: relative; display: flex; align-items: center; }
.bl-menu__link {
    position: relative; display: block; padding: 10px 12px;
    color: var(--bl-ink); font-weight: 600; font-size: .95rem; text-decoration: none; white-space: nowrap;
}
.bl-menu__link::after {
    content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 2px; border-radius: 2px;
    background: var(--bl-accent); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--bl-ease);
}
.bl-menu__link:hover { color: var(--bl-accent); }
.bl-menu__link:hover::after, .bl-menu__link[aria-current="page"]::after, .bl-menu__item.is-active > .bl-menu__link::after { transform: scaleX(1); }
.bl-menu__link[aria-current="page"], .bl-menu__item.is-active > .bl-menu__link { color: var(--bl-accent); }
.bl-menu__toggle { display: grid; place-items: center; width: 28px; height: 28px; margin-left: -8px; border: 0; background: none; cursor: pointer; color: var(--bl-muted); }
.bl-menu__toggle .bl-icon { width: 16px; height: 16px; transition: transform .2s; }
.bl-menu__item.is-open .bl-menu__toggle .bl-icon { transform: rotate(180deg); }
.bl-submenu {
    position: absolute; top: 100%; left: 0; min-width: 220px; margin: 0; padding: 8px; list-style: none;
    background: #fff; border: 1px solid var(--bl-line); border-radius: var(--bl-r); box-shadow: var(--bl-shadow);
    opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s var(--bl-ease), visibility .2s;
}
.bl-menu__item.is-open > .bl-submenu, .bl-menu__item:hover > .bl-submenu { opacity: 1; visibility: visible; transform: none; }
.bl-submenu a { display: block; padding: 8px 12px; border-radius: 6px; color: var(--bl-ink); text-decoration: none; font-size: .95rem; }
.bl-submenu a:hover { background: var(--bl-mist); color: var(--bl-accent); }
.bl-nav__actions { display: flex; align-items: center; gap: 20px; flex: none; }
.bl-call { display: flex; align-items: center; gap: 10px; color: var(--bl-ink); text-decoration: none; }
.bl-call__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bl-red-soft); color: var(--bl-accent); }
.bl-call__icon .bl-icon { width: 20px; height: 20px; }
.bl-call__text { display: flex; flex-direction: column; line-height: 1.25; }
.bl-call__text strong { font-size: .975rem; font-variant-numeric: tabular-nums; }
.bl-call__text small { color: var(--bl-muted); font-size: .78rem; }
.bl-call:hover strong { color: var(--bl-accent); }
.bl-nav-toggle { display: none; }

@media (max-width: 1439.98px) {
    .bl-call__text small { display: none; }
    .bl-menu__link { padding-inline: 9px; }
    .bl-menu__link::after { left: 9px; right: 9px; }
}
@media (max-width: 1239.98px) {
    .bl-call__text { display: none; }
}
@media (max-width: 1079.98px) {
    .bl-header__inner { justify-content: space-between; }
    .bl-brand img { height: 40px; }
    .bl-nav-toggle {
        display: grid; place-items: center; width: 48px; height: 48px; margin-right: -8px;
        border: 0; border-radius: var(--bl-r-sm); background: none; cursor: pointer; color: var(--bl-ink);
    }
    .bl-nav-toggle__bars, .bl-nav-toggle__bars::before, .bl-nav-toggle__bars::after {
        display: block; width: 22px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .3s var(--bl-ease), opacity .2s;
    }
    .bl-nav-toggle__bars { position: relative; }
    .bl-nav-toggle__bars::before, .bl-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
    .bl-nav-toggle__bars::before { top: -7px; }
    .bl-nav-toggle__bars::after { top: 7px; }
    .bl-nav-toggle[aria-expanded="true"] .bl-nav-toggle__bars { background: transparent; }
    .bl-nav-toggle[aria-expanded="true"] .bl-nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
    .bl-nav-toggle[aria-expanded="true"] .bl-nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }
    .bl-nav {
        position: fixed; inset: var(--bl-header-offset, var(--bl-header-h)) 0 0; z-index: 40;
        flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 24px;
        padding: 16px var(--bl-gutter) 32px; overflow-y: auto; background: #fff;
        opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s, transform .3s var(--bl-ease), visibility .25s;
    }
    .bl-nav.is-open { opacity: 1; visibility: visible; transform: none; }
    .bl-menu { flex-direction: column; align-items: stretch; gap: 0; margin: 0; }
    .bl-menu__item { flex-wrap: wrap; border-bottom: 1px solid var(--bl-line); }
    .bl-menu__link { flex: 1; padding: 16px 4px; font-size: 1.05rem; }
    .bl-menu__link::after { display: none; }
    .bl-menu__toggle { width: 44px; height: 44px; }
    .bl-submenu { position: static; flex-basis: 100%; display: none; min-width: 0; padding: 0 0 12px 12px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
    .bl-menu__item.is-open > .bl-submenu { display: block; }
    .bl-nav__actions { flex-direction: column; align-items: stretch; gap: 16px; }
    .bl-call__text small { display: block; }
    .bl-nav__actions .bl-btn { width: 100%; }
    body.bl-nav-open { overflow: hidden; }
}

/* ---------- Section bands (page builder) ---------- */
.bl-canvas .nb-section { padding: var(--bl-section) var(--bl-gutter); }
.bl-canvas .nb-section > .nb-section__inner { max-width: var(--bl-container); }
.nb-section.bl-s--white { background: var(--bl-surface); }
.nb-section.bl-s--mist { background: var(--bl-mist); }
.nb-section.bl-s--flush-top { padding-top: 0; }
.bl-canvas .nb-image { margin: 0; }

.bl-head { text-align: center; max-width: 720px; margin: 0 auto 40px; }
.bl-title { font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.35rem); margin-bottom: .4em; }
.bl-head .bl-title { margin-bottom: .3em; }
.bl-lead { font-size: clamp(1rem, .95rem + .25vw, 1.125rem); color: var(--bl-muted); }
.bl-head .bl-lead p { margin: 0; }
.bl-display { font-size: clamp(2.2rem, 1.3rem + 3.2vw, 3.9rem); line-height: 1.06; letter-spacing: -.035em; margin: 0; }

/* ---------- Hero: wide photo, booking card in front, navy trust band underneath ---------- */
.bl-canvas .nb-section.bl-hero {
    isolation: isolate; overflow: hidden;
    padding-top: clamp(40px, 5vw, 72px); padding-bottom: 0;
    background: var(--bl-navy-deep); color: #fff;
}
.bl-hero:not(.bl-hero-slider)::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
        linear-gradient(90deg, rgba(8, 25, 52, .92) 0%, rgba(8, 25, 52, .78) 34%, rgba(8, 25, 52, .18) 68%, rgba(8, 25, 52, 0) 100%),
        linear-gradient(0deg, rgba(8, 25, 52, .55) 0%, rgba(8, 25, 52, 0) 30%);
}
.bl-hero .bl-hero__bg { position: absolute; inset: 0; z-index: -2; margin: 0; }
.bl-hero .bl-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; border-radius: 0; }
.bl-hero__grid { position: relative; z-index: 2; }
.bl-hero .bl-display { color: #fff; max-width: 17ch; font-size: clamp(2.1rem, 1.3rem + 2.6vw, 3.4rem); }
.bl-script {
    margin: .1em 0 .35em; font-family: var(--bl-script); font-weight: 700;
    font-size: clamp(2rem, 1.4rem + 2.4vw, 3.1rem); line-height: 1; color: #FF8B7E; transform: rotate(-2deg); transform-origin: left;
}
.bl-script p { margin: 0; }
.bl-hero__lead { max-width: 52ch; color: #DCE5F2; font-size: clamp(1rem, .95rem + .3vw, 1.125rem); margin-bottom: 24px; }
.bl-hero__copy { padding-bottom: 0; }
.bl-hero .bl-booking { position: relative; z-index: 3; max-width: 560px; margin-left: 0; margin-bottom: -2px; }

/* The trust band sits at the foot of the hero; on wide screens it clears the booking card on its left. */
.bl-trust {
    position: relative; z-index: 1;
    margin: clamp(32px, 4vw, 56px) calc(50% - 50vw) 0; padding: 22px max(var(--bl-gutter), calc(50vw - var(--bl-container) / 2));
    background: var(--bl-navy);
}
.bl-trust ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 28px; margin: 0; padding: 0; list-style: none; }
.bl-trust li { position: relative; display: flex; flex-direction: column; padding-left: 46px; color: var(--bl-on-navy); font-size: .86rem; line-height: 1.4; }
.bl-trust li::before {
    content: ""; position: absolute; left: 0; top: 2px; width: 34px; height: 34px; border-radius: 50%;
    background: rgba(255, 139, 126, .14);
}
.bl-trust li::after {
    content: ""; position: absolute; left: 7px; top: 9px; width: 20px; height: 20px; background: #FF8B7E;
    -webkit-mask: var(--bl-li-icon, var(--i-check)) center / contain no-repeat; mask: var(--bl-li-icon, var(--i-check)) center / contain no-repeat;
}
.bl-trust li:nth-child(1) { --bl-li-icon: var(--i-wheel); }
.bl-trust li:nth-child(2) { --bl-li-icon: var(--i-shield); }
.bl-trust li:nth-child(3) { --bl-li-icon: var(--i-calendar); }
.bl-trust li:nth-child(4) { --bl-li-icon: var(--i-clock); }
.bl-trust strong { color: #fff; font-size: .95rem; }

@media (min-width: 1024px) {
    .bl-canvas .nb-section.bl-hero { min-height: min(820px, calc(100svh - var(--bl-header-h) + 120px)); display: flex; flex-direction: column; }
    .bl-hero > .nb-section__inner { display: flex; flex-direction: column; flex: 1; width: 100%; }
    .bl-hero__grid { flex: 1; }
    .bl-hero .bl-booking { margin-bottom: -132px; }
    .bl-trust { padding-left: calc(max(var(--bl-gutter), 50vw - var(--bl-container) / 2) + 560px + 40px); padding-block: 26px; }
    .bl-trust ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
    .bl-trust ul { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
    .bl-trust li { padding-left: 0; padding-top: 44px; }
    .bl-trust li::before { top: 0; }
    .bl-trust li::after { top: 7px; }
}
@media (max-width: 767.98px) {
    .bl-trust ul { grid-template-columns: minmax(0, 1fr); }
    .bl-hero .bl-display { max-width: none; }
}

/* ---------- Booking card & form ---------- */
.bl-booking {
    padding: clamp(20px, 2.5vw, 28px); background: #fff; color: var(--bl-text);
    border-radius: var(--bl-r-lg); box-shadow: var(--bl-shadow);
}
.bl-booking__title, .bl-booking-form__title { font-size: 1.2rem; margin: 0 0 14px; color: var(--bl-ink); letter-spacing: -.01em; }
.bl-booking.is-ready > .nb-heading, .bl-booking.is-ready > .nb-text { display: none; }
.bl-booking > .nb-text { color: var(--bl-muted); }
.bl-booking-form { display: flex; flex-direction: column; gap: 14px; }
.bl-booking-form .bl-booking-form__title { margin: 0; }
.bl-booking-form__types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 4px; border: 0; background: var(--bl-mist); border-radius: 10px; }
.bl-type { position: relative; }
.bl-type input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.bl-type span {
    display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 6px 8px;
    border-radius: 7px; font-size: .8rem; font-weight: 700; line-height: 1.2; text-align: center; color: var(--bl-muted);
    transition: background-color .2s, color .2s, box-shadow .2s;
}
.bl-type .bl-icon { width: 17px; height: 17px; }
.bl-type input:checked + span { background: #fff; color: var(--bl-navy); box-shadow: var(--bl-shadow-sm); }
.bl-type input:focus-visible + span { outline: 3px solid var(--bl-blue); outline-offset: 1px; }
.bl-type:hover span { color: var(--bl-navy); }
.bl-booking-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bl-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.bl-field--wide { grid-column: 1 / -1; }
.bl-field label { font-size: .78rem; font-weight: 700; color: var(--bl-ink); }
.bl-input { position: relative; display: flex; align-items: center; }
.bl-input > .bl-icon { position: absolute; left: 12px; width: 18px; height: 18px; color: var(--bl-muted); pointer-events: none; }
.bl-input input, .bl-input select {
    width: 100%; min-height: 46px; padding: 10px 12px 10px 38px;
    border: 1px solid #CBD5E1; border-radius: var(--bl-r-sm); background: #fff; color: var(--bl-ink); font-size: .92rem;
    transition: border-color .2s, box-shadow .2s;
}
.bl-input select {
    appearance: none; padding-right: 34px; cursor: pointer;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235D6B82' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 10px center / 18px no-repeat;
}
.bl-input input::placeholder { color: #6B7891; }
.bl-input input:hover, .bl-input select:hover { border-color: #94A3B8; }
.bl-input input:focus, .bl-input select:focus { outline: none; border-color: var(--bl-blue); box-shadow: 0 0 0 3px rgba(0, 105, 170, .18); }
.bl-input input[aria-invalid="true"] { border-color: var(--bl-accent); box-shadow: 0 0 0 3px rgba(217, 50, 54, .14); }
.bl-input input[type="date"] { min-width: 0; }
.bl-booking-form__error { margin: 0; padding: 10px 12px; border-radius: var(--bl-r-sm); background: var(--bl-red-soft); color: #9B1C20; font-size: .88rem; font-weight: 600; }
.bl-booking-form__note { margin: 0; color: var(--bl-muted); font-size: .8rem; text-align: center; }
.bl-booking-form .bl-btn { min-height: 52px; font-size: 1rem; }
@media (max-width: 479.98px) {
    .bl-booking-form__grid { grid-template-columns: minmax(0, 1fr); }
    .bl-booking-form__types { grid-template-columns: minmax(0, 1fr); }
    .bl-type span { justify-content: flex-start; padding-inline: 12px; }
}

/* ---------- Fleet cards (home query and the Armada archive) ---------- */
.bl-fleet-grid.nb-query { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.bl-fleet-item, .bl-fleet-card {
    position: relative; height: 100%; padding: 16px 16px 20px;
    background: #fff; border: 1px solid var(--bl-line); border-radius: var(--bl-r); text-align: center;
    transition: border-color .25s, box-shadow .3s var(--bl-ease), transform .3s var(--bl-ease);
}
.bl-fleet-item:hover, .bl-fleet-card:hover { border-color: #C9D4E3; box-shadow: var(--bl-shadow); transform: translateY(-3px); }
.bl-fleet-item .nb-image, .bl-fleet-card__media { display: block; margin: 0 0 12px; background: #fff; }
.bl-fleet-item .nb-image a::after, .bl-fleet-card__media::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.bl-fleet-item img, .bl-fleet-card__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: contain; }
.bl-fleet-item .nb-heading, .bl-fleet-card__title { margin: 0 0 4px; font-size: 1.02rem; letter-spacing: -.01em; }
.bl-fleet-card__title a { color: inherit; text-decoration: none; }
.bl-fleet-card__title a:hover { color: var(--bl-accent); }
.bl-fleet-item__cap { color: var(--bl-muted); font-size: .86rem; }
.bl-fleet-item__cap p { margin: 0; }
/* The query prints the bare rate; the theme adds "Mulai … /hari" around it. */
.bl-fleet-item__price, .bl-fleet-card__price { margin: 10px 0 0; font-size: .84rem; color: var(--bl-muted); }
.bl-fleet-item__price p { margin: 0; color: var(--bl-accent); font-weight: 800; font-size: .95rem; font-variant-numeric: tabular-nums; }
.bl-fleet-item__price p::before { content: "Mulai "; }
.bl-fleet-item__price p::after { content: "/hari"; }
.bl-fleet-item__price p::before, .bl-fleet-item__price p::after { color: var(--bl-muted); font-weight: 500; font-size: .84rem; }
.bl-fleet-card__price strong { color: var(--bl-accent); font-size: .95rem; font-variant-numeric: tabular-nums; }
.bl-fleet-card__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; margin: 0; color: var(--bl-muted); font-size: .85rem; }
.bl-fleet-card__meta span { display: inline-flex; align-items: center; gap: 5px; }
.bl-fleet-card__meta .bl-icon { width: 16px; height: 16px; }
@media (max-width: 1199.98px) { .bl-fleet-grid.nb-query { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
    .bl-fleet-grid.nb-query, .bl-tiles.nb-query {
        display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(230px, 72%);
        overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--bl-gutter);
        margin-inline: calc(-1 * var(--bl-gutter)); padding: 4px var(--bl-gutter) 16px; scrollbar-width: thin;
    }
    .bl-fleet-grid.nb-query > .nb-query__item, .bl-tiles.nb-query > .nb-query__item { scroll-snap-align: start; }
}

/* ---------- Safety & comfort panel ---------- */
.bl-panel.nb-columns {
    gap: clamp(24px, 4vw, 56px); padding: clamp(28px, 4vw, 48px);
    background: var(--bl-mist); border-radius: var(--bl-r-lg);
}
.bl-panel__intro .bl-title { font-size: clamp(1.45rem, 1.1rem + 1vw, 1.9rem); }
.bl-panel__intro p { color: var(--bl-muted); margin: 0; }
.bl-features ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px 16px; margin: 0; padding: 0; list-style: none; }
.bl-features li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding-top: 60px; text-align: center; font-size: .84rem; line-height: 1.45; color: var(--bl-muted); }
.bl-features li::before {
    content: ""; position: absolute; top: 0; left: 50%; width: 48px; height: 48px; margin-left: -24px;
    border-radius: 14px; background: #fff; box-shadow: var(--bl-shadow-sm);
}
.bl-features li::after {
    content: ""; position: absolute; top: 12px; left: 50%; width: 24px; height: 24px; margin-left: -12px; background: var(--bl-accent);
    -webkit-mask: var(--bl-li-icon) center / contain no-repeat; mask: var(--bl-li-icon) center / contain no-repeat;
}
.bl-features li:nth-child(1) { --bl-li-icon: var(--i-car); }
.bl-features li:nth-child(2) { --bl-li-icon: var(--i-wheel); }
.bl-features li:nth-child(3) { --bl-li-icon: var(--i-route); }
.bl-features li:nth-child(4) { --bl-li-icon: var(--i-chat); }
.bl-features li:nth-child(5) { --bl-li-icon: var(--i-badge); }
.bl-features strong { color: var(--bl-ink); font-size: .92rem; }
@media (max-width: 1199.98px) { .bl-features ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599.98px) {
    .bl-features ul { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .bl-features li { align-items: flex-start; padding: 2px 0 0 64px; text-align: left; min-height: 48px; }
    .bl-features li::before { left: 0; margin-left: 0; }
    .bl-features li::after { left: 12px; margin-left: 0; }
}

/* ---------- Tour package tiles ---------- */
.bl-tiles.nb-query { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.bl-tile-item, .bl-tile { position: relative; height: 100%; min-height: 300px; border-radius: var(--bl-r); overflow: hidden; background: var(--bl-navy); isolation: isolate; }
.bl-tile-item .nb-image, .bl-tile-item .nb-image a { position: absolute; inset: 0; margin: 0; z-index: -1; }
.bl-tile-item .nb-image a { z-index: 1; }
.bl-tile-item img, .bl-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--bl-ease); }
.bl-tile-item::after, .bl-tile__link::after {
    content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(8, 25, 52, 0) 38%, rgba(8, 25, 52, .88) 100%);
}
.bl-tile-item:hover img, .bl-tile:hover img { transform: scale(1.06); }
.bl-tile-item { display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; }
.bl-tile-item .nb-heading { position: relative; z-index: 1; margin: 0 0 2px; color: #fff; font-size: 1.05rem; pointer-events: none; }
.bl-tile-item .bl-tile-item__meta { position: relative; z-index: 1; color: #E4EAF3; font-size: .85rem; pointer-events: none; }
.bl-tile-item__meta p { margin: 0; }
.bl-tile__link { position: absolute; inset: 0; display: flex; color: #fff; text-decoration: none; }
.bl-tile__link img { position: absolute; inset: 0; }
.bl-tile__body { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; width: 100%; padding: 20px; }
.bl-tile__title { font-weight: 800; font-size: 1.15rem; line-height: 1.25; letter-spacing: -.01em; }
.bl-tile__meta { color: #E4EAF3; font-size: .88rem; }
.bl-tile__link:focus-visible { outline-offset: -4px; }
@media (max-width: 1199.98px) { .bl-tiles.nb-query { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Other services ---------- */
.bl-services.nb-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.bl-service {
    position: relative; padding: 24px 24px 22px 84px; background: #fff; border-radius: var(--bl-r);
    border: 1px solid var(--bl-line);
}
.bl-service::before {
    content: ""; position: absolute; left: 24px; top: 24px; width: 44px; height: 44px; border-radius: 12px; background: var(--bl-red-soft);
}
.bl-service::after {
    content: ""; position: absolute; left: 34px; top: 34px; width: 24px; height: 24px; background: var(--bl-accent);
    -webkit-mask: var(--bl-li-icon) center / contain no-repeat; mask: var(--bl-li-icon) center / contain no-repeat;
}
.bl-service:nth-child(1) { --bl-li-icon: var(--i-plane); }
.bl-service:nth-child(2) { --bl-li-icon: var(--i-kaaba); }
.bl-service:nth-child(3) { --bl-li-icon: var(--i-spark); }
.bl-service:nth-child(4) { --bl-li-icon: var(--i-people); }
.bl-service:nth-child(5) { --bl-li-icon: var(--i-hotel); }
.bl-service:nth-child(6) { --bl-li-icon: var(--i-doc); }
.bl-service .nb-heading { font-size: 1.05rem; margin-bottom: 4px; }
.bl-service p { margin: 0; color: var(--bl-muted); font-size: .92rem; }
.bl-service a { font-weight: 700; color: var(--bl-accent); text-decoration: none; white-space: nowrap; }
.bl-service a:hover { text-decoration: underline; }
@media (max-width: 1023.98px) { .bl-services.nb-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639.98px) { .bl-services.nb-columns { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Split, photos, lists ---------- */
.bl-split.nb-columns { gap: clamp(28px, 5vw, 72px); }
.bl-photo img { display: block; width: 100%; border-radius: var(--bl-r-lg); }
.bl-photo figcaption { margin-top: 10px; color: var(--bl-muted); font-size: .85rem; opacity: 1; }
.bl-photo--tilt { position: relative; padding: 0 0 18px 18px; }
.bl-photo--tilt::before { content: ""; position: absolute; left: 0; bottom: 30px; width: 70%; height: 70%; border-radius: var(--bl-r-lg); background: var(--bl-red-soft); z-index: -1; }
.bl-photo--tilt { isolation: isolate; }
.bl-checklist ul { margin: 0 0 1.25em; padding: 0; list-style: none; display: grid; gap: 10px; }
.bl-checklist li { position: relative; padding-left: 32px; }
.bl-checklist li::before { content: ""; position: absolute; left: 0; top: .2em; width: 22px; height: 22px; border-radius: 50%; background: var(--bl-red-soft); }
.bl-checklist li::after {
    content: ""; position: absolute; left: 5px; top: calc(.2em + 5px); width: 12px; height: 12px; background: var(--bl-accent);
    -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat;
}

/* ---------- FAQ ---------- */
.bl-faq-grid.nb-columns { gap: clamp(28px, 5vw, 72px); }
.bl-faq__intro p { color: var(--bl-muted); }
.bl-faq details { border-bottom: 1px solid var(--bl-line); }
.bl-faq details:first-child { border-top: 1px solid var(--bl-line); }
.bl-faq summary {
    position: relative; display: block; padding: 18px 48px 18px 0; cursor: pointer; list-style: none;
    color: var(--bl-ink); font-weight: 700; font-size: 1rem; transition: color .2s;
}
.bl-faq summary::-webkit-details-marker { display: none; }
.bl-faq summary::after {
    content: ""; position: absolute; right: 6px; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: var(--bl-accent);
    -webkit-mask: var(--i-plus) center / contain no-repeat; mask: var(--i-plus) center / contain no-repeat; transition: transform .3s var(--bl-ease);
}
.bl-faq details[open] summary::after { transform: rotate(45deg); }
.bl-faq summary:hover { color: var(--bl-accent); }
.bl-faq details p { margin: 0; padding: 0 48px 20px 0; color: var(--bl-muted); max-width: 70ch; }

/* ---------- Inner pages ---------- */
.bl-banner, .bl-canvas .nb-section.bl-banner {
    padding-block: clamp(44px, 6vw, 80px);
    background:
        radial-gradient(120% 140% at 100% 0%, rgba(0, 105, 170, .45) 0%, rgba(0, 105, 170, 0) 55%),
        var(--bl-navy);
    color: var(--bl-on-navy);
}
.bl-banner__title { color: #fff; font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3rem); letter-spacing: -.03em; margin: 0 0 .3em; max-width: 22ch; }
.bl-banner__lead { max-width: 60ch; font-size: clamp(1rem, .95rem + .25vw, 1.15rem); margin: 0; color: var(--bl-on-navy); }
.bl-banner__lead p { margin: 0; }
.bl-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; padding: 0; list-style: none; font-size: .86rem; }
.bl-breadcrumb li + li::before { content: "/"; margin-right: 6px; opacity: .6; }
.bl-breadcrumb a { color: #fff; text-decoration: none; }
.bl-breadcrumb a:hover { text-decoration: underline; }
.bl-breadcrumb [aria-current] { color: var(--bl-on-navy); }
.bl-banner--home .bl-split { display: grid; grid-template-columns: 1fr minmax(0, 520px); gap: 40px; align-items: center; }
.bl-banner--home .bl-display { color: #fff; }
.bl-banner--home .bl-booking-form { padding: 24px; background: #fff; border-radius: var(--bl-r-lg); color: var(--bl-text); }
@media (max-width: 1023.98px) { .bl-banner--home .bl-split { grid-template-columns: minmax(0, 1fr); } }

.bl-layout-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(28px, 4vw, 56px); align-items: start; }
.bl-sidebar__sticky { position: sticky; top: calc(var(--bl-header-h) + 20px); display: flex; flex-direction: column; gap: 20px; }
.bl-sidebar .bl-booking-form { padding: 22px; background: #fff; border: 1px solid var(--bl-line); border-radius: var(--bl-r-lg); box-shadow: var(--bl-shadow-sm); }
.bl-sidebar .bl-booking-form__types { grid-template-columns: minmax(0, 1fr); }
.bl-sidebar .bl-booking-form__grid { grid-template-columns: minmax(0, 1fr); }
.bl-sidebar .bl-type span { justify-content: flex-start; padding-inline: 12px; }
@media (max-width: 1023.98px) {
    .bl-layout-sidebar { grid-template-columns: minmax(0, 1fr); }
    .bl-sidebar__sticky { position: static; }
}

.bl-cards--fleet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.bl-cards--package { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.bl-cards--package .bl-tile { min-height: 340px; }
.bl-cards--post { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1199.98px) { .bl-cards--fleet { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1023.98px) { .bl-cards--package, .bl-cards--post { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .bl-cards--fleet, .bl-cards--package, .bl-cards--post { grid-template-columns: minmax(0, 1fr); } }
.bl-post-card { display: flex; flex-direction: column; border: 1px solid var(--bl-line); border-radius: var(--bl-r); overflow: hidden; background: #fff; }
.bl-post-card__media img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.bl-post-card__body { padding: 18px 20px 22px; }
.bl-post-card__meta { margin: 0 0 6px; color: var(--bl-muted); font-size: .85rem; }
.bl-post-card__title { font-size: 1.1rem; margin: 0 0 6px; }
.bl-post-card__title a { color: inherit; text-decoration: none; }
.bl-post-card__title a:hover { color: var(--bl-accent); }
.bl-post-card p:last-child { margin: 0; color: var(--bl-muted); font-size: .94rem; }
.bl-fineprint { margin-top: 24px; color: var(--bl-muted); font-size: .88rem; }

.bl-vehicle__media { padding: clamp(16px, 3vw, 40px); background: #fff; border: 1px solid var(--bl-line); border-radius: var(--bl-r-lg); }
.bl-vehicle__media img { display: block; width: 100%; max-width: 640px; margin-inline: auto; }
.bl-specs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.bl-specs > div { padding: 14px 16px; background: var(--bl-mist); border-radius: var(--bl-r); }
.bl-specs dt { display: flex; align-items: center; gap: 6px; margin-bottom: 2px; color: var(--bl-muted); font-size: .8rem; font-weight: 600; }
.bl-specs dt .bl-icon { width: 16px; height: 16px; color: var(--bl-accent); }
.bl-specs dd { margin: 0; color: var(--bl-ink); font-weight: 700; }
.bl-rates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 28px; }
.bl-rate { padding: 18px 20px; border: 1.5px solid var(--bl-line); border-radius: var(--bl-r); }
.bl-rate p { margin: 0; color: var(--bl-muted); font-size: .88rem; font-weight: 600; }
.bl-rate .bl-rate__price { margin-top: 2px; color: var(--bl-accent); font-size: clamp(1.4rem, 1.1rem + 1vw, 1.8rem); font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.bl-rate__price span { color: var(--bl-muted); font-size: .9rem; font-weight: 500; letter-spacing: 0; }
@media (max-width: 767.98px) { .bl-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .bl-rates { grid-template-columns: minmax(0, 1fr); } }

.bl-feature-image { display: block; width: 100%; margin-bottom: 24px; border-radius: var(--bl-r-lg); }
.bl-prose { color: var(--bl-text); font-size: 1.04rem; }
.bl-prose > * { max-width: 72ch; }
.bl-prose h2 { font-size: 1.4rem; margin-top: 1.6em; }
.bl-prose h3 { font-size: 1.15rem; margin-top: 1.4em; }
.bl-prose ul, .bl-prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.bl-prose li { margin-bottom: .35em; }
.bl-prose li::marker { color: var(--bl-accent); }

.bl-duo.nb-columns, .bl-contact.nb-columns { gap: 16px; }
.bl-card { padding: clamp(22px, 3vw, 32px); background: #fff; border: 1px solid var(--bl-line); border-radius: var(--bl-r-lg); }
.bl-card__title { font-size: 1.15rem; margin-bottom: .5em; }
.bl-statement { font-size: clamp(1.05rem, 1rem + .3vw, 1.25rem); color: var(--bl-ink); line-height: 1.55; }
.bl-statement p { margin: 0; }
.bl-card--contact p:last-child { margin-bottom: 0; }
.bl-card--contact a { font-weight: 600; }
.bl-legal table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.bl-legal th, .bl-legal td { padding: 14px 0; border-bottom: 1px solid var(--bl-line); text-align: left; vertical-align: top; }
.bl-legal th { width: 44%; padding-right: 16px; color: var(--bl-muted); font-weight: 600; }
.bl-legal td { color: var(--bl-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.bl-service-detail + .bl-service-detail { border-top: 1px solid var(--bl-line); }
.bl-service-detail:nth-child(odd) .bl-split.nb-columns { flex-direction: row-reverse; }
@media (max-width: 1023.98px) { .bl-service-detail:nth-child(odd) .bl-split.nb-columns { flex-direction: column; } }
.bl-canvas .nb-section.bl-service-detail { padding-block: clamp(44px, 5vw, 72px); }

.bl-search { display: flex; gap: 10px; margin-bottom: 32px; }
.bl-search input { flex: 1; min-height: 48px; padding: 0 14px; border: 1px solid #CBD5E1; border-radius: var(--bl-r-sm); }
.bl-pagination { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 40px; color: var(--bl-muted); }
.bl-empty { padding: 40px; text-align: center; background: var(--bl-mist); border-radius: var(--bl-r-lg); }
.bl-empty__title { color: var(--bl-ink); font-weight: 700; font-size: 1.1rem; }
.bl-notfound { text-align: center; }
.bl-notfound .bl-display { color: var(--bl-ink); margin-bottom: .3em; }
.bl-notfound .bl-btn-row { justify-content: center; }
.bl-lead { color: var(--bl-muted); }

/* ---------- Footer ---------- */
.bl-footer { background: var(--bl-navy-deep); color: var(--bl-on-navy); font-size: .94rem; }
.bl-footer a { color: #fff; text-decoration: none; }
.bl-footer a:hover { color: #FF8B7E; }
.bl-footer__band { background: var(--bl-navy); }
.bl-footer__cta { display: flex; align-items: center; justify-content: space-between; gap: 24px 48px; padding-block: clamp(32px, 4vw, 48px); flex-wrap: wrap; }
.bl-footer__cta-title { margin: 0 0 4px; color: #fff; font-weight: 800; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); letter-spacing: -.02em; }
.bl-footer__cta-text { margin: 0; max-width: 56ch; }
.bl-footer__phone { display: flex; align-items: center; gap: 16px; }
.bl-footer__phone-icon { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--bl-accent); color: #fff; flex: none; box-shadow: 0 10px 24px -10px rgba(217, 50, 54, .9); }
.bl-footer__phone-icon .bl-icon { width: 28px; height: 28px; }
.bl-footer__phone > span:last-child { display: flex; flex-direction: column; line-height: 1.3; }
.bl-footer__phone small { color: var(--bl-on-navy); font-size: .82rem; }
.bl-footer__phone strong { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem); letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.bl-footer__phone:hover strong { color: #FF8B7E; }
.bl-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.5fr; gap: 40px; padding-block: clamp(48px, 6vw, 72px); }
.bl-footer__brand p { margin: 18px 0; max-width: 40ch; }
.bl-footer__socials { display: flex; gap: 16px; margin: 0; padding: 0; list-style: none; }
.bl-footer__socials a { font-weight: 700; }
.bl-footer__title { margin: 0 0 16px; color: #fff; font-size: 1rem; letter-spacing: 0; }
.bl-footer__col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.bl-footer__col .nova-menu, .bl-footer__col nav ul { margin: 0; padding: 0; list-style: none; }
.bl-footer__col li a { color: var(--bl-on-navy); }
.bl-footer__col li a:hover { color: #fff; }
.bl-footer__contact li { display: flex; gap: 12px; }
.bl-footer__contact .bl-icon { width: 20px; height: 20px; margin-top: 2px; color: #FF8B7E; }
.bl-footer__contact a { color: #fff; }
.bl-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-block: 20px 28px; border-top: 1px solid rgba(197, 211, 232, .18); font-size: .84rem; }
.bl-footer__bottom p { margin: 0; }
@media (max-width: 1023.98px) { .bl-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .bl-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; } }

/* Floating WhatsApp: clears the page bottom; hides behind the open mobile menu. */
.bl-whatsapp {
    position: fixed; right: 20px; bottom: 20px; z-index: 45; display: grid; place-items: center; width: 56px; height: 56px;
    border-radius: 50%; background: #1FA855; color: #fff; box-shadow: 0 10px 24px -8px rgba(14, 26, 46, .5);
    transition: transform .3s var(--bl-ease), box-shadow .3s;
}
.bl-whatsapp:hover { color: #fff; transform: translateY(-2px) scale(1.04); }
body.bl-nav-open .bl-whatsapp { display: none; }

/* ---------- Hero slider ----------
 * Section `bl-hero bl-hero-slider` > Columns `bl-slides` > one Column `bl-slide` per slide (an Image `bl-slide__bg`
 * for the photo, then heading, handwritten line and lead), followed by the booking slot and the trust band.
 * All slides share one grid cell, so the hero is as tall as its tallest slide and the booking card never jumps.
 * Without JavaScript only the first slide shows. */
.nb-columns.bl-slides { display: grid; gap: 0; }
.bl-slides > .nb-column.bl-slide { grid-area: 1 / 1; min-width: 0; max-width: 700px; }
@media (min-width: 1024px) { .bl-canvas .nb-section.bl-hero-slider { min-height: 0; } }
.bl-slide:not(:first-child) { visibility: hidden; opacity: 0; }
.bl-slide .nb-image.bl-slide__bg { position: absolute; inset: 0; z-index: -2; margin: 0; overflow: hidden; }
.bl-slide__bg::after {
    content: ""; position: absolute; inset: 0;
    background:
        linear-gradient(90deg, rgba(8, 25, 52, .92) 0%, rgba(8, 25, 52, .76) 36%, rgba(8, 25, 52, .16) 70%, rgba(8, 25, 52, 0) 100%),
        linear-gradient(0deg, rgba(8, 25, 52, .6) 0%, rgba(8, 25, 52, 0) 34%);
}
.bl-slide__bg picture, .bl-slide__bg img { display: block; width: 100%; height: 100%; }
.bl-slide__bg img { object-fit: cover; object-position: 60% 50%; border-radius: 0; transform-origin: 65% 50%; }
.bl-slide .bl-display { color: #fff; max-width: 17ch; font-size: clamp(2.1rem, 1.3rem + 2.6vw, 3.4rem); }

.bl-slider-ready .bl-slide { visibility: hidden; opacity: 0; transition: opacity .9s var(--bl-ease), visibility 0s linear .9s; }
.bl-slider-ready .bl-slide.is-active { visibility: visible; opacity: 1; transition: opacity .9s var(--bl-ease), visibility 0s; }
.bl-slider-ready .bl-slide.is-active .bl-slide__bg img { animation: bl-kenburns 9s linear both; }
.bl-slider-ready .bl-slide > :not(.bl-slide__bg) { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--bl-ease), transform .7s var(--bl-ease); }
.bl-slider-ready .bl-slide.is-active > :not(.bl-slide__bg) { opacity: 1; transform: none; }
.bl-slider-ready .bl-slide.is-active .bl-script { transform: rotate(-2deg); }
.bl-slider-ready .bl-slide.is-active > :nth-child(2) { transition-delay: .2s; }
.bl-slider-ready .bl-slide.is-active > :nth-child(3) { transition-delay: .32s; }
.bl-slider-ready .bl-slide.is-active > :nth-child(4) { transition-delay: .44s; }
@keyframes bl-kenburns { from { transform: scale(1.1); } to { transform: scale(1); } }

.bl-slider-nav { display: flex; align-items: center; gap: 14px; margin: 0 0 24px; }
.bl-slider-dots { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.bl-slider-dot { position: relative; width: 48px; height: 32px; padding: 0; border: 0; background: none; cursor: pointer; }
.bl-slider-dot::before, .bl-slider-dot::after { content: ""; position: absolute; left: 0; top: 50%; height: 3px; margin-top: -1.5px; border-radius: 2px; }
.bl-slider-dot::before { right: 0; background: rgba(255, 255, 255, .3); }
.bl-slider-dot::after { width: 0; background: #FF8B7E; }
.bl-slider-dot[aria-current="true"]::after { width: 100%; }
.bl-slider-running .bl-slider-dot[aria-current="true"]::after { width: 0; animation: bl-progress var(--bl-slide-time, 7s) linear forwards; }
.bl-slider-held .bl-slider-dot[aria-current="true"]::after { animation-play-state: paused; }
.bl-slider-dot:hover::before { background: rgba(255, 255, 255, .6); }
@keyframes bl-progress { to { width: 100%; } }
.bl-slider-btn {
    display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; flex: none;
    border: 1.5px solid rgba(255, 255, 255, .45); border-radius: 50%; background: transparent; color: #fff; cursor: pointer;
    transition: background-color .2s, border-color .2s, color .2s;
}
.bl-slider-btn:hover { background: #fff; border-color: #fff; color: var(--bl-navy); }
.bl-slider-btn .bl-icon { width: 18px; height: 18px; }
.bl-slider-btn--prev .bl-icon { transform: rotate(180deg); }
.bl-slider-btn--pause .bl-icon--play, .bl-slider-paused .bl-slider-btn--pause .bl-icon--pause { display: none; }
.bl-slider-paused .bl-slider-btn--pause .bl-icon--play { display: block; }
.bl-slider-count { margin: 0 0 0 4px; color: #fff; font-weight: 700; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.bl-slider-count span { color: rgba(255, 255, 255, .55); }
@media (max-width: 767.98px) {
    .bl-slider-count, .bl-slider-btn--prev { display: none; }
    .bl-slider-dot { width: 34px; }
}

/* ---------- Scroll reveal ----------
 * Content is visible by default; theme.js marks elements below the fold with [data-reveal] and adds .is-revealed
 * as they enter the viewport. Siblings are staggered with --bl-reveal-delay. */
.bl-motion [data-reveal] {
    opacity: 0; transform: translate3d(0, 28px, 0);
    transition: opacity .8s var(--bl-ease), transform .9s var(--bl-ease);
    transition-delay: var(--bl-reveal-delay, 0s);
}
/* Columns sliding in from the side must not widen the page before they arrive. */
.bl-canvas, .bl-section { overflow-x: clip; }
.bl-motion [data-reveal="left"] { transform: translate3d(-36px, 0, 0); }
.bl-motion [data-reveal="right"] { transform: translate3d(36px, 0, 0); }
.bl-motion [data-reveal="zoom"] { transform: scale(.94); }
.bl-motion [data-reveal].is-revealed { opacity: 1; transform: none; }
/* Cards keep their own hover lift once revealed. */
.bl-motion .bl-fleet-item[data-reveal].is-revealed:hover, .bl-motion .bl-fleet-card[data-reveal].is-revealed:hover { transform: translateY(-3px); }
.bl-motion .bl-photo[data-reveal] img { transition: transform 1.4s var(--bl-ease); transform: scale(1.05); }
.bl-motion .bl-photo[data-reveal].is-revealed img { transform: none; }

/* ---------- The one authored moment: the hero settles in once on load ---------- */
@media (prefers-reduced-motion: no-preference) {
    .bl-hero .bl-hero__bg img { animation: bl-settle 1.6s var(--bl-ease) both; }
    .bl-hero__copy > * { animation: bl-rise .9s var(--bl-ease) both; }
    .bl-hero__copy > :nth-child(2) { animation-delay: .08s; }
    .bl-hero__copy > :nth-child(3) { animation-delay: .14s; }
    .bl-hero__copy > .bl-booking { animation-delay: .22s; animation-duration: 1.1s; }
    .bl-hero-slider > .nb-section__inner > .bl-booking { animation: bl-rise 1.1s var(--bl-ease) .3s both; }
    .bl-booking.is-ready .bl-booking-form { animation: bl-fade .5s var(--bl-ease) both; }
}
@keyframes bl-settle { from { transform: scale(1.08); filter: saturate(.7) blur(2px); } to { transform: none; filter: none; } }
@keyframes bl-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes bl-fade { from { opacity: .4; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .bl-motion [data-reveal], .bl-slider-ready .bl-slide > :not(.bl-slide__bg) { opacity: 1; transform: none; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}
