/* ==========================================================================
   ASR Franchise, styles de base et composants interactifs
   Les sections des pages sont stylées par les classes globales Elementor (asr-*).
   ========================================================================== */

:root {
	--asr-blue: #2F57A2;
	--asr-blue-dark: #26478A;
	--asr-navy: #0F1B33;
	--asr-sky: #92D5F6;
	--asr-mist: #F5F8FC;
	--asr-text: #4A5573;
	--asr-muted: #6B7594;
	--asr-line: rgba(133, 142, 173, .25);
	--asr-ease: cubic-bezier(.22, 1, .36, 1);
}

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: Poppins, system-ui, sans-serif;
	color: var(--asr-navy);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	text-wrap: pretty;
}

body a { color: var(--asr-blue); text-decoration: none; }
body a:hover { color: #1F3D77; }
::selection { background: var(--asr-sky); color: var(--asr-navy); }

/* Les conteneurs atomiques n'ont pas de marge interne par défaut : la mise en page vient des classes asr-* */
body .e-div-block-base,
body .e-flexbox-base { padding: 0; }

/* Transitions avec la courbe de la maquette */
[class*="asr-btn"],
.asr-card-lift,
.asr-tile__img { transition-timing-function: var(--asr-ease); }

/* Apparition au défilement */
@keyframes asrRevealUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes asrFloatBlob { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -18px, 0); } }

@supports (animation-timeline: view()) {
	body:not(.elementor-editor-active) .asr-reveal {
		animation: asrRevealUp .6s var(--asr-ease) both;
		animation-timeline: view();
		animation-range: entry 0% cover 20%;
	}
}
.asr-blob-float { animation: asrFloatBlob 7s ease-in-out infinite alternate; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.asr-reveal, .asr-blob-float { animation: none !important; }
}

/* Zoom des visuels de secteurs */
.asr-tile { overflow: hidden; }
.asr-tile .asr-tile__img { transition: transform .5s var(--asr-ease); }
.asr-tile:hover .asr-tile__img { transform: scale(1.05); }

/* Images atomiques : remplissage du cadre */
.asr-cover { object-fit: cover; }

/* ==========================================================================
   En-tête collant (Theme Builder)
   ========================================================================== */
.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 80;
}
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 0; } }

.asr-header-nav { scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.asr-header-nav::-webkit-scrollbar { display: none; }

/* En dessous de 1240px, la maquette passe l'en-tête en mode compact */
@media (max-width: 1239px) {
	.elementor .asr-header-inner { padding: 12px 16px; gap: 12px; }
	.elementor .asr-header-logo { height: 48px; }
	.elementor .asr-header-nav { gap: 0; }
	.elementor .asr-header-link { padding: 9px 6px; font-size: 12.5px; }
}

/* Barre de progression de lecture */
.asr-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	width: 0;
	background: linear-gradient(90deg, var(--asr-blue), var(--asr-sky));
	z-index: 90;
	transition: width .1s linear;
	pointer-events: none;
}
.admin-bar .asr-progress { top: 32px; }

/* ==========================================================================
   Éléments communs aux composants
   ========================================================================== */
