@charset "UTF-8";
/* ==========================================================================
   BERGAM IMMOBILIER — Couche de marque
   --------------------------------------------------------------------------
   Charte graphique du 30/07/2026 :
     VERT OLIVE FONCE  #42472E   (principal)
     VERT SAUGE        #98A869   (secondaire)
     OCRE              #D8B56A   (accent)
     Typographies      Vidaloka regular (titres) + Montserrat medium (textes)

   Ce fichier est charge APRES vendor.css et style.theme.css : il porte les
   jetons de design de la charte et neutralise l'habillage historique du
   theme (couleurs, arrondis, ombres) pour obtenir un rendu luxe et epure.

   Regle de style : AUCUN arrondi. Les blocs sont des cartes rectangulaires,
   filets fins, aplats de couleur de la charte. Rien qui evoque une interface
   applicative.
   ========================================================================== */

html {
	font-size: 16px;
}

/* ==========================================================================
   1. JETONS
   ========================================================================== */
:root {
	/* — Echelle de base : reference unique pour le corps ET les rem — */
	font-size: 16px;

	/* — Echelle typographique — */
	--bgm-fs-display:    clamp(2.25rem, 3.6vw, 3.5rem);
	--bgm-fs-h1:         clamp(2rem, 2.8vw, 2.75rem);
	--bgm-fs-h2:         clamp(1.75rem, 2.15vw, 2.25rem);
	--bgm-fs-h3:         clamp(1.25rem, 1.45vw, 1.5rem);
	--bgm-fs-h4:         1.125rem;

	--bgm-fs-lead:       1.0625rem;
	--bgm-fs-body:       1rem;
	--bgm-fs-small:      .875rem;
	--bgm-fs-meta:       .8125rem;
	--bgm-fs-label:      .75rem;
	--bgm-fs-micro:      .6875rem;

	--bgm-fs-price:      1.5rem;
	--bgm-fs-card-title: 1.125rem;

	/* — Charte — */
	--bgm-olive:        #42472E;
	--bgm-olive-deep:   #32361F;
	--bgm-olive-soft:   #5A604A;
	--bgm-sage:         #98A869;
	--bgm-sage-light:   #C2CE9F;
	--bgm-sage-pale:    #E7EBDA;
	--bgm-ocre:         #D8B56A;
	--bgm-ocre-deep:    #B8934A;
	--bgm-ocre-pale:    #F4E9CF;

	/* — Neutres — */
	--bgm-white:        #FFFFFF;
	--bgm-ivory:        #FBFAF6;
	--bgm-cream:        #F3F1E8;
	--bgm-ink:          #262A1C;
	--bgm-body:         #4A4E3E;
	--bgm-muted:        #7C806D;
	--bgm-line:         #DEDACB;
	--bgm-line-soft:    #EAE7DB;

	/* — Sur fond olive — */
	--bgm-on-dark:        #F6F5EE;
	--bgm-on-dark-muted:  rgba(246,245,238,.66);
	--bgm-on-dark-line:   rgba(216,181,106,.22);

	/* — Typographies — */
	--bgm-serif: 'Vidaloka', 'Times New Roman', Georgia, serif;
	--bgm-sans:  'Montserrat', 'Helvetica Neue', Arial, sans-serif;

	/* — Rythme — */
	--bgm-section:    clamp(36px, 4.25vw, 64px);
	--bgm-section-sm: clamp(56px, 6.5vw, 92px);

	/* — Ombres (tres diffuses, jamais "materielles") — */
	--bgm-shadow:      0 1px 2px rgba(38,42,28,.04);
	--bgm-shadow-lift: 0 12px 34px -18px rgba(38,42,28,.28);
}

/* ==========================================================================
   2. SOCLE TYPOGRAPHIQUE
   ========================================================================== */
body {
	font-family: var(--bgm-sans);
	font-weight: 500;
	font-size: var(--bgm-fs-body);
	line-height: 1.7;
	color: var(--bgm-body);
	background: var(--bgm-ivory);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: var(--bgm-serif);
	font-weight: 400;
	color: var(--bgm-ink);
	letter-spacing: 0;
}
h1, .h1 { font-size: var(--bgm-fs-h1); line-height: 1.1; }
h2, .h2 { font-size: var(--bgm-fs-h2); line-height: 1.16; }
h3, .h3 { font-size: var(--bgm-fs-h3); line-height: 1.22; }
h4, .h4 { font-size: var(--bgm-fs-h4); line-height: 1.3; }
h5, .h5 { font-size: var(--bgm-fs-body); line-height: 1.3; }

h1 em, h2 em, h3 em, h4 em {
	font-style: normal;
	color: var(--bgm-sage);
}

/* Vidaloka Regular n'existe qu'en 400 : jamais de gras synthetique,
   meme via <strong>/<b>/.text-bold imbriques dans un titre. */
h1 strong, h2 strong, h3 strong, h4 strong, h5 strong, h6 strong,
h1 b, h2 b, h3 b, h4 b, h5 b, h6 b,
h1 .text-bold, h2 .text-bold, h3 .text-bold, h4 .text-bold {
	font-weight: 400;
}

a { color: var(--bgm-olive); transition: color .22s ease; }
a:hover, a:focus { color: var(--bgm-ocre-deep); text-decoration: none; }

strong, b { font-weight: 700; color: var(--bgm-ink); }

::selection { background: var(--bgm-sage); color: var(--bgm-white); }

/* Barre de defilement discrete, dans la charte */
* { scrollbar-color: var(--bgm-sage) var(--bgm-cream); scrollbar-width: thin; }
*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-track { background: var(--bgm-cream); }
*::-webkit-scrollbar-thumb { background: var(--bgm-sage); }
*::-webkit-scrollbar-thumb:hover { background: var(--bgm-olive); }

/* ==========================================================================
   3. AUCUN ARRONDI — neutralisation globale
   -------------------------------------------------------------------------- */
a, button, input, select, textarea, img, video, iframe,
.btn, .btn-custom, .btn-plus, .btn-bottom-tab,
.form-control, .form-control-lg, .form-input-custom, .form-controle,
.input-group-addon, .input-group-btn > .btn,
.alert, .label, .badge, .thumbnail, .panel, .panel-heading, .panel-body,
.well, .jumbotron, .modal-content, .modal-header, .modal-body, .modal-footer,
.dropdown-menu, .popover, .tooltip-inner, .progress, .progress-bar,
.nav-tabs > li > a, .nav-pills > li > a, .list-group-item,
.pagination, .pagination > li > a, .pagination > li > span,
.page-item, .page-link, .breadcrumb, .card, .card-body,
.select2-container .select2-choice, .select2-container .select2-choice .select2-arrow,
.select2-drop, .select2-drop-active, .select2-search input,
.property-thumb-info, .property-thumb-info-label, .property-thumb-info-content,
.pgl-property, .pgl-properties, .pgl-search, .pgl-page-header,
.pgl-property-list-item, .pgl-property-list-icon, .pgl-qa-item, .pgl-timeline-dot,
.am-field, .am-field__control, .am-field__input, .am-field__label,
.datepicker, .datepicker table tr td, .datepicker table tr th,
.ui-datepicker, .flexslider, .owl-carousel .owl-item,
.container-favoris, .label-favoris, .bloc-favoris-description,
.card-service-container, .block-cc-container, .img-container {
	border-radius: 0 !important;
	-webkit-border-radius: 0 !important;
}

/* Le rond reste legitime pour les pastilles et pictos circulaires */
.bgm-round, .pgl-timeline-dot.bgm-round { border-radius: 50% !important; }

/* ==========================================================================
   4. UTILITAIRES DE MARQUE
   ========================================================================== */

/* — Sections — */
.bgm-section        { padding: var(--bgm-section) 0; background: var(--bgm-ivory); }
.bgm-section--cream { background: var(--bgm-cream); }
.bgm-section--white { background: var(--bgm-white); }
.bgm-section--olive {
	background: var(--bgm-olive);
	color: var(--bgm-on-dark);
	position: relative;
}
.bgm-section--olive h1, .bgm-section--olive h2,
.bgm-section--olive h3, .bgm-section--olive h4 { color: var(--bgm-on-dark); }
.bgm-section--olive p  { color: var(--bgm-on-dark-muted); }
.bgm-section--olive em { color: var(--bgm-ocre); }
.bgm-section--olive strong { color: var(--bgm-on-dark); }

/* Aplat olive texture : filets tres discrets, effet papier */
.bgm-section--olive::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(255,255,255,.03), transparent 40%),
		radial-gradient(1200px 400px at 15% 0%, rgba(152,168,105,.10), transparent 60%);
}
.bgm-section--olive > * { position: relative; z-index: 1; }

/* — Sur-titre (eyebrow) — */
.bgm-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bgm-ocre-deep);
	margin-bottom: 1.1rem;
}
.bgm-eyebrow::before {
	content: '';
	width: 30px;
	height: 1px;
	background: var(--bgm-ocre);
	flex: none;
}
.bgm-section--olive .bgm-eyebrow { color: var(--bgm-ocre); }

/* — Filet — */
.bgm-rule {
	width: 64px;
	height: 2px;
	border: 0;
	margin: 1.2rem 0 1.6rem;
	background: linear-gradient(90deg, var(--bgm-ocre) 0 42%, var(--bgm-sage) 42% 100%);
}
.bgm-rule--center { margin-left: auto; margin-right: auto; }

/* — Chapo — */
.bgm-lead {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-lead);
	font-weight: 500;
	line-height: 1.75;
	color: var(--bgm-muted);
	max-width: 68ch;
}
.bgm-section--olive .bgm-lead { color: var(--bgm-on-dark-muted); }
@media (max-width: 767px) {
	.bgm-lead { font-size: 1rem; }
}

