/*
Theme Name: Rentacar Venezia V2
Description: Modern presentation layer for the Rentacar Venezia local redesign.
Version: 0.2.0
Text Domain: rentacar-venezia-v2
Requires PHP: 7.4
*/

:root {
  --rc-navy-950: #071b3a;
  --rc-navy-800: #123665;
  --rc-yellow-500: #ffc928;
  --rc-green-600: #168a4a;
  --rc-cream: #f7f1e7;
  --rc-sand: #e9dcc5;
  --rc-gold-600: #bd7d14;
  --rc-surface: #fff;
  --rc-surface-muted: #f3f6f8;
  --rc-page: #f7f8fa;
  --rc-ink: #14213d;
  --rc-muted: #46566c;
  --rc-line: #d7dee8;
  --rc-focus: #b97400;
  --rc-success: #168a4a;
  --rc-warning: #8e5a00;
  --rc-error: #9d1c1c;
  --rc-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "BlinkMacSystemFont", "Segoe UI", sans-serif;
  --rc-font-display: var(--rc-font-sans);
  --rc-container: 1200px;
  --rc-space-1: 4px;
  --rc-space-2: 8px;
  --rc-space-3: 12px;
  --rc-space-4: 16px;
  --rc-space-5: 24px;
  --rc-space-6: 32px;
  --rc-space-7: 48px;
  --rc-radius-sm: 10px;
  --rc-radius: 18px;
  --rc-shadow: 0 20px 46px rgb(7 27 58 / 12%);
  --rc-transition: 160ms ease;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--rc-page);
  color: var(--rc-ink);
  font-family: var(--rc-font-sans);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
  text-rendering: optimizelegibility;
}

img { max-width: 100%; height: auto; }

[hidden] { display: none !important; }

a { color: var(--rc-navy-800); }

a:hover { color: var(--rc-navy-950); }

button,
input,
select,
textarea { font: inherit; }

:focus-visible {
  outline: 3px solid var(--rc-focus);
  outline-offset: 3px;
}