.asr-chip {
	padding: 10px 16px;
	border-radius: 999px;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.5;
	cursor: pointer;
	border: 1.5px solid rgba(133, 142, 173, .32);
	background: #fff;
	color: var(--asr-text);
	white-space: nowrap;
}
.asr-chip:hover { border-color: var(--asr-blue); color: var(--asr-blue); }
.asr-chip.is-active,
.asr-chip.is-active:hover { border-color: var(--asr-blue); background: var(--asr-blue); color: #fff; }
.asr-chip--lg { padding: 10px 18px; font-size: 14px; border-color: rgba(133, 142, 173, .35); white-space: normal; }

.asr-field { display: block; }
.asr-field__label { display: block; font-size: 13.5px; font-weight: 600; color: var(--asr-text); margin-bottom: 8px; }
.asr-field__input {
	width: 100%;
	box-sizing: border-box;
	padding: 15px 16px;
	border-radius: 14px;
	border: 1.5px solid rgba(133, 142, 173, .35);
	background: var(--asr-mist);
	font-family: inherit;
	font-size: 15.5px;
	color: var(--asr-navy);
}
.asr-field__input:focus,
.asr-dept-finder__select:focus,
.asr-dept-finder__email:focus,
.asr-application__select:focus,
.asr-faq-filters__search:focus { outline: 2px solid var(--asr-sky); outline-offset: 1px; border-color: var(--asr-blue); }

.asr-form-error {
	margin: 0;
	padding: 14px 18px;
	border-radius: 12px;
	background: rgba(200, 40, 40, .08);
	color: #B22222;
	font-size: 14.5px;
	line-height: 1.55;
}
.asr-form-error[hidden] { display: none; }

/* ==========================================================================
   Sélecteur de territoires
   ========================================================================== */
.asr-dept-finder__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.asr-dept-finder__field { display: block; }
.asr-dept-finder__label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--asr-muted);
	margin-bottom: 10px;
}
.asr-dept-finder__select {
	width: 100%;
	padding: 18px 20px;
	border-radius: 16px;
	border: 1.5px solid rgba(47, 87, 162, .3);
	background: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	color: var(--asr-navy);
	box-shadow: 0 16px 40px -30px rgba(47, 87, 162, .6);
}
.asr-dept-finder__panel { margin-top: 24px; background: var(--asr-mist); border-radius: 22px; padding: 28px; }
.asr-dept-finder__panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.asr-dept-finder__code { margin: 0 0 4px; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--asr-muted); }
.asr-dept-finder__name { margin: 0; font-size: 1.375rem; font-weight: 700; line-height: 1.25; color: var(--asr-navy); }
.asr-dept-finder__message { margin: 0 0 20px; font-size: 15.5px; line-height: 1.65; color: var(--asr-text); }
.asr-dept-finder__form { display: flex; flex-wrap: wrap; gap: 10px; }
.asr-dept-finder__email {
	flex: 1 1 220px;
	min-width: 0;
	padding: 15px 18px;
	border-radius: 999px;
	border: 1.5px solid rgba(133, 142, 173, .35);
	background: #fff;
	font-family: inherit;
	font-size: 15px;
	color: var(--asr-navy);
}
.asr-dept-finder__submit {
	border: none;
	background: var(--asr-blue);
	color: #fff;
	padding: 15px 28px;
	border-radius: 999px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
}
.asr-dept-finder__submit:hover { background: var(--asr-blue-dark); }
.asr-dept-finder__sent {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 16px 20px;
	border-radius: 14px;
	background: rgba(31, 122, 76, .08);
	font-size: 15px;
	line-height: 1.55;
	color: #1F7A4C;
	font-weight: 600;
}
.asr-dept-finder__check { font-size: 17px; }
.asr-dept-finder__hint { margin: 24px 0 0; padding: 22px 26px; border-radius: 18px; background: var(--asr-mist); font-size: 15px; color: var(--asr-muted); }