/* — Boutons — */
.bgm-btn,
.bgm-btn-ghost,
.bgm-btn-ocre {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 52px;
	padding: 0 32px;
	border-radius: 0;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: background .26s ease, color .26s ease, border-color .26s ease;
	white-space: nowrap;
}
.bgm-btn {
	background: var(--bgm-olive);
	border: 1px solid var(--bgm-olive);
	color: var(--bgm-white) !important;
}
.bgm-btn:hover, .bgm-btn:focus {
	background: var(--bgm-ocre);
	border-color: var(--bgm-ocre);
	color: var(--bgm-ink) !important;
}
.bgm-btn-ocre {
	background: var(--bgm-ocre);
	border: 1px solid var(--bgm-ocre);
	color: var(--bgm-ink) !important;
}
.bgm-btn-ocre:hover, .bgm-btn-ocre:focus {
	background: var(--bgm-olive);
	border-color: var(--bgm-olive);
	color: var(--bgm-white) !important;
}
.bgm-btn-ghost {
	background: transparent;
	border: 1px solid var(--bgm-olive);
	color: var(--bgm-olive) !important;
}
.bgm-btn-ghost:hover, .bgm-btn-ghost:focus {
	background: var(--bgm-olive);
	color: var(--bgm-white) !important;
}
.bgm-section--olive .bgm-btn-ghost {
	border-color: rgba(216,181,106,.55);
	color: var(--bgm-ocre) !important;
}
.bgm-section--olive .bgm-btn-ghost:hover {
	background: var(--bgm-ocre);
	border-color: var(--bgm-ocre);
	color: var(--bgm-ink) !important;
}

/* — Bouton téléphone (numéro affiché en bouton, avec respiration autour) — */
.bgm-btn-tel {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	height: 52px;
	padding: 0 28px;
	border-radius: 0;
	border: 1px solid var(--bgm-olive);
	background: transparent;
	font-family: var(--bgm-serif);
	font-size: 1.125rem;
	font-weight: 400;
	color: var(--bgm-ink) !important;
	text-decoration: none !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
	box-sizing: border-box;
	cursor: pointer;
	transition: background .26s ease, color .26s ease, border-color .26s ease;
}
.bgm-btn-tel i {
	color: var(--bgm-ocre-deep);
	font-size: .9375rem;
	transition: color .26s ease;
}
.bgm-btn-tel:hover, .bgm-btn-tel:focus {
	background: var(--bgm-olive);
	color: var(--bgm-white) !important;
}
.bgm-btn-tel:hover i, .bgm-btn-tel:focus i {
	color: var(--bgm-ocre);
}

/* — Lien fleche — */
.bgm-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	color: var(--bgm-olive) !important;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--bgm-line);
	transition: color .22s ease, border-color .22s ease, gap .22s ease;
}
.bgm-link:hover { color: var(--bgm-ocre-deep) !important; border-color: var(--bgm-ocre); gap: 16px; }
.bgm-section--olive .bgm-link {
	color: var(--bgm-ocre) !important;
	border-color: var(--bgm-on-dark-line);
}
.bgm-section--olive .bgm-link:hover { border-color: var(--bgm-ocre); }

/* — Carte — */
.bgm-card {
	background: var(--bgm-white);
	border: 1px solid var(--bgm-line);
	box-shadow: var(--bgm-shadow);
	transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.bgm-card:hover {
	border-color: var(--bgm-sage);
	box-shadow: var(--bgm-shadow-lift);
	transform: translateY(-3px);
}
.bgm-card--flat:hover { transform: none; }

/* Filet d'accent haut de carte, revele au survol */
.bgm-card--accent { position: relative; }
.bgm-card--accent::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 2px;
	background: var(--bgm-ocre);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .34s ease;
}
.bgm-card--accent:hover::before { transform: scaleX(1); }

/* — Grilles — */
.bgm-grid { display: grid; gap: 1px; background: var(--bgm-line); }
.bgm-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; }
.bgm-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; }
.bgm-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px; }
@media (max-width: 991px) {
	.bgm-grid-3, .bgm-grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px) {
	.bgm-grid-2, .bgm-grid-3, .bgm-grid-4 { grid-template-columns: 1fr; gap: 20px; }
}

/* — Hero de rubrique — */
.bgm-hero {
	position: relative;
	background: var(--bgm-olive);
	color: var(--bgm-on-dark);
	padding: clamp(72px, 9vw, 80px) 0 clamp(56px, 7vw, 75px);
	overflow: hidden;
}
.bgm-hero::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--bgm-ocre) 0 22%, var(--bgm-sage) 22% 46%, transparent 46%);
}
.bgm-hero h1 { color: var(--bgm-on-dark); margin: 0 0 1.1rem; }
.bgm-hero h1 em { color: var(--bgm-ocre); }
.bgm-hero p { color: var(--bgm-on-dark-muted); max-width: 62ch; }
.bgm-hero .bgm-eyebrow { color: var(--bgm-ocre); }

/* — Visuel decoratif de hero (colonne droite, pages interieures) —
   Badge circulaire flottant : glow puise + anneaux tournants + icone SVG
   propre a chaque page (dessinee dans le twig, ces classes ne gerent que
   la mise en scene). Masque sous 991px : le hero reste compact en mobile. */
.bgm-hero-visual {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 220px;
}
.bgm-hero-visual__orb {
	position: relative;
	width: 280px;
	height: 280px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.bgm-hero-visual__orb::before {
	content: '';
	position: absolute;
	inset: 20px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(216,181,106,.20) 0%, transparent 70%);
	animation: bgmHeroVisualGlow 3.5s ease-in-out infinite;
}
@keyframes bgmHeroVisualGlow {
	0%, 100% { transform: scale(1);    opacity: 1; }
	50%      { transform: scale(1.12); opacity: .5; }
}
.bgm-hero-visual__icon {
	position: relative;
	z-index: 1;
	width: 180px;
	height: 180px;
	animation: bgmHeroVisualFloat 4.5s ease-in-out infinite;
	filter: drop-shadow(0 20px 30px rgba(38,42,28,.35));
}
@keyframes bgmHeroVisualFloat {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-12px); }
}
.bgm-hero-visual__ring {
	position: absolute;
	border-radius: 50%;
	border: 1.5px solid rgba(216,181,106,.30);
	animation: bgmHeroVisualOrbit 8s linear infinite;
}
.bgm-hero-visual__ring:nth-child(1) { width: 220px; height: 220px; animation-duration: 9s; }
.bgm-hero-visual__ring:nth-child(2) {
	width: 254px; height: 254px;
	animation-duration: 13s;
	border-color: rgba(152,168,105,.30);
}
@keyframes bgmHeroVisualOrbit {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}
.bgm-hero-visual__ring:nth-child(1)::after {
	content: '';
	position: absolute;
	top: -5px; left: 50%;
	width: 9px; height: 9px;
	margin-left: -4.5px;
	border-radius: 50%;
	background: var(--bgm-ocre);
	box-shadow: 0 0 8px rgba(216,181,106,.6);
}
.bgm-hero-visual__ring:nth-child(2)::after {
	content: '';
	position: absolute;
	bottom: -4px; left: 50%;
	width: 7px; height: 7px;
	margin-left: -3.5px;
	border-radius: 50%;
	background: var(--bgm-sage);
	box-shadow: 0 0 8px rgba(152,168,105,.55);
}
@media (max-width: 991px) {
	.bgm-hero-visual { display: none; }
}

/* — Etiquettes — */
.bgm-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	border: 1px solid var(--bgm-line);
	background: var(--bgm-white);
	font-size: var(--bgm-fs-meta);
	font-weight: 600;
	letter-spacing: .06em;
	color: var(--bgm-body);
}
.bgm-section--olive .bgm-tag,
.bgm-hero .bgm-tag {
	background: rgba(246,245,238,.06);
	border-color: var(--bgm-on-dark-line);
	color: var(--bgm-on-dark);
}
.bgm-tag i { color: var(--bgm-ocre); }

/* — Listes cochees — */
.bgm-check { list-style: none; padding: 0; margin: 0; }
.bgm-check li {
	position: relative;
	padding: 0 0 0 30px;
	margin-bottom: .85rem;
	line-height: 1.7;
}
.bgm-check li::before {
	content: '';
	position: absolute;
	left: 0; top: .4em;
	width: 16px; height: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='%2398A869'%3E%3Cellipse cx='16' cy='8' rx='5' ry='8'/%3E%3Cellipse cx='16' cy='24' rx='5' ry='8'/%3E%3Cellipse cx='8' cy='16' rx='8' ry='5'/%3E%3Cellipse cx='24' cy='16' rx='8' ry='5'/%3E%3C/g%3E%3Ccircle cx='16' cy='16' r='3' fill='%23D8B56A'/%3E%3C/svg%3E") no-repeat center / contain;
}
.bgm-section--olive .bgm-check li { color: var(--bgm-on-dark-muted); }

/* ==========================================================================
   5. RE-HABILLAGE DU THEME HISTORIQUE
   ========================================================================== */

/* — Fonds de page du layout — */
.pgl-bg-grey,
.pgl-bg-light,
.main.pgl-bg-grey { background: var(--bgm-ivory) !important; }

/* — En-tete de page du theme (page_transaction historique) — */
.pgl-page-header {
	background: var(--bgm-olive) !important;
	color: var(--bgm-on-dark) !important;
	padding: clamp(72px, 9vw, 120px) 0 clamp(52px, 6vw, 84px) !important;
	position: relative;
}
.pgl-page-header h1 { color: var(--bgm-on-dark) !important; font-family: var(--bgm-serif); font-weight: 400 !important; }
.pgl-page-header p  { color: var(--bgm-on-dark-muted) !important; opacity: 1 !important; }