.rc-container {
  width: min(calc(100% - 40px), var(--rc-container));
  margin-inline: auto;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

.skip-link {
  position: fixed;
  z-index: 1200;
  top: 12px;
  left: 12px;
  transform: translateY(-160%);
  padding: 10px 14px;
  border-radius: var(--rc-radius-sm);
  background: var(--rc-yellow-500);
  color: var(--rc-navy-950);
  font-size: .9rem;
  font-weight: 700;
  text-decoration: none;
}

.skip-link:focus { transform: translateY(0); }

/* Shared type and actions */
.eyebrow {
  margin: 0 0 var(--rc-space-2);
  color: var(--rc-navy-800);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  padding: 11px 18px;
  border: 1px solid transparent;
  border-radius: var(--rc-radius-sm);
  background: var(--rc-yellow-500);
  color: var(--rc-navy-950);
  font-size: .925rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background var(--rc-transition), border-color var(--rc-transition), box-shadow var(--rc-transition), transform var(--rc-transition);
}

.button:hover {
  background: #f2b90b;
  color: var(--rc-navy-950);
  box-shadow: 0 5px 12px rgb(7 27 58 / 14%);
  transform: translateY(-1px);
}

.button:active {
  box-shadow: none;
  transform: translateY(0);
}

.button--secondary {
  border-color: var(--rc-line);
  background: var(--rc-surface);
}

.button--secondary:hover { background: #f1f4f7; }

.button--whatsapp {
  background: var(--rc-green-600);
  color: #fff;
}

.button--whatsapp:hover {
  background: #0f713c;
  color: #fff;
}

.text-link {
  color: var(--rc-navy-950);
  font-size: .9rem;
  font-weight: 650;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.text-link:hover,
.text-link:focus-visible { text-decoration: underline; }

/* Header, navigation and language selector */
.site-header {
  position: relative;
  z-index: 100;
  overflow: visible;
  border-bottom: 1px solid var(--rc-line);
  background: var(--rc-surface);
}

.site-header__inner {
  display: flex;
  min-height: 76px;
  align-items: center;
  gap: 24px;
}

.site-branding { display: flex; min-width: 0; align-items: center; }

.custom-logo-link { display: inline-flex; }

.custom-logo {
  display: block;
  width: auto;
  max-width: min(216px, 45vw);
  max-height: 54px;
  object-fit: contain;
}

.site-brand {
  display: inline-flex;
  min-width: 142px;
  flex-direction: column;
  color: var(--rc-navy-950);
  font-size: 1.2rem;
  font-weight: 750;
  letter-spacing: -.045em;
  line-height: .95;
  text-decoration: none;
}

.site-brand__sub {
  margin-top: 6px;
  font-size: .46em;
  font-weight: 700;
  letter-spacing: .3em;
  text-align: center;
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  place-content: center;
  gap: 4px;
  padding: 0;
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius-sm);
  background: var(--rc-surface);
  color: var(--rc-navy-950);
}

.menu-toggle span:not(.screen-reader-text) {
  display: block;
  width: 20px;
  height: 2px;
  background: currentcolor;
}

.primary-navigation { display: block; padding: 16px 0; }

.primary-navigation__list,
.footer-navigation,
.language-switcher__list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.primary-navigation__list li { border-bottom: 1px solid var(--rc-line); }

.primary-navigation__list a {
  display: block;
  padding: 12px 0;
  color: var(--rc-ink);
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
}

.primary-navigation__list a:hover,
.primary-navigation__list a:focus-visible { color: var(--rc-navy-800); }

.js .menu-toggle { display: grid; margin-left: auto; }

.js .primary-navigation { display: none; }

.js .primary-navigation.is-open {
  position: absolute;
  top: calc(100% + 1px);
  right: 0;
  left: 0;
  display: block;
  padding: 20px;
  border-bottom: 1px solid var(--rc-line);
  background: var(--rc-surface);
  box-shadow: var(--rc-shadow);
}

.language-switcher {
  position: relative;
  z-index: 110;
  flex: 0 0 auto;
}

.language-switcher__trigger {
  display: inline-flex;
  min-width: 78px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 9px 10px;
  border: 1px solid #cbd7e2;
  border-radius: var(--rc-radius-sm);
  background: var(--rc-surface);
  color: var(--rc-navy-950);
  font-size: .81rem;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1;
  cursor: pointer;
}

.language-switcher__trigger:hover { border-color: #9db0c2; background: #f7f9fb; }

.language-switcher__trigger[aria-expanded="true"] { border-color: #809ab2; background: #fbfcfe; }

.language-switcher__flag {
  display: block;
  width: 22px;
  height: 15px;
  flex: 0 0 auto;
  border-radius: 2px;
  object-fit: cover;
}

.language-switcher__flag-fallback {
  display: grid;
  width: 22px;
  height: 15px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 2px;
  background: #e7eef5;
  color: #274567;
  font-size: .53rem;
  font-weight: 800;
}

.language-switcher__code { min-width: 18px; }

.language-switcher__chevron,
.language-switcher__check {
  display: block;
  fill: none;
  stroke: currentcolor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.language-switcher__chevron {
  width: 13px;
  height: 13px;
  transition: transform var(--rc-transition);
}

.language-switcher__trigger[aria-expanded="true"] .language-switcher__chevron { transform: rotate(180deg); }

.language-switcher__menu {
  position: absolute;
  z-index: 120;
  top: calc(100% + 8px);
  right: 0;
  width: min(204px, calc(100vw - 24px));
  padding: 6px;
  border: 1px solid #d6e0e9;
  border-radius: 11px;
  background: var(--rc-surface);
  box-shadow: 0 12px 26px rgb(7 27 58 / 13%);
}

.language-switcher__menu[hidden] { display: none; }

.language-switcher__link {
  display: grid;
  min-width: 0;
  min-height: 44px;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  place-items: center start;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 8px;
  color: #294560;
  font-size: .86rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.language-switcher__link:hover,
.language-switcher__link:focus-visible { background: #f0f5f9; color: var(--rc-navy-950); }

.language-switcher__link[aria-current="page"] { background: #e8f0f7; color: var(--rc-navy-950); font-weight: 700; }

.language-switcher__name { min-width: 0; }

.language-switcher__check { width: 16px; height: 16px; justify-self: end; color: #174f7b; }

/* General page rhythm */
.site-main { min-height: 50vh; padding-block: clamp(52px, 7vw, 88px); }

.site-main--home { padding: 0; }

.section { padding-block: clamp(56px, 7vw, 96px); }

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--rc-space-4);
  margin-bottom: 22px;
}

.section h2,
.local-panel h2,
.page-intro h1,
.vehicle-page__heading h1 {
  margin: 0;
  color: var(--rc-navy-950);
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 750;
  letter-spacing: -.035em;
  line-height: 1.05;
  text-wrap: balance;
}

.page-intro { max-width: 720px; margin-bottom: clamp(28px, 4vw, 44px); }

.page-intro h1 { font-size: clamp(2.4rem, 5vw, 4.3rem); letter-spacing: -.045em; }

.page-intro p:last-child { margin-bottom: 0; color: var(--rc-muted); font-size: 1.05rem; }

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -8px 0 var(--rc-space-5);
  color: var(--rc-muted);
  font-size: .875rem;
}

.breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.breadcrumbs__item { display: inline-flex; align-items: center; gap: 8px; }

.breadcrumbs a { color: inherit; }

/* Homepage hero and trip filter */
.hero {
  position: relative;
  min-height: clamp(510px, 40vw, 640px);
  overflow: hidden;
  isolation: isolate;
  padding-block: clamp(68px, 7vw, 104px);
  background: var(--rc-navy-950);
  color: #fff;
}

.hero__media,
.hero__overlay { position: absolute; inset: 0; pointer-events: none; }

.hero__media { z-index: 0; }

.hero__media picture,
.hero__media img { display: block; width: 100%; height: 100%; }

.hero__media img { max-width: none; object-fit: cover; object-position: 72% center; }

.hero__overlay {
  z-index: 1;
  background: linear-gradient(90deg, var(--rc-navy-950) 0%, rgb(7 27 58 / 97%) 27%, rgb(7 27 58 / 74%) 46%, rgb(7 27 58 / 28%) 67%, transparent 86%);
}

.hero__inner { position: relative; z-index: 2; display: flex; min-height: 100%; align-items: center; justify-content:space-between; gap:var(--rc-space-6); }

.hero__copy { max-width: min(46%, 555px); }

.hero .eyebrow { color: var(--rc-yellow-500); }

.hero h1 {
  max-width: 11ch;
  margin: 0;
  color: #fff;
  font-size: clamp(2.75rem, 5vw, 4.75rem);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1.01;
  text-wrap: balance;
}

.hero__tagline {
  max-width: 30ch;
  margin: var(--rc-space-4) 0 0;
  color: var(--rc-yellow-500);
  font-size: clamp(1.15rem, 2.1vw, 1.55rem);
  font-weight: 700;
  line-height: 1.35;
}

.hero__copy > p:last-of-type { max-width:48ch; margin-bottom:0; color:#f2f6fb; }

.hero__actions { display:flex; flex-wrap:wrap; gap:var(--rc-space-3); margin-top:var(--rc-space-5); }

.trip-filter-section {
  position: relative;
  z-index: 4;
  margin-top: -26px;
  padding-bottom: 28px;
  scroll-margin-top: 24px;
}

.trip-form {
  display: grid;
  gap: var(--rc-space-4);
  align-items: end;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid #dbe4ed;
  border-radius: 14px;
  background: var(--rc-surface);
  box-shadow: 0 14px 30px rgb(7 27 58 / 12%);
}

.trip-form fieldset { min-width: 0; padding: 0; border: 0; margin: 0; }

.trip-form legend { margin-bottom: var(--rc-space-3); color: var(--rc-navy-950); font-size: 1.05rem; font-weight: 750; letter-spacing: -.015em; }

.trip-form__grid { display: grid; gap: var(--rc-space-3); }

.trip-form__quick { display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--rc-space-3); }

.trip-form__quick button { min-height:36px; padding:6px 10px; border:1px solid var(--rc-line); border-radius:999px; background:var(--rc-surface-muted); color:var(--rc-navy-950); font-size:.82rem; font-weight:650; cursor:pointer; }

.trip-form__quick button[aria-pressed="true"] { border-color:var(--rc-navy-800); background:var(--rc-navy-950); color:#fff; }

.trip-form label,
.reservation-form label {
  display: grid;
  min-width: 0;
  gap: 5px;
  color: var(--rc-ink);
  font-size: .84rem;
  font-weight: 650;
}

.trip-form input,
.trip-form select,
.reservation-form input,
.reservation-form select,
.reservation-form textarea {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 9px 10px;
  border: 1px solid var(--rc-line);
  border-radius: var(--rc-radius-sm);
  background: var(--rc-surface);
  color: var(--rc-ink);
  font-size: 1rem;
}

.trip-form input:focus,
.trip-form select:focus,
.reservation-form input:focus,
.reservation-form select:focus,
.reservation-form textarea:focus { border-color: var(--rc-navy-800); }

.trip-form .button { width: 100%; }

.trip-filter-section__help { max-width: 66ch; padding: 10px 4px 0; margin: 0; color: var(--rc-muted); font-size: .9rem; }

.trust-strip { border-top:1px solid var(--rc-line); border-bottom:1px solid var(--rc-line); background:#fff; }

.trust-strip__list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; margin:0; list-style:none; }

.trust-strip__item {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  min-height:72px;
  padding:20px 24px;
  margin:0;
  color:var(--rc-navy-950);
  font-size:.95rem;
  font-weight:650;
  line-height:1.35;
  text-align:left;
}

.trust-strip__item + .trust-strip__item { border-left:1px solid var(--rc-line); }

.trust-strip__icon { display:grid; flex:0 0 20px; width:20px; height:20px; place-items:center; color:var(--rc-navy-800); }

.trust-strip__icon svg { width:20px; height:20px; fill:none; stroke:currentcolor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.65; }

.trust-strip__text { max-width:34ch; }

/* Arrival locations */
.arrivals-section { background:#fff; }

.arrivals-section__heading,
.benefits-section__heading { max-width:650px; margin-bottom:clamp(28px,4vw,42px); }

.arrivals-section__heading h2,
.benefits-section__heading h2 { margin:0; }

.arrivals-section__heading > p:last-child { max-width:58ch; margin:var(--rc-space-4) 0 0; color:var(--rc-muted); }

.arrivals-grid { display:grid; gap:20px; }

.arrival-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); color:var(--rc-ink); text-decoration:none; transition:border-color var(--rc-transition), transform var(--rc-transition), box-shadow var(--rc-transition); }

.arrival-card:hover,
.arrival-card:focus-visible { border-color:#afc1d4; box-shadow:0 12px 25px rgb(7 27 58 / 10%); color:var(--rc-ink); transform:translateY(-2px); }

.arrival-card__media { display:grid; height:150px; place-items:center; overflow:hidden; background:linear-gradient(135deg,#edf3f8,#dce9f3); color:var(--rc-navy-800); }

.arrival-card__media img { width:100%; height:100%; object-fit:cover; }

.arrival-card__media svg { width:100%; height:100%; }

.arrival-card__body { display:grid; flex:1; align-content:start; gap:9px; padding:20px; }

.arrival-card__eyebrow { color:var(--rc-muted); font-size:.72rem; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }

.arrival-card__title { color:var(--rc-navy-950); font-size:1.15rem; font-weight:750; letter-spacing:-.02em; line-height:1.2; }

.arrival-card__description { color:var(--rc-muted); font-size:.9rem; line-height:1.55; }

.arrival-card__link { display:flex; align-items:center; gap:7px; margin-top:auto; padding-top:8px; color:var(--rc-navy-950); font-size:.9rem; font-weight:750; }

.fleet-section { background: var(--rc-surface-muted); }

.notice {
  display: grid;
  max-width: 760px;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding: 14px 16px;
  margin-bottom: 22px;
  border-radius: 11px;
  background: #e8f2fb;
  color: var(--rc-navy-950);
}

.notice__icon { width:22px; height:22px; margin-top:1px; fill:none; stroke:var(--rc-navy-800); stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }

.notice strong,
.notice span { display: block; }

.notice strong { margin-bottom: 1px; font-weight: 750; }

.notice span { color: #405a75; font-size: .875rem; }

/* Fleet cards */
.vehicle-grid { display:grid; gap:22px; }

.vehicle-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #dbe3ec;
  border-radius: var(--rc-radius);
  background: var(--rc-surface);
}

.vehicle-card:hover { border-color: #b8c9da; }

.vehicle-card__image {
  display: grid;
  height: 224px;
  place-items: center;
  padding: 18px 18px 12px;
  background: #f0f3f6;
}

.vehicle-card__image img {
  width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 13px 10px rgb(7 27 58 / 16%));
  transform: translate(var(--vehicle-image-x, 0), var(--vehicle-image-y, 0)) scale(var(--vehicle-image-scale, 1));
  transition: transform var(--rc-transition);
}

.vehicle-card__image--raised { --vehicle-image-y: -5px; }

.vehicle-card__image--compact { --vehicle-image-scale: 1.1; }

.vehicle-card__image-placeholder { padding:var(--rc-space-4); color:var(--rc-muted); font-size:.9rem; text-align:center; }

.vehicle-card__body { display:flex; min-height:0; flex:1; flex-direction:column; padding:20px; }

.vehicle-card h3 { margin:0; color:var(--rc-navy-950); font-size:1.2rem; font-weight:700; letter-spacing:-.02em; line-height:1.2; }

.vehicle-card h3 a { color: inherit; text-decoration: none; }

.vehicle-card__specs { min-height: 2.7em; margin: 9px 0 16px; color: #51627a; font-size: .875rem; }

.vehicle-card__starting-price { display:grid; gap:2px; margin:0 0 15px; }

.vehicle-card__starting-price span,
.vehicle-card__rate-label { color:var(--rc-muted); font-size:.78rem; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }

.vehicle-card__starting-price strong { color:var(--rc-navy-950); font-size:1.4rem; font-variant-numeric:tabular-nums; letter-spacing:-.025em; line-height:1.1; }

.vehicle-card__rate-label { margin:0 0 8px; color:#51627a; }

.vehicle-card__prices { display:grid; gap:0; padding:0; margin:0 0 20px; }

.vehicle-card__prices > div { display:flex; justify-content:space-between; gap:var(--rc-space-3); padding-block:7px; border-bottom:1px solid #e7edf3; }

.vehicle-card__prices dt { color:var(--rc-muted); font-size:.875rem; }

.vehicle-card__prices dd { margin:0; color:var(--rc-navy-950); font-size:.92rem; font-weight:700; font-variant-numeric:tabular-nums; text-align:right; }

.vehicle-card__price-pending { margin:0 0 20px; color:var(--rc-warning); font-weight:700; }

.vehicle-card__actions { display:grid; grid-template-columns:1fr; gap:12px; margin-top:auto; }

.vehicle-card__actions .button { width:100%; }

.vehicle-card__actions .text-link { justify-self:center; padding:3px; }

/* Process, local and assistance sections */
.process-section { position:relative; overflow:hidden; background:var(--rc-navy-950); color:#fff; }

.process-section::before { position:absolute; top:-38%; right:-18%; width:min(70vw,860px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, rgb(35 84 139 / 46%) 0%, rgb(7 27 58 / 0%) 68%); content:""; pointer-events:none; }

.process-section__layout { position:relative; display:grid; gap:clamp(32px,5vw,72px); }

.process-section .eyebrow { color:var(--rc-yellow-500); }

.process-section h2 { color:#fff; }

.process-section__header > p:not(.eyebrow) { max-width:34ch; margin:var(--rc-space-4) 0 0; color:#cbd8e7; }

.process-section__link { display:inline-flex; min-height:44px; align-items:center; margin-top:var(--rc-space-4); color:#fff; }

.process-section__link:hover,
.process-section__link:focus-visible { color:var(--rc-yellow-500); }

.steps { display:grid; padding:0; margin:0; list-style:none; }

.steps li { display:grid; grid-template-columns:54px minmax(0,1fr); gap:var(--rc-space-4); padding:24px 0; border-top:1px solid rgb(255 255 255 / 20%); }

.steps li:last-child { border-bottom:1px solid rgb(255 255 255 / 20%); }

.steps__number { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:var(--rc-yellow-500); color:var(--rc-navy-950); font-size:.76rem; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:.04em; }

.steps li { grid-template-columns:54px 42px minmax(0,1fr); }

.steps__icon { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgb(255 255 255 / 22%); border-radius:50%; color:#fff; }

.steps__icon svg { width:19px; height:19px; fill:none; stroke:currentcolor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }

.steps__content h3 { margin:0; color:#fff; font-size:clamp(1.08rem,2vw,1.24rem); font-weight:700; letter-spacing:-.02em; line-height:1.2; }

.steps__content p { max-width:56ch; margin:6px 0 0; color:#cbd8e7; font-size:.94rem; }

.benefits-section { background:var(--rc-surface-muted); }

.benefits-grid { display:grid; gap:16px; padding:0; margin:0; list-style:none; }

.benefits-grid li { min-width:0; padding:22px; border:1px solid #dce5ee; border-radius:var(--rc-radius-sm); background:#fff; }

.benefits-grid > li > svg { width:23px; height:23px; margin-bottom:18px; fill:none; stroke:var(--rc-navy-800); stroke-linecap:round; stroke-linejoin:round; stroke-width:1.75; }

.benefits-grid h3 { margin:0; color:var(--rc-navy-950); font-size:1.05rem; font-weight:750; letter-spacing:-.02em; }

.benefits-grid p { margin:8px 0 0; color:var(--rc-muted); font-size:.9rem; line-height:1.55; }

.final-cta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:var(--rc-space-4);
  padding:clamp(28px,5vw,52px);
  border-radius:var(--rc-radius);
  background:var(--rc-yellow-500);
  color:var(--rc-navy-950);
}

.final-cta .eyebrow,
.final-cta h2 { color:var(--rc-navy-950); }

.final-cta h2 { margin:0; font-size:clamp(1.9rem,4vw,2.8rem); font-weight:750; letter-spacing:-.04em; line-height:1.05; }

.final-cta p:not(.eyebrow) { max-width:55ch; margin:var(--rc-space-3) 0 0; color:#263f5e; }

.final-cta small { display:block; max-width:58ch; margin-top:10px; color:#263f5e; font-size:.82rem; line-height:1.45; }

.final-cta__actions { display:flex; flex-wrap:wrap; gap:var(--rc-space-3); }

.final-cta__actions .button--whatsapp { background:#187b49; color:#fff; }

.js .reveal-on-scroll { opacity:0; transform:translateY(12px); transition:opacity .45s ease, transform .45s ease; }

.js .reveal-on-scroll.is-visible { opacity:1; transform:none; }

/* Catalogue empty states */
.empty-state__actions { display:flex; flex-wrap:wrap; gap:var(--rc-space-3); }

.fleet-result-count { margin:var(--rc-space-3) 0 0; color:var(--rc-muted); font-size:.92rem; }

.fleet-airport-links { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 var(--rc-space-4); }

.fleet-airport-links a { min-height:36px; display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid var(--rc-line); border-radius:999px; color:var(--rc-navy-950); font-size:.85rem; font-weight:650; text-decoration:none; }

.fleet-airport-links a:hover,
.fleet-airport-links a:focus-visible { border-color:var(--rc-navy-800); text-decoration:underline; }

.fleet-final-cta { max-width:760px; padding:var(--rc-space-6) 0 0; margin-top:var(--rc-space-6); border-top:1px solid var(--rc-line); }

.fleet-final-cta h2 { margin:0; font-size:clamp(1.45rem,3vw,2rem); }

.fleet-final-cta p { color:var(--rc-muted); }

.reservation-estimate { padding:var(--rc-space-4); margin:var(--rc-space-5) 0; border:1px solid #dce5ee; border-radius:var(--rc-radius-sm); background:var(--rc-surface-muted); }

.reservation-estimate h3 { margin:0 0 var(--rc-space-3); color:var(--rc-navy-950); font-size:1rem; }

.reservation-estimate p { margin:6px 0; color:#425c76; font-size:.88rem; line-height:1.45; }

.empty-state { padding:clamp(28px,5vw,52px); border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); text-align:center; }

.empty-state h1,
.empty-state h2 { margin-top:0; color:var(--rc-navy-950); font-size:clamp(1.8rem,4vw,2.7rem); letter-spacing:-.035em; line-height:1.1; }

.empty-state p { max-width:55ch; margin-inline:auto; color:var(--rc-muted); }

.empty-state__actions { justify-content:center; margin-top:var(--rc-space-5); }

.pagination,
.nav-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--rc-space-6); }

a.page-numbers,
span.page-numbers { display:grid; min-width:40px; min-height:40px; place-items:center; padding:6px; border:1px solid var(--rc-line); border-radius:8px; background:var(--rc-surface); color:var(--rc-navy-950); text-decoration:none; }

span.page-numbers.current { border-color:var(--rc-navy-950); background:var(--rc-navy-950); color:#fff; }

/* Pagination is a compact navigation control, with the current page clearly
   anchored while filters and WordPress-generated URLs remain untouched. */
.pagination {
  justify-content:center;
  padding-top:clamp(24px, 4vw, 40px);
  margin-top:clamp(28px, 5vw, 52px);
  border-top:1px solid var(--rc-line);
}

.pagination .nav-links,
.fleet-pagination > .page-numbers {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:7px;
  padding:0;
  margin:0;
  list-style:none;
}

.fleet-pagination > .page-numbers li { display:contents; }

.pagination a.page-numbers,
.pagination span.page-numbers,
.post-pagination > a,
.post-pagination > span {
  min-width:44px;
  min-height:44px;
  padding:8px 11px;
  border-color:rgb(7 27 58 / 16%);
  border-radius:4px 12px;
  box-shadow:0 2px 0 rgb(7 27 58 / 5%);
  font-size:.88rem;
  font-weight:750;
  transition:transform var(--rc-transition), border-color var(--rc-transition), background var(--rc-transition), color var(--rc-transition);
}

.pagination a.page-numbers:hover,
.pagination a.page-numbers:focus-visible,
.post-pagination > a:hover,
.post-pagination > a:focus-visible {
  border-color:var(--rc-navy-800);
  background:#edf4fa;
  color:var(--rc-navy-950);
  box-shadow:0 5px 12px rgb(7 27 58 / 12%);
  transform:translateY(-1px);
}

.pagination span.page-numbers.current,
.post-pagination > span { border-color:var(--rc-navy-950); background:var(--rc-navy-950); color:#fff; }

.pagination .page-numbers.dots {
  min-width:24px;
  padding-inline:2px;
  border-color:transparent;
  background:transparent;
  box-shadow:none;
  color:var(--rc-muted);
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next { min-width:92px; }

@media (max-width:479px) {
  .pagination { padding-top:22px; margin-top:32px; }

  .pagination .nav-links,
  .fleet-pagination > .page-numbers { gap:6px; }

  .pagination a.page-numbers,
  .pagination span.page-numbers,
  .post-pagination > a,
  .post-pagination > span { min-width:40px; min-height:40px; padding:7px 9px; }

  .pagination .page-numbers.prev,
  .pagination .page-numbers.next { min-width:76px; }
}

/* Vehicle detail */
.vehicle-page__grid { display:grid; gap:clamp(32px,5vw,64px); }

.vehicle-page__heading { margin-bottom:var(--rc-space-5); }

.specification-list { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:var(--rc-space-4) 0 0; list-style:none; }

.specification-list li { padding:7px 10px; border:1px solid var(--rc-line); border-radius:999px; background:var(--rc-surface); color:var(--rc-navy-800); font-size:.84rem; font-weight:650; }

.vehicle-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }

.vehicle-gallery__image { display:grid; min-height:148px; place-items:center; overflow:hidden; margin:0; border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); }

.vehicle-gallery__image--primary { min-height:300px; grid-column:span 2; }

.vehicle-gallery img { width:100%; height:100%; object-fit:contain; }

.vehicle-copy { max-width:66ch; margin-top:var(--rc-space-6); padding-top:var(--rc-space-5); border-top:1px solid var(--rc-line); }

.vehicle-copy h2,
.request-card h2 { margin:0; color:var(--rc-navy-950); font-size:clamp(1.5rem,3vw,2rem); font-weight:750; letter-spacing:-.03em; line-height:1.1; }

.vehicle-copy .vehicle-page__prices { max-width:560px; margin-top:var(--rc-space-4); }

.request-card { align-self:start; padding:clamp(22px,3vw,32px); border:1px solid #dbe3ec; border-radius:var(--rc-radius); background:var(--rc-surface); box-shadow:0 10px 24px rgb(7 27 58 / 6%); }

.request-card > p:not(.eyebrow) { color:var(--rc-muted); }

.request-card .notice { grid-template-columns:1fr; padding:12px 0; margin-block:var(--rc-space-4); background:transparent; }

.request-card .notice__icon { display:none; }

.request-card .button { width:100%; }

.related-vehicles { padding-bottom:0; }

/* Editorial pages, posts, archive and FAQ */
.content-page { max-width:920px; }

.content-page__featured-image { margin:0 0 var(--rc-space-5); overflow:hidden; border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); }

.content-page__featured-image img { display:block; width:100%; max-height:520px; object-fit:cover; }

.content-page__body { padding:clamp(24px,4vw,48px); border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); }

.content-page__body > :first-child { margin-top:0; }

.content-page__body > :last-child { margin-bottom:0; }

.content-page__body h2,
.content-page__body h3 { color:var(--rc-navy-950); font-weight:750; letter-spacing:-.025em; line-height:1.15; }

.content-page__body h2 { margin-top:2em; font-size:clamp(1.55rem,3vw,2.1rem); }

.content-page__body h3 { margin-top:1.7em; font-size:1.2rem; }

.content-page__body p,
.content-page__body li { max-width:70ch; }

.content-page__body img { height:auto; }

.content-page__body table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; }

.content-page__body th,
.content-page__body td { padding:8px; border:1px solid var(--rc-line); text-align:left; }

.content-page__body blockquote { margin-inline:0; padding-left:var(--rc-space-4); border-left:3px solid var(--rc-yellow-500); color:var(--rc-muted); }

/* Contact page */
.contact-page { max-width:none; padding-bottom:0; }

.contact-page__hero { overflow:hidden; padding:clamp(34px,6vw,74px) 0; margin-bottom:clamp(30px,5vw,60px); background:var(--rc-navy-950); color:#fff; }

.contact-page__hero-inner { display:grid; gap:var(--rc-space-5); }

.contact-page__hero .breadcrumbs { margin:0 0 var(--rc-space-5); }

.contact-page__hero .breadcrumbs a,
.contact-page__hero .breadcrumbs span { color:#dce7f2; }

.contact-page__hero .breadcrumbs li + li::before { color:#9caec4; }

.contact-page__eyebrow { margin:0 0 var(--rc-space-3); color:var(--rc-yellow-500); font-size:.78rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }

.contact-page__hero h1 { max-width:12ch; margin:0; color:#fff; font-size:clamp(2.45rem,5.5vw,4.6rem); font-weight:800; letter-spacing:-.05em; line-height:1; }

.contact-page__intro { max-width:56ch; margin:var(--rc-space-4) 0 0; color:#dce7f2; font-size:clamp(1rem,1.5vw,1.12rem); line-height:1.65; }

.contact-page__actions { display:flex; flex-wrap:wrap; gap:var(--rc-space-3); margin-top:var(--rc-space-5); }

.contact-page__actions .button--secondary { border-color:rgb(255 255 255 / 36%); background:transparent; color:#fff; }

.contact-page__actions .button--secondary:hover,
.contact-page__actions .button--secondary:focus-visible { border-color:#fff; background:rgb(255 255 255 / 10%); }

.contact-page__layout { display:grid; grid-template-areas:"guide" "content"; gap:var(--rc-space-5); padding-bottom:var(--rc-space-7); }

.contact-page__content { grid-area:content; min-width:0; }

.contact-page__guide { grid-area:guide; align-self:start; padding:clamp(22px,3vw,30px); border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface-muted); }

.contact-page__guide h2 { margin:0; color:var(--rc-navy-950); font-size:clamp(1.4rem,2.5vw,1.8rem); font-weight:750; letter-spacing:-.03em; line-height:1.1; }

.contact-page__guide ol { display:grid; gap:var(--rc-space-4); padding:0; margin:var(--rc-space-5) 0 0; list-style:none; counter-reset:contact-steps; }

.contact-page__guide li { position:relative; min-height:42px; padding-left:56px; color:var(--rc-muted); line-height:1.55; counter-increment:contact-steps; }

.contact-page__guide li::before { position:absolute; top:0; left:0; display:grid; width:36px; height:36px; place-items:center; border-radius:50%; background:var(--rc-yellow-500); color:var(--rc-navy-950); content:"0" counter(contact-steps); font-size:.78rem; font-weight:800; }

.contact-page__guide strong { display:block; margin-bottom:2px; color:var(--rc-navy-950); font-size:.96rem; }

.contact-form { margin-top:var(--rc-space-6); padding-top:var(--rc-space-6); border-top:1px solid var(--rc-line); }

.contact-form h2 { margin-top:0; }

.contact-form form { display:grid; gap:var(--rc-space-4); margin-top:var(--rc-space-5); }

.contact-form label { display:grid; gap:7px; color:var(--rc-navy-950); font-weight:700; }

.contact-form input,
.contact-form select,
.contact-form textarea { width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--rc-line); border-radius:var(--rc-radius-sm); background:var(--rc-surface); color:var(--rc-ink); font:inherit; font-weight:400; }

.contact-form textarea { min-height:120px; resize:vertical; }

.contact-form .check-label { grid-template-columns:auto minmax(0,1fr); align-items:start; }

.contact-form .check-label input { width:18px; min-height:18px; margin-top:2px; }

.contact-form__two { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--rc-space-4); }

.contact-form__status { padding:12px 14px; border-radius:var(--rc-radius-sm); }

.contact-form__status--success { background:#e9f7ef; color:#0d6335; }

.contact-form__status--error { background:#fff0ee; color:#9e271f; }

.homepage-content { background:var(--rc-surface-muted); }

.homepage-content__inner,
.fleet-page-content {
  max-width:760px;
}

.homepage-content__inner > :first-child,
.fleet-page-content > :first-child { margin-top:0; }

.homepage-content__inner > :last-child,
.fleet-page-content > :last-child { margin-bottom:0; }

.homepage-content__inner h2,
.homepage-content__inner h3,
.fleet-page-content h2,
.fleet-page-content h3 {
  color:var(--rc-navy-950);
  font-weight:750;
  letter-spacing:-.03em;
  line-height:1.12;
}

.homepage-content__inner h2,
.fleet-page-content h2 { font-size:clamp(1.7rem,3vw,2.35rem); }

.homepage-content__inner h3,
.fleet-page-content h3 { font-size:clamp(1.25rem,2vw,1.5rem); }

.homepage-content__inner p,
.homepage-content__inner li,
.fleet-page-content p,
.fleet-page-content li { max-width:70ch; }

.homepage-content__inner img,
.fleet-page-content img { height:auto; max-width:100%; }

.homepage-content__inner table,
.fleet-page-content table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; }

.homepage-content__inner th,
.homepage-content__inner td,
.fleet-page-content th,
.fleet-page-content td { padding:8px; border:1px solid var(--rc-line); text-align:left; }

.homepage-content__inner .wp-block-button__link,
.fleet-page-content .wp-block-button__link { background:var(--rc-yellow-500); border-radius:8px; color:var(--rc-navy-950); font-weight:700; }

.fleet-page-content--before { margin:0 0 var(--rc-space-5); }

.fleet-page-content--after { margin-top:var(--rc-space-7); }

.post-pagination { display:flex; gap:8px; margin-top:var(--rc-space-5); }

.faq-list { display:grid; gap:10px; margin-top:var(--rc-space-5); }

.faq-list details { border:1px solid var(--rc-line); border-radius:var(--rc-radius-sm); background:var(--rc-surface); }

.faq-list summary { min-height:52px; padding:var(--rc-space-4); color:var(--rc-navy-950); font-weight:700; cursor:pointer; }

.faq-list details > div { padding:0 var(--rc-space-4) var(--rc-space-4); color:var(--rc-muted); }

.archive-page__list { display:grid; gap:var(--rc-space-4); }

.archive-entry { display:grid; gap:var(--rc-space-4); padding:var(--rc-space-4); border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); }

.archive-entry h2 { margin:0 0 var(--rc-space-2); color:var(--rc-navy-950); font-size:clamp(1.3rem,2vw,1.7rem); letter-spacing:-.025em; line-height:1.2; }

.archive-entry h2 a { color:inherit; text-decoration:none; }

.archive-entry__excerpt { color:var(--rc-muted); }

.archive-entry__image { display:block; overflow:hidden; border-radius:var(--rc-radius-sm); background:var(--rc-surface-muted); }

.archive-entry__image img { display:block; width:100%; min-height:160px; object-fit:cover; }

/* Reservation dialog */
.reservation-open { overflow:hidden; }

.reservation-open #ht-ctc-chat,
#ht-ctc-chat { z-index:90 !important; }

.reservation-open #ht-ctc-chat { display:none !important; }
.reservation-open .cookie-consent { visibility:hidden; pointer-events:none; }

.reservation-modal { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:16px; }

.reservation-modal[hidden] { display:none; }

.reservation-modal__backdrop { position:absolute; inset:0; background:rgb(7 27 58 / 72%); }

.reservation-modal__panel { --reservation-panel-padding:clamp(22px,4vw,36px); position:relative; width:min(100%, 980px); max-height:calc(100vh - 32px); overflow:auto; padding:var(--reservation-panel-padding); border:1px solid #dbe3ec; border-radius:18px; background:var(--rc-surface); box-shadow:var(--rc-shadow); }

.reservation-modal__header { position:sticky; z-index:2; top:calc(-1 * var(--reservation-panel-padding)); display:flex; align-items:center; justify-content:space-between; gap:var(--rc-space-4); min-height:68px; padding:10px 0; margin:calc(-1 * var(--reservation-panel-padding)) 0 var(--rc-space-5); border-bottom:1px solid var(--rc-line); background:var(--rc-surface); }

.reservation-modal .reservation-modal__header h2 { min-width:0; margin:0; color:var(--rc-navy-950); font-size:clamp(1.55rem,2.4vw,2.2rem); font-weight:750; letter-spacing:-.04em; line-height:1.05; }

.reservation-modal__close { display:grid; flex:0 0 44px; width:44px; height:44px; place-items:center; padding:0; border:1px solid var(--rc-line); border-radius:10px; background:#fff; color:var(--rc-navy-950); font-size:0; line-height:1; transition:background-color .15s ease, border-color .15s ease, transform .15s ease; }

.reservation-modal__close::before { content:"×"; display:block; font-size:1.7rem; line-height:1; transform:translateY(-1px); }

.reservation-modal__close:hover { border-color:var(--rc-navy-800); background:#edf4fa; transform:translateY(-1px); }

.reservation-modal h2 { margin:0 0 var(--rc-space-5); color:var(--rc-navy-950); font-size:clamp(1.8rem,3vw,2.4rem); letter-spacing:-.035em; line-height:1.1; }

.reservation-modal__grid { display:grid; gap:clamp(20px,3vw,30px); }

.reservation-summary { padding:var(--rc-space-4); border-radius:12px; background:#edf4fa; }

.reservation-summary__image { display:grid; min-height:150px; place-items:center; margin-bottom:var(--rc-space-3); background:var(--rc-surface); }

.reservation-summary__image img { width:100%; height:150px; object-fit:contain; }

.reservation-summary h3 { margin:0; color:var(--rc-navy-950); font-size:1.15rem; }

.reservation-summary p { color:var(--rc-muted); font-size:.875rem; }

.reservation-form fieldset { padding:0; border:0; margin:0 0 var(--rc-space-4); }

.reservation-form legend { margin-bottom:var(--rc-space-2); color:var(--rc-navy-950); font-size:1rem; font-weight:750; letter-spacing:-.015em; }

.reservation-form textarea { min-height:94px; resize:vertical; }

.reservation-form__two { display:grid; gap:0 10px; }

.reservation-form__intro { padding:10px 12px; margin:0 0 var(--rc-space-4); border-left:3px solid var(--rc-yellow-500); background:#fff9e8; color:var(--rc-navy-800); font-size:.88rem; font-weight:550; line-height:1.45; }

.reservation-form__section { padding-bottom:var(--rc-space-4) !important; border-bottom:1px solid var(--rc-line) !important; }

.reservation-form .check-label { display:flex; align-items:flex-start; gap:8px; font-weight:500; }

.reservation-form .check-label input { width:18px; min-width:18px; height:18px; min-height:18px; margin-top:2px; accent-color:var(--rc-navy-800); }

.reservation-form__different-return { align-self:end; min-height:44px; }

.reservation-flight { padding:var(--rc-space-3) !important; border:1px solid #dce5ee !important; border-radius:var(--rc-radius-sm); background:var(--rc-surface-muted); }

.reservation-flight p { margin:0 0 var(--rc-space-3); color:var(--rc-muted); font-size:.88rem; line-height:1.5; }

.reservation-form__options { margin:0 0 var(--rc-space-4); border:1px solid var(--rc-line); border-radius:var(--rc-radius-sm); background:var(--rc-surface-muted); }

.reservation-form__options summary { display:flex; min-height:48px; align-items:center; padding:10px 12px; color:var(--rc-navy-950); font-size:.93rem; font-weight:700; cursor:pointer; }

.reservation-form__options summary::marker { color:var(--rc-navy-800); }

.reservation-form__options[open] summary { border-bottom:1px solid var(--rc-line); }

.reservation-form__options-body { padding:var(--rc-space-4); }

.reservation-form__options-body .reservation-insurance,
.reservation-form__options-body .reservation-extras { margin-bottom:var(--rc-space-4); }


.reservation-form__consents { display:grid; gap:var(--rc-space-3); margin-top:var(--rc-space-5) !important; }

.reservation-location-fee { margin:-2px 0 var(--rc-space-5); color:var(--rc-navy-800); font-size:.875rem; font-weight:650; line-height:1.5; }

.reservation-extras { display:grid; gap:8px; padding:0; }

.reservation-extras__item { min-height:44px; padding:8px 0; border-bottom:1px solid var(--rc-line); }

.reservation-extras__item:last-child { border-bottom:0; }

.reservation-extras__item strong { display:block; }

.reservation-form .button { width:100%; }

.reservation-form__error { min-height:0; margin:0 0 var(--rc-space-3); color:var(--rc-error); font-weight:700; }

.honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }

.reservation-success { max-width:570px; padding:var(--rc-space-4) 0; text-align:center; }

.reservation-success > span { display:inline-grid; width:52px; height:52px; place-items:center; border-radius:50%; background:var(--rc-success); color:#fff; font-size:1.75rem; font-weight:800; }

.reservation-success h2 { margin:var(--rc-space-4) 0 var(--rc-space-2); }

.reservation-modal--inline { position:static; display:block; padding:var(--rc-space-6) 20px 0; }

.reservation-modal--inline .reservation-modal__backdrop,
.reservation-modal--inline .reservation-modal__close { display:none; }

.reservation-modal--inline .reservation-modal__panel { width:min(100%,980px); max-height:none; margin-inline:auto; box-shadow:none; }

/* Footer */
.site-footer { margin-top:var(--rc-space-7); padding-top:clamp(44px,6vw,72px); background:var(--rc-navy-950); color:#e5edf7; }

.site-footer__grid { display:grid; gap:var(--rc-space-6); padding-bottom:var(--rc-space-6); }

.site-footer .site-brand { color:#fff; }

.site-footer p { max-width:38ch; margin:var(--rc-space-3) 0 0; color:#cdd8e7; font-size:.9rem; }

.footer-navigation { display:grid; gap:10px; }

.footer-navigation a { color:#e5edf7; font-size:.9rem; font-weight:600; text-decoration:none; }

.footer-navigation a:hover,
.footer-navigation a:focus-visible { color:var(--rc-yellow-500); text-decoration:underline; }

.site-footer__bottom { padding-block:var(--rc-space-4); border-top:1px solid rgb(255 255 255 / 17%); color:#b9c5d4; }

@media (min-width:640px) {
  .trip-form__grid,
  .reservation-form__two { grid-template-columns:repeat(2,minmax(0,1fr)); }

  .vehicle-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }

  .arrivals-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }

  .benefits-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }

  .archive-entry { grid-template-columns:minmax(180px,.35fr) 1fr; }

  .site-footer__grid,
  .local-panel { grid-template-columns:1.2fr 1fr; }
}

@media (min-width:768px) {
  .trip-form { grid-template-columns:minmax(0,1fr) auto; }

  .trip-form__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }

  .trip-form .button { width:auto; min-width:154px; }
}

@media (min-width:960px) {
  .js .menu-toggle { display:none; }

  .js .primary-navigation,
  .primary-navigation { display:flex; align-items:center; padding:0; margin-left:auto; }

  .js .primary-navigation.is-open { position:static; padding:0; border:0; background:transparent; box-shadow:none; }

  .primary-navigation__list { display:flex; align-items:center; gap:24px; }

  .primary-navigation__list li { border:0; }

  .primary-navigation__list a { padding:8px 0; font-size:.875rem; white-space:nowrap; }

  .site-header__actions { margin-left:0; }

  .site-header__actions .button--whatsapp { display:inline-flex; min-height:40px; padding-inline:13px; font-size:.8rem; }

  .language-switcher__trigger { min-height:40px; padding-inline:11px; font-size:.82rem; }

  .vehicle-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }

  .benefits-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }

  .process-section__layout { grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr); align-items:start; }

  .vehicle-page__grid { grid-template-columns:minmax(0,1fr) minmax(330px,400px); }

  .request-card { position:sticky; top:24px; }

  .vehicle-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }

  .vehicle-gallery__image--primary { min-height:480px; grid-row:span 2; grid-column:span 2; }

  .reservation-modal__grid { grid-template-columns:minmax(250px,.75fr) minmax(0,1.25fr); align-items:start; }

  .site-footer__grid { grid-template-columns:1.5fr 1fr; }
}

@media (max-width:767px) {
  .hero { min-height:clamp(610px,175vw,760px); padding-block:60px 300px; }

  .hero__media img { object-position:center bottom; }

  .hero__overlay { background:linear-gradient(180deg, var(--rc-navy-950) 0%, rgb(7 27 58 / 97%) 24%, rgb(7 27 58 / 72%) 45%, rgb(7 27 58 / 30%) 66%, transparent 80%); }

  .hero__inner { display:block; min-height:0; }

  .hero__copy { max-width:100%; }

  .hero__actions .button { width:100%; }

  .trip-filter-section { margin-top:0; padding-block:22px; background:var(--rc-surface-muted); }

  .trip-form__quick button { flex:1 1 160px; }

  .trust-strip__list { grid-template-columns:1fr; }

  .trust-strip__item { justify-content:flex-start; min-height:0; padding:15px 0; font-size:.9rem; text-align:left; }

  .trust-strip__item + .trust-strip__item { border-top:1px solid var(--rc-line); border-left:0; }

  .trust-strip__text { max-width:none; }

  .vehicle-card__image { height:205px; }

  .steps li { grid-template-columns:46px 38px minmax(0,1fr); gap:var(--rc-space-3); }
}

@media (max-width:639px) {
  .rc-container { width:min(calc(100% - 32px), var(--rc-container)); }

  .site-header__inner { min-height:68px; gap:var(--rc-space-2); }

  .custom-logo { max-width:min(140px,40vw); max-height:46px; }

  .site-brand { min-width:112px; font-size:1rem; }

  .site-header__actions { gap:5px; }

  .section-heading { align-items:start; flex-direction:column; }

  .final-cta .button { width:100%; }

  .final-cta__actions { width:100%; }

  .reservation-modal { padding:0; align-items:end; }

  .reservation-modal__panel { width:100%; max-height:calc(100vh - 8px); padding:22px 20px; border-radius:16px 16px 0 0; }

  .reservation-modal--inline { padding-inline:0; }

  .reservation-modal--inline .reservation-modal__panel { border-radius:0; }

  .contact-page__hero { padding-block:36px 42px; }

  .contact-page__hero .breadcrumbs { margin-bottom:var(--rc-space-4); }

  .contact-page__actions { display:grid; grid-template-columns:1fr; }

  .contact-page__actions .button { width:100%; }

  .menu-open { overflow:hidden; }

  #ht-ctc-chat { display:none !important; }
}

@media (min-width:900px) {
  .contact-page__layout { grid-template-columns:minmax(0,1fr) minmax(280px,.38fr); grid-template-areas:"content guide"; align-items:start; }

  .contact-page__guide { position:sticky; top:24px; }
}

@media (prefers-reduced-motion:reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
  }
}

/* Venetian editorial refinement: a warm, deliberate travel rhythm replaces
   generic card repetition while retaining the familiar conversion patterns. */
body {
  background:
    radial-gradient(circle at 100% 0, rgb(226 175 53 / 10%), transparent 25rem),
    var(--rc-page);
}

h1,
h2,
h3,
.site-brand,
.reservation-modal .reservation-modal__header h2 {
  font-family: var(--rc-font-display);
}

.eyebrow {
  color: var(--rc-gold-600);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .15em;
}

.button {
  border-radius: 999px;
  font-weight: 750;
  letter-spacing: -.01em;
}

.button:not(.button--secondary, .button--whatsapp) {
  background: var(--rc-yellow-500);
}

.button:hover {
  background: #f6b900;
  box-shadow: 0 9px 18px rgb(94 61 12 / 18%);
}

.site-header {
  position: sticky;
  top: 0;
  border-bottom-color: rgb(7 27 58 / 10%);
  background: rgb(255 253 249 / 92%);
  backdrop-filter: blur(16px);
}

.site-header__inner { min-height: 80px; }

.primary-navigation__list a {
  position: relative;
  font-weight: 700;
}

@media (min-width:960px) {
  .primary-navigation__list a::after {
    position: absolute;
    right: 0;
    bottom: 1px;
    left: 0;
    height: 2px;
    background: var(--rc-yellow-500);
    content: "";
    opacity: 0;
    transform: scaleX(.4);
    transition: opacity var(--rc-transition), transform var(--rc-transition);
  }

  .primary-navigation__list a:hover::after,
  .primary-navigation__list a:focus-visible::after,
  .primary-navigation__list .current-menu-item a::after { opacity: 1; transform: scaleX(1); }
}

.language-switcher__trigger,
.menu-toggle {
  border-color: rgb(7 27 58 / 15%);
  background: rgb(255 255 255 / 80%);
}

.site-main:not(.site-main--home) {
  background: linear-gradient(135deg, rgb(255 255 255 / 76%), rgb(247 241 231 / 48%));
}

.page-intro { max-width: 800px; }

.page-intro h1,
.vehicle-page__heading h1 {
  max-width: 15ch;
  font-weight: 600;
  letter-spacing: -.055em;
}

.section h2,
.local-panel h2,
.page-intro h1,
.vehicle-page__heading h1 {
  font-weight: 600;
}

.breadcrumbs {
  color: #6a5d4f;
  font-size: .8rem;
  font-weight: 650;
}

.hero--split {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 22%, rgb(255 201 40 / 20%), transparent 24rem),
    linear-gradient(112deg, #f8f2e8 0%, #fbfaf7 53%, #e8edf0 100%);
}

.hero--split::before {
  position: absolute;
  right: clamp(-12rem, -8vw, -3rem);
  bottom: -12rem;
  width: clamp(24rem, 42vw, 40rem);
  aspect-ratio: 1;
  border: 1px solid rgb(7 27 58 / 9%);
  border-radius: 50%;
  box-shadow: 0 0 0 2.4rem rgb(7 27 58 / 3%), 0 0 0 5.2rem rgb(7 27 58 / 2%);
  content: "";
  pointer-events: none;
}

.hero--split .hero__inner {
  position: relative;
  grid-template-areas:
    "copy media"
    "finder media";
  grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
  row-gap: 24px;
}

.hero--split .hero__copy { grid-area: copy; }

.hero--split .hero__media {
  grid-area: media;
  border: 1px solid rgb(7 27 58 / 14%);
  border-radius: 3px 28px;
  box-shadow: 18px 18px 0 rgb(7 27 58 / 7%), var(--rc-shadow);
}

.hero--split .hero__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgb(7 27 58 / 15%), transparent 40%);
  content: "";
  pointer-events: none;
}

.hero--split h1 {
  max-width: 11ch;
  font-weight: 600;
  letter-spacing: -.065em;
  line-height: .94;
}

.hero--split .hero__copy > p:last-of-type {
  max-width: 43ch;
  font-size: 1.06rem;
  line-height: 1.62;
}

.hero--split .hero__actions { margin-top: var(--rc-space-5); }

.hero--split .hero__trip-form {
  grid-area: finder;
  margin-top: 0;
  border: 1px solid rgb(7 27 58 / 13%);
  border-radius: 3px 16px 16px;
  box-shadow: 0 14px 28px rgb(7 27 58 / 9%);
}

.trip-form { background: rgb(255 255 255 / 92%); }

.trip-form legend { font-family: var(--rc-font-display); font-size: 1.25rem; font-weight: 600; }

.trip-form input,
.trip-form select,
.reservation-form input,
.reservation-form select,
.reservation-form textarea,
.contact-form input,
.contact-form select,
.contact-form textarea {
  border-color: rgb(7 27 58 / 17%);
  border-radius: 8px;
  background: rgb(255 255 255 / 92%);
}

.trip-form label,
.reservation-form label,
.contact-form label { font-size: .8rem; font-weight: 750; letter-spacing: .01em; }

.trust-strip { border-color: rgb(7 27 58 / 11%); background: #fffdf9; }

.trust-strip__item { font-family: var(--rc-font-display); font-size: 1.05rem; font-weight: 600; }

.trust-strip__item::before {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 11px;
  border-radius: 50%;
  background: var(--rc-yellow-500);
  content: "";
}

.fleet-section { background: transparent; }

.notice {
  border: 0;
  border-left: 3px solid var(--rc-yellow-500);
  border-radius: 0;
  background: rgb(225 238 247 / 72%);
}

.vehicle-grid { gap: clamp(16px, 2vw, 26px); }

.vehicle-card {
  border-color: rgb(7 27 58 / 12%);
  border-radius: 4px 18px;
  box-shadow: none;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.vehicle-card:hover {
  border-color: rgb(189 125 20 / 58%);
  box-shadow: 0 18px 32px rgb(7 27 58 / 10%);
  transform: translateY(-5px);
}

.vehicle-card__image {
  height: 220px;
  background:
    linear-gradient(145deg, rgb(255 255 255 / 70%), transparent),
    var(--rc-cream);
}

.vehicle-card__body { padding: 22px; }

.vehicle-card h3 { font-family: var(--rc-font-display); font-size: 1.45rem; font-weight: 600; }

.vehicle-card__starting-price strong { font-family: var(--rc-font-display); font-size: 1.7rem; font-weight: 600; }

.arrivals-section { background: #fffdf9; }

.arrival-card {
  border-color: rgb(7 27 58 / 11%);
  border-radius: 3px 18px;
  box-shadow: none;
}

.arrival-card__media { height: 180px; background: var(--rc-cream); }

.arrival-card__title { font-family: var(--rc-font-display); font-size: 1.45rem; font-weight: 600; }

.process-section { background: #0a2449; }

.process-section::after {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(90deg, rgb(255 255 255 / 4%) 1px, transparent 1px), linear-gradient(rgb(255 255 255 / 4%) 1px, transparent 1px);
  background-size: 38px 38px;
  content: "";
  opacity: .45;
  pointer-events: none;
}

.process-section__layout { z-index: 1; }

.benefits-section { background: var(--rc-cream); }

.benefits-section .benefits-grid li { padding: 0 18px 0 0; border-right: 1px solid rgb(7 27 58 / 14%); }

.benefits-section .benefits-grid li:last-child { border-right: 0; }

.benefits-grid h3 { font-family: var(--rc-font-display); font-size: 1.28rem; font-weight: 600; }

.assistance-panel { border-radius: 3px 22px; box-shadow: 16px 16px 0 rgb(189 125 20 / 20%); }

.final-cta {
  border: 1px solid rgb(7 27 58 / 14%);
  border-radius: 3px 24px;
  background: #fffdf9;
  box-shadow: 14px 14px 0 rgb(255 201 40 / 28%);
}

.final-cta h2 { font-family: var(--rc-font-display); font-weight: 600; }

.airport-page__process,
.airport-page__practical,
.airport-page__faq,
.airport-page__cta,
.requirements-grid section,
.content-page__body,
.archive-entry,
.request-card {
  border-color: rgb(7 27 58 / 13%);
  box-shadow: none;
}

.content-page__body {
  border-width: 1px 0;
  border-radius: 0;
  background: transparent;
}

.content-page__featured-image { border-radius: 3px 24px; box-shadow: 14px 14px 0 rgb(7 27 58 / 7%); }

.content-page__body h2,
.content-page__body h3,
.contact-page__guide h2,
.airport-page__process h2,
.airport-page__practical h2,
.airport-page__faq h2,
.requirements-grid h2 { font-family: var(--rc-font-display); font-weight: 600; }

.faq-list details { border-color: rgb(7 27 58 / 13%); border-radius: 2px 12px; }

.faq-list summary { font-family: var(--rc-font-display); font-size: 1.15rem; font-weight: 600; }

.vehicle-gallery__image { border-color: rgb(7 27 58 / 12%); border-radius: 3px 18px; background: #fffdf9; }

.request-card { border-radius: 3px 20px; background: #fffdf9; }

.request-card h2 { font-family: var(--rc-font-display); font-weight: 600; }

.contact-page__hero {
  background:
    radial-gradient(circle at 84% 15%, rgb(255 201 40 / 24%), transparent 22rem),
    #0a2449;
}

.contact-page__guide { border-radius: 3px 18px; background: var(--rc-cream); }

.site-footer { margin-top: clamp(48px, 8vw, 112px); background: #081f40; }

.site-footer__brand .custom-logo { filter: brightness(0) invert(1); }

/* Reservation: a concise request sheet, not a long vehicle profile. */
.reservation-modal__backdrop { background: rgb(4 20 43 / 76%); backdrop-filter: blur(4px); }

.reservation-modal__panel { border-color: rgb(255 255 255 / 44%); border-radius: 4px 24px; }

.reservation-modal__header { background: rgb(255 255 255 / 96%); }

.reservation-summary { border-left: 3px solid var(--rc-yellow-500); border-radius: 2px 14px; background: var(--rc-cream); }

.reservation-summary h3 { font-family: var(--rc-font-display); font-size: 1.4rem; font-weight: 600; }

.reservation-summary__notice { font-size: .8rem !important; line-height: 1.45; }

.reservation-form__intro {
  padding: 0 0 12px;
  border: 0;
  border-bottom: 1px solid var(--rc-line);
  background: transparent;
  color: var(--rc-muted);
}

.reservation-form__progress { color: var(--rc-gold-600); font-size: .76rem; letter-spacing: .05em; text-transform: uppercase; }

.reservation-form legend { font-family: var(--rc-font-display); font-size: 1.28rem; font-weight: 600; }

.reservation-form__options,
.reservation-form__optional-note {
  border-color: rgb(7 27 58 / 13%);
  border-radius: 3px 12px;
  background: rgb(247 241 231 / 58%);
}

.reservation-form__options summary,
.reservation-form__optional-note summary {
  display: flex;
  min-height: 50px;
  align-items: center;
  padding: 10px 13px;
  color: var(--rc-navy-950);
  font-weight: 750;
  cursor: pointer;
}

.reservation-form__optional-note { margin: 0 0 var(--rc-space-5); border: 1px solid rgb(7 27 58 / 13%); }

.reservation-form__optional-note > label { padding: 0 13px 14px; }

.reservation-form__optional-note[open] summary { border-bottom: 1px solid var(--rc-line); margin-bottom: 12px; }

.reservation-location-fee { margin: -4px 0 var(--rc-space-5); padding: 10px 12px; border-left: 3px solid var(--rc-gold-600); background: #fff8e6; }

.reservation-estimate { border-color: rgb(7 27 58 / 13%); border-radius: 3px 14px; background: #edf5ec; }

@media (max-width:767px) {
  .site-header__inner { min-height: 70px; }

  .js .primary-navigation.is-open {
    min-height: calc(100dvh - 70px);
    padding: 24px 16px calc(100px + env(safe-area-inset-bottom));
    background: #fffdf9;
  }

  .primary-navigation__list { display: grid; gap: 3px; }

  .primary-navigation__list a { padding: 15px 4px; font-family: var(--rc-font-display); font-size: 1.42rem; font-weight: 600; }

  .hero--split { padding-block: 32px 0; }

  .hero--split::before { display: none; }

  .hero--split .hero__inner {
    display: grid;
    grid-template-areas: "copy" "finder" "media";
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .hero--split .hero__copy { display: block; }

  .hero--split .hero__media {
    margin-inline: calc(-1 * var(--rc-space-4));
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .hero--split .hero__trip-form { margin-bottom: 0; border-radius: 3px 16px; }

  .hero--split .trip-form__grid { grid-template-columns: 1fr; }

  .trust-strip__item { font-size: 1rem; }

  .benefits-section .benefits-grid li { padding: 0 0 16px; border-right: 0; border-bottom: 1px solid rgb(7 27 58 / 13%); }

  .benefits-section .benefits-grid li:last-child { border-bottom: 0; }

  .content-page__body { padding-inline: 0; }

  .reservation-modal__panel { padding: 18px 16px calc(20px + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; }

  .reservation-modal__header { min-height: 58px; margin-bottom: 16px; }

  .reservation-modal .reservation-modal__header h2 { font-size: 1.55rem; }

  .reservation-modal__grid { gap: 16px; }

  .reservation-summary {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 10px;
  }

  .reservation-summary__image { min-height: 68px; height: 68px; margin: 0; }

  .reservation-summary__image img { height: 68px; }

  .reservation-summary h3 { font-size: 1.08rem; line-height: 1.04; }

  .reservation-summary p { margin: 5px 0 0; font-size: .77rem; line-height: 1.35; }

  .reservation-summary__prices,
  .reservation-summary__notice { display: none; }

  .reservation-form__intro { font-size: .81rem; }

  .reservation-form__section { padding-bottom: 14px !important; margin-bottom: 14px !important; }

  .reservation-form__two { gap: 0 8px; }

  .reservation-form input,
  .reservation-form select { min-height: 44px; }

  .reservation-form__options { margin-bottom: 14px; }

  .reservation-estimate { margin: 16px 0; padding: 14px; }

  .reservation-form__step-actions { position: sticky; bottom: -20px; z-index: 2; padding: 12px 0 calc(4px + env(safe-area-inset-bottom)); background: linear-gradient(180deg, rgb(255 255 255 / 76%), #fff 28%); }

  .mobile-action-bar { background: rgb(255 253 249 / 96%); backdrop-filter: blur(14px); }
}

/* Approved full-design integration: retain the shared primitives above while
   presenting the homepage and enquiry flow as a calmer, conversion-first UI. */
.hero--split {
  min-height: 0;
  padding: clamp(42px, 6vw, 82px) 0;
  background: var(--rc-cream);
  color: var(--rc-ink);
}

.hero--split .hero__inner { display:grid; grid-template-columns:minmax(0, .93fr) minmax(0, 1.07fr); align-items:center; gap:clamp(28px,5vw,72px); }
.hero--split .hero__copy { max-width:none; }
.hero--split .hero__media { position:relative; inset:auto; z-index:auto; overflow:hidden; border-radius:var(--rc-radius); box-shadow:var(--rc-shadow); }
.hero--split .hero__media img { width:100%; height:auto; max-width:100%; object-fit:cover; }
.hero--split .hero__overlay { display:none; }
.hero--split .eyebrow { color:var(--rc-navy-800); }
.hero--split h1 { max-width:12ch; color:var(--rc-navy-950); font-size:clamp(2.45rem,4.5vw,4.25rem); }
.hero--split .hero__copy > p:last-of-type { max-width:46ch; color:var(--rc-muted); }
.hero--split .trip-form { grid-template-columns:minmax(0,1fr) auto; margin-top:var(--rc-space-5); padding:16px; box-shadow:0 8px 20px rgb(7 27 58 / 8%); }
.hero--split .trip-form__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.hero--split .trip-form .button { min-width:130px; width:auto; }

.vehicle-card--featured .vehicle-card__prices,
.vehicle-card--related .vehicle-card__prices { display:none; }
.vehicle-card--related .vehicle-card__body { padding:16px; }
.vehicle-card--related .vehicle-card__image { height:185px; }
.benefits-section__layout { display:grid; gap:clamp(28px,5vw,72px); align-items:center; }
.benefits-section .benefits-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.benefits-section .benefits-grid li { padding:0; border:0; background:transparent; box-shadow:none; }
.assistance-panel { padding:clamp(24px,4vw,36px); border-radius:var(--rc-radius); background:var(--rc-navy-950); color:#fff; }
.assistance-panel .eyebrow { color:var(--rc-yellow-500); }
.assistance-panel h3 { margin:0; color:#fff; font-size:1.55rem; line-height:1.15; }
.assistance-panel p:not(.eyebrow) { color:#d7e2ee; }
.reservation-form__progress { margin:0 0 var(--rc-space-4); color:var(--rc-navy-800); font-size:.88rem; font-weight:750; }
.reservation-form__step-actions { display:flex; justify-content:space-between; gap:var(--rc-space-3); padding-top:var(--rc-space-4); border-top:1px solid var(--rc-line); }
.reservation-form__step-actions .button { width:auto; min-width:130px; }
.js .reservation-step:not(.is-active) { display:none; }
.site-footer__contact { display:grid; align-content:start; gap:8px; }
.site-footer__contact h2 { margin:0 0 var(--rc-space-2); color:#fff; font-size:1rem; }
.site-footer__contact a { color:#e5edf7; font-size:.9rem; font-weight:600; text-decoration:none; }

.site-footer__contact a:hover,
.site-footer__contact a:focus-visible { color:var(--rc-yellow-500); text-decoration:underline; }
.site-footer__contact p { margin:2px 0; }
.site-footer__bottom { display:flex; flex-wrap:wrap; gap:var(--rc-space-3); justify-content:space-between; }
.site-footer__bottom a { color:#e5edf7; font-size:.82rem; }
.site-footer__social { display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--rc-space-3); }
.site-footer__social-link { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgb(255 255 255 / 30%); border-radius:50%; color:#fff !important; transition:background var(--rc-transition), border-color var(--rc-transition), color var(--rc-transition), transform var(--rc-transition); }
.site-footer__social-link svg { width:18px; height:18px; fill:none; stroke:currentcolor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.site-footer__social-link .site-footer__social-fill { fill:currentcolor; stroke:none; }
.site-footer__social-link:hover, .site-footer__social-link:focus-visible { border-color:var(--rc-yellow-500); background:var(--rc-yellow-500); color:var(--rc-navy-950) !important; text-decoration:none; transform:translateY(-2px); }
.mobile-action-bar { display:none; }

.airport-page__process,
.airport-page__practical,
.airport-page__faq,
.airport-page__cta { padding:clamp(24px,4vw,42px); margin-top:var(--rc-space-6); border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); }

.airport-page__process h2,
.airport-page__practical h2,
.airport-page__faq h2,
.airport-page__cta h2 { margin-top:0; }
.airport-page__process ol { display:grid; gap:var(--rc-space-4); padding:0; margin:var(--rc-space-5) 0 0; list-style:none; counter-reset:airport-step; }
.airport-page__process li { display:grid; grid-template-columns:36px 1fr; gap:var(--rc-space-3); align-items:start; }
.airport-page__process li::before { display:grid; width:30px; height:30px; place-items:center; border-radius:50%; background:var(--rc-navy-950); color:#fff; content:counter(airport-step); counter-increment:airport-step; font-size:.78rem; font-weight:750; }

.airport-page__process strong,
.airport-page__process span { grid-column:2; }
.airport-page__process strong { margin-bottom:-8px; }
.airport-page__practical dl { display:grid; gap:0; margin:0; }
.airport-page__practical dl > div { display:grid; gap:4px; padding:var(--rc-space-3) 0; border-top:1px solid var(--rc-line); }
.airport-page__practical dt { color:var(--rc-muted); font-size:.85rem; font-weight:700; }
.airport-page__practical dd { margin:0; color:var(--rc-navy-950); font-weight:600; }
.airport-page__faq details { padding:var(--rc-space-3) 0; border-top:1px solid var(--rc-line); }
.airport-page__faq summary { color:var(--rc-navy-950); font-weight:700; cursor:pointer; }
.airport-page__cta { background:var(--rc-navy-950); color:#fff; }
.airport-page__cta h2 { color:#fff; }
.information-steps { display:grid; gap:var(--rc-space-3); padding:0; margin:var(--rc-space-6) 0; list-style:none; counter-reset:information-step; }
.information-steps li { display:flex; align-items:center; gap:var(--rc-space-3); padding:var(--rc-space-4); border:1px solid var(--rc-line); border-radius:var(--rc-radius-sm); background:var(--rc-surface); }
.information-steps li::before { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; border-radius:50%; background:var(--rc-navy-950); color:#fff; content:counter(information-step); counter-increment:information-step; font-size:.78rem; font-weight:750; }
.information-page__notice { padding:var(--rc-space-4); border-left:4px solid var(--rc-yellow-500); background:#fff8df; color:var(--rc-navy-950); font-weight:650; }
.requirements-grid { display:grid; gap:var(--rc-space-4); margin:var(--rc-space-6) 0; }
.requirements-grid section { padding:var(--rc-space-5); border:1px solid var(--rc-line); border-radius:var(--rc-radius); background:var(--rc-surface); }
.requirements-grid h2 { margin-top:0; font-size:1.15rem; }
.requirements-grid p { margin-bottom:0; }
@media (min-width:640px) {
  .requirements-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (min-width:960px) {
  .benefits-section__layout { grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr); }
  .site-footer__grid { grid-template-columns:1.25fr 1fr .8fr; }
}

@media (min-width:768px) and (max-width:1100px) {
  .site-header__actions .button--whatsapp { display:none; }
  .primary-navigation__list { gap:14px; }
}

@media (max-width:767px) {
  .hero--split { padding-block:32px 0; }
  .hero--split .hero__inner { display:flex; flex-direction:column; align-items:stretch; gap:28px; }
  .hero--split .hero__media { order:2; margin-inline:calc(-1 * var(--rc-space-4)); border-radius:0; box-shadow:none; }
  .hero--split .hero__copy { display:contents; }
  .hero--split .hero__copy > :not(.trip-form) { order:1; }
  .hero--split .trip-form { order:3; grid-template-columns:1fr; margin:0; border-radius:0; box-shadow:none; }
  .hero--split .trip-form__grid { grid-template-columns:1fr; }
  .hero--split .trip-form .button { width:100%; }
  .benefits-section .benefits-grid { grid-template-columns:1fr; gap:var(--rc-space-4); }
  .contact-form__two { grid-template-columns:1fr; }
  .reservation-form__step-actions .button { flex:1; min-width:0; }
  .site-header__reserve { display:none; }

  .site-main { padding-bottom:calc(72px + env(safe-area-inset-bottom)); }

  .mobile-action-bar {
    position:fixed;
    z-index:90;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    border-top:1px solid var(--rc-line);
    background:rgb(255 255 255 / 97%);
    box-shadow:0 -8px 22px rgb(7 27 58 / 10%);
  }

  .mobile-action-bar__whatsapp,
  .mobile-action-bar__primary {
    display:inline-flex;
    min-height:46px;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:var(--rc-radius-sm);
    background:var(--rc-yellow-500);
    color:var(--rc-navy-950);
    font:inherit;
    font-size:.9rem;
    font-weight:750;
    text-align:center;
    text-decoration:none;
  }

  .mobile-action-bar__whatsapp { background:var(--rc-green-600); color:#fff; }
}

/* Keep the Venetian composition authoritative after the earlier integration
   compatibility rules. */
.hero--split .hero__inner {
  grid-template-areas:
    "copy media"
    "finder media";
  grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
  row-gap: 24px;
}

.hero--split .hero__copy { grid-area: copy; }

.hero--split .hero__trip-form {
  grid-area: finder;
  margin-top: 0;
  border: 1px solid rgb(7 27 58 / 13%);
  border-radius: 3px 16px 16px;
  box-shadow: 0 14px 28px rgb(7 27 58 / 9%);
}

.hero--split .hero__media {
  grid-area: media;
  border: 1px solid rgb(7 27 58 / 14%);
  border-radius: 3px 28px;
  box-shadow: 18px 18px 0 rgb(7 27 58 / 7%), var(--rc-shadow);
}

.benefits-section .benefits-grid li {
  padding: 0 18px 0 0;
  border-right: 1px solid rgb(7 27 58 / 14%);
  background: transparent;
}

.benefits-section .benefits-grid li:last-child { border-right: 0; }

@media (max-width:767px) {
  .hero--split .hero__inner {
    display: grid;
    grid-template-areas: "copy" "finder" "media";
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .hero--split .hero__copy { display: block; }

  .hero--split .hero__media {
    margin-inline: calc(-1 * var(--rc-space-4));
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .hero--split .hero__trip-form { margin-bottom: 0; border-radius: 3px 16px; }

  .hero--split .trip-form__grid { grid-template-columns: 1fr; }

  .benefits-section .benefits-grid li {
    padding: 0 0 16px;
    border-right: 0;
    border-bottom: 1px solid rgb(7 27 58 / 13%);
  }

  .benefits-section .benefits-grid li:last-child { border-bottom: 0; }
}

/* Header declutter: keep the brand and the booking action primary; the full
   managed menu remains available in the mobile drawer and the site footer. */
.site-header .site-brand {
  min-width: 0;
  flex-direction: row;
  align-items: baseline;
  gap: 7px;
  font-family: var(--rc-font-sans);
  font-size: 1.03rem;
  font-weight: 800;
  letter-spacing: -.055em;
  line-height: 1;
  white-space: nowrap;
}

.site-header .site-brand__sub {
  margin: 0;
  color: var(--rc-gold-600);
  font-size: .56em;
  font-weight: 800;
  letter-spacing: .16em;
  text-align: left;
}

.site-header__actions .button--whatsapp { display: none; }

@media (min-width:960px) {
  .site-header__inner { gap: clamp(18px, 2vw, 30px); }

  .primary-navigation__list { gap: clamp(16px, 1.8vw, 26px); }

  .primary-navigation__list li:nth-child(n + 4) { display: none; }

  .site-header__actions { gap: 10px; }

  .site-header__reserve { min-height: 42px; padding-inline: 16px; }
}

@media (max-width:959px) {
  .site-header .site-brand { font-size: .98rem; }
}

/* Supplied hero scene and the established WordPress logo stay prominent while
   retaining a balanced crop at every breakpoint. */
.hero--split .hero__media { aspect-ratio: 16 / 10; }
.hero--split .hero__media img { height: 100%; object-fit: cover; object-position: center; }
.hero--split .hero__media::after { background: linear-gradient(135deg, rgb(7 27 58 / 5%), transparent 44%); }
.site-header .custom-logo { max-width: 184px; max-height: 58px; }
.site-footer__brand { display: inline-flex; padding: 8px 11px; border-radius: var(--rc-radius-sm); background: #fff; }
.site-footer__brand .custom-logo { max-width: 190px; max-height: 62px; filter: none; }

@media (max-width:767px) {
  .hero--split .hero__inner { grid-template-areas: "copy" "media" "finder"; }
  .hero--split .hero__media { aspect-ratio: 3 / 2; }
  .site-header .custom-logo { max-width: 148px; max-height: 50px; }
}

/* Optional analytics is gated behind an explicit, reversible choice. */
.site-footer__legal { display:flex; flex-wrap:wrap; gap:var(--rc-space-3); align-items:center; }
.site-footer__cookie-settings { padding:0; border:0; background:transparent; color:#e5edf7; font:inherit; font-size:.82rem; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.site-footer__cookie-settings:hover, .site-footer__cookie-settings:focus-visible { color:var(--rc-yellow-500); }
.cookie-consent { position:fixed; z-index:1000; right:max(16px, env(safe-area-inset-right)); bottom:max(16px, env(safe-area-inset-bottom)); left:max(16px, env(safe-area-inset-left)); width:auto; margin:0; padding:18px; border:1px solid rgb(255 255 255 / 20%); border-radius:4px 16px 16px; background:var(--rc-navy-950); box-shadow:0 18px 48px rgb(7 27 58 / 32%); color:#fff; }
.cookie-consent__inner { display:grid; gap:14px; }
.cookie-consent__eyebrow { margin:0 0 4px; color:var(--rc-yellow-500); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.cookie-consent h2 { margin:0; color:#fff; font-size:clamp(1.1rem,3vw,1.32rem); line-height:1.2; }
.cookie-consent p:not(.cookie-consent__eyebrow) { max-width:60ch; margin:7px 0 0; color:#dce7f2; font-size:.84rem; line-height:1.48; }
.cookie-consent a { color:#fff; font-weight:700; }
.cookie-consent__actions { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.cookie-consent__actions .button { min-height:42px; margin:0; padding:8px 10px; font-size:.84rem; }
.cookie-consent__actions [data-cookie-accept] { grid-column:1 / -1; }
.cookie-consent .button--quiet { border-color:rgb(255 255 255 / 36%); background:transparent; color:#fff; }
.cookie-consent .button--quiet:hover, .cookie-consent .button--quiet:focus-visible { border-color:rgb(255 255 255 / 78%); background:rgb(255 255 255 / 12%); color:#fff; box-shadow:none; }
.cookie-preferences__actions { display:grid; gap:8px; }
.cookie-preferences__actions .button--quiet { border-color:var(--rc-line); background:var(--rc-surface); color:var(--rc-navy-950); }
.cookie-preferences { width:min(calc(100% - 32px), 560px); padding:0; border:0; border-radius:var(--rc-radius); color:var(--rc-navy-950); box-shadow:0 24px 70px rgb(7 27 58 / 35%); }
.cookie-preferences::backdrop { background:rgb(7 27 58 / 64%); }
.cookie-preferences__panel { display:grid; gap:18px; padding:clamp(24px,4vw,36px); }
.cookie-preferences__panel h2 { margin:4px 0 0; font-size:clamp(1.45rem,4vw,2rem); }
.cookie-preferences__panel p { margin:0; color:var(--rc-muted); }
.cookie-preferences__choice { display:flex; gap:12px; align-items:flex-start; padding:16px; border:1px solid var(--rc-line); border-radius:var(--rc-radius-sm); cursor:pointer; }
.cookie-preferences__choice input { width:20px; height:20px; margin-top:2px; accent-color:var(--rc-gold-600); }
.cookie-preferences__choice span { display:grid; gap:4px; }
.cookie-preferences__choice small { color:var(--rc-muted); }
.legal-page .content-page__body { padding:clamp(22px,4vw,52px); }
.legal-page__toc { margin:0 0 clamp(26px,4vw,42px); padding:clamp(18px,3vw,24px); border-left:3px solid var(--rc-gold-600); background:#f7f4ee; }
.legal-page__toc strong { display:block; margin-bottom:8px; color:var(--rc-navy-950); }
.legal-page__toc ol { columns:2; gap:28px; margin:0; padding-left:20px; }
.legal-page__toc li { break-inside:avoid; margin:5px 0; }
.legal-page__inventory { margin:var(--rc-space-4) 0; }
.legal-page__inventory-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--rc-line); }
.legal-page__inventory table { display:table; min-width:740px; margin:0; overflow:visible; }
.legal-page__updated { padding-top:var(--rc-space-4); border-top:1px solid var(--rc-line); color:var(--rc-muted); font-weight:700; }
@media (min-width:480px) { .cookie-preferences__actions { grid-template-columns:1fr 1fr; } }
@media (min-width:680px) { .cookie-consent { left:auto; width:min(660px, calc(100% - 32px)); } .cookie-consent__actions { grid-template-columns:repeat(3, minmax(0, 1fr)); } .cookie-consent__actions [data-cookie-accept] { grid-column:auto; } }
@media (max-width:479px) { .legal-page__toc ol { columns:1; } }
@media print { .cookie-consent, .cookie-preferences, .site-header, .site-footer, .mobile-action-bar { display:none !important; } .content-page__body, .legal-page__inventory-wrap { border:0; box-shadow:none; overflow:visible; } .legal-page__inventory table { min-width:0; font-size:9pt; } }

/* Homepage airport hero: one covered scene with the conversion path kept on
   the protected left side. The background is intentionally presentation-only;
   the searchable trip form and all WordPress content remain in the document. */
body.home .site-header {
  position:absolute;
  z-index:120;
  inset:0 0 auto;
  padding-top:max(8px, env(safe-area-inset-top));
  border-bottom-color:rgb(255 255 255 / 18%);
  background:linear-gradient(180deg, rgb(2 12 29 / 64%), transparent);
}

body.home .site-header .custom-logo-link { padding:5px 8px; border-radius:4px; background:#fff; }
body.home .site-header .primary-navigation__list a { color:#fff; }

body.home .site-header .primary-navigation__list a:hover,
body.home .site-header .primary-navigation__list a:focus-visible { color:var(--rc-yellow-500); }
body.home .site-header .language-switcher__trigger { border-color:rgb(255 255 255 / 42%); background:rgb(7 27 58 / 56%); color:#fff; }

.hero--split {
  min-height:780px;
  padding:0;
  background:url("assets/images/hero/hero-airport-background.webp") 70% center / cover no-repeat;
}

.hero--split::before {
  inset:0;
  width:auto;
  height:auto;
  aspect-ratio:auto;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:linear-gradient(90deg, rgb(3 18 43 / 99%) 0%, rgb(5 24 54 / 95%) 31%, rgb(6 28 61 / 77%) 52%, rgb(6 27 58 / 32%) 73%, rgb(6 27 58 / 8%) 100%);
}

.hero--split .hero__inner {
  display:grid;
  grid-template:"copy ." 1fr "finder finder" auto / minmax(0, 560px) minmax(0, 1fr);
  min-height:780px;
  gap:clamp(28px, 4vw, 52px);
  padding-top:118px;
  padding-bottom:48px;
}

.hero--split .hero__copy { display:block; grid-area:copy; align-self:center; max-width:560px; }
.hero--split .hero__copy > p:last-of-type { color:rgb(255 255 255 / 90%); }
.hero--split .eyebrow { color:var(--rc-yellow-500); }
.hero--split h1 { color:#fff; }

.hero--split .hero__trip-form {
  grid-area:finder;
  place-self:end start;
  width:min(100%, 980px);
  margin:0;
  border-radius:4px 18px 18px;
  background:rgb(255 255 255 / 97%);
  box-shadow:0 18px 36px rgb(0 12 32 / 24%);
}

@media (max-width:767px) {
  body.home .site-header { background:linear-gradient(180deg, rgb(2 12 29 / 82%), transparent); }
  body.home .site-header .menu-toggle { border-color:rgb(255 255 255 / 46%); background:rgb(7 27 58 / 46%); color:#fff; }
  body.home .site-header .primary-navigation.is-open { background:#fffdf9; }
  body.home .site-header .primary-navigation.is-open a { color:var(--rc-navy-950); }
  body.home .site-header .primary-navigation.is-open .button { color:var(--rc-navy-950); }

  .hero--split {
    min-height:0;
    padding:0;
    background-position:70% center;
  }

  .hero--split::before {
    display:block;
    background:linear-gradient(90deg, rgb(3 18 43 / 98%) 0%, rgb(4 21 48 / 91%) 54%, rgb(5 25 54 / 60%) 100%);
  }

  .hero--split .hero__inner {
    display:grid;
    grid-template:"copy" auto "finder" auto / 1fr;
    min-height:0;
    gap:28px;
    padding-top:112px;
    padding-bottom:28px;
  }

  .hero--split .hero__copy { display:block; max-width:100%; }
  .hero--split h1 { max-width:11ch; font-size:clamp(2.45rem, 12vw, 3.35rem); }
  .hero--split .hero__actions .button { width:100%; }
  .hero--split .hero__trip-form { width:100%; margin:0; padding:18px; border-radius:4px 16px 16px; }
  .hero--split .trip-form__grid { grid-template-columns:1fr; }
  .hero--split .trip-form .button { width:100%; }
}

/* Reservation request: reveal only the essentials, then keep secondary
   choices available without competing with the next action. */
.reservation-modal__panel {
  --reservation-panel-padding:clamp(20px, 3vw, 28px);

  box-sizing:border-box;
  width:min(100%, 720px);
  padding:clamp(20px, 3vw, 28px);
}

.reservation-modal__header {
  min-height:58px;
  margin-bottom:20px;
}

.reservation-modal .reservation-modal__header h2 { font-size:clamp(1.45rem, 2.4vw, 1.85rem); }

.reservation-modal__grid { grid-template-columns:minmax(0, 1fr); gap:18px; }

.reservation-summary {
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:12px 14px;
  border-left-width:3px;
}

.reservation-summary__image { display:none; }

.reservation-summary__label {
  flex:0 0 auto;
  margin:0 !important;
  color:var(--rc-gold-600) !important;
  font-size:.69rem !important;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.reservation-summary__details { min-width:0; }
.reservation-summary h3 { font-family:var(--rc-font-sans); font-size:1rem; font-weight:800; line-height:1.2; }
.reservation-summary p:not(.reservation-summary__label) { display:inline; margin:0; font-size:.8rem; line-height:1.35; }
.reservation-summary p:not(.reservation-summary__label)::before { content:" · "; }
.reservation-summary__prices { color:var(--rc-muted); }

.reservation-form__intro {
  margin-bottom:16px;
  padding:0;
  border:0;
  color:var(--rc-muted);
  font-size:.84rem;
}

.reservation-form__progress {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 9px;
  margin-bottom:18px;
  border-radius:999px;
  background:#f4e7b2;
  color:var(--rc-navy-950);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.07em;
}

.reservation-form__section { padding-bottom:18px !important; margin-bottom:18px !important; }
.reservation-form legend { margin-bottom:10px; font-family:var(--rc-font-sans); font-size:1.05rem; font-weight:800; }
.reservation-form__two { gap:12px; }
.reservation-form label { gap:5px; font-size:.86rem; }

.reservation-form__different-return {
  padding:0 2px;
  color:var(--rc-navy-800);
  font-size:.82rem !important;
}

.reservation-form__options,
.reservation-form__optional-note {
  margin-bottom:18px;
  border-radius:4px 12px;
  background:#f8f5ef;
}

.reservation-form__options summary,
.reservation-form__optional-note summary { min-height:44px; padding:8px 12px; font-size:.84rem; }

.reservation-form__options-body { padding:14px; }

.reservation-form__options-body .reservation-insurance,
.reservation-form__options-body .reservation-extras { margin-bottom:14px; }

.reservation-estimate { margin:0 0 18px; padding:14px; }

.reservation-estimate h3 { margin:0 0 8px; font-size:1rem; }

.reservation-estimate [data-reservation-estimate-content] p:last-child { color:var(--rc-muted); }

.reservation-form__consents { gap:10px; margin-top:18px !important; }
.reservation-form__consents .check-label { font-size:.81rem; line-height:1.4; }
.reservation-form__step-actions { padding-top:14px; }
.reservation-form__step-actions .button { min-height:46px; }

/* Completed requests use a shorter confirmation card with a single, clear action. */
.reservation-modal--success .reservation-modal__panel {
  width:min(100%, 560px);
}

.reservation-modal--success .reservation-modal__header {
  margin-bottom:18px;
}

.reservation-success {
  display:grid;
  grid-template-columns:56px minmax(0, 1fr);
  align-items:start;
  gap:0 16px;
  max-width:none;
  padding:4px 0 0;
  text-align:left;
}

.reservation-success__icon {
  display:grid;
  width:56px;
  height:56px;
  place-items:center;
  border-radius:18px 4px 18px 18px;
  background:var(--rc-success);
  color:#fff;
  font-size:1.7rem;
  font-weight:800;
}

.reservation-success__content { min-width:0; }

.reservation-success__content > p:first-child { margin:2px 0 14px; color:var(--rc-ink); font-size:.94rem; line-height:1.55; }

.reservation-success__reference {
  width:fit-content;
  max-width:100%;
  padding:7px 10px;
  margin:0;
  border:1px solid var(--rc-line);
  border-radius:7px 12px 12px;
  background:var(--rc-surface-muted);
  color:var(--rc-navy-950);
  font-size:.82rem;
  font-weight:750;
  overflow-wrap:anywhere;
}

.reservation-success .button {
  grid-column:2;
  width:auto;
  min-width:132px;
  margin-top:20px;
}

@media (max-width:639px) {
  .reservation-modal__panel {
    --reservation-panel-padding:18px;

    max-height:calc(100dvh - 24px);
    padding:18px 16px calc(18px + env(safe-area-inset-bottom));
  }
  .reservation-modal__header { margin-bottom:14px; }
  .reservation-summary { align-items:baseline; flex-direction:row; gap:8px; padding:10px 12px; }
  .reservation-summary h3 { font-size:.96rem; }
  .reservation-summary p:not(.reservation-summary__label) { font-size:.76rem; }

  .reservation-summary [data-reservation-specifications],
  .reservation-summary__prices { display:none !important; }
  .reservation-form__intro { margin-bottom:12px; font-size:.8rem; }
  .reservation-form__progress { margin-bottom:14px; }
  .reservation-form__section { padding-bottom:14px !important; margin-bottom:14px !important; }
  .reservation-form__two { gap:10px; }

  .reservation-form__options,
  .reservation-form__optional-note { margin-bottom:14px; }
  .reservation-form__step-actions { bottom:-18px; }

  .reservation-modal--success .reservation-modal__panel { width:100%; }
  .reservation-modal--success .reservation-modal__header { margin-bottom:16px; }
  .reservation-success { grid-template-columns:48px minmax(0, 1fr); gap:0 12px; padding-top:2px; }
  .reservation-success__icon { width:48px; height:48px; border-radius:15px 4px 15px 15px; font-size:1.45rem; }
  .reservation-success__content > p:first-child { margin:0 0 12px; font-size:.88rem; line-height:1.48; }
  .reservation-success__reference { padding:6px 8px; font-size:.76rem; }
  .reservation-success .button { min-height:44px; margin-top:18px; }
}
