/*
Theme Name: Ritz Rentals (Hello Elementor child)
Theme URI: https://ritzrentals.com.au
Description: Lightweight child theme for Ritz Rentals — self-hosted Lexend font, reduced-motion support and a few tiny brand helpers. All design lives in Elementor Site Settings (Global Kit); keep this file small.
Author: Get Shielded · MD Emmon Hossain
Template: hello-elementor
Version: 1.0.0
Text Domain: ritz-child
*/

/* ---------- Lexend (self-hosted, variable 100–900, font-display: swap) ---------- */
@font-face {
  font-family: 'Lexend';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/lexend-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lexend';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/lexend-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Motion: honour prefers-reduced-motion site-wide ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .elementor-invisible { visibility: visible !important; }
  [data-settings*="animation"] { opacity: 1 !important; transform: none !important; }
}

/* ---------- Tiny helpers ---------- */
html { scroll-behavior: smooth; }
:focus-visible { outline: 2px solid var(--e-global-color-accent, #B54CF7); outline-offset: 2px; }

/* ============================================================
   Header — transparent over the page hero, solid once scrolled
   (Elementor Sticky adds .elementor-sticky--effects after 40px)
   ============================================================ */
.elementor-location-header { position: absolute; top: 0; left: 0; right: 0; z-index: 60; }
.elementor-location-header .e-con.ritz-header {
  transition: background-color .4s cubic-bezier(.19,1,.22,1), min-height .4s cubic-bezier(.19,1,.22,1), box-shadow .4s;
}
.elementor-location-header .e-con.ritz-header.elementor-sticky--effects,
body.ritz-solid-header .elementor-location-header .e-con.ritz-header {
  background-color: rgba(255,255,255,.94);
  -webkit-backdrop-filter: saturate(1.5) blur(14px); backdrop-filter: saturate(1.5) blur(14px);
  box-shadow: 0 1px 0 var(--e-global-color-line);
  min-height: 70px;
}
/* logo swap: white over hero → purple when solid */
.ritz-header .ritz-logo img { height: 40px; width: auto; transition: height .3s; }
.ritz-header .ritz-logo-b, .ritz-header.elementor-sticky--effects .ritz-logo-w, body.ritz-solid-header .ritz-header .ritz-logo-w { display: none; }
.ritz-header.elementor-sticky--effects .ritz-logo-b, body.ritz-solid-header .ritz-header .ritz-logo-b { display: block; }
.ritz-header.elementor-sticky--effects .ritz-logo img { height: 34px; }
/* nav / phone / burger are white over the hero, brand colours once solid */
.elementor-location-header .e-con.ritz-header:not(.elementor-sticky--effects) .elementor-nav-menu--main .elementor-item { color: var(--e-global-color-white); opacity: .85; }
.elementor-location-header .e-con.ritz-header:not(.elementor-sticky--effects) .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .e-con.ritz-header:not(.elementor-sticky--effects) .elementor-nav-menu--main .elementor-item-active { opacity: 1; }
.elementor-location-header .e-con.ritz-header:not(.elementor-sticky--effects) .ritz-btn-phone .elementor-button,
.elementor-location-header .e-con.ritz-header:not(.elementor-sticky--effects) .ritz-burger .elementor-icon { color: var(--e-global-color-white); }
body.ritz-solid-header .elementor-location-header .e-con.ritz-header .elementor-nav-menu--main .elementor-item { color: var(--e-global-color-text); opacity: 1; }
body.ritz-solid-header .elementor-location-header .e-con.ritz-header .ritz-btn-phone .elementor-button { color: var(--e-global-color-primary); }
body.ritz-solid-header .elementor-location-header .e-con.ritz-header .ritz-burger .elementor-icon { color: var(--e-global-color-text); }
/* pages with no dark hero (cart / checkout / account / 404 / search) keep the header in flow */
body.ritz-solid-header .elementor-location-header { position: relative; }
.ritz-btn-phone .elementor-button-icon svg, .ritz-btn-ghost .elementor-button-icon svg { width: 22px; height: 22px; }
.ritz-btn-primary .elementor-button:hover, .ritz-btn-ghost .elementor-button:hover { transform: translateY(-2px); }
.ritz-btn-primary .elementor-button, .ritz-btn-ghost .elementor-button { transition: .35s cubic-bezier(.19,1,.22,1); }

/* Off-canvas mobile menu (reference .mobile) */
.ritz-mobile-links .elementor-nav-menu--main .elementor-item { border-bottom: 1px solid var(--e-global-color-white08); }
.ritz-mobile-tel { margin-top: auto; }

/* Footer */
.ritz-socials .elementor-social-icon { color: var(--e-global-color-white); }
.ritz-socials .elementor-social-icon svg { stroke: currentColor; fill: none !important; }
.ritz-fbot-links a { color: inherit; }
.ritz-fbot-links a:hover { color: var(--e-global-color-white); }

/* Sticky mobile bar (Footer template) — keep page content clear of it (≤1024px) */
@media (max-width: 1024px) { body { padding-bottom: 76px; } }
.ritz-contact-list .elementor-icon-list-icon svg { stroke: var(--e-global-color-white66); fill: none !important; }
.ritz-contact-list .elementor-icon-list-item:hover .elementor-icon-list-icon svg { stroke: var(--e-global-color-lavender); }

/* Home hero (reference .hero) */
.ritz-hero h1 em { font-style: normal; color: var(--e-global-color-lavender); }
.ritz-dock { -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.ritz-eyebrow .elementor-widget-divider { width: 26px; }
.ritz-eyebrow .elementor-heading-title { white-space: nowrap; }
/* Reference eyebrows sit in a 1.6 line box; keep that height so heads measure the same */
.ritz-eyebrow { min-height: 26.7px; }

/* Hero booking dock — native search form laid out like the reference .dock/.fld.
   !important because Elementor's widget-form stylesheet is printed after the child theme's. */
.ritz-search-form .elementor-form-fields-wrapper {
  background: rgba(255,255,255,.06); border-radius: 10px; overflow: hidden; align-items: stretch !important;
  /* reference .dock form is grid 1.4fr 1fr 1fr auto; its date+time inputs pin the two date
     columns at 263.2px, so the location column takes whatever is left */
  display: grid !important; grid-template-columns: minmax(0, 1fr) 263.2px 263.2px auto; gap: 0 !important;
}
.ritz-search-form .elementor-form-fields-wrapper > .elementor-field-group { width: auto !important; max-width: none !important; }
.ritz-search-form .elementor-form-fields-wrapper > .elementor-field-group {
  display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important;
  align-items: flex-start !important; justify-content: center !important; gap: 5px !important;
  padding: 14px 18px !important; margin: 0 !important;
  border-right: 1px solid var(--e-global-color-white12);
}
.ritz-search-form .elementor-form-fields-wrapper > .elementor-field-group > label {
  margin: 0 !important; flex-basis: auto !important; width: 100%;
}
.ritz-search-form .elementor-field,
.ritz-search-form .elementor-field-textual,
.ritz-search-form .elementor-select-wrapper select {
  background: transparent !important; border: none !important; box-shadow: none !important;
  padding: 0 !important; min-height: 0 !important; height: auto !important; line-height: 1.4 !important;
  flex: 0 0 auto !important; width: 100%; color-scheme: dark;
}
.ritz-search-form .elementor-select-wrapper { display: flex; align-items: center; position: relative; }
.ritz-search-form .elementor-select-wrapper select { padding-right: 20px !important; text-overflow: ellipsis; }
.ritz-search-form .elementor-select-wrapper .select-caret-down-wrapper { inset-block-start: auto; }
.ritz-search-form select option { color: var(--e-global-color-text); }
.ritz-search-form .elementor-form-fields-wrapper > .elementor-field-type-submit {
  border-right: none; padding: 8px !important; justify-content: center !important; align-items: stretch !important;
}
.ritz-search-form .elementor-button { width: auto !important; justify-content: center; line-height: normal !important; }
.ritz-search-form .elementor-button .elementor-button-text { line-height: normal !important; }
.ritz-search-form .elementor-button-content-wrapper,
.ritz-search-form .elementor-button-text { white-space: nowrap !important; }
/* Reference: 2 columns (button full width) at 860px, single column at 520px */
@media (max-width: 860px) {
  .ritz-search-form .elementor-form-fields-wrapper { grid-template-columns: 1fr 1fr !important; }
  .ritz-search-form .elementor-form-fields-wrapper > .elementor-field-group {
    border-right: none; border-bottom: 1px solid var(--e-global-color-white12);
  }
  .ritz-search-form .elementor-form-fields-wrapper > .elementor-field-type-submit { border-bottom: none; grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .ritz-search-form .elementor-form-fields-wrapper { grid-template-columns: 1fr !important; }
}

/* Value band (reference .value) — the small unit after each number */
.ritz-value-num .elementor-heading-title { line-height: 1; }
.ritz-value-num .ritz-unit {
  color: var(--e-global-color-lavender);
  font-size: 1.1rem; font-weight: 600; letter-spacing: 0; line-height: 1;
}
.ritz-value-grid .ritz-value-cell:last-child { border-right: none; }
@media (max-width: 767px) { .ritz-value-grid .ritz-value-cell:last-child { border-bottom: none; } }

/* The Global Kit's paragraph spacing shouldn't add a trailing gap inside a card/cell */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Reference stacks the value band at 800px; Elementor's tablet breakpoint is 1024,
   so this closes the 768–800px gap without touching the editable grid settings. */
@media (min-width: 768px) and (max-width: 800px) {
  .ritz-value-grid, .ritz-value-grid > .e-con-inner { --e-con-grid-template-columns: 1fr !important; grid-template-columns: 1fr !important; }
  .ritz-value-grid .ritz-value-cell {
    border-right: none !important; border-bottom: 1px solid var(--e-global-color-white12) !important;
    padding: 32px 28px !important;
  }
  .ritz-value-grid .ritz-value-cell:last-child { border-bottom: none !important; }
}

/* Fleet preview cards (reference .vcard) */
.ritz-vcard { transition: transform .4s cubic-bezier(.19,1,.22,1), box-shadow .4s cubic-bezier(.19,1,.22,1); }
.ritz-vcard:hover { transform: translateY(-8px); box-shadow: 0 30px 60px -24px rgba(52,6,81,.4); }
.ritz-vcard-pic { aspect-ratio: 900 / 517; background: linear-gradient(180deg,#f7f5fb,#eee9f5); }
.ritz-vcard-pic .elementor-widget-image,
.ritz-vcard-pic .elementor-widget-image .elementor-widget-container,
.ritz-vcard-pic figure, .ritz-vcard-pic a { height: 100%; }
.ritz-vcard-pic img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.19,1,.22,1); }
.ritz-vcard:hover .ritz-vcard-pic img { transform: scale(1.06); }
.ritz-vcard-body { flex: 1; }
.ritz-vcard h3 a { color: inherit; }
.ritz-price .ritz-price-unit { font-size: .8rem; font-weight: 500; letter-spacing: 0; color: var(--e-global-color-muted); }
.ritz-vcard-specs .elementor-icon-list-items { flex-wrap: wrap; }

/* Filter pills + ghost CTA (reference .pill / .btn-ghost) */
.ritz-pill.ritz-pill-active .elementor-button {
  background-color: var(--e-global-color-primary) !important;
  color: var(--e-global-color-white) !important;
  border-color: var(--e-global-color-primary) !important;
}
.ritz-btn-ghost-lg .elementor-button:hover, .ritz-pill .elementor-button:hover { transform: translateY(-2px); }
.ritz-btn-ghost-lg .elementor-button, .ritz-pill .elementor-button { transition: .35s cubic-bezier(.19,1,.22,1); }

/* Reference switches the fleet grid to 2-up at 1000px and 1-up at 520px */
@media (min-width: 1001px) and (max-width: 1024px) {
  .ritz-fleet-grid, .ritz-fleet-grid > .e-con-inner { --e-con-grid-template-columns: repeat(4, 1fr) !important; }
}
@media (min-width: 521px) and (max-width: 767px) {
  .ritz-fleet-grid, .ritz-fleet-grid > .e-con-inner { --e-con-grid-template-columns: repeat(2, 1fr) !important; }
}

/* Why-Ritz split (reference .split) */
.ritz-split-media { min-height: 460px; }
.ritz-tick .elementor-icon { width: 26px; height: 26px; border-radius: 7px; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
.ritz-tick .elementor-icon svg { width: 14px; height: 14px; }
/* Reference stacks the split at 900px; Elementor's mobile breakpoint is 767 */
@media (min-width: 768px) and (max-width: 900px) {
  .ritz-split, .ritz-split > .e-con-inner { --e-con-grid-template-columns: 1fr !important; }
}

/* Three steps (reference .steps / .st) */
.ritz-steps .ritz-step:first-child { border-left: none; }
.ritz-step-ic .elementor-icon { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; border-color: var(--e-global-color-white25) !important; }
.ritz-head-c { margin-inline: auto !important; }
@media (max-width: 767px) { .ritz-steps .ritz-step:first-child { border-top: none; } }
/* Reference stacks the steps at 820px; Elementor's mobile breakpoint is 767 */
@media (min-width: 768px) and (max-width: 820px) {
  .ritz-steps, .ritz-steps > .e-con-inner { --e-con-grid-template-columns: 1fr !important; }
  .ritz-steps .ritz-step { border-left: none !important; border-top: 1px solid var(--e-global-color-white10) !important; }
  .ritz-steps .ritz-step:first-child { border-top: none !important; }
}

/* Transparent pricing (reference .inc / .extras) */
.ritz-inc-tick .elementor-icon { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.ritz-inc-tick .elementor-icon svg { width: 14px; height: 14px; }
.ritz-extras .ritz-extra-row:last-of-type { border-bottom: none; }
/* Reference stacks the pricing grid at 900px; Elementor's mobile breakpoint is 767 */
@media (min-width: 768px) and (max-width: 900px) {
  .ritz-pricing, .ritz-pricing > .e-con-inner { --e-con-grid-template-columns: 1fr !important; gap: 36px !important; }
}

/* Testimonials (reference .tc) */
.ritz-tcard { position: relative; }
.ritz-tcard::before {
  content: "\201D"; position: absolute; top: 24px; right: 30px; left: auto; bottom: auto; width: auto; height: auto;
  font-family: Georgia, serif; font-size: 4rem; font-weight: 900; line-height: 1;
  color: var(--e-global-color-line); pointer-events: none;
}
.ritz-tcard blockquote { margin: 0; }
.ritz-avatar .elementor-heading-title {
  width: 46px; height: 46px; border-radius: 50%;
  background: linear-gradient(135deg, var(--e-global-color-primary), var(--e-global-color-accent));
  display: flex; align-items: center; justify-content: center;
}
.ritz-stars .elementor-star-rating { letter-spacing: 3px; }
/* Reference stacks the review grid at 820px; Elementor's mobile breakpoint is 767 */
@media (min-width: 768px) and (max-width: 820px) {
  .ritz-tgrid, .ritz-tgrid > .e-con-inner { --e-con-grid-template-columns: 1fr !important; }
}

/* FAQ accordion (reference .fi) — item divider, brand colours, plus turns into a cross */
.ritz-acc {
  /* the reference item has only a bottom rule — drop Elementor's default 1px box */
  --n-accordion-border-width: 0;
  --n-accordion-title-normal-color: var(--e-global-color-text);
  --n-accordion-title-hover-color: var(--e-global-color-primary);
  --n-accordion-title-active-color: var(--e-global-color-text);
  --n-accordion-icon-normal-color: var(--e-global-color-accent);
  --n-accordion-icon-hover-color: var(--e-global-color-accent);
  --n-accordion-icon-active-color: var(--e-global-color-accent);
}
.ritz-acc .e-n-accordion-item { border-bottom: 1px solid var(--e-global-color-line); }
.ritz-acc .e-n-accordion-item-title-icon { transition: transform .3s cubic-bezier(.19,1,.22,1); }
.ritz-acc details[open] > summary .e-n-accordion-item-title-icon { transform: rotate(45deg); }
/* the reference icons are stroke-drawn; Elementor colours nested-accordion SVGs with fill */
.ritz-acc .e-n-accordion-item-title-icon span > svg { fill: none; stroke: var(--n-accordion-icon-normal-color); }
.ritz-acc .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon span > svg { stroke: var(--n-accordion-icon-active-color); }
.ritz-acc .e-n-accordion-item:not([open]):hover > .e-n-accordion-item-title .e-n-accordion-item-title-icon span > svg { stroke: var(--n-accordion-icon-hover-color); }
/* the accordion title renders as an H3, so the kit's H3 rule would win over the widget's
   own low-specificity typography rule — re-apply the FAQ question token here */
.ritz-acc .e-n-accordion-item-title-text {
  font-family: var(--e-global-typography-faqq-font-family), sans-serif;
  font-size: var(--e-global-typography-faqq-font-size);
  font-weight: var(--e-global-typography-faqq-font-weight);
  line-height: var(--e-global-typography-faqq-line-height);
  letter-spacing: var(--e-global-typography-faqq-letter-spacing);
}

/* Final CTA band (reference .cta) */
.ritz-btn-ghost-dark .elementor-button, .ritz-btn-ghost-dark .elementor-button:hover { transition: .35s cubic-bezier(.19,1,.22,1); }
.ritz-btn-ghost-dark .elementor-button:hover { transform: translateY(-2px); }

/* Page hero (reference .phero) — Elementor can't express the mock's radial geometry
   (120% 130% at 82% -10%), so it is restated here; the two colours stay Global tokens. */
.ritz-phero {
  background-image: radial-gradient(120% 130% at 82% -10%,
    var(--e-global-color-plum) 0%, var(--e-global-color-text) 58%) !important;
}

/* Contact — form card + details card (reference .formcard / .detcard) */
.ritz-enquiry-form .elementor-field-group > label { margin-bottom: 6px; }
.ritz-enquiry-form .elementor-field-textual { padding: 12px 14px; }
.ritz-enquiry-form textarea.elementor-field-textual { min-height: 120px; resize: vertical; }
.ritz-enquiry-form .elementor-field-textual:focus {
  border-color: var(--e-global-color-accent) !important;
  box-shadow: 0 0 0 3px rgba(181,76,247,.15);
}
.ritz-enquiry-form .elementor-field-type-submit { margin-top: 6px; }
.ritz-detrow-ic .elementor-icon { margin-top: 2px; }
.ritz-detrow a:hover { color: var(--e-global-color-lavender); }
.ritz-detrow-ic .elementor-icon svg { fill: none !important; stroke: currentColor !important; }
.ritz-enquiry-form .elementor-field-type-submit .elementor-button { width: 100%; justify-content: center; }
/* Reference stacks the contact grid at 940px; Elementor's mobile breakpoint is 767 */
@media (min-width: 768px) and (max-width: 940px) {
  .ritz-ctgrid, .ritz-ctgrid > .e-con-inner { --e-con-grid-template-columns: 1fr !important; gap: 24px !important; }
}

/* Contact channels (reference .chan) */
.ritz-chan { transition: .25s cubic-bezier(.19,1,.22,1); }
.ritz-chan:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -24px rgba(52,6,81,.3); border-color: transparent !important; }
.ritz-chan-ic .elementor-icon { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; }
.ritz-chan-ic .elementor-icon svg { fill: none !important; stroke: currentColor !important; }
/* Reference stacks the channels at 720px; Elementor's mobile breakpoint is 767 */
@media (min-width: 721px) and (max-width: 767px) {
  .ritz-channels, .ritz-channels > .e-con-inner { --e-con-grid-template-columns: repeat(3, 1fr) !important; }
}

/* Contact map card (reference .mapcard) */
.ritz-mapcard { position: relative; aspect-ratio: 21 / 7; }
.ritz-mapcard .ritz-map, .ritz-mapcard .ritz-map .elementor-widget-container,
.ritz-mapcard .elementor-custom-embed { position: absolute; inset: 0; width: 100%; height: 100%; }
.ritz-mapcard .ritz-map iframe { width: 100%; height: 100%; border: 0; }
.ritz-pinbig .elementor-icon { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
.ritz-pinbig .elementor-icon svg { fill: none !important; stroke: currentColor !important; }
@media (max-width: 720px) { .ritz-mapcard { aspect-ratio: 4 / 3; } }
.ritz-mapcard-card { max-width: 320px; }
@media (max-width: 767px) {
  .ritz-mapcard-card { left: 16px !important; right: 16px; width: auto !important; max-width: 320px; }
}

/* Fleet — browse by class (reference .ctile) */
.ritz-ctile { aspect-ratio: 4 / 3; transition: transform .3s cubic-bezier(.19,1,.22,1); }
.ritz-ctile:hover { transform: translateY(-5px); }
/* Reference drops the class tiles to 1-up at 520px; Elementor's mobile breakpoint is 767 */
@media (min-width: 521px) and (max-width: 767px) {
  .ritz-classrow, .ritz-classrow > .e-con-inner { --e-con-grid-template-columns: repeat(2, 1fr) !important; }
}

/* Fleet archive — filter bar, chips, loop card extras (reference .fbar / .chips / .vcard) */
.ritz-rc { color: var(--e-global-color-muted); font-size: .9rem; }
.ritz-rc p { margin: 0; }
.ritz-rc b, .ritz-rc strong { color: var(--e-global-color-text); font-weight: 700; }
.ritz-rc .woocommerce-result-count { margin: 0; }
.ritz-chip .elementor-heading-title {
  display: inline-block; background: var(--e-global-color-lilac); border-radius: 20px; padding: 4px 10px;
}
.ritz-vcard-desc { margin-top: -2px; }
.ritz-loop-price .price, .ritz-loop-price .amount {
  font-family: var(--e-global-typography-pricebig-font-family), sans-serif;
  font-size: var(--e-global-typography-pricebig-font-size);
  font-weight: var(--e-global-typography-pricebig-font-weight);
  letter-spacing: var(--e-global-typography-pricebig-letter-spacing);
  color: var(--e-global-color-text);
}
.ritz-loop-price .rnb_price_unit, .ritz-loop-price .price small { color: var(--e-global-color-muted); }
.ritz-chips .elementor-widget { width: auto; flex: 0 0 auto; }
.ritz-vcard-foot .elementor-button-text, .ritz-vcard-foot .elementor-button,
.ritz-loop-price, .ritz-loop-price * { white-space: nowrap !important; }
.ritz-vcard-foot .elementor-widget { flex: 0 0 auto; }

/* Fleet loop grid — keep columns equal (1fr defaults to min-content minimum) */
.ritz-fleet-loop .elementor-grid > * { min-width: 0; }

/* Vehicle card specs — match the reference .vcard .specs row (icon 22, 5px to text, 14px between) */
.ritz-vcard-specs .elementor-icon-list-items { row-gap: 14px; }
.ritz-vcard-specs .elementor-icon-list-item { align-items: center; }
.ritz-vcard-specs .elementor-icon-list-icon { display: flex; align-items: center; width: 22px; height: 22px; }
.ritz-vcard-specs .elementor-icon-list-text { padding-left: 0; }

/* Vehicle card price — big amount + small "/day" unit, both from Global typography */
.ritz-chip { display: flex; }
.ritz-loop-price .price { margin: 0; }
.ritz-loop-price .price > .amount {
	font-size: var(--e-global-typography-priceunit-font-size);
	font-weight: var(--e-global-typography-priceunit-font-weight);
	line-height: var(--e-global-typography-priceunit-line-height);
	color: var(--e-global-color-muted);
}
.ritz-loop-price .woocommerce-Price-amount {
	font-size: var(--e-global-typography-cardprice-font-size);
	font-weight: var(--e-global-typography-cardprice-font-weight);
	letter-spacing: var(--e-global-typography-cardprice-letter-spacing);
	line-height: var(--e-global-typography-cardprice-line-height);
	color: var(--e-global-color-text);
}

/* Reference fleet grid: 4-up above 1000px, 2-up to 520px, 1-up below — bridge Elementor's 1024/767 stops */
@media (min-width: 1001px) and (max-width: 1024px) {
  .ritz-fleet-loop .elementor-grid { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (min-width: 521px) and (max-width: 767px) {
  .ritz-fleet-loop .elementor-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
/* Card footer: buttons keep one row, price gives up the space (reference .vcard .btns) */
.ritz-vcard-foot > :last-child { flex: 0 0 auto; width: auto !important; flex-wrap: nowrap; }
.ritz-vcard-foot > :first-child { flex: 0 1 auto; width: auto !important; min-width: 0; }

/* Fleet filter pills — the pill for the archive you are on reads as active (reference .pill.active) */
body.ritz-fleet-cat-all .ritz-pill-all-cars .elementor-button,
body.ritz-fleet-cat-economy .ritz-pill-economy .elementor-button,
body.ritz-fleet-cat-sedan .ritz-pill-sedan .elementor-button,
body.ritz-fleet-cat-suv .ritz-pill-suv .elementor-button,
body.ritz-fleet-cat-premium .ritz-pill-premium .elementor-button {
	background-color: var(--e-global-color-primary) !important;
	border-color: var(--e-global-color-primary) !important;
	color: var(--e-global-color-white) !important;
}

/* Fleet — rental types + reassurance band (reference .rtypes / .rt / .reassure) */
.ritz-rt-ic .elementor-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; }
.ritz-rt-ic .elementor-icon svg, .ritz-reassure-ic .elementor-icon svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor !important; }
.ritz-reassure-ic .elementor-icon { display: flex; }
.ritz-reassure .elementor-button-icon svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor !important; }
/* Reference drops the tiles to 2-up at 900px and 1-up at 520px */
@media (min-width: 901px) and (max-width: 1024px) {
  .ritz-rt-grid, .ritz-rt-grid > .e-con-inner { --e-con-grid-template-columns: repeat(4, 1fr) !important; }
}
@media (min-width: 521px) and (max-width: 767px) {
  .ritz-rt-grid, .ritz-rt-grid > .e-con-inner { --e-con-grid-template-columns: repeat(2, 1fr) !important; }
}
/* Band items stay shrink-to-fit on phones (Elementor stretches child containers there) */
.ritz-reassure-it, .ritz-reassure > .e-con:last-child { width: auto !important; }

/* Fleet empty state — card-styled "nothing found" for filters with no cars */
.ritz-fleet-loop .e-loop-nothing-found-message { width: 100%; }
.ritz-fleet-loop .e-loop-nothing-found-message__text {
	border: 1px solid var(--e-global-color-line); border-radius: 14px;
	background: var(--e-global-color-cream); padding: 34px 30px; text-align: center;
	color: var(--e-global-color-gray); font-size: .92rem; line-height: 1.6;
}
.ritz-fleet-loop .e-loop-nothing-found-message__text b {
	display: block; margin-bottom: 6px; font-size: 1.1rem; font-weight: 700;
	letter-spacing: -.02em; line-height: 1.02; color: var(--e-global-color-text);
}
.ritz-fleet-loop .e-loop-nothing-found-message__text a { color: var(--e-global-color-primary); font-weight: 600; }

/* Reference draws every button icon at 22px */
.elementor-button-icon svg, .elementor-button .elementor-button-icon svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor !important; }

/* ===== Vehicle detail (reference vehicle.html) ===== */
.ritz-crumb .elementor-widget { margin: 0 !important; }
.ritz-crumb-link .elementor-heading-title a { font-weight: 600; color: inherit; }
.ritz-vd-top, .ritz-vd-top > .e-con-inner { --e-con-grid-template-columns: 1.35fr .9fr; }
/* gallery — main 16/10 card + 4 thumbs (reference .gallery/.thumbs) */
.ritz-gallery .woocommerce-product-gallery { opacity: 1 !important; }
.ritz-gallery .woocommerce-product-gallery__wrapper,
.ritz-gallery .flex-viewport {
	aspect-ratio: 16 / 10; border-radius: 18px; overflow: hidden;
	background: linear-gradient(180deg, #F7F5FB, #EEE9F5);
	border: 1px solid var(--e-global-color-line);
}
/* with more than one photo Woo turns the wrapper into a flexslider track */
.ritz-gallery .flex-viewport .woocommerce-product-gallery__wrapper {
	aspect-ratio: auto; border: 0; border-radius: 0; height: 100%; display: flex;
}
.ritz-gallery .flex-viewport .woocommerce-product-gallery__image { height: 100%; flex: 0 0 auto; }
.ritz-gallery .flex-control-thumbs li { width: auto !important; height: auto; }
.ritz-gallery .woocommerce-product-gallery__image,
.ritz-gallery .woocommerce-product-gallery__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ritz-gallery .flex-control-thumbs {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 12px 0 0; padding: 0; list-style: none;
}
.ritz-gallery .flex-control-thumbs li { width: auto; margin: 0; float: none; }
.ritz-gallery .flex-control-thumbs img {
	aspect-ratio: 4 / 3; width: 100%; height: 100%; object-fit: cover;
	border-radius: 12px; border: 2px solid transparent; opacity: 1; cursor: pointer;
	background: linear-gradient(180deg, #F7F5FB, #EEE9F5);
}
.ritz-gallery .flex-control-thumbs img.flex-active { border-color: var(--e-global-color-accent); }
.ritz-gallery .woocommerce-product-gallery__trigger { display: none; }
/* booking box */
.ritz-bookbox { position: sticky; top: 104px; }
.ritz-bb-from { align-items: baseline !important; }
/* the reference class line sits in a 1.6 line box */
.ritz-bb-cls .elementor-heading-title { line-height: 1.6rem !important; }
.ritz-bb-from > .elementor-widget { margin: 0 !important; }
.ritz-vd-price .price { margin: 0; }
.ritz-vd-price .price > .amount {
	font-size: var(--e-global-typography-vdunit-font-size);
	font-weight: var(--e-global-typography-vdunit-font-weight);
	line-height: var(--e-global-typography-vdunit-line-height);
	color: var(--e-global-color-muted);
}
.ritz-vd-price .woocommerce-Price-amount {
	font-size: var(--e-global-typography-vdprice-font-size);
	font-weight: var(--e-global-typography-vdprice-font-weight);
	letter-spacing: var(--e-global-typography-vdprice-letter-spacing);
	line-height: var(--e-global-typography-vdprice-line-height);
	color: var(--e-global-color-text);
}
/* Reference stacks the two columns at 940px; Elementor's tablet stop is 1024 */
@media (max-width: 940px) {
	.ritz-vd-top, .ritz-vd-top > .e-con-inner { --e-con-grid-template-columns: 1fr; --grid-gaps: 28px 28px; --row-gap: 28px; --column-gap: 28px; }
	.ritz-bookbox { position: static; }
}
@media (min-width: 941px) and (max-width: 1024px) {
	.ritz-vd-top, .ritz-vd-top > .e-con-inner { --e-con-grid-template-columns: 1.35fr .9fr; }
}
/* specifications grid (reference .section-lab / .specgrid / .spectile) */
.ritz-spec-ic .elementor-icon { display: flex; justify-content: center; }
.ritz-spec-ic .elementor-icon svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor !important; }
.ritz-spectile .elementor-widget { margin-left: 0; margin-right: 0; text-align: center; }
/* the card list keeps the reference's "4dr" wording while the spec tile shows the number */
.ritz-vcard-specs .elementor-icon-list-item:nth-child(2) .elementor-icon-list-text::after { content: "dr"; }
/* Reference: 3-up at 820px, 2-up at 460px */
@media (min-width: 821px) and (max-width: 1024px) {
  .ritz-specgrid, .ritz-specgrid > .e-con-inner { --e-con-grid-template-columns: repeat(6, 1fr) !important; }
}
@media (min-width: 461px) and (max-width: 767px) {
  .ritz-specgrid, .ritz-specgrid > .e-con-inner { --e-con-grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 460px) {
  .ritz-specgrid, .ritz-specgrid > .e-con-inner { --e-con-grid-template-columns: repeat(2, 1fr) !important; }
}

/* ===== E3 · RnB booking form skinned to the reference bookbox ===== */
.ritz-bb-form, .ritz-bb-form * { max-width: 100%; box-sizing: border-box; }
/* the reference shows the price in the box header, not RnB's pricing-plan dropdown */
.ritz-bb-form .rnb-pricing-plan-button, .ritz-bb-form .price-showing { display: none !important; }
.ritz-bb-form .elementor-add-to-cart { margin: 0; }
.ritz-bb-form form.cart { margin: 0; display: block !important; }
.ritz-bb-form form.cart > * { width: 100% !important; float: none; }
/* field blocks (reference .bb-field) */
.ritz-bb-form .rnb-component-wrapper { display: flex; flex-direction: column; gap: 5px; margin: 0 0 12px; }
.ritz-bb-form .rnb-component-wrapper h5 {
	margin: 0 !important; padding: 0 !important; font-size: .68rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: var(--e-global-color-muted); line-height: 1.6 !important;
}
.ritz-bb-form select,
.ritz-bb-form input[type="text"],
.ritz-bb-form .chosen-container-single .chosen-single {
	font-family: inherit; font-size: .92rem !important; line-height: 19px !important; padding: 11px 12px !important;
	height: 45px !important; display: flex; align-items: center;
	border: 1.5px solid var(--e-global-color-line); border-radius: 9px;
	color: var(--e-global-color-text); background: var(--e-global-color-white); box-shadow: none; width: 100%;
}
.ritz-bb-form .chosen-container-single .chosen-single span { margin: 0; overflow: hidden; text-overflow: ellipsis; }
.ritz-bb-form .chosen-container-single .chosen-single div b { background-position: 0 6px; }
.ritz-bb-form select:focus,
.ritz-bb-form input[type="text"]:focus,
.ritz-bb-form .chosen-container-active .chosen-single {
	outline: none; border-color: var(--e-global-color-accent); box-shadow: 0 0 0 3px rgba(181,76,247,.15);
}
.ritz-bb-form .chosen-container { width: 100% !important; }
.ritz-bb-form .chosen-drop { border-color: var(--e-global-color-line); border-radius: 0 0 9px 9px; }
.ritz-bb-form .chosen-results li.highlighted { background: var(--e-global-color-primary); }
/* the two date/time pickers sit side by side in one field */
.ritz-bb-form .date-time-picker { flex-direction: row; flex-wrap: wrap; align-items: center; }
.ritz-bb-form .date-time-picker h5 { flex: 1 0 100%; }
.ritz-bb-form .date-time-picker > span { position: relative; flex: 1 1 0; min-width: 0; display: block; }
.ritz-bb-form .date-time-picker > span i { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--e-global-color-muted); font-size: .85rem; pointer-events: none; }

/* extras (reference .extras / .exrow) */
.ritz-bb-form .payable-extras {
	border-top: 1px solid var(--e-global-color-line); margin: 6px 0 0; padding-top: 14px; gap: 0;
}
.ritz-bb-form .payable-extras h5 { margin-bottom: 10px; }
.ritz-bb-form .payable-extras .attributes { margin: 0; }
.ritz-bb-form .payable-extras label.custom-block {
	display: flex; align-items: center; gap: 0; padding: 7px 0 7px 28px; margin: 0; position: relative;
	font-size: .9rem; font-weight: 300; text-transform: none; color: var(--e-global-color-text);
	cursor: pointer; line-height: 1.6; width: 100%;
}
/* RnB draws its own box/tick with span pseudo-elements — replace with the reference checkbox */
.ritz-bb-form .payable-extras .custom-block span:after,
.ritz-bb-form .payable-extras .custom-block span:before { content: none !important; }
.ritz-bb-form .payable-extras label.custom-block:before {
	content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
	width: 18px; height: 18px; border-radius: 4px;
	border: 1.5px solid var(--e-global-color-line); background: var(--e-global-color-white);
}
.ritz-bb-form .payable-extras label.custom-block:has(input:checked):before {
	background: var(--e-global-color-accent); border-color: var(--e-global-color-accent);
}
.ritz-bb-form .payable-extras label.custom-block:has(input:checked):after {
	content: ""; position: absolute; left: 6px; top: 50%; width: 5px; height: 9px;
	border: solid var(--e-global-color-white); border-width: 0 2px 2px 0;
	transform: translateY(-62%) rotate(45deg);
}
/* price on the right, written as "$19/day" like the reference */
.ritz-bb-form .payable-extras .pull-right { margin-left: auto; color: var(--e-global-color-muted); font-weight: 600; font-size: .9rem; white-space: nowrap; }
.ritz-bb-form .payable-extras .pull-right.show_if_hour { display: none !important; }
.ritz-bb-form .payable-extras .show_if_day > span:not(.woocommerce-Price-amount) { display: none !important; }
.ritz-bb-form .payable-extras .show_if_day bdi:after { content: "/day"; font-weight: 600; }
.ritz-bb-form .payable-extras .custom-block span { margin-bottom: 0; }
/* the reference date fields carry no icons */
.ritz-bb-form .date-time-picker i { display: none; }
/* live totals (reference .calc) */
.ritz-bb-form .booking-pricing-info {
	border-top: 1px solid var(--e-global-color-line); margin-top: 12px; padding-top: 14px; font-size: .9rem;
}
.ritz-bb-form .booking_cost ul { list-style: none; margin: 0; padding: 0; }
.ritz-bb-form .booking_cost li {
	display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border: 0 !important;
	color: var(--e-global-color-gray); font-size: .9rem; line-height: 1.6;
}
.ritz-bb-form .booking_cost li:not(.total) > span { font-size: .9rem !important; line-height: 1.6 !important; }
.ritz-bb-form .booking_cost li .price,
.ritz-bb-form .booking_cost li .price * { color: var(--e-global-color-text) !important; font-weight: 700; font-size: .9rem; line-height: 1.6; }
.ritz-bb-form .booking_cost li.total {
	border-top: 1px solid var(--e-global-color-line); margin-top: 8px; padding-top: 12px; align-items: baseline;
}
.ritz-bb-form .booking_cost li.total .name { font-weight: 600; color: var(--e-global-color-text); }
.ritz-bb-form .booking_cost li.total .price,
.ritz-bb-form .booking_cost li.total .price * { font-size: 1.7rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.2; }
.ritz-bb-form .booking_cost li.deposit, .ritz-bb-form .booking_cost li.partial_payment {
	font-size: .78rem; color: var(--e-global-color-muted);
}
.ritz-bb-form .booking_cost li.instant_pay_amount, .ritz-bb-form .booking_cost li.due_payment {
	font-size: .78rem; color: var(--e-global-color-muted);
}
.ritz-bb-form .booking_cost li.instant_pay_amount .price, .ritz-bb-form .booking_cost li.instant_pay_amount .price *,
.ritz-bb-form .booking_cost li.due_payment .price, .ritz-bb-form .booking_cost li.due_payment .price * { font-size: .78rem; font-weight: 700; }
/* Book Now button (reference .bookbox .cta) */
.ritz-bb-form .single_add_to_cart_button {
	display: flex; width: 100%; justify-content: center; align-items: center; gap: 10px; margin-top: 14px;
	padding: 15px 30px !important; border: 1.5px solid transparent !important; border-radius: 4px !important; cursor: pointer;
	font-family: inherit; font-size: .95rem !important; font-weight: 600; letter-spacing: .01em; line-height: 19px !important; height: auto;
	background: var(--e-global-color-accent); color: var(--e-global-color-white);
	transition: .35s cubic-bezier(.19,1,.22,1);
}
.ritz-bb-form .single_add_to_cart_button:hover { background: var(--e-global-color-primary); }
.ritz-bb-form .rnb-notice { margin-bottom: 12px; font-size: .82rem; }
/* trust row (reference .bb-trust) */
.ritz-bb-trust-item { width: auto !important; }
.ritz-bb-trust-ic .elementor-icon { display: flex; }
.ritz-bb-trust-ic .elementor-icon svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor !important; }
/* About this car + inclusion cards (reference .inc-cols / .inccard) */
.ritz-vd-h2 p { margin: 0; }
.ritz-vd-desc { max-width: 64ch; }
.ritz-vd-desc p:last-child { margin-bottom: 0; }
.ritz-inc-mk .elementor-icon { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; }
.ritz-inc-mk .elementor-icon svg { width: 14px; height: 14px; fill: none !important; stroke: currentColor !important; }
.ritz-inc-row .elementor-widget-text-editor p { margin: 0; }
/* Reference stacks the two cards at 820px; Elementor's mobile stop is 767 */
@media (min-width: 768px) and (max-width: 820px) {
  .ritz-inc-cols, .ritz-inc-cols > .e-con-inner { --e-con-grid-template-columns: 1fr !important; }
}
/* Similar cars (reference vehicle.html .fleet-grid cards) */
.ritz-similar-loop .elementor-grid > * { min-width: 0; }
.ritz-sim-price .price { margin: 0; }
.ritz-sim-price .price > .amount {
	font-size: var(--e-global-typography-priceunit-font-size);
	font-weight: var(--e-global-typography-priceunit-font-weight);
	line-height: var(--e-global-typography-priceunit-line-height);
	color: var(--e-global-color-muted);
}
.ritz-sim-price .woocommerce-Price-amount {
	font-size: var(--e-global-typography-pricebig-font-size);
	font-weight: var(--e-global-typography-pricebig-font-weight);
	letter-spacing: var(--e-global-typography-pricebig-letter-spacing);
	line-height: 1.25;
	color: var(--e-global-color-text);
}
.ritz-sim-foot > .elementor-widget-button { width: auto !important; }
.ritz-sim-foot .elementor-button { line-height: 1.6 !important; }
/* About hero (reference .phero h1 caps at 18ch of its own type size) */
.ritz-phero h1 { max-width: 18ch; }

/* About — Ritz vs the big chains (reference .compare / .cbox) */
.ritz-cbox-ic .elementor-icon { display: flex; }
.ritz-cbox-ic .elementor-icon svg, .ritz-cbox-mk .elementor-icon svg { fill: none !important; stroke: currentColor !important; }
.ritz-cbox-mk .elementor-icon { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; }
.ritz-cbox-mk .elementor-icon svg { width: 14px; height: 14px; }
.ritz-cbox-row .elementor-widget-text-editor p { margin: 0; }
/* Reference stacks the boxes at 820px; Elementor's mobile stop is 767 */
@media (min-width: 768px) and (max-width: 820px) {
  .ritz-compare, .ritz-compare > .e-con-inner { --e-con-grid-template-columns: 1fr !important; }
}
/* About — values grid (reference .why-grid / .why-card) */
.ritz-why-ic .elementor-icon {
	width: 50px; height: 50px; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 20px -10px rgba(52,6,81,.3);
}
.ritz-why-ic .elementor-icon svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor !important; }
.ritz-why-card .elementor-widget-text-editor p { margin: 0; }
/* Reference: 2-up at 900px, 1-up at 520px */
@media (min-width: 901px) and (max-width: 1024px) {
  .ritz-why-grid, .ritz-why-grid > .e-con-inner { --e-con-grid-template-columns: repeat(4, 1fr) !important; }
}
@media (min-width: 521px) and (max-width: 767px) {
  .ritz-why-grid, .ritz-why-grid > .e-con-inner { --e-con-grid-template-columns: repeat(2, 1fr) !important; }
}

/* About — service area band (reference .area / .chiparea / .mapwrap) */
.ritz-areachip-ic .elementor-icon, .ritz-areamap-ic .elementor-icon { display: flex; }
.ritz-areachip-ic .elementor-icon svg { width: 22px; height: 22px; fill: none !important; stroke: currentColor !important; }
.ritz-areamap {
	aspect-ratio: 4 / 3;
	background: radial-gradient(circle at 60% 40%, var(--e-global-color-plum), var(--e-global-color-text));
}
.ritz-areamap-ic { width: 70%; height: 70%; }
.ritz-areamap-ic .elementor-icon-wrapper,
.ritz-areamap-ic .elementor-icon { width: 100% !important; height: 100% !important; opacity: .9; display: flex; align-items: center; justify-content: center; }
.ritz-areamap-ic .elementor-icon svg {
	width: 100% !important; height: 100% !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.3;
}
/* Reference stacks the band at 820px; Elementor's mobile stop is 767 */
@media (min-width: 768px) and (max-width: 820px) {
  .ritz-area, .ritz-area > .e-con-inner { --e-con-grid-template-columns: 1fr !important; }
}

/* FAQ hero (reference faq.html .phero h1 / .quicklinks) */
.ritz-faq-h1 h1 { max-width: 16ch; }
.ritz-faq-lead a { color: inherit; text-decoration: underline; }

/* ===== FAQ page — filter bar + grouped accordion (reference .filterbar / .faq-item) ===== */
.ritz-fpill .elementor-button { white-space: nowrap; box-shadow: none; }
.ritz-fpill-on .elementor-button {
	background-color: var(--e-global-color-primary) !important;
	border-color: var(--e-global-color-primary) !important;
	color: var(--e-global-color-white) !important;
	box-shadow: 0 8px 18px -8px rgba(52,6,81,.6);
}
.ritz-faqcards {
	--n-accordion-border-width: 0;
	--n-accordion-border-color: transparent;
	--n-accordion-title-normal-color: var(--e-global-color-text);
	--n-accordion-title-hover-color: var(--e-global-color-primary);
	--n-accordion-title-active-color: var(--e-global-color-text);
	--n-accordion-icon-normal-color: var(--e-global-color-primary);
	--n-accordion-icon-hover-color: var(--e-global-color-primary);
	--n-accordion-icon-active-color: var(--e-global-color-white);
}
.ritz-faqcards .e-n-accordion-item {
	border: 1px solid var(--e-global-color-line); border-radius: 16px; overflow: hidden;
	background: var(--e-global-color-white); transition: .22s cubic-bezier(.19,1,.22,1);
}
.ritz-faqcards .e-n-accordion-item[open] {
	border-color: rgba(181,76,247,.5); box-shadow: 0 26px 50px -34px rgba(52,6,81,.34);
}
/* the + mark sits in a 34px lilac circle, purple when closed, filled when open */
.ritz-faqcards .e-n-accordion-item-title-icon {
	flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%;
	background: var(--e-global-color-lilac); display: flex; align-items: center; justify-content: center;
	transition: .25s cubic-bezier(.19,1,.22,1);
}
.ritz-faqcards .e-n-accordion-item-title-icon span > svg { width: 22px; height: 22px; fill: none; stroke: currentColor; }
.ritz-faqcards .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon {
	background: var(--e-global-color-primary); transform: rotate(45deg);
}
.ritz-faqcards .e-n-accordion-item-title-text { flex: 1 1 0; }
.ritz-faqcards summary { gap: 18px !important; align-items: center; }
.ritz-faqcards .e-n-accordion-item-title-icon span { display: flex; line-height: 0; }
.ritz-faqgroup .elementor-widget-n-accordion { width: 100%; }
/* Reference tightens the question cards below 600px */
@media (max-width: 600px) {
  .ritz-faqcards summary { padding: 18px !important; gap: 12px !important; }
  .ritz-faqcards .e-n-accordion-item-title-text { font-size: 1rem !important; line-height: 1.6 !important; }
  .ritz-faqcards .e-n-accordion-item > .e-con { padding: 0 18px 20px 18px !important; }
}

/* FAQ help panel (reference .helpcta) */
.ritz-helpcta, .ritz-helpcta > .e-con-inner { --e-con-grid-template-columns: 1.2fr .8fr !important; }
.ritz-helpcta { position: relative; overflow: hidden; }
/* the reference paints a violet glow in the bottom-right corner */
.ritz-helpcta:after {
	content: ""; position: absolute; right: -40px; bottom: -60px; width: 260px; height: 260px;
	border-radius: 50%; background: radial-gradient(circle, rgba(181,76,247,.4), transparent 70%); pointer-events: none;
}
.ritz-helpcta > .e-con-inner { position: relative; z-index: 2; }
.ritz-btn-white .elementor-button { border: 1.5px solid transparent; }
.ritz-helpcta-body p { margin: 0; max-width: 44ch; }
.ritz-helpcta-actions .elementor-widget-button { width: 100%; }
.ritz-helpcta-actions .elementor-button { width: 100%; justify-content: center; }
.ritz-callrow p { margin: 0; }
.ritz-callrow a { color: var(--e-global-color-white); font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.35); }
/* Reference stacks and centres the panel at 820px */
@media (max-width: 820px) {
  .ritz-helpcta, .ritz-helpcta > .e-con-inner { --e-con-grid-template-columns: 1fr !important; --grid-gaps: 26px 26px !important; --row-gap: 26px !important; --column-gap: 26px !important; gap: 26px !important; text-align: center; }
  .ritz-helpcta-body p { margin-left: auto; margin-right: auto; }
}

/* Legal pages (no reference page — follows the site's own system) */
.ritz-legal p { margin: 0 0 14px; }
.ritz-legal p:last-child { margin-bottom: 0; }
.ritz-legal a { color: var(--e-global-color-primary); font-weight: 600; }
.ritz-legal strong { color: var(--e-global-color-text); font-weight: 600; }
.ritz-legal-meta p { margin: 0; }

/* the split badge keeps the reference's 230px cap on phones (Elementor stretches child containers) */
.ritz-split-badge { max-width: 230px; width: 230px !important; }

/* ==========================================================================
   404 template (Ritz — 404)
   ========================================================================== */
.ritz-404 { text-align: center; }
.ritz-404 h1 { max-width: 20ch; margin-left: auto; margin-right: auto; }
.ritz-404 .ritz-callrow p { margin: 0; }
/* the big numeral sits as a watermark behind the eyebrow */
.ritz-404-num { line-height: 0.9; }
.ritz-404-num .elementor-heading-title { display: block; }
.ritz-404-actions .elementor-widget-button { width: auto; }
@media (max-width: 767px) {
  .ritz-404-actions { width: 100% !important; }
  .ritz-404-actions .elementor-widget-button { width: 100%; }
  .ritz-404-actions .elementor-button { width: 100%; justify-content: center; }
}

/* Search form (404 + search results) — Elementor's Search Form, skinned to brand */
.ritz-searchform .elementor-search-form__container {
  border-radius: 999px; overflow: hidden; background: var(--e-global-color-white);
  border: 1px solid var(--e-global-color-line);
  box-shadow: 0 18px 40px -26px rgba(12,20,46,.45);
}
.ritz-searchform .elementor-search-form__input {
  font-family: "Lexend", sans-serif; font-size: .95rem; font-weight: 400;
  color: var(--e-global-color-text); padding: 14px 20px !important;
  background-color: transparent !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}
.ritz-searchform .elementor-search-form__input:focus { outline: none; box-shadow: none !important; }
.ritz-searchform .elementor-search-form__input::placeholder { color: var(--e-global-color-muted); opacity: 1; }
.ritz-searchform .elementor-search-form__submit {
  background: var(--e-global-color-accent); color: var(--e-global-color-white);
  font-family: "Lexend", sans-serif; font-weight: 600; font-size: .92rem; letter-spacing: .01em;
  padding: 0 26px; border-radius: 999px; margin: 5px; min-width: auto;
  transition: .35s cubic-bezier(.19,1,.22,1);
}
.ritz-searchform .elementor-search-form__submit:hover { background: var(--e-global-color-primary); }
.ritz-searchform-dark .elementor-search-form__container {
  background: rgba(255,255,255,.08); border-color: var(--e-global-color-white18); box-shadow: none;
  backdrop-filter: blur(8px);
}
.ritz-searchform-dark .elementor-search-form__input,
.ritz-searchform-dark .elementor-search-form__container { background-color: rgba(255,255,255,.08) !important; }
.ritz-searchform-dark .elementor-search-form__input { color: var(--e-global-color-white) !important; }
.ritz-searchform-dark .elementor-search-form__input::placeholder { color: rgba(255,255,255,.55); }
@media (max-width: 480px) {
  .ritz-searchform .elementor-search-form__submit { padding: 0 18px; font-size: .86rem; }
  .ritz-searchform .elementor-search-form__input { padding: 12px 16px !important; }
}

/* Quick-link pills (404 popular pages) */
.ritz-qpills .elementor-widget-button { width: auto; }
.ritz-qpill .elementor-button { transition: .35s cubic-bezier(.19,1,.22,1); }
.ritz-qpill .elementor-button:hover { transform: translateY(-2px); border-color: var(--e-global-color-primary) !important; }
.ritz-qpill .elementor-button-icon svg { width: 17px; height: 17px; fill: none !important; stroke: currentColor !important; }
.ritz-qpill .elementor-button-icon { display: flex; align-items: center; }

/* ==========================================================================
   Search results template (Ritz — Search Results)
   ========================================================================== */
.ritz-sr-summary p { margin: 0; }
.ritz-sr-list .elementor-posts-container { gap: 0; }
.ritz-sr-list article.elementor-post {
  display: flex; gap: 22px; align-items: flex-start;
  padding: 24px 0; border-bottom: 1px solid var(--e-global-color-line); margin: 0;
}
.ritz-sr-list article.elementor-post:first-child { padding-top: 0; }
.ritz-sr-list .elementor-post__thumbnail__link {
  flex: 0 0 200px; width: 200px; border-radius: 14px; overflow: hidden; margin: 0;
}
.ritz-sr-list .elementor-post__thumbnail { padding-bottom: 66% !important; }
.ritz-sr-list .elementor-post__text { flex: 1 1 0; min-width: 0; margin: 0; }
.ritz-sr-list .elementor-post__title { margin: 0 0 8px; }
.ritz-sr-list .elementor-post__title a { color: var(--e-global-color-text); transition: color .25s ease; }
.ritz-sr-list .elementor-post__title a:hover { color: var(--e-global-color-accent); }
.ritz-sr-list .elementor-post__excerpt p { margin: 0; }
.ritz-sr-list .elementor-post__read-more { margin-top: 12px; display: inline-block; }
.ritz-sr-list .elementor-posts-nothing-found { padding: 8px 0 0; }
/* pagination */
.ritz-sr-list .elementor-pagination { margin-top: 32px; display: flex; gap: 8px; flex-wrap: wrap; }
.ritz-sr-list .elementor-pagination .page-numbers {
  font-family: "Lexend", sans-serif; font-size: .9rem; font-weight: 600;
  min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
  padding: 0 12px; border-radius: 999px; border: 1px solid var(--e-global-color-line);
  color: var(--e-global-color-text); transition: .25s ease;
}
.ritz-sr-list .elementor-pagination .page-numbers:hover { border-color: var(--e-global-color-primary); }
.ritz-sr-list .elementor-pagination .page-numbers.current {
  background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: var(--e-global-color-white);
}
@media (max-width: 600px) {
  .ritz-sr-list article.elementor-post { flex-direction: column; gap: 14px; }
  .ritz-sr-list .elementor-post__thumbnail__link { flex: 0 0 auto; width: 100%; }
  .ritz-sr-list .elementor-post__thumbnail { padding-bottom: 56% !important; }
}

/* "Still can't find it?" panel */
.ritz-sr-helpbox { text-align: center; }
.ritz-sr-helpbox p { margin: 0 auto; }
.ritz-sr-helpactions .elementor-widget-button { width: auto; }
@media (max-width: 767px) {
  .ritz-sr-helpactions { width: 100% !important; }
  .ritz-sr-helpactions .elementor-widget-button { width: 100%; }
  .ritz-sr-helpactions .elementor-button { width: 100%; justify-content: center; }
}

/* ==========================================================================
   Blog — archive cards (Ritz — Blog Archive) + single post (Ritz — Single Post)
   ========================================================================== */
.ritz-blog-grid .elementor-posts-container { gap: 26px; }
.ritz-blog-grid .elementor-post__card {
  border-radius: 18px; overflow: hidden; background: var(--e-global-color-white);
  box-shadow: 0 26px 60px -50px rgba(12,20,46,.55); transition: .35s cubic-bezier(.19,1,.22,1);
  display: flex; flex-direction: column; height: 100%;
}
.ritz-blog-grid .elementor-post__card:hover { transform: translateY(-4px); border-color: var(--e-global-color-accent); }
.ritz-blog-grid .elementor-post__thumbnail__link { margin: 0; }
.ritz-blog-grid .elementor-post__text { flex: 1 1 auto; display: flex; flex-direction: column; margin: 0; }
.ritz-blog-grid .elementor-post__title { margin: 0 0 10px; }
.ritz-blog-grid .elementor-post__title a { color: var(--e-global-color-text); transition: color .25s ease; }
.ritz-blog-grid .elementor-post__card:hover .elementor-post__title a { color: var(--e-global-color-accent); }
.ritz-blog-grid .elementor-post__excerpt { flex: 1 1 auto; }
.ritz-blog-grid .elementor-post__excerpt p { margin: 0; }
.ritz-blog-grid .elementor-post__read-more { margin-top: 14px; align-self: flex-start; }
.ritz-blog-grid .elementor-post__meta-data { margin-bottom: 10px; border: 0; padding: 0; }
.ritz-blog-grid .elementor-posts-nothing-found { padding: 8px 0; }
/* the archive reuses the search pagination pills */
.ritz-blog .elementor-pagination { margin-top: 36px; display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.ritz-blog .elementor-pagination .page-numbers {
  font-family: "Lexend", sans-serif; font-size: .9rem; font-weight: 600;
  min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
  padding: 0 12px; border-radius: 999px; border: 1px solid var(--e-global-color-line);
  color: var(--e-global-color-text); transition: .25s ease;
}
.ritz-blog .elementor-pagination .page-numbers:hover { border-color: var(--e-global-color-primary); }
.ritz-blog .elementor-pagination .page-numbers.current {
  background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: var(--e-global-color-white);
}

/* ---- Single post ---- */
.ritz-post-hero h1 { max-width: 24ch; }
.ritz-post-crumb a { border-bottom: 1px solid rgba(255,255,255,.3); }
.ritz-post-meta .elementor-post-info__item { color: var(--e-global-color-white70); }
/* rows carry no icon, so Elementor's empty icon slot must not reserve a box */
.ritz-post-meta .elementor-icon-list-icon { display: none !important; }
.ritz-post-meta .elementor-icon-list-item { margin: 0; }
.ritz-post-meta .elementor-post-info__terms-list-item { color: var(--e-global-color-lavender); }
.ritz-post-img img { border-radius: 18px; width: 100%; height: auto; }

/* Article prose — the only long-form reading column on the site */
.ritz-post-body { font-family: "Lexend", sans-serif; font-weight: 300; font-size: 1.02rem; line-height: 1.75; color: var(--e-global-color-gray); }
.ritz-post-body > *:first-child { margin-top: 0; }
.ritz-post-body p { margin: 0 0 20px; }
.ritz-post-body h2 {
  font-size: clamp(1.5rem, 3vw, 1.9rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.2;
  color: var(--e-global-color-text); margin: 40px 0 14px;
}
.ritz-post-body h3 {
  font-size: 1.2rem; font-weight: 700; letter-spacing: -.015em; line-height: 1.3;
  color: var(--e-global-color-text); margin: 30px 0 10px;
}
.ritz-post-body ul, .ritz-post-body ol { margin: 0 0 20px; padding-left: 22px; }
.ritz-post-body li { margin-bottom: 8px; }
.ritz-post-body li::marker { color: var(--e-global-color-accent); }
.ritz-post-body a { color: var(--e-global-color-accent); border-bottom: 1px solid rgba(181,76,247,.35); }
.ritz-post-body a:hover { color: var(--e-global-color-primary); border-bottom-color: var(--e-global-color-primary); }
.ritz-post-body strong { font-weight: 600; color: var(--e-global-color-text); }
.ritz-post-body blockquote {
  margin: 26px 0; padding: 20px 24px; border-left: 3px solid var(--e-global-color-accent);
  background: var(--e-global-color-cream); border-radius: 0 14px 14px 0;
}
.ritz-post-body blockquote p:last-child { margin-bottom: 0; }
.ritz-post-body img { border-radius: 14px; height: auto; max-width: 100%; }
.ritz-post-body table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: .95rem; }
.ritz-post-body th, .ritz-post-body td { padding: 12px 14px; border-bottom: 1px solid var(--e-global-color-line); text-align: left; }
.ritz-post-body th { font-weight: 700; color: var(--e-global-color-text); }
.ritz-post-body hr { border: 0; border-top: 1px solid var(--e-global-color-line); margin: 34px 0; }

.ritz-post-share { padding-top: 26px; border-top: 1px solid var(--e-global-color-line); }
@media (max-width: 600px) {
  .ritz-post-body { font-size: .98rem; }
  .ritz-post-body h2 { margin-top: 32px; }
}
/* "More guides" only makes sense once a second guide exists */
.ritz-post-more:not(:has(article)) { display: none !important; }

/* ==========================================================================
   Fleetwire embeds — the widgets render client-side into empty divs and ship
   their own lilac theme, so everything visible here is ours.
   ========================================================================== */

/* Availability search (home hero dock).
   Fleetwire ships a lilac component; these rules restate it in the brand's
   glass-panel style. Class names are Fleetwire's own, hence the !important. */
.ritz-fw-search,
.ritz-fw-search .elementor-shortcode,
.ritz-fw-search .fleetwire-search { width: 100%; }
.ritz-fw-search .fleetwire-search * { font-family: "Lexend", sans-serif !important; }

.ritz-fw-search .fleetwire-search-component {
  width: 100% !important;
  background: transparent !important;
  border: 0 !important;
  gap: 10px;
  align-items: stretch;
  flex-wrap: wrap;
}
/* above the reference's 860px stop the button sits inline with the two dates */
@media (min-width: 861px) {
  .ritz-fw-search .fleetwire-search-component { flex-wrap: nowrap !important; }
  .ritz-fw-search .fw-date-filter-button { align-self: stretch; min-height: 100%; }
}
.ritz-fw-search .fw-search-input {
  flex: 1 1 auto;
  background: transparent !important;
  gap: 10px;
  min-width: 0;
}

/* each date field sits in its own glass shell */
.ritz-fw-search .searchFormExpanded-elementContainer {
  flex: 1 1 0;
  min-width: 0;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid var(--e-global-color-white16) !important;
  border-radius: 12px !important;
  padding: 10px 14px !important;
  justify-content: center;
}
.ritz-fw-search .searchFormExpanded-label {
  color: rgba(255,255,255,.62) !important;
  font-size: .66rem !important; font-weight: 700 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  margin-bottom: 4px !important;
}
.ritz-fw-search .fw-field,
.ritz-fw-search .fw-field--date {
  background: transparent !important;
  border: 0 !important;
  color: var(--e-global-color-white) !important;
  font-size: .95rem !important; font-weight: 500 !important;
  padding: 0 !important;
}
.ritz-fw-search .fw-field-icon { color: var(--e-global-color-lavender) !important; }
.ritz-fw-search .fw-field:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 3px; }

/* search button */
.ritz-fw-search .fw-date-filter-button {
  flex: 0 0 auto;
  height: auto !important;
  width: auto !important;
  padding: 0 34px !important;
  background: var(--e-global-color-accent) !important;
  color: var(--e-global-color-white) !important;
  border: 0 !important; border-radius: 999px !important;
  font-size: .95rem !important; font-weight: 600 !important; letter-spacing: .01em !important;
  transition: .35s cubic-bezier(.19,1,.22,1);
}
.ritz-fw-search .fw-date-filter-button:hover {
  background: var(--e-global-color-white) !important;
  color: var(--e-global-color-primary) !important;
  transform: translateY(-2px);
}

/* the reference dock stacks below 860px */
@media (max-width: 860px) {
  .ritz-fw-search .fleetwire-search-component,
  .ritz-fw-search .fw-search-input { flex-direction: column; }
  .ritz-fw-search .fw-date-filter-button { width: 100% !important; padding: 15px 24px !important; }
}

/* Booking button embed (vehicle pages, once wired per listing) */
.fleetwire-listing-button a,
.fleetwire-listing-button button {
  display: inline-flex !important; align-items: center; justify-content: center;
  font-family: "Lexend", sans-serif !important; font-size: .95rem !important; font-weight: 600 !important;
  padding: 15px 30px !important; border-radius: 999px !important;
  background: var(--e-global-color-accent) !important; color: var(--e-global-color-white) !important;
  text-decoration: none !important; border: 0 !important;
  transition: .35s cubic-bezier(.19,1,.22,1);
}
.fleetwire-listing-button a:hover { background: var(--e-global-color-primary) !important; transform: translateY(-2px); }