.pgl-section-title    { font-family: var(--bgm-serif); font-weight: 400 !important; color: var(--bgm-ink) !important; }
.pgl-section-subtitle {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label) !important;
	font-weight: 600 !important;
	line-height: 1.4;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bgm-ocre-deep) !important;
}
.pgl-section-bg { background: var(--bgm-cream) !important; }

/* — Bloc "Coup de coeur" historique (coup_de_coeur.twig) : le theme
   forcait un faux-gras + une taille figee + un interligne casse sur
   ce titre, qui herite par ailleurs de Vidaloka via la regle h3
   generale. On neutralise uniquement le poids/la taille/l'interligne,
   la couleur et le fond du <span> restent geres par le theme. — */
.titre-menu {
	font-weight: 400;
	font-size: var(--bgm-fs-h3);
	line-height: 1.22;
}

.pgl-property-list-item,
.pgl-qa-item {
	background: var(--bgm-white) !important;
	border: 1px solid var(--bgm-line) !important;
	box-shadow: none !important;
}
.pgl-property-list-icon {
	background: var(--bgm-sage-pale) !important;
	color: var(--bgm-olive) !important;
}
.pgl-timeline::before { background: var(--bgm-line) !important; }
.pgl-timeline-dot {
	background: var(--bgm-olive) !important;
	color: var(--bgm-white) !important;
	border: 0 !important;
	font-family: var(--bgm-sans);
	font-weight: 600;
}

/* — Boutons du theme — */
.btn-custom,
.btn-custom-primary,
.btn-primary,
.btn-plus,
.btn-bottom-tab,
button[type="submit"].btn,
input[type="submit"].btn {
	background: var(--bgm-olive) !important;
	border: 1px solid var(--bgm-olive) !important;
	color: var(--bgm-white) !important;
	font-family: var(--bgm-sans);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	font-size: var(--bgm-fs-label);
	box-shadow: none !important;
	text-shadow: none !important;
	transition: background .26s ease, border-color .26s ease, color .26s ease;
}
.btn-custom:hover, .btn-custom:focus,
.btn-custom-primary:hover, .btn-custom-primary:focus,
.btn-primary:hover, .btn-primary:focus,
.btn-plus:hover, .btn-plus:focus,
.btn-bottom-tab:hover, .btn-bottom-tab:focus,
button[type="submit"].btn:hover,
input[type="submit"].btn:hover {
	background: var(--bgm-ocre) !important;
	border-color: var(--bgm-ocre) !important;
	color: var(--bgm-ink) !important;
}
.btn-default, .btn-custom.btn-default {
	background: transparent !important;
	border: 1px solid var(--bgm-line) !important;
	color: var(--bgm-body) !important;
}
.btn-default:hover, .btn-custom.btn-default:hover {
	background: var(--bgm-cream) !important;
	border-color: var(--bgm-sage) !important;
	color: var(--bgm-olive) !important;
}
.btn:focus, .btn:active:focus, .btn.active:focus {
	outline: none;
	box-shadow: 0 0 0 2px var(--bgm-sage-pale) !important;
}

/* — Champs de formulaire — */
.form-control,
.form-control-lg,
.form-input-custom,
.form-controle,
.form-textarea-custom,
.am-field__input,
input[type="text"], input[type="email"], input[type="tel"],
input[type="number"], input[type="password"], input[type="search"],
input[type="date"], select, textarea {
	background: var(--bgm-white);
	border: 1px solid var(--bgm-line);
	box-shadow: none !important;
	color: var(--bgm-ink);
	font-family: var(--bgm-sans);
	font-weight: 500;
	font-size: var(--bgm-fs-body);
	transition: border-color .22s ease, box-shadow .22s ease;
}
.form-control:focus,
.form-input-custom:focus,
.am-field__input:focus,
input:focus, select:focus, textarea:focus {
	border-color: var(--bgm-sage);
	box-shadow: 0 0 0 3px rgba(152,168,105,.16) !important;
	outline: none;
}
.form-control::placeholder, input::placeholder, textarea::placeholder {
	color: var(--bgm-muted);
	opacity: .78;
}
label, .am-field__label, .form-section-title {
	font-family: var(--bgm-sans);
	font-weight: 600;
	color: var(--bgm-ink);
	letter-spacing: .02em;
}
.form-section-title { font-family: var(--bgm-serif); font-weight: 400; }
.required, .text-danger { color: var(--bgm-ocre-deep) !important; }

/* Libelles de champ du formulaire de contact (page_contact.twig) : le
   label generique ci-dessus reste minimal pour ne pas casser les labels
   qui enveloppent une case a cocher (ex. .bgm-form-consent) ; ceux d'un
   vrai champ de saisie doivent avoir le traitement complet. */
.form-contact-agency .form-group > label {
	display: block;
	font-size: var(--bgm-fs-label);
	letter-spacing: .10em;
	text-transform: uppercase;
	margin-bottom: 6px;
}

/* Cases a cocher / radios : carre pour les cases, rond pour les radios */
input[type="checkbox"], input[type="radio"] { accent-color: var(--bgm-olive); }

/* Bloc "contact-now" (theme historique, formulaire_contact.twig) : le h5/h4
   n'ont pas de font-family propre et heritent donc de Vidaloka (regle
   globale h1-h6) ; le h5 est en plus force en gras par le theme. Ce sont
   des metadonnees (telephone, adresse...), pas des titres editoriaux. */
.contact-now .right h5,
.contact-now .right h4 {
	font-family: var(--bgm-sans);
}
.contact-now .right h5 { font-weight: 600; }
.contact-now .right h4 { font-weight: 500; }

/* — Select2 (recherches) — */
.select2-container .select2-choice,
.select2-container-multi .select2-choices {
	background: var(--bgm-white) !important;
	border: 1px solid var(--bgm-line) !important;
	box-shadow: none !important;
	color: var(--bgm-ink) !important;
}
.select2-container .select2-choice .select2-arrow {
	background: transparent !important;
	border-left: 1px solid var(--bgm-line-soft) !important;
}
.select2-drop {
	border: 1px solid var(--bgm-line) !important;
	box-shadow: var(--bgm-shadow-lift) !important;
}
.select2-results .select2-highlighted {
	background: var(--bgm-olive) !important;
	color: var(--bgm-white) !important;
}
.select2-search-choice {
	background: var(--bgm-sage-pale) !important;
	border: 1px solid var(--bgm-sage) !important;
	color: var(--bgm-olive) !important;
	box-shadow: none !important;
}
/* Le theme vendorise le plugin Select2 v4 (classes .select2-selection__*,
   .select2-search__field, .select2-results__option) : les regles v3
   ci-dessus (.select2-choice, .select2-drop...) ne les couvrent pas, et
   aucune des deux versions ne fixait la taille de police. Sans cette regle,
   le champ de recherche et les options heritent du theme Select2 par
   defaut, potentiellement sous 16px sur mobile (zoom auto iOS Safari). */
.select2-selection__rendered,
.select2-search__field,
.select2-results__option {
	font-family: var(--bgm-sans) !important;
	font-weight: 500 !important;
	font-size: 1rem !important;
}

