/**
 * Recherche globale — page de résultats + overlay de saisie. Préfixe .lv-gs
 * D'après la maquette « Résultats de recherche » (claude.ai/design).
 */

.lv-gs {
	background: #fefcfb;
	color: #2c2e33;
}
.lv-gs * { box-sizing: border-box; }

/* ── Bandeau + barre de recherche ─────────────────────────────── */

.lv-gs__hero {
	position: relative;
	background: linear-gradient(180deg, #2c2e33 0%, #181a1f 100%);
	/* Le header du site est fixé par-dessus : on dégage le bandeau dessous. */
	padding: 180px 24px 58px;
	text-align: center;
}

.lv-gs__hero::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 6px;
	background: linear-gradient(90deg, #ffe3b5 0%, #c09a53 50%, #905a20 100%);
}

.lv-gs__eyebrow {
	margin: 0 0 16px;
	font-family: 'Open Sans', sans-serif;
	font-size: 12px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: #e8c88f;
}

.lv-gs__title {
	margin: 0 0 34px;
	font-family: 'Baskervville', serif;
	font-weight: 400;
	font-size: clamp(42px, 5vw, 72px);
	line-height: 1;
	color: #f9f7f2;
}

.lv-gs__title em { font-style: italic; }

.lv-gs__bar {
	position: relative;
	width: min(760px, 100%);
	margin: 0 auto;
	color: #a17451;
}

.lv-gs__bar svg {
	position: absolute;
	left: 26px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
}

/* .lv-gs__bar en préfixe : bat la spécificité des styles de formulaire
   GeneratePress (input[type="search"]). */
.lv-gs__bar .lv-gs__input,
.lv-gs__bar .lv-gs__input:focus {
	width: 100%;
	padding: 21px 60px 21px 62px;
	border-radius: 999px;
	border: 1px solid rgba(161, 116, 81, 0.35);
	outline: none;
	background: #fff;
	font-family: 'Baskervville', serif;
	font-size: 21px;
	color: #2c2e33;
	box-shadow: 0 18px 40px -22px rgba(126, 74, 37, 0.25);
	transition: all 260ms ease;
	appearance: none;
	-webkit-appearance: none;
}

.lv-gs__bar .lv-gs__input:focus {
	border-color: #c09a53;
	box-shadow: 0 24px 50px -18px rgba(192, 154, 83, 0.4);
}

.lv-gs__input::placeholder { color: rgba(107, 98, 85, 0.55); font-style: italic; }
.lv-gs__input::-webkit-search-cancel-button { -webkit-appearance: none; }

.lv-gs__clear,
.lv-gs__clear:hover,
.lv-gs__clear:focus,
.lv-gs__clear:active {
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
	height: 34px;
	padding: 0;
	border-radius: 50%;
	border: none;
	background: #f2e7d6;
	color: #7e4a25;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
}

/* ── Compteur + pastilles de filtre ───────────────────────────── */

.lv-gs__toolbar {
	max-width: 1320px;
	margin: 0 auto;
	padding: 34px 48px 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.lv-gs__count {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 15px;
	color: #5c5548;
	margin-right: 10px;
}

.lv-gs__count strong { font-weight: 600; color: #2c2e33; }

.lv-gs__count em {
	font-family: 'Baskervville', serif;
	font-style: italic;
	color: #7e4a25;
}

.lv-gs__chips { display: flex; flex-wrap: wrap; gap: 12px; }

.lv-gs__chip,
.lv-gs__chip:hover,
.lv-gs__chip:focus,
.lv-gs__chip:active {
	font-family: 'Open Sans', sans-serif;
	font-size: 13.5px;
	padding: 9px 18px;
	border-radius: 999px;
	cursor: pointer;
	white-space: nowrap;
	border: 1px solid rgba(161, 116, 81, 0.35);
	background: transparent;
	color: #5c5548;
	transition: all 220ms ease;
}

.lv-gs__chip:hover,
.lv-gs__chip:focus { border-color: #2c2e33; color: #2c2e33; }

.lv-gs__chip.is-active,
.lv-gs__chip.is-active:hover,
.lv-gs__chip.is-active:focus {
	border-color: #2c2e33;
	background: #2c2e33;
	color: #f9f7f2;
}

/* ── Résultats groupés ────────────────────────────────────────── */

.lv-gs__results {
	max-width: 1320px;
	margin: 0 auto;
	padding: 44px 48px 90px;
	display: flex;
	flex-direction: column;
	gap: 72px;
}

.lv-gs__results:empty { padding-bottom: 40px; }

.lv-gs__group-head {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 28px;
}

.lv-gs__group-title {
	font-family: 'Baskervville', serif;
	font-weight: 400;
	font-size: 34px;
	margin: 0;
	line-height: 1;
}

.lv-gs__group-line {
	flex: 1;
	height: 2px;
	background-image: repeating-linear-gradient(90deg, #a17451 0 12px, transparent 12px 22px);
	opacity: 0.45;
}

.lv-gs mark {
	background: linear-gradient(transparent 58%, rgba(192, 154, 83, 0.38) 58%);
	color: inherit;
}

/* Carte générique */

.lv-gs-card {
	display: block;
	text-decoration: none;
	color: #2c2e33;
	background: #fff;
	border: 1px solid rgba(161, 116, 81, 0.18);
	border-radius: 18px;
	overflow: hidden;
	transition: all 260ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.lv-gs-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 26px 50px -24px rgba(126, 74, 37, 0.28);
}

/* Camping-cars */

.lv-gs__grid-models {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 28px;
}

.lv-gs-model__media {
	background: radial-gradient(120% 100% at 50% 0%, #fff 0%, #fbf6ee 60%, #f2e7d6 100%);
	padding: 26px 20px 10px;
	display: flex;
	justify-content: center;
}

.lv-gs-model__media img {
	width: 88%;
	height: 150px;
	object-fit: contain;
	filter: drop-shadow(0 16px 22px rgba(126, 74, 37, 0.14));
}

.lv-gs-model__media--empty { height: 90px; }

/* Repli « schéma d'implantation » : fourni à la verticale, pivoté et agrandi
   (même parti pris que la grille de la page Camping-cars). */
.lv-gs-model__media--schema { overflow: hidden; }
.lv-gs-model__media--schema img { transform: rotate(90deg) scale(2.2); }

.lv-gs-model__body { padding: 18px 24px 24px; }

.lv-gs-model__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}

.lv-gs-model__gamme {
	font-family: 'Open Sans', sans-serif;
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #a17451;
}

.lv-gs-model__chassis { font-family: 'Open Sans', sans-serif; font-size: 12px; color: #6b6255; }

.lv-gs-model__title { font-family: 'Baskervville', serif; font-size: 27px; margin: 8px 0 10px; }

.lv-gs-model__text,
.lv-gs-page__text,
.lv-gs-dealer__addr {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 13.5px;
	line-height: 1.55;
	color: #5c5548;
	margin: 0 0 14px;
}

.lv-gs__badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }

.lv-gs__badge {
	font-family: 'Open Sans', sans-serif;
	font-size: 12px;
	color: #6b6255;
	border: 1px solid rgba(161, 116, 81, 0.3);
	border-radius: 999px;
	padding: 4px 12px;
	white-space: nowrap;
}

.lv-gs-model__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-top: 1px solid rgba(161, 116, 81, 0.16);
	padding-top: 14px;
}

.lv-gs-model__prix { font-family: 'Open Sans', sans-serif; font-size: 13px; color: #6b6255; }
.lv-gs-model__prix strong { font-weight: 600; color: #2c2e33; }

.lv-gs__cta {
	font-family: 'Baskervville', serif;
	font-style: italic;
	font-size: 15px;
	color: #7e4a25;
}

/* Pages + Journal (liste) */

.lv-gs__list {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(161, 116, 81, 0.18);
	border-radius: 18px;
	overflow: hidden;
}

.lv-gs-page {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 22px 28px;
	text-decoration: none;
	color: #2c2e33;
	transition: background 200ms ease;
}

.lv-gs-page + .lv-gs-page { border-top: 1px solid rgba(161, 116, 81, 0.14); }
.lv-gs-page:hover { background: #fbf6ee; }

.lv-gs-page__body { flex: 1; min-width: 0; }

.lv-gs-page__path {
	font-family: 'Open Sans', sans-serif;
	font-size: 11.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #a17451;
	margin-bottom: 6px;
}

.lv-gs-page__title { font-family: 'Baskervville', serif; font-size: 24px; margin-bottom: 6px; }
.lv-gs-page__text { margin: 0; font-size: 14px; }
.lv-gs-page__arrow { font-family: 'Baskervville', serif; font-size: 22px; color: #7e4a25; flex-shrink: 0; }

/* Concessionnaires */

.lv-gs__grid-dealers {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 28px;
}

.lv-gs-dealer { padding: 24px 26px; }

.lv-gs-dealer__flag {
	font-family: 'Open Sans', sans-serif;
	font-size: 10.5px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #73632f;
	margin-bottom: 8px;
}

.lv-gs-dealer__title { font-family: 'Baskervville', serif; font-size: 24px; line-height: 1.15; margin-bottom: 6px; }

.lv-gs-dealer__place {
	font-family: 'Open Sans', sans-serif;
	font-size: 13.5px;
	font-weight: 600;
	color: #7e4a25;
	margin-bottom: 10px;
}

.lv-gs-dealer__addr { margin-bottom: 14px; line-height: 1.6; }

.lv-gs-dealer__foot {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}

/* Destinations */

.lv-gs__grid-dests {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 28px;
}

.lv-gs-dest { position: relative; border: none; }

.lv-gs-dest img { width: 100%; height: 280px; object-fit: cover; display: block; }

.lv-gs-dest__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(24, 26, 31, 0) 34%, rgba(24, 26, 31, 0.78) 100%);
}

.lv-gs-dest__body { position: absolute; left: 26px; right: 26px; bottom: 22px; color: #f9f7f2; }

.lv-gs-dest__meta {
	font-family: 'Open Sans', sans-serif;
	font-size: 10.5px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #e8c88f;
	margin-bottom: 8px;
}

.lv-gs-dest__title { font-family: 'Baskervville', serif; font-size: 26px; line-height: 1.12; margin-bottom: 6px; }

.lv-gs-dest__text {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 13px;
	line-height: 1.5;
	color: rgba(249, 247, 242, 0.82);
	margin: 0;
}

/* Témoignages */

.lv-gs__grid-quotes {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 28px;
}

.lv-gs-quote { background: #f9f7f2; border-color: rgba(161, 116, 81, 0.14); }
.lv-gs-quote > img { width: 100%; height: 180px; object-fit: cover; display: block; }
.lv-gs-quote__body { padding: 24px 28px 26px; }
.lv-gs-quote__mark { font-family: 'Baskervville', serif; font-size: 54px; line-height: 0.5; color: #c09a53; margin-bottom: 18px; }

.lv-gs-quote__text {
	font-family: 'Baskervville', serif;
	font-style: italic;
	font-size: 19px;
	line-height: 1.45;
	color: #2c2e33;
	margin: 0 0 18px;
}

.lv-gs-quote__by {
	border-top: 1px solid rgba(161, 116, 81, 0.2);
	padding-top: 14px;
	font-family: 'Open Sans', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #2c2e33;
}

/* ── État vide ────────────────────────────────────────────────── */

.lv-gs__empty { text-align: center; padding: 10px 24px 100px; }
.lv-gs__empty svg { opacity: 0.75; margin-bottom: 22px; }

.lv-gs__empty-title { font-family: 'Baskervville', serif; font-size: 32px; margin: 0 0 10px; }

.lv-gs__empty-text {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 15px;
	color: #5c5548;
	margin: 0 0 26px;
}

.lv-gs__suggestions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

.lv-gs__noscript {
	max-width: 1320px;
	margin: 0 auto;
	padding: 40px 48px;
	font-family: 'Open Sans', sans-serif;
	color: #5c5548;
}

/* ── Overlay de saisie (loupe du header) ──────────────────────── */

.lv-gs-overlay {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: rgba(24, 26, 31, 0.92);
	backdrop-filter: blur(6px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	transition: opacity 240ms ease;
}

.lv-gs-overlay.is-open { opacity: 1; }
.lv-gs-overlay[hidden] { display: none; }

.lv-gs-overlay__panel { width: min(760px, 100%); text-align: center; }

.lv-gs-overlay__title {
	margin: 0 0 34px;
	font-family: 'Baskervville', serif;
	font-weight: 400;
	font-size: clamp(36px, 4.6vw, 60px);
	line-height: 1;
	color: #f9f7f2;
}

.lv-gs-overlay__title em { font-style: italic; }

.lv-gs-overlay__hint {
	margin: 22px 0 0;
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 13px;
	color: rgba(249, 247, 242, 0.55);
}

.lv-gs-overlay__close,
.lv-gs-overlay__close:hover,
.lv-gs-overlay__close:focus,
.lv-gs-overlay__close:active {
	position: absolute;
	top: 28px;
	right: 32px;
	width: 46px;
	height: 46px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid rgba(249, 247, 242, 0.3);
	background: transparent;
	color: #f9f7f2;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: all 220ms ease;
}

.lv-gs-overlay__close:hover { border-color: #c09a53; color: #c09a53; }

/* ── Responsive ───────────────────────────────────────────────── */

@media (max-width: 991px) {
	.lv-gs__toolbar,
	.lv-gs__results { padding-left: 24px; padding-right: 24px; }
	.lv-gs__results { gap: 52px; }
}

@media (max-width: 600px) {
	.lv-gs__hero { padding: 140px 16px 44px; }
	.lv-gs__bar .lv-gs__input { font-size: 17px; padding: 17px 52px 17px 54px; }
	.lv-gs__bar svg { left: 20px; }
	.lv-gs__group-title { font-size: 27px; }
	.lv-gs-page { padding: 18px 20px; }
}
