/* Page-builder runtime styles — loaded on every public page */
.cms-section{position:relative}
.cms-section>.cms-overlay{position:absolute;inset:0;z-index:0;pointer-events:none}
.cms-section>.cms-container{position:relative;z-index:1}
.cms-full{width:100%}
.cms-full>.cms-row{margin-left:0;margin-right:0;--bs-gutter-x:0}
.cms-full>.cms-row>*{padding-left:0;padding-right:0}
.cms-narrow{max-width:860px!important}
.cms-col{height:100%}
.cms-w{position:relative}
.cms-w[class*="cms-w-"]{margin-bottom:1rem}
.cms-w:last-child{margin-bottom:0!important}
.cms-w-hero,.cms-w-page_banner,.cms-w-cta_strip,.cms-w-booking_search{margin-bottom:0!important}
.cms-text>:last-child{margin-bottom:0}
.cms-text img{max-width:100%;height:auto}
.cms-preview-ribbon{background:#b45309;color:#fff;text-align:center;font:600 .8rem/1 system-ui,sans-serif;padding:.5rem}

/* visibility per device */
@media(min-width:992px){.cms-hide-d{display:none!important}}
@media(min-width:576px) and (max-width:991.98px){.cms-hide-t{display:none!important}}
@media(max-width:575.98px){.cms-hide-m{display:none!important}}

/* entrance animations */
.cms-anim{animation-duration:.7s;animation-fill-mode:both;animation-timing-function:ease-out}
.cms-anim-fade-in{animation-name:cmsFade}
.cms-anim-fade-in-up{animation-name:cmsUp}
.cms-anim-zoom-in{animation-name:cmsZoom}
@keyframes cmsFade{from{opacity:0}to{opacity:1}}
@keyframes cmsUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes cmsZoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.cms-anim{animation:none!important}}

/* ───────────── Typography layer ─────────────
   Display: Bricolage Grotesque (tight, confident)  ·  Text: Hanken Grotesk (open, legible)
   Fonts come from Settings → Typography; these rules only set rhythm, measure and detail. */