/* — Alertes — */
.alert {
	border: 1px solid var(--bgm-line);
	border-left: 3px solid var(--bgm-sage);
	background: var(--bgm-white);
	color: var(--bgm-body);
	box-shadow: none;
	font-family: var(--bgm-sans);
}
.alert-success { border-left-color: var(--bgm-sage); background: var(--bgm-sage-pale); color: var(--bgm-olive); }
.alert-danger  { border-left-color: #A6503A; background: #F7ECE8; color: #7C3A28; }
.alert-warning { border-left-color: var(--bgm-ocre); background: var(--bgm-ocre-pale); color: #7A5D22; }
.alert-info    { border-left-color: var(--bgm-sage); background: var(--bgm-sage-pale); color: var(--bgm-olive); }

/* — Fenetres modales — */
.modal-content {
	border: 1px solid var(--bgm-line);
	box-shadow: 0 30px 80px -30px rgba(38,42,28,.45);
}
.modal-header {
	background: var(--bgm-olive);
	border-bottom: 0;
	padding: 22px 26px;
}
.modal-header .modal-title { color: var(--bgm-on-dark); font-family: var(--bgm-serif); font-weight: 400; }
.modal-header .close { color: var(--bgm-ocre); opacity: .9; text-shadow: none; font-weight: 400; }
.modal-header .close:hover { color: var(--bgm-white); opacity: 1; }
.modal-body   { padding: 26px; }
.modal-footer { border-top: 1px solid var(--bgm-line-soft); background: var(--bgm-ivory); }
.modal-backdrop.in { background: var(--bgm-olive-deep); opacity: .62; }

/* — Pagination — */
.pagination > li > a,
.pagination > li > span,
.page-link {
	background: var(--bgm-white) !important;
	border: 1px solid var(--bgm-line) !important;
	color: var(--bgm-body) !important;
	font-family: var(--bgm-sans);
	font-weight: 600;
	font-size: var(--bgm-fs-meta);
}
.pagination > li > a:hover,
.page-link:hover {
	background: var(--bgm-cream) !important;
	border-color: var(--bgm-sage) !important;
	color: var(--bgm-olive) !important;
}
.pagination > .active > a,
.pagination > .active > span,
.page-item.active .page-link {
	background: var(--bgm-olive) !important;
	border-color: var(--bgm-olive) !important;
	color: var(--bgm-white) !important;
}

/* — Onglets — */
.nav-tabs { border-bottom: 1px solid var(--bgm-line); }
.nav-tabs > li > a {
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	color: var(--bgm-muted) !important;
	font-family: var(--bgm-sans);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	font-size: var(--bgm-fs-meta);
	background: transparent !important;
}
.nav-tabs > li.active > a,
.nav-tabs > li > a:hover {
	color: var(--bgm-olive) !important;
	border-bottom-color: var(--bgm-ocre) !important;
	background: transparent !important;
}

/* — Fiches et vignettes de biens — */
.property-thumb-info {
	background: var(--bgm-white);
	border: 1px solid var(--bgm-line);
	box-shadow: none;
}
.property-thumb-info-label,
.label-favoris {
	background: var(--bgm-olive) !important;
	color: var(--bgm-white) !important;
	font-family: var(--bgm-sans);
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: var(--bgm-fs-micro);
}
.price, .amenities .price {
	font-family: var(--bgm-serif);
	font-weight: 400;
	color: var(--bgm-olive) !important;
}

/* — Bandeau RGPD : regles completes en section 16 (bgm-cookie__*) — */
.overlay-layout { background: rgba(50,54,31,.62) !important; }

/* — Divers theme — */
hr { border-top: 1px solid var(--bgm-line-soft); }
blockquote {
	border-left: 2px solid var(--bgm-ocre);
	padding-left: 1.4rem;
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.1rem;
	line-height: 1.7;
	color: var(--bgm-ink);
}
.text-bold { font-weight: 700; }
.jumbotron { background: var(--bgm-cream); }
.panel { border: 1px solid var(--bgm-line); box-shadow: none; }
.panel-heading { background: var(--bgm-cream); border-bottom: 1px solid var(--bgm-line); }
.label { font-family: var(--bgm-sans); font-weight: 600; letter-spacing: .06em; }
.check-li-orange, .icon-location { color: var(--bgm-ocre-deep) !important; }
.text-white { color: var(--bgm-on-dark) !important; }

/* Champs anti-robot (pot de miel) : doivent rester invisibles quoi qu'il arrive.
   Filet de securite global : si un template perd sa regle locale, le champ
   reste masque et les formulaires continuent de fonctionner. */
.username-css,
.pot-de-miel-winnie,
input[name="username"]:not([type="submit"]) {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
label.username-css,
label.pot-de-miel-winnie {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px;
	overflow: hidden;
}

/* — DPE / GES : on ne retouche pas les couleurs reglementaires — */
[class*="dpe"] img, [class*="ges"] img { border-radius: 0 !important; }

/* ==========================================================================
   6. EN-TETE DE SITE  (header.twig — prefixe bgm-nav)
   --------------------------------------------------------------------------
   Deux etats : barre blanche au-dessus du hero (accueil, logo agrandi) /
   fond ivoire filete (pages interieures). L'etat sticky reste blanc au
   defilement.
   ========================================================================== */
.bgm-nav-shell { position: relative; }
.bgm-nav-shell.has-sticky { padding-top: 76px; }

.bgm-nav {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 1200;
	height: 100px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 0 clamp(20px, 4vw, 56px);
	background: transparent;
	transition: background .3s ease, box-shadow .3s ease, height .3s ease;
}
.bgm-nav::after {
	content: '';
	position: absolute;
	bottom: 0; left: clamp(20px, 4vw, 56px); right: clamp(20px, 4vw, 56px);
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(216,181,106,.34), transparent);
}

/* — Etat page interieure : barre claire dans le flux — */
.bgm-nav.is-page {
	position: relative;
	background: var(--bgm-ivory);
	border-bottom: 1px solid var(--bgm-line-soft);
}
.bgm-nav.is-page::after { display: none; }

/* — Etat accueil (haut de page) : barre blanche sur le hero — */
.bgm-nav.is-transparent {
	height: 120px;
	background: var(--bgm-white);
	border-bottom: 1px solid var(--bgm-line-soft);
}
.bgm-nav.is-transparent::after { display: none; }

/* — Etat sticky : barre blanche fixee — */
.bgm-nav.is-sticky {
	position: fixed;
	top: 0;
	height: 76px;
	background: var(--bgm-white);
	box-shadow: 0 10px 30px -18px rgba(38,42,28,.20);
	animation: bgmNavDown .32s ease forwards;
	border-bottom: 0;
}
.bgm-nav.is-sticky::after { display: none; }
@keyframes bgmNavDown {
	from { transform: translateY(-100%); }
	to   { transform: translateY(0); }
}

/* — Logo — */
.bgm-nav__brand { display: inline-flex; align-items: center; flex: none; text-decoration: none !important; }
.bgm-nav__brand img { height: 120px; width: auto; display: block; transition: height .3s ease; }
.bgm-nav.is-transparent .bgm-nav__brand img { height: 140px; }
.bgm-nav.is-sticky .bgm-nav__brand img { height: 56px; }
/* Logo toujours en version couleur (jamais blanche) */
.bgm-nav__logo--light { display: none; }
.bgm-nav__logo--dark  { display: block; }

/* — Menu desktop — */
.bgm-nav__menu {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
	flex: 1;
	min-width: 0;
}
.bgm-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 9px 13px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--bgm-ink) !important;
	text-decoration: none !important;
	transition: color .22s ease;
}
.bgm-nav__link::after {
	content: '';
	position: absolute;
	bottom: 2px; left: 13px; right: 13px;
	height: 1px;
	background: var(--bgm-ocre);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .26s ease;
}
.bgm-nav__link:hover, .bgm-nav__link.is-active { color: var(--bgm-ocre-deep) !important; }
.bgm-nav__link:hover::after, .bgm-nav__link.is-active::after { transform: scaleX(1); }

/* — CTA Extranet — */
.bgm-nav__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex: none;
	height: 44px;
	padding: 0 22px;
	border: 1px solid var(--bgm-olive);
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	color: var(--bgm-olive) !important;
	text-decoration: none !important;
	transition: background .24s ease, color .24s ease, border-color .24s ease;
}
.bgm-nav__cta:hover {
	background: var(--bgm-olive);
	color: var(--bgm-white) !important;
}
/* — Bouton burger — */
.bgm-nav__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 46px; height: 46px;
	flex: none;
	border: 1px solid var(--bgm-line);
	background: transparent;
	cursor: pointer;
	padding: 0;
	transition: border-color .24s ease, background .24s ease;
}
.bgm-nav__toggle:hover { border-color: var(--bgm-sage); }
.bgm-nav__toggle-bar {
	position: relative;
	display: block;
	width: 20px; height: 1px;
	background: var(--bgm-ink);
	transition: background .2s ease;
}
.bgm-nav__toggle-bar::before,
.bgm-nav__toggle-bar::after {
	content: '';
	position: absolute; left: 0;
	width: 20px; height: 1px;
	background: var(--bgm-ink);
	transition: transform .25s ease, top .25s ease;
}
.bgm-nav__toggle-bar::before { top: -6px; }
.bgm-nav__toggle-bar::after  { top: 6px; }

