@font-face{font-family:"Manrope";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/Manrope.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:"Manrope";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/Manrope-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}
@font-face{font-family:"Outfit";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/Outfit.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:"Outfit";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/Outfit-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}
:root {
  --rl-ink: #101914;
  --rl-muted: #657069;
  --rl-green: #057a55;
  --rl-green-dark: #04583f;
  --rl-lime: #f0f44a;
  --rl-mint: #e9f6f0;
  --rl-cream: #f7f6f1;
  --rl-white: #fff;
  --rl-line: #dce2dd;
  --rl-shadow: 0 24px 70px rgba(10, 31, 20, .16);
  --rl-radius: 18px;
  --rl-container: 1220px;
  --rl-font: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rl-display: "Outfit", var(--rl-font);
}


/* En-tête Elementor compact sur mobile : logo, menu et compte restent sur une
   seule ligne au lieu de créer trois rangées de plus de 230 px. */
@media (max-width: 760px) {
	body.ehf-header #masthead .elementor-section {
		padding: 10px 14px !important;
	}
	body.ehf-header #masthead .elementor-section > .elementor-container {
		display: flex;
		flex-flow: row nowrap;
		align-items: center;
		min-height: 60px;
	}
	body.ehf-header #masthead .elementor-section > .elementor-container > .elementor-column {
		width: auto !important;
	}
	body.ehf-header #masthead .elementor-section > .elementor-container > .elementor-column:first-child {
		flex: 1 1 auto;
		min-width: 0;
	}
	body.ehf-header #masthead .elementor-section > .elementor-container > .elementor-column:nth-child(2) {
		flex: 0 0 44px;
		width: 44px !important;
	}
	body.ehf-header #masthead .elementor-section > .elementor-container > .elementor-column:last-child {
		display: flex;
		flex: 0 0 auto;
		width: auto !important;
	}
	body.ehf-header #masthead .elementor-column > .elementor-element-populated {
		padding: 0;
	}
	body.ehf-header #masthead .elementor-widget-site-logo img {
		display: block;
		width: auto;
		max-width: 128px;
		height: 40px;
		object-fit: contain;
	}
	body.ehf-header #masthead .hfe-nav-menu__toggle {
		margin-left: 0;
	}
	body.ehf-header #masthead .hfe-nav-menu__layout-horizontal:not(.menu-is-active) {
		overflow: hidden;
	}
	body.ehf-header #masthead .elementor-widget-button .elementor-button {
		min-height: 40px;
		padding: 10px 14px;
		font-size: 12px;
		white-space: nowrap;
	}
}

@media (max-width: 360px) {
	body.ehf-header #masthead .elementor-widget-site-logo img {
		max-width: 112px;
	}
	body.ehf-header #masthead .elementor-widget-button .elementor-button {
		padding-inline: 11px;
	}
}


* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--rl-ink); background: var(--rl-white); font-family: var(--rl-font); line-height: 1.55; -webkit-font-smoothing: antialiased; }
body.admin-bar .rl-site-header { top: 32px; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.screen-reader-text, .rl-skip-link { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.rl-skip-link:focus { top: 8px; left: 8px; z-index: 9999; width: auto; height: auto; clip: auto; padding: 10px 16px; color: #fff; background: #000; }
.rl-container { width: min(calc(100% - 48px), var(--rl-container)); margin-inline: auto; }
.rl-main { min-height: 60vh; }
.rl-section { padding: 100px 0; }
.rl-eyebrow { display: block; margin-bottom: 12px; color: var(--rl-green); font-weight: 700; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }

/* Header */
.rl-site-header { position: relative; z-index: 100; height: 78px; background: #fff; border-bottom: 1px solid rgba(16,25,20,.08); }
.rl-header-inner { width: min(calc(100% - 48px), 1370px); height: 100%; margin-inline: auto; display: flex; align-items: center; gap: 34px; }
.rl-brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.rl-brand-mark { position: relative; display: block; width: 37px; height: 33px; transform: skewX(-10deg); }
.rl-brand-mark i { position: absolute; display: block; height: 7px; border-radius: 10px; background: var(--rl-green); transform: rotate(-34deg); }
.rl-brand-mark i:nth-child(1) { width: 30px; top: 3px; left: 3px; }
.rl-brand-mark i:nth-child(2) { width: 23px; top: 13px; left: 10px; background: #16a872; }
.rl-brand-mark i:nth-child(3) { width: 16px; top: 23px; left: 17px; background: var(--rl-lime); }
.rl-brand-copy { display: flex; flex-direction: column; line-height: 1.1; }
.rl-brand-copy strong { font-family: var(--rl-display); font-size: 1.35rem; letter-spacing: .05em; }
.rl-brand-copy small { margin-top: 7px; color: var(--rl-green); font-size: .75rem; font-weight: 700; letter-spacing: .31em; }
.rl-primary-nav { margin-left: auto; }
.rl-menu { display: flex; align-items: center; gap: 31px; margin: 0; padding: 0; list-style: none; }
.rl-menu a { position: relative; padding: 28px 0; color: #2b342e; font-size: .88rem; font-weight: 600; }
.rl-menu a::after { position: absolute; left: 0; right: 100%; bottom: 20px; height: 2px; content: ""; background: var(--rl-green); transition: .2s ease; }
.rl-menu a:hover::after, .rl-menu .current-menu-item a::after { right: 0; }
.rl-header-actions { display: flex; align-items: center; gap: 19px; padding-left: 23px; border-left: 1px solid var(--rl-line); }
.rl-header-help { font-size: .83rem; font-weight: 700; }
.rl-header-account { display: flex; align-items: center; gap: 8px; padding: 10px 15px; color: #fff; background: var(--rl-green); border-radius: 999px; font-size: .81rem; font-weight: 700; }
.rl-header-account svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.rl-menu-toggle { display: none; width: 42px; height: 42px; margin-left: auto; padding: 10px; border: 0; background: transparent; }
.rl-menu-toggle > span:not(.screen-reader-text) { display: block; width: 22px; height: 2px; margin: 5px 0; background: var(--rl-ink); }

/* Hero */
.rl-hero { position: relative; min-height: 665px; isolation: isolate; color: #fff; background: #12392c var(--rl-hero-image) center/cover no-repeat; }
.rl-hero-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5,24,17,.88) 0%, rgba(5,24,17,.67) 37%, rgba(5,24,17,.08) 72%), linear-gradient(0deg, rgba(6,29,21,.35), transparent 55%); }
.rl-hero-content { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 64px; min-height: 665px; padding-top: 25px; }
.rl-hero-copy { align-self: start; max-width: 555px; padding-top: 95px; }
.rl-pill { display: inline-flex; padding: 8px 13px; color: #fff; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.28); border-radius: 999px; backdrop-filter: blur(8px); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.rl-hero h1 { margin: 24px 0 18px; font-family: var(--rl-display); font-size: clamp(2.42rem,3.6vw,3.9rem); line-height: 1.14; letter-spacing: -.045em; }
.rl-hero h1 em { color: var(--lyv-accent-on-dark, #92e6c8); font-style: normal; }
.rl-hero-copy > p { max-width: 500px; margin: 0; color: rgba(255,255,255,.84); font-size: 1.08rem; }
.rl-search-shell { align-self: end; margin-bottom: -78px; }

/* Booking search */
.rl-booking-search { padding: 0; color: var(--rl-ink); background: #fff; border-radius: 20px; box-shadow: var(--rl-shadow); overflow: hidden; }
.rl-search-tabs { display: grid; grid-template-columns: 1fr 1fr; background: #f0f3f0; }
.rl-search-tab { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 60px; color: #707970; border: 0; border-bottom: 3px solid transparent; background: transparent; font-size: .88rem; font-weight: 700; }
.rl-search-tab.is-active { color: var(--rl-green); background: #fff; border-bottom-color: var(--rl-green); }
.rl-search-body { padding: 25px 27px 28px; }
.rl-field-row { display: grid; gap: 13px; }
.rl-field-row + .rl-field-row { margin-top: 15px; }
.rl-field-row-location { grid-template-columns: 1fr 1fr; }
.rl-field-row-dates { grid-template-columns: 1fr 124px 1fr 124px; }
.rl-field { position: relative; display: flex; flex-direction: column; }
.rl-field label { margin-bottom: 6px; color: #5e6962; font-size: .75rem; font-weight: 700; letter-spacing: .065em; text-transform: uppercase; }
.rl-field input, .rl-field select { width: 100%; height: 52px; padding: 0 14px; color: var(--rl-ink); background: #fff; border: 1px solid #cfd7d1; border-radius: 10px; outline: none; font-size: .84rem; font-weight: 600; }
.rl-field input:focus, .rl-field select:focus { border-color: var(--rl-green); box-shadow: 0 0 0 3px rgba(5,122,85,.1); }
.rl-search-options { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 20px; }
.rl-checkbox { display: flex; align-items: center; gap: 9px; color: #4f5a53; font-size: .76rem; }
.rl-checkbox input { width: 17px; height: 17px; accent-color: var(--rl-green); }
.rl-operation-note { color: #4f5a53; font-size: .76rem; font-weight: 700; }
.rl-search-submit, .rl-button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border: 0; border-radius: 999px; cursor: pointer; font-weight: 700; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.rl-search-submit { min-width: 175px; color: var(--rl-ink); background: var(--rl-lime); }
.rl-search-submit:hover, .rl-button:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(12,57,41,.15); }
.rl-search-submit span { margin-left: 12px; font-size: 1.15rem; }

/* Trust */
.rl-trust-bar { padding: 105px 0 30px; background: #fff; }
.rl-trust-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.rl-trust-grid > div { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 15px 22px; border-right: 1px solid var(--rl-line); }
.rl-trust-grid > div:last-child { border-right: 0; }
.rl-trust-icon { display: grid; place-items: center; width: 39px; height: 39px; flex: 0 0 auto; color: var(--rl-green); background: var(--rl-mint); border-radius: 50%; font-weight: 700; }
.rl-trust-grid p { display: flex; flex-direction: column; margin: 0; }
.rl-trust-grid strong { font-size: .82rem; }
.rl-trust-grid small { margin-top: 2px; color: var(--rl-muted); font-size: .75rem; }

/* Sections */
.rl-fleet-section { background: var(--rl-cream); }
.rl-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 42px; }
.rl-section-heading h2, .rl-how h2, .rl-experience h2, .rl-faq h2, .rl-footer-news h2, .rl-page-hero h1 { margin: 0; font-family: var(--rl-display); font-size: clamp(2.25rem,3.4vw,3.65rem); line-height: 1.14; letter-spacing: -.035em; }
.rl-section-heading p, .rl-heading-centered p { margin: 13px 0 0; color: var(--rl-muted); }
.rl-text-link { padding-bottom: 5px; color: var(--rl-green); border-bottom: 1px solid currentColor; font-size: .82rem; font-weight: 700; }
.rl-text-link span { margin-left: 7px; }
.rl-heading-centered { justify-content: center; text-align: center; }

/* Vehicle grid shared with plugin */
.rl-vehicle-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.rl-vehicle-card { position: relative; display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid rgba(16,25,20,.08); border-radius: 16px; overflow: hidden; transition: transform .22s ease, box-shadow .22s ease; }
.rl-vehicle-card:hover { transform: translateY(-5px); box-shadow: 0 20px 45px rgba(24,40,31,.1); }
.rl-vehicle-media { position: relative; display: block; aspect-ratio: 1.48; background: #efedea; overflow: hidden; }
.rl-vehicle-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.rl-vehicle-card:hover .rl-vehicle-media img { transform: scale(1.035); }
.rl-vehicle-badge { position: absolute; top: 13px; left: 13px; z-index: 2; padding: 5px 9px; color: var(--rl-green-dark); background: rgba(255,255,255,.9); border-radius: 999px; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.rl-vehicle-body { display: flex; flex: 1; flex-direction: column; padding: 20px; }
.rl-vehicle-class { color: var(--rl-green); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rl-vehicle-card h3 { margin: 5px 0 3px; font-family: var(--rl-display); font-size: 1.25rem; line-height: 1.2; }
.rl-vehicle-similar { margin: 0 0 15px; color: var(--rl-muted); font-size: .75rem; }
.rl-vehicle-specs { display: flex; flex-wrap: wrap; gap: 8px 13px; margin: 0 0 17px; padding: 0 0 17px; color: #536058; border-bottom: 1px solid #edf0ed; list-style: none; font-size: .75rem; }
.rl-vehicle-price-row { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-top: auto; }
.rl-price { display: flex; flex-direction: column; }
.rl-price small { color: var(--rl-muted); font-size: .75rem; }
.rl-price strong { font-family: var(--rl-display); font-size: 1.37rem; }
.rl-price strong span { font-family: var(--rl-font); color: var(--rl-muted); font-size: .75rem; font-weight: 600; }
.rl-card-cta { display: grid; place-items: center; width: 41px; height: 41px; color: #fff; background: var(--rl-green); border-radius: 50%; font-size: 1.05rem; }

/* How */
.rl-how { background: #fff; }
.rl-how-grid { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 52px; border: 1px solid var(--rl-line); border-radius: var(--rl-radius); overflow: hidden; }
.rl-how-grid article { position: relative; min-height: 265px; padding: 35px 29px; border-right: 1px solid var(--rl-line); }
.rl-how-grid article:last-child { border-right: 0; }
.rl-how-grid article > span { position: absolute; top: 21px; right: 22px; color: #657069; font-family: var(--rl-display); font-size: 1.1rem; }
.rl-how-icon { display: grid; place-items: center; width: 52px; height: 52px; color: var(--rl-green); background: var(--rl-mint); border-radius: 14px; font-size: 1.35rem; }
.rl-how h3 { margin: 29px 0 9px; font-family: var(--rl-display); font-size: 1.12rem; }
.rl-how article p { margin: 0; color: var(--rl-muted); font-size: .8rem; }

/* Experience */
.rl-experience { color: #fff; background: #073f30; overflow: hidden; }
.rl-experience-grid { display: grid; grid-template-columns: 1fr .8fr; align-items: center; gap: 95px; }
.rl-experience .rl-eyebrow { color: var(--lyv-accent-on-dark, #92e6c8); }
.rl-experience-copy > p { max-width: 570px; color: rgba(255,255,255,.72); }
.rl-experience ul { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 25px; margin: 29px 0 34px; padding: 0; list-style: none; font-size: .82rem; }
.rl-experience li span { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 7px; color: #fff; background: var(--rl-lime); border-radius: 50%; font-size: .75rem; font-weight: 700; }
.rl-button-primary { color: var(--rl-ink); background: var(--rl-lime); }
.rl-experience-card { position: relative; min-height: 570px; color: #fff; background: #041d17; border-radius: 24px; transform: rotate(2deg); box-shadow: 30px 35px 0 rgba(240,244,74,.15); overflow: hidden; }
.rl-experience-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rl-experience-card::after { position: absolute; content: ""; inset: 0; background: linear-gradient(180deg,rgba(3,24,19,.04) 25%,rgba(3,24,19,.92) 100%); }
.rl-experience-card__caption { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: 80px 42px 38px; }
.rl-experience-card__caption > p { max-width: 520px; margin: 0 0 22px; font-family: var(--rl-display); font-size: clamp(1.35rem,2.4vw,1.8rem); line-height: 1.3; letter-spacing: -.025em; }
.rl-experience-card__caption > div:last-child { display: flex; flex-direction: column; }
.rl-experience-card small { color: var(--rl-muted); }
.rl-experience-card__caption small { color: rgba(255,255,255,.7); }
.rl-quote-mark { position: absolute; top: 20px; left: 38px; color: var(--rl-lime); font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size: 3.9rem; line-height: 1.14; }

/* FAQ */
.rl-faq { background: var(--rl-cream); }
.rl-faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; }
.rl-faq-grid > div:first-child p { max-width: 390px; color: var(--rl-muted); }
.rl-accordions details { border-bottom: 1px solid #cdd5cf; }
.rl-accordions summary { display: flex; align-items: center; justify-content: space-between; padding: 22px 0; cursor: pointer; list-style: none; font-weight: 600; }
.rl-accordions summary::-webkit-details-marker { display: none; }
.rl-accordions summary span { color: var(--rl-green); font-size: 1.35rem; transition: transform .2s; }
.rl-accordions details[open] summary span { transform: rotate(45deg); }
.rl-accordions details p { margin: -5px 0 23px; padding-right: 60px; color: var(--rl-muted); font-size: .83rem; }

/* Pages */
.rl-page-hero { padding: 62px 0 55px; color: #fff; background: #073f30; }
.rl-page-content, .rl-content-wrap { padding-top: 60px; padding-bottom: 90px; }
.rl-page-content { max-width: 940px; }
.rl-page-content h2 { margin-top: 42px; font-family: var(--rl-display); font-size: 1.7rem; }
.rl-page-content h3 { margin-top: 30px; font-family: var(--rl-display); }
.rl-page-content p, .rl-page-content li { color: #4d5951; }
.rl-page-content a:not(.rl-button):not(.button):not(.rl-card-cta) { color: var(--rl-green); text-decoration: underline; }
.rl-page-hero .rl-eyebrow { color: var(--lyv-accent-on-dark, #92e6c8); }
.rl-page-content .rl-booking-results, .rl-page-content .rl-booking-options, .rl-page-content .woocommerce { max-width: none; }
.page-slug-vehicules .rl-page-content, .page-slug-reservation .rl-page-content, .page-slug-commande .rl-page-content, .rl-checkout-page .rl-page-content { width: min(calc(100% - 48px), var(--rl-container)); max-width: none; }

/* Booking results / options from plugin */
.rl-booking-summary { display: grid; grid-template-columns: repeat(4,1fr) auto; align-items: center; gap: 18px; margin: 0 0 35px; padding: 21px 24px; background: #fff; border: 1px solid var(--rl-line); border-radius: 15px; box-shadow: 0 12px 35px rgba(22,42,31,.06); }
.rl-booking-summary small { display: block; color: var(--rl-muted); font-size: .75rem; text-transform: uppercase; }
.rl-booking-summary strong { font-size: .8rem; }
.rl-edit-search { color: var(--rl-green); font-size: .78rem; font-weight: 700; }
.rl-progress { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 36px; counter-reset: steps; }
.rl-progress span { position: relative; display: flex; align-items: center; gap: 9px; color: #58645e; font-size: .75rem; font-weight: 700; }
.rl-progress span::before { display: grid; place-items: center; width: 28px; height: 28px; content: attr(data-step); color: #738078; background: #eef1ee; border-radius: 50%; }
.rl-progress span::after { position: absolute; z-index: -1; top: 14px; left: 32px; right: 5px; height: 1px; content: ""; background: var(--rl-line); }
.rl-progress span:last-child::after { display: none; }
.rl-progress .is-active { color: var(--rl-green); }
.rl-progress .is-active::before, .rl-progress .is-done::before { color: #fff; background: var(--rl-green); }
.rl-progress .is-done { color: var(--rl-ink); }
.rl-results-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 28px; }
.rl-results-heading h2 { margin: 0; font-family: var(--rl-display); font-size: 2rem; }
.rl-results-heading p { margin: 4px 0 0; }
.rl-results-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.rl-filter-chip { padding: 8px 13px; background: #fff; border: 1px solid var(--rl-line); border-radius: 999px; font-size: .7rem; }
.rl-results-grid { grid-template-columns: repeat(3,1fr); }
.rl-availability { color: var(--rl-green); font-size: .75rem; font-weight: 700; }
.rl-no-results { padding: 40px; text-align: center; background: var(--rl-cream); border-radius: var(--rl-radius); }

.rl-options-layout { display: grid; grid-template-columns: 1fr 350px; align-items: start; gap: 30px; }
.rl-selected-vehicle, .rl-option-block, .rl-order-side { background: #fff; border: 1px solid var(--rl-line); border-radius: 16px; }
.rl-selected-vehicle { display: grid; grid-template-columns: 235px 1fr; margin-bottom: 24px; overflow: hidden; }
.rl-selected-vehicle img { width: 100%; height: 100%; min-height: 160px; object-fit: cover; }
.rl-selected-copy { padding: 23px; }
.rl-selected-copy h2 { margin: 3px 0; font-family: var(--rl-display); }
.rl-selected-copy p { margin: 0; }
.rl-option-block { margin-bottom: 24px; padding: 26px; }
.rl-option-block h2 { margin: 0 0 5px; font-family: var(--rl-display); font-size: 1.4rem; }
.rl-option-block > p { margin: 0 0 20px; color: var(--rl-muted); font-size: .78rem; }
.rl-protection-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.rl-choice { position: relative; display: block; cursor: pointer; }
.rl-choice input { position: absolute; opacity: 0; }
.rl-choice-card { display: flex; flex-direction: column; height: 100%; min-height: 225px; padding: 19px; border: 1px solid var(--rl-line); border-radius: 13px; transition: .18s; }
.rl-choice input:checked + .rl-choice-card { border: 2px solid var(--rl-green); box-shadow: 0 0 0 3px rgba(5,122,85,.08); }
.rl-choice-card strong { font-family: var(--rl-display); font-size: 1rem; }
.rl-choice-card .rl-choice-price { margin: 8px 0 14px; color: var(--rl-green); font-size: .77rem; font-weight: 700; }
.rl-choice-card ul { margin: 0; padding: 0; list-style: none; color: var(--rl-muted); font-size: .75rem; }
.rl-choice-card li { margin: 6px 0; }
.rl-choice-card li::before { margin-right: 5px; color: var(--rl-green); content: "✓"; }
.rl-extras-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.rl-extra-card { display: flex; align-items: center; gap: 13px; min-height: 76px; padding: 14px; border: 1px solid var(--rl-line); border-radius: 12px; }
.rl-extra-card input { width: 18px; height: 18px; accent-color: var(--rl-green); }
.rl-extra-card div { display: flex; flex: 1; flex-direction: column; }
.rl-extra-card strong { font-size: .78rem; }
.rl-extra-card small { color: var(--rl-muted); font-size: .75rem; }
.rl-order-side { position: sticky; top: 25px; padding: 25px; }
.rl-order-side h2 { margin: 0 0 18px; font-family: var(--rl-display); font-size: 1.25rem; }
.rl-side-line { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-bottom: 1px solid #edf0ed; font-size: .75rem; }
.rl-side-line span { color: var(--rl-muted); }
.rl-side-total { display: flex; align-items: end; justify-content: space-between; margin: 22px 0; }
.rl-side-total span { font-weight: 700; }
.rl-side-total strong { color: var(--rl-green); font-family: var(--rl-display); font-size: 1.65rem; }
.rl-order-side .rl-button { width: 100%; }
.rl-secure-note { margin: 12px 0 0; color: var(--rl-muted); text-align: center; font-size: .75rem; }

/* WooCommerce */
.rl-shop-wrap { padding: 65px 0 90px; background: var(--rl-cream); }
.woocommerce .woocommerce-breadcrumb { color: var(--rl-muted); font-size: .75rem; }
.woocommerce div.product { padding: 28px; background: #fff; border-radius: var(--rl-radius); }
.woocommerce div.product .product_title { font-family: var(--rl-display); font-size: 2.35rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--rl-green); font-weight: 700; }
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce #payment #place_order, .woocommerce-page #payment #place_order, .woocommerce button.button, .woocommerce a.button { color: #fff; background: var(--rl-green); border-radius: 999px; }
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover, .woocommerce #payment #place_order:hover { background: var(--rl-green-dark); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container--default .select2-selection--single { min-height: 49px; padding: 10px 12px; background: #fff; border: 1px solid #cfd7d1; border-radius: 9px; }
.woocommerce form .form-row textarea { min-height: 105px; }
.woocommerce-checkout .col2-set, .woocommerce-page .col2-set { float: left; width: calc(62% - 18px); padding: 28px; background: #fff; border: 1px solid var(--rl-line); border-radius: var(--rl-radius); }
.woocommerce-checkout-review-order { float: right; width: calc(38% - 18px); }
.woocommerce-checkout-review-order-table, .woocommerce-checkout #payment { background: #fff !important; border: 1px solid var(--rl-line) !important; border-radius: 14px; }
.woocommerce-checkout #payment { margin-top: 18px; }
.woocommerce form.checkout > h3 { font-family: var(--rl-display); }
.woocommerce-checkout #order_review_heading { float: right; width: calc(38% - 18px); margin-top: 0; font-family: var(--rl-display); }
.woocommerce-order { padding: 32px; background: #fff; border-radius: var(--rl-radius); }
.rl-checkout-intro { margin: 0 0 25px; padding: 18px 20px; color: #134f3a; background: var(--rl-mint); border-radius: 12px; font-size: .78rem; }
.rl-document-card { max-width: 820px; margin: 0 auto; padding: clamp(28px,5vw,56px); border: 1px solid var(--rl-line); border-radius: 28px; background: linear-gradient(145deg, #fff 0%, #f2f8f4 100%); box-shadow: var(--rl-shadow); }
.rl-document-card__image { width: 100%; aspect-ratio: 16/9; margin-bottom: 30px; object-fit: cover; border-radius: 18px; }
.rl-document-card h2 { margin: 8px 0 14px; font-size: clamp(2rem,4vw,3.2rem); }
.rl-document-card p { color: var(--rl-muted); }
.rl-document-card ul { margin: 20px 0 28px; padding-left: 22px; }
.rl-document-card li { margin: 8px 0; }
.rl-contact-intro { display: grid; grid-template-columns: minmax(0,.8fr) minmax(420px,1.2fr); align-items: start; gap: clamp(28px,4.8vw,62px); margin-bottom: 40px; }
.rl-contact-intro h1 { margin: 8px 0 20px; font-family: var(--rl-display); font-size: clamp(2.03rem,3.7vw,3.9rem); line-height: 1.14; }
.rl-contact-intro p,.rl-contact-intro li { color: var(--rl-muted); }
.rl-contact-intro .lyvira-map { margin-top: 0; }
.rl-booking-confirmation { margin-bottom: 25px; padding: 22px; color: #134f3a; background: var(--rl-mint); border-left: 4px solid var(--rl-green); }

/* Footer */
.rl-site-footer { color: rgba(255,255,255,.72); background: #061f18; }
.rl-footer-news { width: min(calc(100% - 48px), var(--rl-container)); margin-inline: auto; padding: 55px 0; display: flex; align-items: center; justify-content: space-between; gap: 30px; color: #fff; border-bottom: 1px solid rgba(255,255,255,.12); }
.rl-footer-news h2 { font-size: 2.3rem; }
.rl-footer-news p { margin: 8px 0 0; color: rgba(255,255,255,.58); }
.rl-footer-news .rl-eyebrow { color: var(--lyv-accent-on-dark, #92e6c8); }
.rl-site-footer .rl-brand small { color: var(--lyv-accent-on-dark, #92e6c8); font-size: .75rem; letter-spacing: .22em; }
.rl-button-light { flex: 0 0 auto; color: var(--rl-ink); background: #fff; }
.rl-footer-grid { width: min(calc(100% - 48px), var(--rl-container)); margin-inline: auto; display: grid; grid-template-columns: 1.5fr repeat(3,1fr); gap: 60px; padding: 65px 0; }
.rl-brand-footer .rl-brand-copy strong { color: #fff; }
.rl-footer-brand > p { max-width: 310px; margin-top: 22px; color: rgba(255,255,255,.75); font-size: .9rem; line-height: 1.65; }
.rl-footer-grid h3 { margin: 0 0 19px; color: #fff; font-family: var(--rl-display); font-size: 1.05rem; }
.rl-footer-grid > div:not(:first-child) { display: flex; flex-direction: column; gap: 10px; }
.rl-footer-grid a, .rl-footer-grid p { margin: 0; font-size: .88rem; line-height: 1.5; }
.rl-footer-grid a:hover { color: var(--rl-lime); }
.rl-footer-bottom { width: min(calc(100% - 48px), var(--rl-container)); margin-inline: auto; display: flex; justify-content: space-between; padding: 20px 0 25px; border-top: 1px solid rgba(255,255,255,.1); font-size: .76rem; }
.rl-footer-bottom p { margin: 0; }

@media (max-width: 1100px) {
  .rl-primary-nav { display: none; position: absolute; top: 78px; left: 0; right: 0; padding: 20px 24px 25px; background: #fff; border-top: 1px solid var(--rl-line); box-shadow: 0 20px 35px rgba(0,0,0,.08); }
  .rl-site-header.is-menu-open .rl-primary-nav { display: block; }
  .rl-menu { align-items: stretch; flex-direction: column; gap: 0; }
  .rl-menu a { display: block; padding: 12px 0; }
  .rl-menu-toggle { display: block; }
  .rl-header-actions { margin-left: 0; }
  .rl-hero-content { grid-template-columns: .75fr 1.25fr; gap: 35px; }
  .rl-field-row-dates { grid-template-columns: 1fr 102px 1fr 102px; }
  .rl-vehicle-grid { grid-template-columns: repeat(2,1fr); }
  .rl-results-grid { grid-template-columns: repeat(2,1fr); }
  .rl-experience-grid { gap: 55px; }
  .rl-protection-grid { grid-template-columns: 1fr; }
  .rl-choice-card { min-height: auto; }
}

@media (max-width: 782px) {
	.rl-contact-intro { grid-template-columns: 1fr; }
  body.admin-bar .rl-site-header { top: 46px; }
  .rl-container { width: min(calc(100% - 30px), var(--rl-container)); }
  .rl-section { padding: 72px 0; }
  .rl-site-header { height: 68px; }
  .rl-header-inner { position: relative; width: calc(100% - 28px); max-width: calc(100vw - 28px); min-width: 0; gap: 14px; }
  .rl-primary-nav { top: 68px; }
  .rl-header-actions { display: none; }
  .rl-menu-toggle { position: absolute; top: 13px; right: 0; z-index: 2; display: block; background: var(--rl-green); border-radius: 50%; }
  .rl-menu-toggle > span:not(.screen-reader-text) { background: #fff; }
  .rl-brand-copy strong { font-size: 1.12rem; }
  .rl-brand-mark { width: 31px; transform: scale(.88) skewX(-10deg); transform-origin: left center; }
  .rl-hero { min-height: 930px; background-position: 63% center; }
  .rl-hero-overlay { background: linear-gradient(180deg, rgba(5,24,17,.83) 0%, rgba(5,24,17,.58) 47%, rgba(5,24,17,.25) 70%, rgba(5,24,17,.58)); }
  .rl-hero-content { grid-template-columns: minmax(0, 1fr); align-content: start; width: calc(100vw - 30px); max-width: calc(100vw - 30px); min-width: 0; min-height: 930px; padding-top: 0; }
  .rl-hero-copy { width: 100%; min-width: 0; padding-top: 60px; }
  .rl-hero-copy > p { max-width: 100%; overflow-wrap: anywhere; }
  .rl-hero h1 { max-width: 360px; font-size: clamp(2.55rem,10.8vw,3.35rem); line-height: 1.14; letter-spacing: -.035em; text-wrap: balance; }
	.rl-page-hero h1 { text-wrap: balance; }
  .rl-search-shell { align-self: auto; width: 100%; max-width: 100%; min-width: 0; margin: 20px 0 -70px; }
	.rl-how h2, .rl-faq h2, .rl-results-heading h2 { text-wrap: balance; }
  .rl-booking-search, .rl-search-tabs, .rl-search-body, .rl-field-row { width: 100%; max-width: 100%; min-width: 0; }
  .rl-search-tab { min-width: 0; padding-inline: 6px; overflow: hidden; font-size: .78rem; white-space: nowrap; }
  .rl-field, .rl-field input, .rl-field select { width: 100%; max-width: 100%; min-width: 0; }
  .rl-search-body { padding: 21px 17px 22px; }
  .rl-field-row-location { grid-template-columns: 1fr; }
  .rl-field-row-dates { grid-template-columns: 1fr 95px; }
  .rl-search-options { align-items: stretch; flex-direction: column; }
  .rl-search-submit { width: 100%; }
  .rl-trust-bar { padding-top: 98px; }
  .rl-trust-grid { grid-template-columns: 1fr 1fr; }
  .rl-trust-grid > div { justify-content: flex-start; border-right: 0; border-bottom: 1px solid var(--rl-line); }
  .rl-section-heading { align-items: start; flex-direction: column; }
  .rl-vehicle-grid, .rl-results-grid { grid-template-columns: 1fr; }
  .rl-how-grid { grid-template-columns: 1fr 1fr; }
  .rl-how-grid article { min-height: 235px; border-bottom: 1px solid var(--rl-line); }
  .rl-how-grid article:nth-child(2) { border-right: 0; }
  .rl-experience-grid, .rl-faq-grid { grid-template-columns: 1fr; gap: 52px; }
  .rl-experience ul { grid-template-columns: 1fr; }
  .rl-experience-card { transform: none; }
  .rl-booking-summary { grid-template-columns: 1fr 1fr; }
  .rl-progress span { font-size: 0; }
  .rl-progress span::after { left: 33px; }
  .rl-results-heading { align-items: start; flex-direction: column; gap: 15px; }
  .rl-options-layout { grid-template-columns: 1fr; }
  .rl-order-side { position: static; }
  .rl-selected-vehicle { grid-template-columns: 1fr; }
  .rl-extras-grid { grid-template-columns: 1fr; }
  .woocommerce-checkout .col2-set, .woocommerce-page .col2-set, .woocommerce-checkout-review-order, .woocommerce-checkout #order_review_heading { float: none; width: 100%; }
  .woocommerce-checkout-review-order { margin-top: 25px; }
  .woocommerce-checkout #order_review_heading { margin-top: 30px; }
  .rl-footer-news { align-items: flex-start; flex-direction: column; }
  .rl-footer-grid { grid-template-columns: 1fr 1fr; gap: 42px 25px; }
  .rl-footer-brand { grid-column: 1 / -1; }
  .rl-footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media (max-width: 520px) {
  .rl-hero { min-height: 1020px; }
  .rl-hero-content { min-height: 1020px; }
  .rl-field-row-dates { grid-template-columns: 1fr; }
  .rl-search-tabs { grid-template-columns: 1fr 1fr; }
  .rl-trust-grid, .rl-how-grid { grid-template-columns: 1fr; }
  .rl-how-grid article { border-right: 0; }
  .rl-experience-card { min-height: 500px; }
  .rl-booking-summary { grid-template-columns: 1fr; }
  .rl-protection-grid { grid-template-columns: 1fr; }
  .rl-footer-grid { grid-template-columns: 1fr; }
}
b,strong{font-weight:700}
small,sub,sup{font-size:max(12px,.875em)}
h1,h2,h3,h4{padding-bottom:.08em}

/* Accessibilité : le focus doit se voir, sinon la navigation au clavier est
   aveugle (RGAA 10.7). */
:focus-visible{outline:3px solid var(--rl-green-dark);outline-offset:3px}
/* Et une animation ne s'impose pas à qui a demandé qu'on la lui épargne. */
@media(prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

/* Petits écrans : l'espacement fixe de l'en-tête faisait déborder la page sous
   340 px, et les liens du menu tenaient sur 21 px de haut — sous les 24 px du
   critère de taille de cible (WCAG 2.5.8). */
@media(max-width:560px){
	.rl-nav a, .rl-mobile-nav a,footer a,.woocommerce-breadcrumb a{min-height:44px;display:inline-flex;align-items:center}
}

/* Un menu de pied sort des <li>, le repli des <a> nus : la colonne doit avoir
   le même aspect dans les deux cas, sinon personnaliser son site le dégrade. */
.rl-footer-grid li { list-style: none; margin: 0; padding: 0; display: block; }


/* Vingt-quatre pixels de haut, à toutes les largeurs.
   La règle de taille de cible n'existait qu'en dessous de 560 px : au-delà, les
   liens du menu et du pied retombaient à 15–17 px de haut, sous le minimum de
   24 px du critère 2.5.8. Personne ne l'avait vu parce qu'aucun contrôle ne
   mesurait entre le téléphone et le bureau. Vingt-quatre pixels ne changent pas
   l'aspect d'une barre de 76 px ; ils changent la vie d'un doigt sur tablette. */
.rl-primary-nav a, footer a { min-height: 24px; display: inline-flex; align-items: center; }

/* Les deux encres du pied de page, exposées pour le module.
   La carte de contact d'un pied construit avec Elementor est mise à plat par le
   module, qui ne peut pas deviner sur quelle couleur elle atterrit : le thème
   la lui dit ici. */
:root {
	--lyv-pied-texte: #e9f6f0;
	--lyv-pied-lien: #a9d8c6;
}

/* Questions dépliables (bloc « Détails » de l'éditeur) : la page des questions
   fréquentes livrée avec la démonstration, et toute question que le client
   ajoute lui-même. Couleurs de la palette du Theme Studio. */
.wp-block-details{margin:0 0 12px;padding:14px 18px;background:#fff;border:1px solid var(--rl-line,rgba(0,0,0,.12));border-radius:14px}
.wp-block-details summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;font-weight:700;font-size:1.05rem;line-height:1.35}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details summary::before{content:"+";flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--lyv-accent,#333);color:var(--lyv-accent-text,#fff);font-size:1.1rem;font-weight:700;line-height:1}
.wp-block-details[open] summary::before{content:"–"}
.wp-block-details>:not(summary){margin:10px 0 0 38px}
.wp-block-details>:not(summary):last-child{margin-bottom:4px}

/* V13 — finition transversale. Aucun contenu n'est ajouté ici : les six
   langues conservent exactement les mêmes chaînes et les textes longs restent
   libres de se replier. */
.rl-site-header{
	position:sticky;
	top:0;
	height:72px;
	box-shadow:0 12px 32px rgba(10,31,20,.08);
}
.rl-header-inner{gap:clamp(18px,2.2vw,34px)}
.rl-menu{gap:clamp(17px,2vw,31px)}
.rl-menu a{padding:24px 0;line-height:1.25;text-wrap:balance}
.rl-menu a::after{bottom:17px}
.rl-brand-mark,.rl-header-account{filter:drop-shadow(0 8px 18px rgba(5,122,85,.16))}
.rl-header-account{transition:transform .2s ease,box-shadow .2s ease}
.rl-header-account:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(10,31,20,.16)}
.rl-section{padding:82px 0}
.rl-section-heading{margin-bottom:34px}
.rl-how-grid{margin-top:38px;background:linear-gradient(135deg,#fff,var(--rl-cream))}
.rl-how-grid article{min-height:215px;padding:29px 25px;background:rgba(255,255,255,.76)}
.rl-how h3{margin-top:23px}
.rl-site-footer{position:relative;isolation:isolate;overflow:hidden;background:#061f18}
.rl-site-footer::before{position:absolute;z-index:-1;inset:0;content:"";background:radial-gradient(circle at 12% 18%,rgba(146,230,200,.13),transparent 29%),radial-gradient(circle at 88% 78%,rgba(240,244,74,.08),transparent 31%)}
.rl-footer-news{padding:44px 0}
.rl-footer-grid{gap:clamp(28px,4vw,54px);padding:48px 0}
.rl-footer-grid>div:not(:first-child){padding-left:18px;border-left:1px solid rgba(255,255,255,.1)}
.rl-footer-grid a{transition:color .18s ease,transform .18s ease}
.rl-footer-grid a:hover{transform:translateX(3px)}
@media(max-width:900px){
	.rl-site-header{height:68px}
	.rl-footer-grid>div:not(:first-child){padding-left:0;border-left:0}
}
@media(max-width:560px){
	.rl-section{padding:58px 0}
	.rl-how-grid{margin-top:28px}
	.rl-how-grid article{min-height:0;padding:24px 20px}
	.rl-footer-news,.rl-footer-grid{padding:36px 0}
}

/* Bandeau : un téléphone charge une image de 820 px (32 Ko) au lieu de l'original (M11). */
@media (max-width: 767px) { .rl-hero { background-image: var(--rl-hero-image-mobile, var(--rl-hero-image)); } }

/* Un mot trop long ne pousse plus la page hors de l'écran.
   Mesuré le 26 septembre 2026, à 375 px de large : l'accueil allemand de la
   démonstration outillage débordait de 22 px, alors que les cinq autres
   langues tenaient exactement dans la fenêtre. La cause n'était pas la mise en
   page mais un mot : « EINZELMASCHINE », « Verbrauchsmaterial ». L'allemand
   compose des mots que rien ne coupe, et un client peut nommer son bien aussi
   longuement qu'il veut, dans n'importe quelle langue.
   La règle ne s'applique que lorsqu'un mot ne tient pas : ce qui tenait déjà
   ne bouge pas. */
h1, h2, h3, h4, h5, h6, p, li, dt, dd, figcaption, th, td, summary, label,
blockquote, .wp-block-heading {
	overflow-wrap: break-word;
}