body{line-height:1.7;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal}
h1,h2,h3{text-wrap:balance;font-variation-settings:"opsz" 96}
h1{letter-spacing:-.035em;line-height:1.02}
h2{letter-spacing:-.03em;line-height:1.08}
h3{letter-spacing:-.02em;line-height:1.18}
h4,h5,h6{letter-spacing:-.01em;line-height:1.28}
p{text-wrap:pretty}
.section-title{letter-spacing:-.03em;line-height:1.06;font-weight:800;font-size:clamp(1.9rem,3.4vw,3rem)}
.section-subtitle,.section-title+p{font-size:1.12rem;line-height:1.6;max-width:56ch;color:#5b5f6b}
.text-center .section-subtitle,.text-center .section-title+p{margin-inline:auto}
/* eyebrow: a short rule + sentence-case label instead of tracked caps */
.section-eyebrow{display:inline-flex;align-items:center;gap:.7rem;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:700;margin-bottom:.9rem}
.section-eyebrow::before{content:'';width:2rem;height:2px;background:currentColor;border-radius:2px;opacity:.9}
.text-center .section-eyebrow::after{content:'';width:2rem;height:2px;background:currentColor;border-radius:2px;opacity:.9}
/* long-form text */
.cms-text{font-size:1.06rem}
.cms-text p,.cms-text ul,.cms-text ol,.cms-text blockquote{max-width:66ch}
.cms-text[style*="center"] p,.cms-text[style*="center"] ul,.text-center .cms-text p{margin-inline:auto}
.cms-text p{margin-bottom:1.15em}
.cms-text>p:first-child{font-size:1.2em;line-height:1.6;color:#2a2d38}
.cms-text h2,.cms-text h3{margin:1.6em 0 .55em}
.cms-text ul,.cms-text ol{padding-left:1.2em;margin-bottom:1.25em}.cms-text li{margin-bottom:.4em;padding-left:.2em}
.cms-text li::marker{color:var(--sr-teal);font-weight:700}
.cms-text a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)}
.cms-text a:hover{text-decoration-color:currentColor}
.cms-text blockquote{margin:1.6em 0;padding:.2em 0 .2em 1.3em;border-left:3px solid var(--sr-teal);font-family:var(--font-heading);font-size:1.35em;line-height:1.35;letter-spacing:-.015em;font-weight:600}
/* figures and numbers set in the display face with tabular figures */
.stat-num,.about-stat .stat-num,.cms-stat-num{font-family:var(--font-heading);font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums lining-nums;line-height:1}
.price,.deal-price,.vehicle-price{font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em}
/* buttons and nav */
.btn{letter-spacing:-.005em;font-weight:700}
.navbar-rentals .nav-link{font-weight:600;letter-spacing:-.005em}
/* legal and policy pages read as documents */
.cms-narrow .cms-text,.legal-content{font-size:1.02rem;line-height:1.75}
@media(max-width:575.98px){.cms-text{font-size:1rem}.cms-text>p:first-child{font-size:1.1em}}
.section-title{color:#14151c}

/* ───────────── Contact bar (above the navigation, below the announcement bar) ───────────── */
#contact-bar{background:var(--cb-bg);color:var(--cb-fg);position:relative;z-index:1031}
.contact-bar-inner{display:flex;align-items:center;justify-content:center;gap:2.5rem;padding-top:.5rem;padding-bottom:.5rem;min-height:3.25rem;flex-wrap:wrap}
.contact-bar-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:center;gap:.4rem 2.4rem;flex-wrap:wrap}
.contact-bar-list a{color:var(--cb-fg);display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;transition:opacity .15s}
.contact-bar-list a:hover{color:var(--cb-fg);opacity:.8}
.contact-bar-list i{font-size:1.05em;line-height:1}
.contact-bar-btn{background:var(--cb-btn-bg);color:var(--cb-btn-fg);font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;padding:.75rem 1.4rem;border-radius:4px;text-decoration:none;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.contact-bar-btn:hover{color:var(--cb-btn-fg);transform:translateY(-1px);box-shadow:0 6px 14px -6px rgba(0,0,0,.5)}
@media(max-width:767.98px){.contact-bar-inner{gap:.5rem;padding-top:.6rem;padding-bottom:.6rem}.contact-bar-list{flex-direction:column;gap:.3rem}.contact-bar-btn{padding:.6rem 1.2rem}}
#contact-bar{font-family:var(--cb-font);font-size:var(--cb-size);font-weight:var(--cb-weight)}
.footer-copy .footer-powered{color:inherit;text-decoration:underline;text-underline-offset:.2em;text-decoration-color:rgba(255,255,255,.3);font-weight:600}.footer-copy .footer-powered:hover{color:#fff;text-decoration-color:currentColor}

/* ───────────── Contacts bar v2 (bold) ───────────── */
#contact-bar{box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}
.contact-bar-inner{min-height:3.75rem}
.contact-bar-list li{display:flex}
.contact-bar-list .cb-static{display:inline-flex;align-items:center;gap:.6rem}
.contact-bar-list i{font-size:1.15em}
.cb-between .contact-bar-inner{justify-content:space-between}
.cb-left .contact-bar-inner{justify-content:flex-start}.cb-left .contact-bar-list{justify-content:flex-start}
.contact-bar-social{display:flex;align-items:center;gap:.35rem}
.contact-bar-social a{color:var(--cb-fg);width:2.1rem;height:2.1rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;transition:background .15s,transform .15s}
.contact-bar-social a:hover{color:var(--cb-fg);background:rgba(255,255,255,.18);transform:translateY(-1px)}
.contact-bar-btn{font-size:.85rem;padding:.85rem 1.6rem;letter-spacing:.06em}
@media(max-width:767.98px){.contact-bar-social{justify-content:center}.cb-between .contact-bar-inner,.cb-left .contact-bar-inner{justify-content:center}}

/* ───────────── Announcement bar (promotions) ───────────── */
#announcement-bar{background:var(--an-bg,var(--sr-navy));color:var(--an-fg,#fff);font-family:var(--an-font,inherit);font-size:var(--an-size,.85rem);font-weight:var(--an-weight,500);letter-spacing:var(--an-ls,.01em);text-transform:var(--an-tt,none);min-height:var(--an-h,auto);display:flex;align-items:center;padding:8px 0;text-align:center}
#announcement-bar>.container{width:100%}
#announcement-bar a{color:var(--an-link,var(--sr-amber));text-decoration:underline;text-underline-offset:.2em;font-weight:700}
#announcement-bar a:hover{color:var(--an-link-hover,#fff)}
#announcement-bar.an-no-underline a{text-decoration:none}

/* Sign In as a button + uppercase buttons site-wide */
.navbar-rentals .btn-signin-nav{display:inline-flex;align-items:center;border:2px solid var(--sr-teal);color:var(--sr-teal)!important;background:transparent;border-radius:6px;padding:.42rem 1.1rem!important;font-weight:700;font-size:.88rem;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;white-space:nowrap;transition:background .15s,color .15s}
.navbar-rentals .btn-signin-nav:hover,.navbar-rentals .btn-signin-nav:focus{background:var(--sr-teal);color:#fff!important}
.btn:not(.btn-close),.btn-book-nav,.btn-signin-nav,.btn-find-car,.btn-strip,.btn-book-now,.btn-continue,.btn-apply-promo,.contact-bar-btn,
button[type=submit],input[type=submit],input[type=button],input[type=reset]{text-transform:uppercase;letter-spacing:.04em}

/* Unavailable vehicles (greyed out for the chosen dates) */
.vehicle-card.is-unavailable{opacity:.62;filter:grayscale(1);pointer-events:none;border-style:dashed}
.vehicle-card.is-unavailable:hover{transform:none;box-shadow:none}
.vehicle-unavail-badge{position:absolute;left:0;right:0;bottom:0;background:rgba(17,17,17,.82);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:.45rem .5rem;z-index:2}
.btn-book-now.btn-unavailable{background:#9ca3af!important;color:#fff!important;border-color:#9ca3af!important;cursor:not-allowed;box-shadow:none}