/* — Panneau mobile — */
.bgm-mobile {
	position: fixed;
	inset: 0;
	z-index: 3000;
	background: var(--bgm-olive-deep);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .26s ease, visibility .26s ease;
	overflow-y: auto;
}
.bgm-mobile.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.bgm-mobile__inner {
	min-height: 100vh;
	min-height: 100dvh;
	padding: 22px 22px 44px;
	display: flex;
	flex-direction: column;
	transform: translateY(14px);
	transition: transform .26s ease;
}
.bgm-mobile.is-open .bgm-mobile__inner { transform: translateY(0); }
.bgm-mobile__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 30px;
}
.bgm-mobile__head img { height: 56px; width: auto; display: block; }
.bgm-mobile__close {
	width: 46px; height: 46px;
	border: 1px solid rgba(216,181,106,.3);
	background: transparent;
	color: var(--bgm-on-dark);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 1rem;
	transition: border-color .2s ease, color .2s ease;
}
.bgm-mobile__close:hover { border-color: var(--bgm-ocre); color: var(--bgm-ocre); }
.bgm-mobile__rule {
	height: 1px;
	border: 0;
	background: linear-gradient(90deg, var(--bgm-ocre), rgba(216,181,106,.08));
	margin: 0 0 26px;
}
.bgm-mobile__links {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.bgm-mobile__link {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 58px;
	padding: 13px 4px;
	border-bottom: 1px solid rgba(246,245,238,.09);
	color: var(--bgm-on-dark) !important;
	text-decoration: none !important;
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.125rem;
	line-height: 1.25;
	transition: padding-left .22s ease, color .22s ease;
}
.bgm-mobile__link:hover { padding-left: 12px; color: var(--bgm-ocre) !important; }
.bgm-mobile__link i:first-child {
	width: 22px;
	text-align: center;
	color: var(--bgm-ocre);
	font-size: .85em;
	flex: none;
}
.bgm-mobile__link .bgm-mobile__arrow {
	margin-left: auto;
	color: rgba(216,181,106,.45);
	font-size: .75em;
}
.bgm-mobile__foot {
	margin-top: 30px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.bgm-mobile__extranet {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 52px;
	border: 1px solid rgba(216,181,106,.55);
	color: var(--bgm-ocre) !important;
	text-decoration: none !important;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	transition: background .24s ease, color .24s ease;
}
.bgm-mobile__extranet:hover { background: var(--bgm-ocre); color: var(--bgm-ink) !important; }
.bgm-mobile__infos {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
}
.bgm-mobile__info {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-small);
	font-weight: 500;
	color: var(--bgm-on-dark-muted) !important;
	text-decoration: none !important;
}
.bgm-mobile__info i { color: var(--bgm-ocre); }

@media (max-width: 1250px) {
	.bgm-nav__link { padding: 9px 9px; letter-spacing: .1em; }
}
@media (max-width: 1080px) {
	.bgm-nav { height: 84px; }
	.bgm-nav.is-transparent { height: 84px; }
	.bgm-nav__menu, .bgm-nav__cta { display: none; }
	.bgm-nav__toggle { display: inline-flex; }
	.bgm-nav__brand img,
	.bgm-nav.is-transparent .bgm-nav__brand img { height: 52px; }
}
@media (min-width: 1081px) {
	.bgm-mobile { display: none !important; }
}

/* ==========================================================================
   7. HERO D'ACCUEIL  (carousel.twig — prefixe bgm-home-hero)
   ========================================================================== */
.bgm-home-hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: center;
	background: var(--bgm-olive-deep);
	overflow: hidden;
}
.bgm-home-hero__media,
.bgm-home-hero__media img,
.bgm-home-hero__media video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bgm-home-hero__veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(38,42,28,.58) 0%, rgba(38,42,28,.34) 45%, rgba(38,42,28,.78) 100%),
		linear-gradient(90deg, rgba(50,54,31,.62) 0%, rgba(50,54,31,.22) 62%);
}
.bgm-home-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1320px;
	margin: 0 auto;
	padding: 140px clamp(20px, 5vw, 64px) 120px;
	color: var(--bgm-on-dark);
}
.bgm-home-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bgm-ocre);
	margin-bottom: 1.6rem;
}
.bgm-home-hero__eyebrow::before {
	content: '';
	width: 44px; height: 1px;
	background: var(--bgm-ocre);
}
.bgm-home-hero__title {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: var(--bgm-fs-display);
	line-height: 1.08;
	letter-spacing: 0;
	color: var(--bgm-on-dark);
	max-width: 15em;
	margin: 0 0 1.4rem;
}
.bgm-home-hero__title em { font-style: normal; color: var(--bgm-ocre); }
.bgm-home-hero__text {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-lead);
	font-weight: 500;
	line-height: 1.8;
	color: rgba(246,245,238,.78);
	max-width: 54ch;
	margin: 0 0 2.4rem;
}
.bgm-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}
.bgm-home-hero .bgm-btn-ghost {
	border-color: rgba(246,245,238,.4);
	color: var(--bgm-on-dark) !important;
}
.bgm-home-hero .bgm-btn-ghost:hover {
	background: var(--bgm-on-dark);
	border-color: var(--bgm-on-dark);
	color: var(--bgm-ink) !important;
}
.bgm-home-hero__scroll {
	position: absolute;
	bottom: 34px; left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	color: rgba(246,245,238,.66) !important;
	text-decoration: none !important;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-micro);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	transition: color .25s ease;
}
.bgm-home-hero__scroll:hover { color: var(--bgm-ocre) !important; }
.bgm-home-hero__scroll::after {
	content: '';
	width: 1px; height: 44px;
	background: linear-gradient(180deg, var(--bgm-ocre), transparent);
	animation: bgmScrollCue 2.4s ease-in-out infinite;
}
@keyframes bgmScrollCue {
	0%, 100% { transform: scaleY(.55); transform-origin: top; opacity: .5; }
	50%      { transform: scaleY(1);   transform-origin: top; opacity: 1; }
}
@media (max-width: 767px) {
	.bgm-home-hero { min-height: 88vh; }
	.bgm-home-hero__content { padding-top: 120px; padding-bottom: 100px; }
}

/* ==========================================================================
   8. MODALE DE RECHERCHE  (carousel.twig — classes ncm-* conservees pour le JS)
   ========================================================================== */
.ncm-overlay {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(50,54,31,.66);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .28s ease, visibility .28s ease;
}
.ncm-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.ncm-box {
	width: 100%;
	max-width: 860px;
	max-height: calc(100vh - 48px);
	max-height: calc(100dvh - 48px);
	overflow-y: auto;
	background: var(--bgm-ivory);
	border: 1px solid var(--bgm-line);
	border-top: 3px solid var(--bgm-ocre);
	box-shadow: 0 40px 90px -30px rgba(38,42,28,.55);
	transform: translateY(18px);
	transition: transform .28s ease;
}
.ncm-overlay.is-open .ncm-box { transform: translateY(0); }
body.ncm-modal-open { overflow: hidden; }

.ncm-handle { display: none; }
.ncm-header {
	position: sticky;
	top: 0;
	z-index: 5;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	padding: 26px 30px 18px;
	background: var(--bgm-ivory);
	border-bottom: 1px solid var(--bgm-line-soft);
}
.ncm-header-text h3 {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.375rem;
	color: var(--bgm-ink);
	margin: 0 0 4px;
}
.ncm-header-text h3 em { font-style: normal; color: var(--bgm-sage); }
.ncm-header-text p {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-small);
	font-weight: 500;
	color: var(--bgm-muted);
	margin: 0;
}
.ncm-close {
	flex: none;
	width: 42px; height: 42px;
	border: 1px solid var(--bgm-line);
	background: transparent;
	color: var(--bgm-muted);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: border-color .2s ease, color .2s ease;
}
.ncm-close:hover { border-color: var(--bgm-ocre); color: var(--bgm-ocre-deep); }

.ncm-body { padding: 24px 30px 30px; }
.ncm-rule {
	border: 0;
	height: 1px;
	background: linear-gradient(90deg, var(--bgm-ocre) 0 40px, var(--bgm-line-soft) 40px 100%);
	margin: 0 0 22px;
}
.ncm-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 20px;
}
.ncm-field { display: flex; flex-direction: column; }
.ncm-field--full { grid-column: 1 / -1; }
.ncm-label {
	display: block;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--bgm-muted);
	margin-bottom: 7px;
}
.ncm-input {
	width: 100%;
	height: 50px;
	padding: 0 14px;
	background: var(--bgm-white) !important;
	border: 1px solid var(--bgm-line) !important;
	color: var(--bgm-ink) !important;
	font-family: var(--bgm-sans) !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	box-shadow: none !important;
}
.ncm-input:focus {
	border-color: var(--bgm-sage) !important;
	box-shadow: 0 0 0 3px rgba(152,168,105,.16) !important;
	outline: none;
}

/* — Dropdowns custom (JS : .ncm-drop / __trigger / __panel / __option ...) — */
.ncm-drop { position: relative; }
.ncm-drop__trigger {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 50px;
	padding: 8px 40px 8px 14px;
	background: var(--bgm-white);
	border: 1px solid var(--bgm-line);
	cursor: pointer;
	flex-wrap: wrap;
	transition: border-color .2s ease, box-shadow .2s ease;
	position: relative;
	font-family: var(--bgm-sans);
	font-size: 1rem;
	font-weight: 500;
	color: var(--bgm-muted);
}
.ncm-drop.is-open .ncm-drop__trigger,
.ncm-drop__trigger:hover { border-color: var(--bgm-sage); }
.ncm-drop.has-value .ncm-drop__trigger { color: var(--bgm-ink); }
.ncm-drop__chevron {
	position: absolute;
	right: 14px; top: 50%;
	transform: translateY(-50%);
	color: var(--bgm-ocre-deep);
	font-size: .8em;
	transition: transform .22s ease;
	pointer-events: none;
}
.ncm-drop.is-open .ncm-drop__chevron { transform: translateY(-50%) rotate(180deg); }
.ncm-drop__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ncm-drop__tag {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 4px 10px;
	background: var(--bgm-sage-pale);
	border: 1px solid var(--bgm-sage);
	color: var(--bgm-olive);
	font-size: .86rem;
	font-weight: 600;
}
.ncm-drop__tag-remove {
	cursor: pointer;
	color: var(--bgm-olive);
	font-size: .82em;
	line-height: 1;
	display: inline-flex;
}
.ncm-drop__tag-remove:hover { color: var(--bgm-ocre-deep); }
.ncm-drop__more { font-size: .86rem; font-weight: 600; color: var(--bgm-muted); }
.ncm-drop__panel {
	position: absolute;
	top: calc(100% + 6px);
	left: 0; right: 0;
	z-index: 40;
	max-height: 260px;
	overflow-y: auto;
	background: var(--bgm-white);
	border: 1px solid var(--bgm-line);
	box-shadow: var(--bgm-shadow-lift);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.ncm-drop.is-open .ncm-drop__panel { opacity: 1; visibility: visible; transform: translateY(0); }
.ncm-drop.is-open-up .ncm-drop__panel { top: auto; bottom: calc(100% + 6px); }
.ncm-drop__option {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 11px 14px;
	cursor: pointer;
	font-family: var(--bgm-sans);
	font-size: 1rem;
	font-weight: 500;
	color: var(--bgm-body);
	border-bottom: 1px solid var(--bgm-line-soft);
	transition: background .16s ease;
}
.ncm-drop__option:last-child { border-bottom: 0; }
.ncm-drop__option:hover { background: var(--bgm-cream); }
.ncm-drop__check {
	flex: none;
	width: 16px; height: 16px;
	border: 1px solid var(--bgm-line);
	background: var(--bgm-white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	transition: background .18s ease, border-color .18s ease;
}
.ncm-drop__option.is-radio .ncm-drop__check { border-radius: 50%; }
.ncm-drop__option.is-selected .ncm-drop__check {
	background: var(--bgm-olive);
	border-color: var(--bgm-olive);
}
.ncm-drop__option.is-selected .ncm-drop__check::after {
	content: '';
	width: 8px; height: 4px;
	border-left: 1.6px solid var(--bgm-white);
	border-bottom: 1.6px solid var(--bgm-white);
	transform: rotate(-45deg) translateY(-1px);
}
.ncm-drop__option.is-selected { color: var(--bgm-olive); font-weight: 600; }
.ncm-hidden-inputs { display: none; }

.ncm-submit {
	width: 100%;
	height: 54px;
	margin-top: 6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	background: var(--bgm-olive);
	border: 1px solid var(--bgm-olive);
	color: var(--bgm-white);
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .26s ease, border-color .26s ease, color .26s ease;
}
.ncm-submit:hover, .ncm-submit:focus {
	background: var(--bgm-ocre);
	border-color: var(--bgm-ocre);
	color: var(--bgm-ink);
}

@media (max-width: 767px) {
	.ncm-overlay { padding: 0; align-items: flex-end; }
	.ncm-box {
		max-width: none;
		max-height: 92vh;
		max-height: 92dvh;
		border-left: 0; border-right: 0; border-bottom: 0;
	}
	.ncm-handle {
		display: block;
		width: 44px; height: 3px;
		background: var(--bgm-line);
		margin: 12px auto 0;
	}
	.ncm-grid { grid-template-columns: 1fr; }
	.ncm-header { padding: 18px 20px 14px; }
	.ncm-body { padding: 20px 20px 26px; }
}

/* ==========================================================================
   9. CARTE BIEN  (selection de biens, prefixe bgm-bien)
   ========================================================================== */
.bgm-biens-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0,1fr));
	gap: 26px;
}
@media (max-width: 1199px) { .bgm-biens-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 620px)  { .bgm-biens-grid { grid-template-columns: 1fr; } }

