@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/InterVariable.woff2") format("woff2-variations"),url("../fonts/InterVariable.woff2") format("woff2");}
:root {
	--lw-ink: #050d14;
	--lw-ink-soft: #162028;
	--lw-violet: #8976fd;
	--lw-yellow: #ffd43b;
	--lw-paper: #f5f4f0;
	--lw-white: #fff;
	--lw-muted: #677078;
	--lw-line: rgba(5, 13, 20, .14);
	--lw-shell: min(1220px, calc(100% - 48px));
	--lw-shadow: 0 24px 60px rgba(5, 13, 20, .16);
}


/* 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.lw-site { margin: 0; overflow-x: hidden; background: var(--lw-paper); color: var(--lw-ink); font: 16px/1.6 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.screen-reader-text,.lw-skip { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.lw-skip:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; clip: auto; margin: 0; padding: 10px; background: #fff; }
.lw-shell { width: var(--lw-shell); margin-inline: auto; }

.lw-header { position: sticky; z-index: 900; top: 0; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--lw-line); backdrop-filter: blur(14px); }
.admin-bar .lw-header { top: 32px; }
.lw-header__inner { height: 76px; display: flex; align-items: center; gap: 34px; }
.lw-brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; text-decoration: none; }
.lw-brand > span:last-child { display: grid; line-height: 1.14; }
.lw-brand strong { font-size: 17px; font-weight: 800; letter-spacing: .14em; }
.lw-brand small { margin-top: 6px; color: var(--lw-muted); font-size: 12px; font-weight: 700; letter-spacing: .18em; }
.lw-brand__mark { position: relative; width: 36px; height: 36px; background: var(--lw-violet); border-radius: 9px 14px 9px 14px; transform: rotate(-4deg); }
.lw-brand__mark i { position: absolute; top: 9px; width: 5px; height: 18px; background: #fff; border-radius: 4px; transform: skew(-18deg); }
.lw-brand__mark i:nth-child(1) { left: 8px; }
.lw-brand__mark i:nth-child(2) { left: 16px; top: 14px; height: 13px; }
.lw-brand__mark i:nth-child(3) { left: 24px; top: 19px; height: 8px; }
.lw-nav { display: flex; align-items: center; justify-content: center; gap: clamp(20px,3vw,42px); margin-left: auto; }
.lw-nav a { font-size: 12px; font-weight: 700; text-decoration: none; }
.lw-nav a:hover { color: #6e45e9; }
.lw-header__cta,.lw-button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 48px; padding: 12px 19px; background: var(--lw-violet); color: #fff; font-size: 12px; font-weight: 700; text-decoration: none; border-radius: 999px; }
.lw-header__cta span,.lw-button span { font-size: 18px; }
.lw-menu { display: none; width: 42px; height: 42px; padding: 10px; background: var(--lw-ink); border: 0; border-radius: 10px; }
.lw-menu span { display: block; height: 2px; margin: 4px 0; background: #fff; }

.lw-hero { position: relative; min-height: 710px; padding: 95px 0 82px; color: #fff; background: var(--lw-ink) var(--lw-hero) center/cover no-repeat; }
.lw-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,13,20,.95) 0%,rgba(5,13,20,.78) 43%,rgba(5,13,20,.18) 100%); }
.lw-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0,.85fr) minmax(440px,.62fr); align-items: center; justify-content: space-between; gap: 80px; }
.lw-kicker,.lw-eyebrow { display: inline-block; color: var(--lw-violet); font-size: 12px; font-weight: 800; letter-spacing: .19em; }
.lw-kicker { color: var(--lw-yellow); }
.lw-hero h1 { margin: 20px 0 26px; font-size: clamp(38px,4.4vw,62px); line-height: 1.14; letter-spacing: -.065em; }
.lw-hero__copy > p { max-width: 530px; margin: 0; color: #d4d8db; font-size: 17px; }
.lw-hero__proof { display: flex; gap: 30px; margin-top: 54px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.18); }
.lw-hero__proof span { color: #b9c0c4; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lw-hero__proof b { display: block; margin-bottom: 3px; color: #fff; font-size: 23px; letter-spacing: 0; text-transform: none; }

.lw-search-card { padding: 29px; background: #fff; color: var(--lw-ink); border-top: 6px solid var(--lw-yellow); border-radius: 16px; box-shadow: 0 30px 70px rgba(0,0,0,.25); }
.lw-search-card__label { font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.lw-search { margin-top: 19px; }
.lw-search__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.lw-field { display: grid; gap: 6px; }
.lw-field--wide { grid-column: 1/-1; }
.lw-field label { color: #626b72; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lw-field input,.lw-field select,.lw-field textarea { width: 100%; min-height: 47px; padding: 10px 12px; background: #f5f5f3; border: 1px solid #dadee0; border-radius: 7px; color: var(--lw-ink); }
.lw-search button,.lw-booking-form button { width: 100%; min-height: 50px; margin-top: 16px; background: var(--lw-yellow); color: var(--lw-ink); border: 0; border-radius: 8px; font-size: 12px; font-weight: 800; cursor: pointer; }
.lw-search small { display: block; margin-top: 12px; color: var(--lw-muted); font-size: 12px; text-align: center; }

.lw-trust { background: #fff; border-bottom: 1px solid var(--lw-line); }
.lw-trust .lw-shell { display: grid; grid-template-columns: repeat(4,1fr); }
.lw-trust .lw-shell > div { display: flex; align-items: center; gap: 14px; padding: 23px 20px; border-right: 1px solid var(--lw-line); }
.lw-trust .lw-shell > div:first-child { border-left: 1px solid var(--lw-line); }
.lw-trust i { display: grid; place-items: center; width: 34px; height: 34px; background: #f0edff; color: #6e45e9; font-style: normal; border-radius: 50%; }
.lw-trust span { display: grid; }
.lw-trust strong { font-size: 12px; }
.lw-trust small { color: var(--lw-muted); font-size: 12px; }

.lw-section { padding: 110px 0; }
.lw-heading { display: flex; align-items: end; justify-content: space-between; gap: 55px; margin-bottom: 55px; }
.lw-heading h2,.lw-advice h2,.lw-page h1,.lw-shop h1 { margin: 10px 0 0; font-size: clamp(40px,4.6vw,62px); line-height: 1.14; letter-spacing: -.055em; }
.lw-heading > a { margin-bottom: 5px; font-size: 12px; font-weight: 700; text-underline-offset: 5px; }
.lw-heading > a b { margin-left: 8px; }
.lw-heading > p { max-width: 390px; margin: 0; color: #bdc4c8; font-size: 13px; }

.lw-product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.lw-product-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--lw-line); border-radius: 13px; }
.lw-product-card__image { position: relative; overflow: hidden; background: #efeeeb; }
.lw-product-card__image img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .35s ease; }
.lw-product-card:hover img { transform: scale(1.025); }
.lw-product-card__image span { position: absolute; top: 11px; left: 11px; padding: 6px 8px; background: var(--lw-ink); color: #fff; font-size: 12px; font-weight: 700; border-radius: 4px; }
.lw-product-card__body { display: flex; flex-direction: column; flex: 1; padding: 19px; }
.lw-product-card__body > small { color: #687178; font-size: 12px; font-weight: 700; letter-spacing: .13em; }
.lw-product-card h3 { margin: 8px 0; font-size: 20px; line-height: 1.1; }
.lw-product-card__meta { display: flex; gap: 12px; margin: 5px 0 18px; color: var(--lw-muted); font-size: 12px; }
.lw-product-card__footer { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--lw-line); }
.lw-product-card__footer strong { display: grid; font-size: 20px; line-height: 1.14; }
.lw-product-card__footer strong small { margin-top: 4px; color: var(--lw-muted); font-size: 12px; font-weight: 600; }
.lw-product-card__footer a { padding: 9px 11px; background: var(--lw-violet); color: #fff; font-size: 12px; font-weight: 700; text-decoration: none; border-radius: 999px; }

.lw-services { background: var(--lw-ink); color: #fff; }
.lw-heading--light .lw-eyebrow { color: var(--lw-yellow); }
.lw-service-grid { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid rgba(255,255,255,.15); }
.lw-service-grid article { min-height: 250px; padding: 30px; border-right: 1px solid rgba(255,255,255,.15); }
.lw-service-grid article:last-child { border: 0; }
.lw-service-grid article > span { color: var(--lyv-accent-on-dark, #b8cdf0); font-size: 12px; font-weight: 700; }
.lw-service-grid h3 { margin: 75px 0 8px; font-size: 24px; }
.lw-service-grid p { margin: 0; color: #abb4b9; font-size: 12px; }

.lw-advice { background: #fff; }
.lw-advice__inner { display: grid; grid-template-columns: 1fr .75fr; align-items: center; gap: 100px; }
.lw-advice__inner > div > p { max-width: 560px; color: var(--lw-muted); font-size: 14px; }
.lw-advice .lw-button { margin-top: 20px; }
.lw-advice aside { padding: 36px; background: var(--lw-paper); border-left: 6px solid var(--lw-yellow); }
.lw-advice aside > img { width: calc(100% + 72px); max-width: none; height: 290px; margin: -36px -36px 30px; object-fit: cover; }
.lw-advice aside > strong { font-size: 21px; }
.lw-advice ul { list-style: none; padding: 0; margin: 23px 0 0; }
.lw-advice li { position: relative; margin: 13px 0; padding-left: 23px; color: var(--lw-muted); font-size: 12px; }
.lw-advice li::before { position: absolute; content: "✓"; left: 0; color: #6e45e9; font-weight: 700; }

.lw-page,.lw-shop { min-height: 65vh; padding: 90px 0 110px; }
.lw-prose { max-width: 900px; }
.lw-prose h1 { margin-bottom: 45px; }
.lw-prose h2 { margin-top: 38px; font-size: 28px; }
.lw-prose p,.lw-prose li { color: #4f5960; }
.lw-prose a { color: #6e45e9; }
.lw-contact-layout { display: grid; grid-template-columns: minmax(0,.8fr) minmax(420px,1.2fr); align-items: center; gap: clamp(28px,4.8vw,62px); }
.lw-contact-layout h1 { margin: 12px 0 22px; }
.lw-contact-layout p,.lw-contact-layout li { color: var(--lw-muted); }
.lw-contact-layout img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 20px; box-shadow: var(--lw-shadow); }
.lw-booking-layout { display: grid; grid-template-columns: minmax(260px,.55fr) minmax(0,1fr); gap: 55px; align-items: start; }
.lw-booking-summary { overflow: hidden; background: #fff; border: 1px solid var(--lw-line); border-radius: 15px; }
.lw-booking-summary img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.lw-booking-summary div { padding: 25px; }
.lw-booking-summary small { color: var(--lw-muted); font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.lw-booking-summary h2 { margin: 8px 0; font-size: 31px; }
.lw-booking-summary strong { display: block; margin-top: 18px; font-size: 24px; }
.lw-booking-summary strong small { letter-spacing: 0; }
.lw-booking-form { padding: 34px; background: #fff; border-top: 6px solid var(--lw-violet); border-radius: 15px; box-shadow: var(--lw-shadow); }
.lw-booking-form h2 { margin: 0 0 8px; font-size: 32px; }
.lw-booking-form > p { margin: 0 0 25px; color: var(--lw-muted); font-size: 12px; }
.lw-booking-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.lw-booking-form .lw-field--wide { grid-column: 1/-1; }
.lw-notice { padding: 12px 14px; margin-bottom: 20px; background: #fff3c2; border-left: 4px solid var(--lw-yellow); font-size: 12px; }

.woocommerce .woocommerce-breadcrumb { color: var(--lw-muted); font-size: 12px; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { float: none!important; width: auto!important; margin: 0!important; padding: 17px; background: #fff; border: 1px solid var(--lw-line); border-radius: 13px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 20px; }
.woocommerce ul.products li.product .price,.woocommerce div.product p.price { color: var(--lw-ink); font-weight: 700; }
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button.alt,.woocommerce button.button.alt { padding: 12px 16px; background: var(--lw-violet); color: #fff; font-size: 12px; border-radius: 999px; }
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover { background: #6e45e9; color: #fff; }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce select { min-height: 46px; padding: 10px 12px; background: #fff; border: 1px solid var(--lw-line); border-radius: 7px; }
.woocommerce table.shop_table { background: #fff; border-color: var(--lw-line); border-radius: 12px; }
.woocommerce-checkout #payment { background: #edebf8; border-radius: 12px; }
.woocommerce-error,.woocommerce-info,.woocommerce-message { background: #fff; border-top-color: var(--lw-violet); }

.lw-footer { padding: 75px 0 25px; background: #03080c; color: #fff; }
.lw-footer__top { display: grid; grid-template-columns: 1.5fr repeat(3,1fr); gap: 50px; padding-bottom: 55px; }
.lw-brand--footer { color: #fff; }
.lw-brand--footer small { color: #c4d0d8; font-size: 12px; }
.lw-footer__top > div { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.lw-footer__top > div:first-child p { max-width: 300px; color: #b3c0c7; font-size: 14px; line-height: 1.65; }
.lw-footer__top > div > strong { margin-bottom: 10px; color: var(--lyv-accent-on-dark, #b8cdf0); font-size: 12px; letter-spacing: .14em; }
.lw-footer__top a,.lw-footer__top span { color: #c0cbd0; font-size: 14px; line-height: 1.5; text-decoration: none; }
.lw-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.13); color: #a4b1b8; font-size: 12px; font-weight: 700; letter-spacing: .08em; }

@media(max-width:1050px){
	:root{--lw-shell:min(100% - 40px,930px)}
	.lw-hero__inner{grid-template-columns:minmax(0,.8fr) minmax(390px,.7fr);gap:40px}
	.lw-hero h1{font-size:65px}
	.lw-product-grid{grid-template-columns:repeat(2,1fr)}
	.lw-footer__top{grid-template-columns:1.3fr repeat(3,1fr);gap:28px}
}

@media(max-width:850px){
	.lw-contact-layout{grid-template-columns:1fr}
	.admin-bar .lw-header{top:46px}
	.lw-menu{display:block;margin-left:auto}
	.lw-header__cta{display:none}
	.lw-nav{position:fixed;inset:76px 0 auto;display:none;flex-direction:column;align-items:stretch;gap:0;padding:20px;background:#fff;border-bottom:1px solid var(--lw-line);box-shadow:0 20px 35px rgba(5,13,20,.15)}
	.admin-bar .lw-nav{top:122px}
	.lw-nav.is-open{display:flex}
	.lw-nav a{padding:13px;border-bottom:1px solid var(--lw-line);font-size:17px}
	.lw-hero{min-height:auto;padding:75px 0}
	.lw-hero__inner{grid-template-columns:1fr}
	.lw-hero__copy{max-width:660px}
	.lw-search-card{max-width:650px}
	.lw-trust .lw-shell{grid-template-columns:repeat(2,1fr)}
	.lw-heading{align-items:flex-start;flex-direction:column;gap:20px}
	.lw-service-grid{grid-template-columns:repeat(2,1fr)}
	.lw-service-grid article:nth-child(2){border-right:0}
	.lw-service-grid article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.15)}
	.lw-advice__inner{grid-template-columns:1fr;gap:50px}
	.lw-booking-layout{grid-template-columns:1fr}
	.lw-booking-summary{max-width:460px}
	.lw-footer__top{grid-template-columns:repeat(2,1fr)}
	.woocommerce ul.products{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:560px){
	:root{--lw-shell:calc(100% - 30px)}
	.lw-header__inner{height:64px}
	.lw-nav{top:64px}
	.admin-bar .lw-nav{top:110px}
	.lw-brand strong{font-size:14px}
	.lw-brand__mark{width:33px;height:33px}
	.lw-hero{padding:58px 0 62px;background-position:62% center}
	.lw-hero__shade{background:linear-gradient(180deg,rgba(5,13,20,.9),rgba(5,13,20,.78))}
	.lw-hero h1{font-size:51px}
	.lw-hero__copy>p{font-size:15px}
	.lw-hero__proof{justify-content:space-between;gap:10px;margin-top:38px}
	.lw-hero__proof b{font-size:18px}
	.lw-search-card{padding:21px;margin-top:5px}
	.lw-search__grid,.lw-booking-form__grid{grid-template-columns:1fr}
	.lw-field--wide,.lw-booking-form .lw-field--wide{grid-column:auto}
	.lw-trust .lw-shell{grid-template-columns:1fr}
	.lw-trust .lw-shell>div,.lw-trust .lw-shell>div:first-child{padding:16px 5px;border-left:0;border-right:0;border-bottom:1px solid var(--lw-line)}
	.lw-section{padding:72px 0}
	.lw-heading h2,.lw-advice h2,.lw-page h1,.lw-shop h1{font-size:36px;line-height:1.14;letter-spacing:-.035em}
	.lw-catalog .lw-heading h2{font-size:33px}
	.lw-product-grid{grid-template-columns:1fr}
	.lw-service-grid{grid-template-columns:1fr}
	.lw-service-grid article{min-height:210px;border-right:0;border-bottom:1px solid rgba(255,255,255,.15)!important}
	.lw-service-grid h3{margin-top:48px}
	.lw-advice aside{padding:27px}
	.lw-advice aside>img{width:calc(100% + 54px);margin:-27px -27px 26px}
	.lw-booking-form{padding:24px 20px}
	.lw-footer__top{grid-template-columns:1fr;gap:32px}
	.lw-footer__bottom{align-items:flex-start;flex-direction:column}
	.woocommerce ul.products{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(--lw-violet);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){
	.lw-header__inner{gap:12px;column-gap:12px;flex-wrap:nowrap;min-width:0}
	.lw-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. */