.asr-badge { padding: 8px 14px; border-radius: 999px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.asr-badge--free { color: #1F7A4C; background: rgba(31, 122, 76, .1); border: 1px solid #1F7A4C33; }
.asr-badge--resale { color: #A96410; background: rgba(233, 162, 59, .16); border: 1px solid #A9641033; }
.asr-badge--taken { color: #1F5DA0; background: rgba(146, 213, 246, .32); border: 1px solid #1F5DA033; }

/* ==========================================================================
   Auto-test
   ========================================================================== */
.asr-quiz__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.asr-quiz__counter { font-size: 13.5px; font-weight: 600; color: var(--asr-sky); }
.asr-quiz__reset { border: none; background: none; padding: 0; font-family: inherit; color: rgba(255, 255, 255, .6); font-size: 13.5px; text-decoration: underline; cursor: pointer; }
.asr-quiz__track { height: 6px; border-radius: 999px; background: rgba(255, 255, 255, .14); overflow: hidden; margin-bottom: 36px; }
.asr-quiz__bar { height: 100%; background: linear-gradient(90deg, var(--asr-sky), #fff); border-radius: 999px; transition: width .35s var(--asr-ease); }
.asr-quiz__question { margin: 0 0 28px; font-size: clamp(1.25rem, 2.4vw, 1.75rem); font-weight: 600; line-height: 1.35; color: #fff; }
.asr-quiz__options { display: flex; flex-direction: column; gap: 12px; }
.asr-quiz__option {
	text-align: left;
	background: rgba(255, 255, 255, .05);
	border: 1.5px solid rgba(146, 213, 246, .3);
	color: #fff;
	padding: 20px 24px;
	border-radius: 18px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	cursor: pointer;
	transition: background .18s, border-color .18s, transform .18s;
}
.asr-quiz__option:hover,
.asr-quiz__option:focus-visible { background: rgba(146, 213, 246, .16); border-color: var(--asr-sky); transform: translateX(4px); color: #fff; }
.asr-quiz__eyebrow { margin: 0 0 10px; font-size: 13.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--asr-sky); }
.asr-quiz__verdict { margin: 0 0 18px; font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 700; line-height: 1.2; color: #fff; }
.asr-quiz__advice { margin: 0 0 32px; font-size: 1.0625rem; line-height: 1.7; color: rgba(255, 255, 255, .85); }
.asr-quiz__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.asr-quiz__cta,
.asr-quiz__retry { display: inline-block; padding: 18px 34px; border-radius: 999px; font-family: inherit; font-size: 15.5px; font-weight: 600; line-height: 1.5; cursor: pointer; transition: transform .18s var(--asr-ease), background .18s; }
body .asr-quiz__cta { border: none; background: #fff; color: var(--asr-blue); }
body .asr-quiz__cta:hover { transform: translateY(-2px); color: var(--asr-blue); }
.asr-quiz__retry { background: none; border: 1.5px solid rgba(255, 255, 255, .5); color: #fff; padding: 18px 32px; }
.asr-quiz__retry:hover { background: rgba(255, 255, 255, .12); }

/* ==========================================================================
   Candidature en étapes
   ========================================================================== */
.asr-application__card {
	background: #fff;
	border: 1px solid var(--asr-line);
	border-radius: 32px;
	padding: clamp(28px, 4vw, 48px);
	box-shadow: 0 30px 80px -40px rgba(47, 87, 162, .4);
}
.asr-application__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.asr-application__counter { font-size: 13.5px; font-weight: 600; color: var(--asr-blue); }
.asr-application__back { border: none; background: none; padding: 0; font-family: inherit; color: var(--asr-muted); font-size: 13.5px; font-weight: 500; text-decoration: underline; cursor: pointer; }
.asr-application__track { height: 6px; border-radius: 999px; background: var(--asr-mist); overflow: hidden; margin-bottom: 40px; }
.asr-application__bar { height: 100%; background: linear-gradient(90deg, var(--asr-blue), var(--asr-sky)); border-radius: 999px; transition: width .35s var(--asr-ease); }
.asr-application__question { margin: 0 0 12px; font-size: clamp(1.4rem, 2.8vw, 2rem); font-weight: 700; line-height: 1.3; color: var(--asr-navy); outline: none; }
.asr-application__help { margin: 0 0 32px; font-size: 15.5px; line-height: 1.6; color: var(--asr-muted); }
.asr-application__options { display: flex; flex-direction: column; gap: 12px; }
.asr-application__option {
	text-align: left;
	background: var(--asr-mist);
	border: 1.5px solid rgba(133, 142, 173, .28);
	color: var(--asr-navy);
	padding: 20px 24px;
	border-radius: 18px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	cursor: pointer;
	transition: border-color .18s, background .18s, transform .18s;
}
.asr-application__option:hover,
.asr-application__option:focus-visible,
.asr-application__option.is-selected { border-color: var(--asr-blue); background: #fff; transform: translateX(4px); color: var(--asr-navy); }
.asr-application__select-row { display: flex; flex-wrap: wrap; gap: 12px; }
.asr-application__select { flex: 1 1 220px; padding: 17px 18px; border-radius: 16px; border: 1.5px solid rgba(133, 142, 173, .35); background: var(--asr-mist); font-family: inherit; font-size: 16px; color: var(--asr-navy); }
.asr-application__next { border: none; background: var(--asr-blue); color: #fff; padding: 17px 32px; border-radius: 16px; font-family: inherit; font-size: 16px; font-weight: 600; cursor: pointer; }
.asr-application__next:hover { background: var(--asr-blue-dark); }
.asr-application__contact { display: flex; flex-direction: column; gap: 16px; }
.asr-application__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.asr-application__consent { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.6; color: var(--asr-text); margin-top: 8px; }
.asr-application__consent input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--asr-blue); }
.asr-application__submit { border: none; background: var(--asr-blue); color: #fff; padding: 19px 36px; border-radius: 999px; font-family: inherit; font-size: 16px; font-weight: 600; box-shadow: 0 20px 50px -22px rgba(47, 87, 162, .8); margin-top: 8px; cursor: pointer; }
.asr-application__submit:hover { background: var(--asr-blue-dark); }

.asr-application__done { background: var(--asr-navy); color: #fff; border-radius: 32px; padding: clamp(32px, 5vw, 56px); text-align: center; }
.asr-application__check { display: inline-flex; width: 64px; height: 64px; border-radius: 999px; background: rgba(146, 213, 246, .22); color: var(--asr-sky); align-items: center; justify-content: center; font-size: 26px; font-weight: 700; margin-bottom: 26px; }
.asr-application__done-title { margin: 0 0 16px; font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 700; color: #fff; }
.asr-application__done-text { margin: 0 auto 28px; font-size: 1.0625rem; line-height: 1.7; color: rgba(255, 255, 255, .85); max-width: 520px; }
.asr-application__done-next { margin: 0 auto 32px; font-size: 15px; line-height: 1.7; color: rgba(255, 255, 255, .7); max-width: 520px; }
.asr-application__done-links { display: flex; flex-direction: column; gap: 12px; max-width: 420px; margin: 0 auto 26px; }
.asr-application__done-link { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 24px; border-radius: 16px; font-size: 15px; font-weight: 600; text-align: left; }
body .asr-application__done-link--light { background: #fff; color: var(--asr-blue); }
body .asr-application__done-link--ghost { background: rgba(255, 255, 255, .1); border: 1.5px solid rgba(146, 213, 246, .4); color: #fff; }
.asr-application__done-note { margin: 0 auto 24px; font-size: 12.5px; color: rgba(255, 255, 255, .6); max-width: 420px; }
.asr-application__done-reset { background: none; border: 1.5px solid rgba(255, 255, 255, .5); color: #fff; padding: 16px 30px; border-radius: 999px; font-family: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.asr-application__done-reset:hover { background: rgba(255, 255, 255, .12); }
.asr-arrow { font-size: 17px; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.asr-faq-filters__search {
	width: 100%;
	box-sizing: border-box;
	padding: 19px 22px;
	border-radius: 18px;
	border: 1.5px solid rgba(133, 142, 173, .3);
	background: #fff;
	font-family: inherit;
	font-size: 16px;
	color: var(--asr-navy);
	box-shadow: 0 20px 50px -34px rgba(47, 87, 162, .5);
}
.asr-faq-filters__chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }

.asr-faq-item summary { list-style: none; cursor: pointer; }
.asr-faq-item summary::-webkit-details-marker { display: none; }
.asr-faq-item summary::after {
	content: "+";
	color: var(--asr-blue);
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	flex-shrink: 0;
}
.asr-faq-item[open] summary::after,
.asr-faq-item details[open] summary::after { content: "−"; }
.asr-faq-item summary:hover { background: var(--asr-mist); }
.asr-faq-item .e-accordion-item-icon,
.asr-faq-item [class*="accordion-item-icon"] { display: none; }

.asr-faq-empty { display: none; }
.asr-faq-empty.is-visible { display: block; }

/* ==========================================================================
   Fenêtres (plaquette, rappel, version anglaise)
   ========================================================================== */
.asr-modal {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(15, 27, 51, .55);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
.asr-modal.is-open { display: flex; }
html.asr-modal-open { overflow: hidden; }
.asr-modal__dialog {
	background: #fff;
	border-radius: 28px;
	padding: 40px;
	max-width: 480px;
	width: 100%;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	box-sizing: border-box;
	box-shadow: 0 40px 100px -30px rgba(15, 27, 51, .6);
	font-family: Poppins, system-ui, sans-serif;
	color: var(--asr-navy);
}
.asr-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 10px; }
.asr-modal__title { margin: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.25; color: var(--asr-navy); }
.asr-modal__close { border: none; background: var(--asr-mist); width: 36px; height: 36px; border-radius: 999px; font-size: 18px; color: var(--asr-text); flex-shrink: 0; cursor: pointer; padding: 0; line-height: 1; }
.asr-modal__body { margin: 0 0 26px; font-size: 15.5px; line-height: 1.65; color: var(--asr-text); }
.asr-modal__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; }
.asr-modal__actions { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.asr-modal__actions .asr-form-error { padding: 12px 16px; font-size: 14px; line-height: 1.5; }
.asr-modal__cta { display: block; border: none; background: var(--asr-blue); color: #fff; padding: 17px 30px; border-radius: 999px; font-family: inherit; font-size: 15.5px; font-weight: 600; margin-top: 6px; cursor: pointer; }
.asr-modal__cta:hover { background: var(--asr-blue-dark); }
.asr-modal__link { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 22px; border-radius: 16px; font-size: 15px; font-weight: 600; }
body .asr-modal__link--brochure { background: var(--asr-blue); color: #fff; }
body .asr-modal__link--bookings { background: var(--asr-mist); color: var(--asr-blue); border: 1.5px solid rgba(47, 87, 162, .28); }
.asr-modal__note { margin: 4px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--asr-muted); }
.asr-modal__legal { margin: 0; font-size: 13px; line-height: 1.6; color: var(--asr-muted); }

/* ==========================================================================
   Barre d'action mobile et bandeau cookies
   ========================================================================== */
.asr-mobile-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 70;
	display: none;
	gap: 12px;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .94);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-top: 1px solid var(--asr-line);
}
.asr-mobile-cta a { flex: 1; display: flex; align-items: center; justify-content: center; padding: 17px 20px; border-radius: 999px; font-size: 15.5px; font-weight: 600; min-height: 52px; box-sizing: border-box; text-align: center; }
body .asr-mobile-cta__primary { background: var(--asr-blue); color: #fff; border: none; }
body .asr-mobile-cta__secondary { background: #fff; color: var(--asr-blue); border: 1.5px solid var(--asr-blue); }
@media (max-width: 1239px) {
	.asr-mobile-cta { display: flex; }
	body.has-asr-mobile-cta { padding-bottom: 76px; }
}

.asr-cookies {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 110;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 22px 26px;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 30px 80px -30px rgba(15, 27, 51, .5);
	border: 1px solid rgba(133, 142, 173, .2);
	max-width: 980px;
	margin: 0 auto;
	font-family: Poppins, system-ui, sans-serif;
}
.asr-cookies__text { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--asr-text); flex: 1 1 320px; }
.asr-cookies__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.asr-cookies__refuse,
.asr-cookies__accept { padding: 13px 24px; border-radius: 999px; font-family: inherit; font-size: 14.5px; font-weight: 600; cursor: pointer; }
.asr-cookies__refuse { border: 1.5px solid var(--asr-muted); background: #fff; color: var(--asr-navy); }
.asr-cookies__refuse:hover { border-color: var(--asr-navy); }
.asr-cookies__accept { border: none; background: var(--asr-blue); color: #fff; }
.asr-cookies__accept:hover { background: var(--asr-blue-dark); }
.has-asr-mobile-cta .asr-cookies { bottom: 92px; }
@media (min-width: 1240px) { .has-asr-mobile-cta .asr-cookies { bottom: 16px; } }

/* --------------------------------------------------------------------------
 * Carte interactive des territoires (accueil)
 * ------------------------------------------------------------------------ */
.asr-france-map.is-mounted { position: relative; }
.asr-map { --map-taken: #26356B; --map-taken-hover: #33478A; --map-free: #CDECF9; --map-free-hover: #B4E2F6; --map-resale: #E3A33F; --map-resale-hover: #EDB65F; --map-partial: #2F57A2; --map-partial-hover: #26478A; --map-selected: var(--asr-blue); position: relative; width: 100%; }
.asr-map::before { content: ""; position: absolute; inset: 6% 4% 14% 4%; background: radial-gradient(closest-side, rgba(146, 213, 246, .35), rgba(146, 213, 246, 0)); z-index: 0; pointer-events: none; }
.asr-map__stage { position: relative; z-index: 1; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; align-items: center; }
.asr-map__main { position: relative; min-width: 0; }
.asr-map__dom { display: flex; flex-direction: column; gap: 12px; }
.asr-map__dom-btn { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px; border-radius: 14px; border: 1.5px solid transparent; background: var(--map-taken); color: #fff; font: 600 12.5px/1.25 Poppins, sans-serif; cursor: pointer; text-align: left; transition: transform .2s, background-color .2s, box-shadow .2s, opacity .2s; }
.asr-map__dom-btn small { display: block; font-weight: 500; font-size: 11px; opacity: .75; }
.asr-map__dom-btn[data-state="free"] { background: var(--map-free); color: var(--asr-navy); }
.asr-map__dom-btn[data-state="resale"] { background: var(--map-resale); color: var(--asr-navy); }
.asr-map__dom-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -14px rgba(15, 27, 51, .45); }
.asr-map__dom-btn.is-dim { opacity: .5; }
.asr-map__dom-btn.is-match { box-shadow: 0 0 0 3px rgba(146, 213, 246, .7); }
.asr-map__dom-btn.is-selected { background: #fff; color: var(--asr-navy); border-color: var(--asr-blue); box-shadow: 0 0 0 3px rgba(47, 87, 162, .25); }
svg.asr-map__france { width: 100%; height: auto; display: block; overflow: visible; }
.asr-map__dept { fill: var(--map-taken); stroke: #fff; stroke-width: .9; stroke-linejoin: round; cursor: pointer; transition: fill .18s, opacity .2s; }
.asr-map__dept[data-state="free"] { fill: var(--map-free); }
.asr-map__dept[data-state="resale"] { fill: var(--map-resale); }
.asr-map__dept:hover, .asr-map__dept:focus-visible { fill: var(--map-taken-hover); outline: none; }
.asr-map__dept[data-state="free"]:hover, .asr-map__dept[data-state="free"]:focus-visible { fill: var(--map-free-hover); }
.asr-map__dept[data-state="resale"]:hover, .asr-map__dept[data-state="resale"]:focus-visible { fill: var(--map-resale-hover); }
.asr-map__dept.is-dim { opacity: .55; }
.asr-map__dept.is-selected { fill: #FFFFFF !important; stroke: var(--asr-blue); stroke-width: 2.4; }
.asr-map__idf { position: absolute; left: -8px; bottom: 0; width: 104px; padding: 8px 8px 6px; background: #fff; border-radius: 16px; box-shadow: 0 14px 40px -22px rgba(15, 27, 51, .45); border: 1px solid var(--asr-line); }
.asr-map__idf p { margin: 0 0 4px; font-size: 10.5px; line-height: 1.3; font-weight: 600; color: var(--asr-muted); text-transform: uppercase; letter-spacing: .08em; text-align: center; }
.asr-map__idf svg { width: 100%; height: auto; display: block; }
.asr-map__idf .asr-map__dept { stroke-width: .35; }
.asr-map__idf .asr-map__dept.is-selected { stroke-width: .8; }
.asr-map__tip { position: fixed; z-index: 9999; pointer-events: none; background: var(--asr-navy); color: #fff; border-radius: 12px; padding: 8px 12px; font: 400 12.5px/1.35 Poppins, sans-serif; box-shadow: 0 14px 30px -14px rgba(15, 27, 51, .6); opacity: 0; transform: translateY(4px); transition: opacity .12s, transform .12s; white-space: nowrap; }
.asr-map__tip.is-on { opacity: 1; transform: none; }
.asr-map__tip b { font-weight: 600; }
.asr-map__tip span { display: block; color: var(--asr-sky); font-size: 11.5px; }
.asr-map__legend { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 28px; font-size: 15px; color: var(--asr-text); position: relative; z-index: 1; }
.asr-map__legend li { display: flex; align-items: center; gap: 10px; margin: 0; }
.asr-map__sw { width: 16px; height: 16px; border-radius: 5px; flex-shrink: 0; }
.asr-map__sw--taken { background: var(--map-taken); }
.asr-map__sw--free { background: var(--map-free); }
.asr-map__sw--resale { background: var(--map-resale); }
.asr-map__credit { margin: 14px 0 0; font-size: 11.5px; color: var(--asr-muted); position: relative; z-index: 1; }
@media (max-width: 767px) {
	.asr-map__stage { grid-template-columns: minmax(0, 1fr); }
	.asr-map__dom { flex-direction: row; flex-wrap: wrap; order: 2; }
	.asr-map__dom-btn { width: auto; flex: 1 1 calc(50% - 6px); min-width: 0; }
	.asr-map__idf { width: 84px; padding: 6px 6px 4px; }
	.asr-map__idf p { font-size: 9px; }
	.asr-map__legend { font-size: 14px; }
}
/* Départements partagés (au moins une zone libre) */
.asr-map__dept[data-state="partial"] { fill: var(--map-partial); }
.asr-map__dept[data-state="partial"]:hover, .asr-map__dept[data-state="partial"]:focus-visible { fill: var(--map-partial-hover); }
.asr-map__dom-btn[data-state="partial"] { background: var(--map-partial); color: #fff; }
.asr-map__sw--partial { background: var(--map-partial); }
.asr-badge--partial { background: #E9F1FB; color: var(--asr-blue); border: 1px solid #C8D8F0; }
.asr-dept-finder__zones { list-style: none; margin: -6px 0 22px; padding: 0; display: grid; gap: 8px; }
.asr-dept-finder__zone { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 12px; background: #fff; border: 1px solid var(--asr-line); font-size: 14.5px; margin: 0; }
.asr-dept-finder__zone-name { font-weight: 600; color: var(--asr-navy); }
.asr-dept-finder__zone-state { font-size: 13px; font-weight: 600; white-space: nowrap; }
.asr-dept-finder__zone--free .asr-dept-finder__zone-state { color: #2E6B44; }
.asr-dept-finder__zone--taken .asr-dept-finder__zone-state { color: #2F57A2; }
.asr-dept-finder__zone--resale .asr-dept-finder__zone-state { color: #A96410; }

/* Quiz : prise de rendez-vous */
body .asr-quiz__rdv { display: inline-block; padding: 18px 32px; border-radius: 999px; font-size: 15.5px; font-weight: 600; line-height: 1.5; background: rgba(255, 255, 255, .14); border: 1.5px solid rgba(255, 255, 255, .5); color: #fff; transition: background .18s; }
body .asr-quiz__rdv:hover { background: rgba(255, 255, 255, .24); color: #fff; }
/* Fenêtres : liste et zone de texte */
.asr-modal select.asr-field__input { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--asr-navy) 50%), linear-gradient(135deg, var(--asr-navy) 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 44px; cursor: pointer; }
.asr-modal textarea.asr-field__input { resize: vertical; min-height: 84px; line-height: 1.5; font-family: inherit; }
.asr-modal .asr-field--textarea, .asr-modal .asr-field--select { grid-column: 1 / -1; }
.asr-dept-finder__form .asr-dept-finder__submit { width: auto; }
/* Graphique en courbe */
.asr-curve { position: relative; }
.asr-curve .asr-chart-bar { visibility: hidden; }
.asr-curve__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
/* Carrousel vidéos */
.asr-vcarousel { position: relative; }
.asr-vcarousel__track { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.asr-vcarousel__track::-webkit-scrollbar { display: none; }
.asr-vcarousel__item { flex: 0 0 calc((100% - 24px) / 2); scroll-snap-align: start; min-width: 0; }
.asr-vcarousel__thumb, .asr-vcarousel__frame { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 24px; overflow: hidden; background: var(--asr-navy); border: 0; padding: 0; cursor: pointer; }
.asr-vcarousel__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--asr-ease), opacity .3s; opacity: .9; }
.asr-vcarousel__thumb:hover img { transform: scale(1.03); opacity: 1; }
.asr-vcarousel__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 72px; height: 72px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--asr-blue); display: flex; align-items: center; justify-content: center; font-size: 22px; padding-left: 5px; box-shadow: 0 16px 36px -16px rgba(15, 27, 51, .6); }
.asr-vcarousel__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.asr-vcarousel__title { margin: 14px 4px 0; font-weight: 600; font-size: 15px; line-height: 1.45; color: var(--asr-navy); }
.asr-vcarousel__navs { display: none; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.asr-vcarousel.has-nav .asr-vcarousel__navs { display: flex; }
.asr-vcarousel__nav { width: 48px; height: 48px; border-radius: 999px; border: 1.5px solid var(--asr-line); background: #fff; color: var(--asr-navy); font-size: 18px; cursor: pointer; transition: border-color .15s, color .15s; }
.asr-vcarousel__nav:hover:not(:disabled) { border-color: var(--asr-blue); color: var(--asr-blue); }
.asr-vcarousel__nav:disabled { opacity: .35; cursor: default; }
@media (max-width: 767px) { .asr-vcarousel__item { flex-basis: 86%; } .asr-vcarousel__thumb, .asr-vcarousel__frame { border-radius: 18px; } }
/* Candidature : montant personnalisé */
.asr-application__custom { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; align-items: stretch; }
.asr-application__custom .asr-application__amount { flex: 1 1 220px; min-width: 0; }
/* Filtre actif : les départements hors filtre passent en gris */
.asr-map__dept.is-dim, .asr-map__dept.is-dim:hover { fill: #D9DEE6 !important; stroke: #FFFFFF; opacity: 1; }
.asr-map__dom-btn.is-dim { background: #D9DEE6 !important; color: #8A93AE !important; border-color: transparent !important; opacity: 1; }
.asr-map__dept.is-selected { fill: #FFFFFF !important; stroke: var(--asr-blue); stroke-width: 2.4; }
.asr-map__idf .asr-map__dept.is-selected { stroke-width: .8; }
.asr-map__dom-btn.is-selected { background: #fff !important; color: var(--asr-navy) !important; border-color: var(--asr-blue) !important; }
/* Accueil plein écran : hauteur plafonnée sur les grands écrans */
html body .elementor .asr-hero-fullscreen { max-height: 860px; }
html body.admin-bar .elementor .asr-hero-fullscreen { min-height: min(calc(100vh - 135px), 860px); }
/* Filtre « Zones disponibles » : les territoires libres ressortent nettement face au gris */
.asr-map__dept[data-state="free"].is-match { fill: #7CC4EC; }
.asr-map__dept[data-state="free"].is-match:hover { fill: #5FB4E4; }
.asr-map__dom-btn[data-state="free"].is-match { background: #7CC4EC; box-shadow: none; }
.asr-map__dept.is-dim, .asr-map__dept.is-dim:hover { fill: #E2E6ED !important; }
.asr-map__dom-btn.is-dim { background: #E2E6ED !important; }