.bgm-bien {
	display: flex;
	flex-direction: column;
	background: var(--bgm-white);
	border: 1px solid var(--bgm-line);
	transition: border-color .3s ease, box-shadow .3s ease;
}
.bgm-bien:hover {
	border-color: var(--bgm-sage);
	box-shadow: var(--bgm-shadow-lift);
}
.bgm-bien__photo {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4/3;
	display: block;
}
.bgm-bien__photo img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .8s cubic-bezier(.22,.61,.36,1);
}
.bgm-bien:hover .bgm-bien__photo img { transform: scale(1.05); }
.bgm-bien__transac {
	position: absolute;
	top: 0; left: 0;
	padding: 8px 16px;
	background: var(--bgm-olive);
	color: var(--bgm-white);
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-micro);
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	z-index: 2;
}
.bgm-bien__body { padding: 22px 22px 18px; flex: 1; display: flex; flex-direction: column; }
.bgm-bien__price {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: var(--bgm-fs-price);
	color: var(--bgm-olive);
	line-height: 1.1;
	margin-bottom: 8px;
}
.bgm-bien__price small {
	font-family: var(--bgm-sans);
	font-weight: 500;
	font-size: .62em;
	color: var(--bgm-muted);
	letter-spacing: .02em;
}
.bgm-bien__title {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: var(--bgm-fs-card-title);
	line-height: 1.3;
	color: var(--bgm-ink);
	margin: 0 0 6px;
}
.bgm-bien__title a { color: inherit !important; text-decoration: none !important; }
.bgm-bien__title a:hover { color: var(--bgm-ocre-deep) !important; }
.bgm-bien__city {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bgm-muted);
	margin-bottom: 14px;
}
.bgm-bien__city i { color: var(--bgm-ocre-deep); font-size: .9em; }
.bgm-bien__meta {
	display: flex;
	margin-top: auto;
	border-top: 1px solid var(--bgm-line-soft);
}
.bgm-bien__meta span {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 12px 4px 2px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-meta);
	font-weight: 500;
	color: var(--bgm-body);
	border-right: 1px solid var(--bgm-line-soft);
}
.bgm-bien__meta span:last-child { border-right: 0; }
.bgm-bien__meta i { color: var(--bgm-sage); font-size: .92em; }

/* ==========================================================================
   10. EXPERTISES  (grille editoriale filetee, prefixe bgm-exp)
   ========================================================================== */
.bgm-exp-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0,1fr));
	gap: 1px;
	background: var(--bgm-on-dark-line);
	border-top: 1px solid var(--bgm-on-dark-line);
	border-bottom: 1px solid var(--bgm-on-dark-line);
}
.bgm-exp {
	background: var(--bgm-olive);
	padding: 40px 30px 34px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	transition: background .3s ease;
}
.bgm-exp:hover { background: var(--bgm-olive-deep); }
.bgm-exp__num {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: .875rem;
	color: var(--bgm-ocre);
	letter-spacing: .08em;
}
.bgm-exp__icon { font-size: 1.375rem; color: var(--bgm-sage-light); }
.bgm-exp__title {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.25rem;
	line-height: 1.25;
	color: var(--bgm-on-dark);
	margin: 0;
}
.bgm-exp__text {
	font-family: var(--bgm-sans);
	color: var(--bgm-on-dark-muted);
	font-size: .9375rem;
	font-weight: 500;
	line-height: 1.7;
	flex: 1;
	margin: 0;
}
@media (max-width: 1080px) { .bgm-exp-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 620px)  { .bgm-exp-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   11. SECTIONS ALTERNEES IMAGE / TEXTE  (prefixe bgm-split)
   ========================================================================== */
.bgm-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: clamp(36px, 6vw, 88px);
	align-items: center;
}
.bgm-split__media { position: relative; }
.bgm-split__media::before {
	content: '';
	position: absolute;
	top: 22px; left: -22px; right: 22px; bottom: -22px;
	border: 1px solid var(--bgm-ocre);
	pointer-events: none;
	z-index: 0;
}
.bgm-split--reverse .bgm-split__media::before { left: 22px; right: -22px; }
.bgm-split__media figure {
	position: relative;
	z-index: 1;
	margin: 0;
	overflow: hidden;
	box-shadow: var(--bgm-shadow-lift);
}
.bgm-split__media img {
	width: 100%;
	display: block;
	transition: transform .8s cubic-bezier(.22,.61,.36,1);
}
.bgm-split__media:hover img { transform: scale(1.04); }
.bgm-split--reverse .bgm-split__media { order: 2; }
@media (max-width: 991px) {
	.bgm-split { grid-template-columns: 1fr; gap: 44px; }
	.bgm-split--reverse .bgm-split__media { order: 0; }
	.bgm-split__media::before { top: 14px; left: -12px; right: 14px; bottom: -14px; }
	.bgm-split--reverse .bgm-split__media::before { left: 14px; right: -12px; }
}

/* ==========================================================================
   12. ETAPES / FAQ / STATS
   ========================================================================== */
.bgm-steps { position: relative; padding-left: 52px; }
.bgm-steps::before {
	content: '';
	position: absolute;
	left: 17px; top: 8px; bottom: 8px;
	width: 1px;
	background: var(--bgm-line);
}
.bgm-step { position: relative; padding-bottom: 34px; }
.bgm-step:last-child { padding-bottom: 0; }
.bgm-step__num {
	position: absolute;
	left: -52px; top: 0;
	width: 36px; height: 36px;
	background: var(--bgm-olive);
	color: var(--bgm-white);
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.bgm-step h3, .bgm-step h4 {
	margin: 4px 0 8px;
}
.bgm-step p { margin: 0; color: var(--bgm-body); }

.bgm-faq { border-top: 1px solid var(--bgm-line); }
.bgm-faq details { border-bottom: 1px solid var(--bgm-line); }
.bgm-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 20px 4px;
	cursor: pointer;
	list-style: none;
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: var(--bgm-fs-h4);
	color: var(--bgm-ink);
	transition: color .2s ease;
}
.bgm-faq summary::-webkit-details-marker { display: none; }
.bgm-faq summary::after {
	content: '+';
	flex: none;
	font-family: var(--bgm-sans);
	font-weight: 400;
	font-size: 1.3rem;
	color: var(--bgm-ocre-deep);
	transition: transform .25s ease;
}
.bgm-faq details[open] summary { color: var(--bgm-olive); }
.bgm-faq details[open] summary::after { transform: rotate(45deg); }
.bgm-faq summary:hover { color: var(--bgm-ocre-deep); }
.bgm-faq .bgm-faq__answer { padding: 0 4px 22px; color: var(--bgm-body); }
.bgm-faq .bgm-faq__answer ul { padding-left: 18px; margin: .6rem 0 0; }
.bgm-faq .bgm-faq__answer li { margin-bottom: .35rem; }

.bgm-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	border-top: 1px solid var(--bgm-line);
	border-bottom: 1px solid var(--bgm-line);
}
.bgm-stat {
	flex: 1 1 160px;
	padding: 22px 24px;
	border-right: 1px solid var(--bgm-line);
}
.bgm-stat:last-child { border-right: 0; }
.bgm-stat strong {
	display: block;
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.5rem;
	color: var(--bgm-olive);
	margin-bottom: 2px;
}
.bgm-stat span {
	font-family: var(--bgm-sans);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bgm-muted);
}
@media (max-width: 640px) {
	.bgm-stat { flex: 1 1 100%; border-right: 0; border-bottom: 1px solid var(--bgm-line-soft); }
	.bgm-stat:last-child { border-bottom: 0; }
}

/* ==========================================================================
   13. FORMULAIRES BERGAM  (prefixe bgm-form)
   ========================================================================== */