.lw-footer li { list-style: none; margin: 0; padding: 0; display: block; }

/* La navigation vient d'un menu WordPress : ses liens sont dans une liste.
   Le thème ne stylait que son repli — des liens nus — et le vrai menu
   s'affichait donc avec des puces, chaque libellé replié sur deux lignes. */
.lw-nav .lw-nav-list { display: flex; align-items: center; gap: inherit; margin: 0; padding: 0; list-style: none; }
.lw-nav .lw-nav-list > li { margin: 0; padding: 0; list-style: none; }
/* Pas de `nowrap` ici : entre le pli mobile et le grand écran, la barre
   n'a pas la place de tout tenir sur une ligne. Un libellé qui se replie
   sur deux lignes reste lisible ; un menu qui sort de l'écran, non. */
.lw-nav .lw-nav-list { min-width: 0; }
@media(max-width:850px){
	.lw-nav .lw-nav-list { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
	.lw-nav .lw-nav-list > li > a { display: flex; width: 100%; }
}

/* Entre le pli du thème et le grand écran, la barre n'a pas la place de tout tenir.
   Mesuré : à 880 px, cinq libellés français, la marque et le bouton d'appel
   demandent plus que la largeur disponible — les libellés se repliaient alors
   sur trois lignes. Deux thèmes voisins basculent en menu déroulant dès 900 px
   et sont parfaitement lisibles là où ceux-ci s'entassent. On applique la même
   réponse : la navigation se replie, le reste de la mise en page ne bouge pas. */
@media(min-width:851px) and (max-width:1000px){
	.lw-menu { display: block; margin-left: auto; }
	.lw-header__cta { display: none; }
	.lw-nav {
		position: fixed;
		inset: 76px 0 auto;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 20px;
		background: #fff;
		border-bottom: 1px solid var(--lw-line);
		box-shadow: 0 20px 35px rgba(5, 13, 20, .15);
	}
	.admin-bar .lw-nav { top: 108px; }
	.lw-nav.is-open { display: flex; }
	.lw-nav a { padding: 13px; border-bottom: 1px solid var(--lw-line); font-size: 17px; }
	.lw-nav .lw-nav-list { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
	.lw-nav .lw-nav-list > li > a { display: flex; width: 100%; }
}

/* 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. */
.lw-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: #c0cbd0;
	--lyv-pied-lien: #ffd43b;
}

/* 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(--lw-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 — densité et finition, sans nouvelle chaîne visible. */
.lw-header{box-shadow:0 12px 34px rgba(5,13,20,.13)}
.lw-header__inner{height:70px;gap:clamp(18px,2.2vw,34px)}
.lw-nav{gap:clamp(16px,2.2vw,36px)}
.lw-nav a{line-height:1.25;text-wrap:balance}
.lw-nav .current-menu-item>a{box-shadow:inset 0 -2px 0 var(--lw-violet)}
.lw-brand__mark{box-shadow:0 10px 22px rgba(110,69,233,.24)}
/* Le logo importé dans un en-tête Elementor reste éditable et peut être la
   variante sombre. Un fond neutre garantit sa lisibilité quelle que soit la
   couleur de menu choisie dans Theme Studio, sans imposer un second logo. */
header#masthead .hfe-site-logo a{padding:7px 10px;background:rgba(255,255,255,.96);border:1px solid rgba(5,13,20,.08);border-radius:12px;box-shadow:0 8px 20px rgba(5,13,20,.12)}
.lw-header__cta{box-shadow:0 10px 24px rgba(5,13,20,.18);transition:transform .2s ease,box-shadow .2s ease}
.lw-header__cta:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(5,13,20,.24)}
.lw-section{padding:84px 0}
.lw-heading{margin-bottom:38px}
.lw-service-grid article{min-height:210px;padding:26px}
.lw-service-grid h3{margin-top:42px}
.lw-advice__inner{gap:clamp(42px,6vw,86px)}
.lw-footer{position:relative;isolation:isolate;overflow:hidden}
.lw-footer::before{position:absolute;z-index:-1;inset:0;content:"";background:radial-gradient(circle at 12% 18%,rgba(137,118,253,.14),transparent 30%),radial-gradient(circle at 90% 82%,rgba(255,212,59,.08),transparent 31%)}
.lw-footer__top{gap:clamp(28px,4vw,52px);padding:48px 0}
.lw-footer__top>div:not(:first-child){padding-left:18px;border-left:1px solid rgba(255,255,255,.12)}
.lw-footer__top a{transition:color .18s ease,transform .18s ease}
.lw-footer__top a:hover{color:var(--lyv-pied-lien,#ffd43b);transform:translateX(3px)}
@media(max-width:900px){
	.lw-header__inner{height:68px}
	.lw-footer__top>div:not(:first-child){padding-left:0;border-left:0}
}
@media(max-width:560px){
	.lw-section{padding:56px 0}
	.lw-service-grid article{min-height:0;padding:24px 20px}
	.lw-service-grid h3{margin-top:24px}
	.lw-footer__top{padding:38px 0}
}

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

/* L'en-tête livré est sombre, mais Elementor pose sa couleur de texte sur
   chaque composant — jamais sur la bande elle-même. Tout ce qui hérite y
   recevait donc la couleur du corps, soit très exactement celle du fond :
   invisible, avec un contraste de 1 pour 1. Le sélecteur de langue livré avec
   le module l'a révélé ; n'importe quel ajout de l'acheteur aurait disparu de
   la même façon. La bande déclare donc sa couleur. */
#masthead,
.elementor-location-header { color: #fff; }

/* En-tête sur un téléphone étroit. Mesuré en ligne à 320 px : la marque fait
   232 px à elle seule, et le sélecteur de langue sortait de l'écran de 15 px —
   toute la page glissait avec lui. Sous 430 px la marque garde « LYVIRA » et
   laisse tomber sa baseline : elle n'est plus lisible à cette taille, et c'est
   elle qui coûtait le plus large. Vérifié sans débordement de 320 à 560 px. */
@media (max-width: 430px) {
	.lw-brand small { display: none; }
}

/* 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;
}