.bgm-form-card {
	background: var(--bgm-white);
	border: 1px solid var(--bgm-line);
	border-top: 3px solid var(--bgm-ocre);
	padding: clamp(24px, 4vw, 44px);
}
.bgm-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 18px 24px;
}
.bgm-form-grid .bgm-field--full { grid-column: 1 / -1; }
@media (max-width: 767px) {
	.bgm-form-grid { grid-template-columns: 1fr; }
	.bgm-form-grid .bgm-field--full { grid-column: 1; }
}
.bgm-field { display: flex; flex-direction: column; }
.bgm-field label {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	color: var(--bgm-muted);
	margin-bottom: 7px;
}
.bgm-field input,
.bgm-field select,
.bgm-field textarea {
	width: 100%;
	min-height: 50px;
	padding: 12px 14px;
	font-family: var(--bgm-sans);
	font-weight: 500;
	font-size: 1rem;
}
.bgm-field textarea { min-height: 140px; resize: vertical; line-height: 1.7; }
.bgm-field .bgm-field__hint {
	margin-top: 5px;
	font-size: var(--bgm-fs-meta);
	color: var(--bgm-muted);
}
.bgm-form-section-title {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.125rem;
	color: var(--bgm-ink);
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--bgm-line-soft);
}
.bgm-form-legal {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--bgm-line-soft);
	font-size: var(--bgm-fs-small);
	line-height: 1.75;
	color: var(--bgm-muted);
}
.bgm-form-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: var(--bgm-fs-small);
	color: var(--bgm-body);
	margin: 6px 0 0;
}
.bgm-form-consent input { margin-top: 4px; flex: none; min-height: 0; width: auto; }

/* — Coordonnees agence (fiches contact) — */
.bgm-coord { display: flex; flex-direction: column; gap: 0; }
.bgm-coord__item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 18px 2px;
	border-bottom: 1px solid var(--bgm-line-soft);
}
.bgm-coord__item:last-child { border-bottom: 0; }
.bgm-coord__item > i {
	flex: none;
	width: 20px;
	margin-top: 3px;
	text-align: center;
	color: var(--bgm-ocre-deep);
	font-size: 1rem;
}
.bgm-coord__item strong {
	display: block;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--bgm-muted);
	margin-bottom: 3px;
}
.bgm-coord__item a { color: var(--bgm-ink); font-weight: 600; text-decoration: none; }
.bgm-coord__item a:hover { color: var(--bgm-ocre-deep); }

/* ==========================================================================
   14. PAGES LEGALES  (prefixe bgm-legal)
   ========================================================================== */
.bgm-legal {
	max-width: 900px;
	margin: 0 auto;
	padding: var(--bgm-section-sm) 20px var(--bgm-section);
}
.bgm-legal h2 {
	font-size: 1.5rem;
	margin: 3rem 0 1.1rem;
	padding-top: 2.4rem;
	border-top: 1px solid var(--bgm-line);
}
.bgm-legal h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.bgm-legal h3 { font-size: 1.125rem; margin: 1.8rem 0 .7rem; }
.bgm-legal p, .bgm-legal li { color: var(--bgm-body); line-height: 1.8; }
.bgm-legal ul { padding-left: 20px; }
.bgm-legal-table { width: 100%; border-collapse: collapse; margin: 1.2rem 0; }
.bgm-legal-table th,
.bgm-legal-table td {
	text-align: left;
	vertical-align: top;
	padding: 12px 16px;
	border: 1px solid var(--bgm-line);
	font-size: var(--bgm-fs-small);
	line-height: 1.65;
}
.bgm-legal-table th {
	width: 34%;
	background: var(--bgm-cream);
	font-family: var(--bgm-sans);
	font-weight: 600;
	color: var(--bgm-ink);
	white-space: nowrap;
}
@media (max-width: 640px) {
	.bgm-legal-table th { white-space: normal; width: 40%; }
	.bgm-legal-table th, .bgm-legal-table td { padding: 10px 12px; font-size: .94rem; }
}
.bgm-legal-note {
	border: 1px solid var(--bgm-line);
	border-left: 3px solid var(--bgm-ocre);
	background: var(--bgm-white);
	padding: 18px 22px;
	margin: 1.4rem 0;
	font-size: 1rem;
}
.bgm-legal-meta {
	margin-top: 3rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--bgm-line);
	font-size: var(--bgm-fs-meta);
	color: var(--bgm-muted);
}

/* ==========================================================================
   15. PIED DE PAGE  (footer.twig — prefixe bgm-footer)
   ========================================================================== */
.bgm-footer {
	background: var(--bgm-olive-deep);
	color: var(--bgm-on-dark-muted);
	font-family: var(--bgm-sans);
}
.bgm-footer__topline {
	height: 3px;
	background: linear-gradient(90deg, var(--bgm-ocre) 0 30%, var(--bgm-sage) 30% 55%, transparent 55%);
}
.bgm-footer__body {
	margin: 0 auto;
	padding: clamp(52px, 7vw, 84px) clamp(20px, 4vw, 56px) clamp(40px, 5vw, 60px);
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1.3fr;
	gap: clamp(32px, 4vw, 60px);
	align-items: start;
}
.bgm-footer__logo { height: 88px; width: auto; display: block; margin-bottom: 22px; }
.bgm-footer__baseline {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: var(--bgm-fs-micro);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bgm-ocre);
	margin-bottom: 14px;
}
.bgm-footer__text {
	font-weight: 500;
	line-height: 1.8;
	font-size: var(--bgm-fs-small);
	max-width: 320px;
	margin: 0 0 24px;
}
.bgm-footer__title {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.125rem;
	color: var(--bgm-on-dark);
	margin: 0 0 18px;
	padding-bottom: 13px;
	position: relative;
}
.bgm-footer__title::after {
	content: '';
	position: absolute;
	left: 0; bottom: 0;
	width: 30px; height: 1px;
	background: var(--bgm-ocre);
}
.bgm-footer__nav { list-style: none; margin: 0; padding: 0; }
.bgm-footer__nav li a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 0;
	color: var(--bgm-on-dark-muted) !important;
	text-decoration: none !important;
	font-size: var(--bgm-fs-small);
	font-weight: 500;
	border-bottom: 1px solid rgba(246,245,238,.07);
	transition: color .2s ease, padding-left .2s ease;
}
.bgm-footer__nav li:last-child a { border-bottom: 0; }
.bgm-footer__nav li a:hover { color: var(--bgm-ocre) !important; padding-left: 6px; }
.bgm-footer__nav li a i {
	width: 14px;
	text-align: center;
	color: var(--bgm-sage);
	font-size: .82em;
	flex: none;
}
.bgm-footer__infos { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.bgm-footer__info {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: var(--bgm-fs-small);
	font-weight: 500;
	line-height: 1.6;
}
.bgm-footer__info i {
	color: var(--bgm-ocre);
	width: 15px;
	text-align: center;
	flex: none;
	margin-top: 4px;
	font-size: .9em;
}
.bgm-footer__info a { color: var(--bgm-on-dark-muted) !important; text-decoration: none !important; transition: color .2s ease; }
.bgm-footer__info a:hover { color: var(--bgm-ocre) !important; }
.bgm-footer__socials { display: flex; gap: 8px; }
.bgm-footer__social {
	width: 38px; height: 38px;
	border: 1px solid var(--bgm-on-dark-line);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--bgm-on-dark-muted) !important;
	text-decoration: none !important;
	transition: background .22s ease, border-color .22s ease, color .22s ease;
}
.bgm-footer__social:hover {
	background: var(--bgm-ocre);
	border-color: var(--bgm-ocre);
	color: var(--bgm-ink) !important;
}
.bgm-footer__cta-box {
	border: 1px solid var(--bgm-on-dark-line);
	padding: 26px 24px;
}
.bgm-footer__cta-box p { font-size: var(--bgm-fs-small); font-weight: 500; line-height: 1.8; margin: 0 0 20px; color: var(--bgm-on-dark-muted); }
.bgm-footer__cta-box .bgm-btn-ocre { width: 100%; margin-bottom: 10px; }
.bgm-footer__cta-box .bgm-btn-ghost {
	width: 100%;
	border-color: var(--bgm-on-dark-line);
	color: var(--bgm-ocre) !important;
}
.bgm-footer__cta-box .bgm-btn-ghost:hover {
	background: var(--bgm-ocre);
	border-color: var(--bgm-ocre);
	color: var(--bgm-ink) !important;
}
.bgm-footer__hours {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid rgba(246,245,238,.09);
	display: flex;
	gap: 10px;
	font-size: var(--bgm-fs-meta);
	font-weight: 500;
	line-height: 1.65;
}
.bgm-footer__hours i { color: var(--bgm-ocre); margin-top: 3px; flex: none; }
.bgm-footer__bottom {
	border-top: 1px solid rgba(246,245,238,.09);
}
.bgm-footer__bottom-inner {
	margin: 0 auto;
	padding: 20px clamp(20px, 4vw, 56px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px 24px;
	font-size: var(--bgm-fs-meta);
	color: rgba(246,245,238,.45);
}
.bgm-footer__bottom-inner a { color: rgba(246,245,238,.45) !important; text-decoration: none !important; transition: color .2s ease; }
.bgm-footer__bottom-inner a:hover { color: var(--bgm-ocre) !important; }
.bgm-footer__sep { color: rgba(246,245,238,.18); margin: 0 8px; }
.bgm-footer__ics { display: inline-flex; align-items: center; gap: 8px; }
.bgm-footer__ics img { height: 16px; opacity: .5; transition: opacity .2s ease; }
.bgm-footer__ics a:hover img { opacity: .85; }
/* Meme largeur dynamique que le reste du site (equivalent de col-sm-10
   col-sm-offset-1 : 83.33% a partir de 768px, plein largeur avant) */
@media (min-width: 768px) {
	.bgm-footer__body,
	.bgm-footer__bottom-inner { max-width: 83.3333%; }
}
@media (max-width: 1199px) {
	.bgm-footer__body { grid-template-columns: 1.4fr 1fr 1fr; }
	.bgm-footer__col--cta { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
	.bgm-footer__body { grid-template-columns: 1fr 1fr; }
	.bgm-footer__col--brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.bgm-footer__body { grid-template-columns: 1fr; }
	.bgm-footer__text { max-width: none; }
	.bgm-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================================
   16. BANNIERE COOKIES  (#rgpdBan — IDs/classes exiges par custom.js)
   ========================================================================== */
#rgpdBan {
	border-radius: 0 !important;
	background: var(--bgm-white) !important;
	border: 1px solid var(--bgm-line) !important;
	border-top: 3px solid var(--bgm-ocre) !important;
	box-shadow: 0 24px 60px -24px rgba(38,42,28,.45) !important;
	max-width: 380px !important;
	padding: 26px 26px 24px !important;
	text-align: left !important;
	font-family: var(--bgm-sans);
}
#rgpdBan .bgm-cookie__title {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.125rem;
	color: var(--bgm-ink);
	margin: 0 0 8px;
}
#rgpdBan .bgm-cookie__text {
	font-weight: 500;
	font-size: var(--bgm-fs-small);
	line-height: 1.7;
	color: var(--bgm-body);
	margin: 0 0 18px;
}
#rgpdBan .bgm-cookie__actions {
	display: flex;
	gap: 10px;
	width: 100%;
}
#rgpdBan .bgm-cookie__actions .btn-action-rgpd {
	flex: 1;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	cursor: pointer;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .10em;
	text-transform: uppercase;
	transition: background .22s ease, color .22s ease, border-color .22s ease;
}
#rgpdBan .bgm-cookie__accept {
	background: var(--bgm-olive);
	border: 1px solid var(--bgm-olive);
	color: var(--bgm-white);
}
#rgpdBan .bgm-cookie__accept:hover { background: var(--bgm-ocre); border-color: var(--bgm-ocre); color: var(--bgm-ink); }
#rgpdBan .bgm-cookie__refuse {
	background: transparent;
	border: 1px solid var(--bgm-line);
	color: var(--bgm-body);
}
#rgpdBan .bgm-cookie__refuse:hover { border-color: var(--bgm-olive); color: var(--bgm-olive); }
#rgpdBan .bgm-cookie__more {
	display: inline-block;
	margin-top: 14px;
	background: none;
	border: 0;
	padding: 0 0 2px;
	font-size: var(--bgm-fs-meta);
	font-weight: 600;
	letter-spacing: .06em;
	color: var(--bgm-muted);
	border-bottom: 1px solid var(--bgm-line);
	cursor: pointer;
	transition: color .2s ease, border-color .2s ease;
}
#rgpdBan .bgm-cookie__more:hover { color: var(--bgm-ocre-deep); border-color: var(--bgm-ocre); }
@media (max-width: 480px) {
	#rgpdBan {
		left: 12px !important;
		right: 12px !important;
		bottom: 12px !important;
		max-width: none !important;
		width: auto !important;
	}
}

/* ==========================================================================
   17. RESULTATS & FICHE  (resultats.twig / fiche.twig — prefixe bgm-listing / bgm-fiche)
   ========================================================================== */

/* — Bandeau mode démonstration (a supprimer avec le mode demo, voir
   php/tools/demo_data.php) — */
.bgm-demo-banner {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 18px;
	background: var(--bgm-ocre-pale);
	border: 1px solid var(--bgm-ocre);
	color: var(--bgm-olive-deep);
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-small);
	font-weight: 600;
	margin-bottom: 28px;
}
.bgm-demo-banner i { color: var(--bgm-ocre-deep); margin-top: 2px; flex: none; }

/* — Barre d'outils listing — */
.bgm-listing-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	padding: 18px 0;
	border-top: 1px solid var(--bgm-line);
	border-bottom: 1px solid var(--bgm-line);
	margin-bottom: 32px;
}
.bgm-listing-count {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-small);
	font-weight: 500;
	color: var(--bgm-muted);
}
.bgm-listing-count strong {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: 1.125rem;
	color: var(--bgm-olive);
}
.bgm-listing-controls { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.bgm-listing-controls label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bgm-muted);
	margin: 0;
}
.bgm-listing-controls select { min-height: 40px; padding: 8px 32px 8px 12px; font-size: var(--bgm-fs-small); }

/* — Grille de resultats (reutilise .bgm-bien de la page d'accueil) — */
.bgm-bien__desc {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-small);
	color: var(--bgm-body);
	line-height: 1.65;
	margin: 0 0 14px;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

/* — État vide — */
.bgm-listing-empty { grid-column: 1 / -1; text-align: center; padding: 70px 20px; }

/* — Pagination — */
.bgm-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 48px;
}
.bgm-page-btn {
	min-width: 38px;
	height: 38px;
	padding: 0 8px;
	border: 1px solid var(--bgm-line);
	background: var(--bgm-white);
	color: var(--bgm-ink);
	font-family: var(--bgm-serif);
	font-size: .9375rem;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.bgm-page-btn.is-wide {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 0 16px;
}
.bgm-page-btn:not(:disabled):hover { border-color: var(--bgm-olive); }
.bgm-page-btn.is-active { background: var(--bgm-olive); border-color: var(--bgm-olive); color: var(--bgm-white); }
.bgm-page-btn:disabled { opacity: .4; cursor: not-allowed; }
.bgm-page-ellipsis { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; color: var(--bgm-muted); }

/* — Fiche : galerie photo (aucune librairie externe) — */
.bgm-fiche-gallery { margin-bottom: 28px; }
.bgm-fiche-gallery__main {
	position: relative;
	border: 1px solid var(--bgm-line);
	background: var(--bgm-cream);
}
.bgm-fiche-gallery__main img {
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	display: block;
}
.bgm-fiche-gallery__count {
	position: absolute;
	bottom: 14px;
	right: 14px;
	background: rgba(38,42,28,.78);
	color: var(--bgm-white);
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-micro);
	font-weight: 600;
	letter-spacing: .08em;
	padding: 5px 12px;
}
.bgm-fiche-gallery__thumbs {
	display: flex;
	gap: 8px;
	margin-top: 8px;
	overflow-x: auto;
	padding-bottom: 2px;
}
.bgm-fiche-gallery__thumb {
	flex: none;
	width: 96px;
	height: 68px;
	padding: 0;
	border: 1px solid var(--bgm-line);
	background: none;
	cursor: pointer;
	opacity: .7;
	transition: opacity .2s ease, border-color .2s ease;
}
.bgm-fiche-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bgm-fiche-gallery__thumb.is-active,
.bgm-fiche-gallery__thumb:hover { opacity: 1; border-color: var(--bgm-ocre-deep); }

/* — Fiche : fiche technique (grille 2 colonnes) — */
.bgm-specs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	border-top: 1px solid var(--bgm-line-soft);
}
.bgm-specs__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	padding: 13px 14px;
	border-bottom: 1px solid var(--bgm-line-soft);
}
.bgm-specs__item:nth-child(odd) { border-right: 1px solid var(--bgm-line-soft); }
.bgm-specs__item span {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-small);
	font-weight: 500;
	color: var(--bgm-muted);
}
.bgm-specs__item strong {
	font-family: var(--bgm-sans);
	font-weight: 700;
	color: var(--bgm-ink);
	text-align: right;
	flex-shrink: 0;
}
@media (max-width: 640px) {
	.bgm-specs { grid-template-columns: 1fr; }
	.bgm-specs__item:nth-child(odd) { border-right: 0; }
}

/* — Fiche : bandeau partage / impression — */
.bgm-fiche-social {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: 20px;
	margin-top: 8px;
	border-top: 1px solid var(--bgm-line);
}
.bgm-fiche-social__label {
	font-family: var(--bgm-sans);
	font-size: var(--bgm-fs-label);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bgm-muted);
}
.bgm-fiche-social a img { height: 26px; width: 26px; opacity: .75; transition: opacity .2s ease; }
.bgm-fiche-social a:hover img { opacity: 1; }
.bgm-fiche-social .bgm-link { margin-left: auto; }

/* — Fiche : colonne laterale — */
.bgm-fiche-sidebar { display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 1200px) { .bgm-fiche-sidebar { position: sticky; top: 100px; } }
.bgm-fiche-price {
	font-family: var(--bgm-serif);
	font-weight: 400;
	font-size: var(--bgm-fs-price);
	color: var(--bgm-olive);
	line-height: 1.1;
}
.bgm-fiche-price-note { font-size: var(--bgm-fs-meta); color: var(--bgm-muted); margin-top: 4px; }
.bgm-fiche-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 22px; }

/* ==========================================================================
   18. DIVERS THEME RESIDUEL
   ========================================================================== */
/* Bouton remonter (style.theme.css le colore encore en terracotta) */
.scroll-to-top,
.scroll-to-top:visited {
	background-color: var(--bgm-olive) !important;
	color: var(--bgm-white) !important;
	border-radius: 0 !important;
}
.scroll-to-top:hover,
.scroll-to-top:focus {
	background-color: var(--bgm-ocre) !important;
	color: var(--bgm-ink) !important;
}

/* Page 404 */
.pgl-error .error-title { font-family: var(--bgm-serif); font-weight: 400; color: var(--bgm-olive); }

/* ==========================================================================
   19. MOUVEMENT REDUIT
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	/* WOW.js masque les elements avant animation : on les garde visibles */
	.wow { visibility: visible !important; animation-name: none !important; }
}

/* ==========================================================================
   20. IMPRESSION
   ========================================================================== */
@media print {
	.bgm-hero, .bgm-section--olive, .pgl-page-header, .bgm-footer, .bgm-nav {
		background: var(--bgm-white) !important;
		color: var(--bgm-ink) !important;
	}
	.bgm-hero h1, .bgm-section--olive h2, .pgl-page-header h1 { color: var(--bgm-ink) !important; }
	.bgm-btn, .bgm-btn-ghost, .bgm-btn-ocre, #rgpdBan { display: none !important; }
}
