/**
 * Contact page « Le bureau de chantier » (inc/70-contact.php) and Fluent Forms. Every field, the anti-spam question of
 * mu-plugin bm-form-antispam included, has its label above and takes the full width.
 */

/* ── Layout ───────────────────────────────────────── */
.bm-contact__grid { display: grid; gap: 2.5rem; padding-block: 0 56px; }
.bm-contact__main { min-width: 0; }
.bm-contact__content > h2 { font-size: clamp(1.45rem, 1.2rem + 0.9vw, 1.9rem); font-weight: 900; }
.bm-contact__content > p, .bm-contact__content > ul { max-width: 68ch; }
.bm-contact__content > ul { padding-left: 1.2rem; }
.bm-contact__content > ul li::marker { color: var(--bm-brique); }
.bm-contact__aside { display: grid; gap: 1rem; align-content: start; }
.bm-aside-card { padding: 1.25rem 1.2rem; border: 1px solid var(--bm-trait); border-radius: var(--bm-radius-lg); background: var(--bm-base); }
.bm-aside-card > p { margin: 0.5rem 0 0; color: var(--bm-meta); font-size: 0.98rem; line-height: 1.55; }
.bm-aside-card__title { margin: 0 !important; color: var(--bm-ardoise) !important; font: 800 1.15rem/1.2 var(--bm-heading) !important; }
.bm-aside-card--devis { border-top: 6px solid var(--bm-brique); }
.bm-aside-card--devis .bm-devisbox { margin-top: 1rem; }
.bm-aside-card .bm-search { margin-top: 0.9rem; }
.bm-aside-card__floors { display: grid; gap: 0; margin: 1rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--bm-trait); }
.bm-aside-card__floors a { display: flex; align-items: center; gap: 0.6rem; min-height: 44px; border-bottom: 1px solid var(--bm-trait); color: var(--bm-ardoise); font: 700 0.95rem/1.2 var(--bm-heading); text-decoration: none; }
.bm-aside-card__floors a:hover { color: var(--bm-brique-text); }
.bm-aside-card__floors .bm-chip__n { min-width: 2em; }
.bm-aside-card__links { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin: 0.5rem 0 0; padding: 0; list-style: none; }
.bm-aside-card__links a { display: inline-flex; align-items: center; min-height: 44px; }
.bm-aside-card--small { background: var(--bm-craie); }
.bm-contact .bm-faqx { padding-top: 24px; }

/* ── Fluent Forms ─────────────────────────────────── */
.bm-prose .fluentform, .fluentform {
	position: relative;
	margin-block: 1.5rem 2rem;
	padding: 2rem 1.2rem 1.4rem;
	border: 1px solid var(--bm-trait);
	border-top: 6px solid var(--bm-ardoise);
	border-radius: var(--bm-radius-lg);
	background: var(--bm-base);
	box-shadow: 0 18px 30px -26px rgb(31 42 51 / 0.6);
}
.fluentform .ff-el-group { margin: 0 0 1.15rem; }
.fluentform .ff-el-input--label { display: block; margin: 0 0 0.4rem; padding: 0; }
.fluentform .ff-el-input--label label,
.fluentform .bm-captcha label { display: block; margin: 0; color: var(--bm-ardoise); font: 700 1rem/1.35 var(--bm-heading); }
.fluentform .ff-el-is-required.asterisk-right label::after { content: " *"; color: var(--bm-brique-text); }
.fluentform .ff-el-input--content { display: block; width: 100%; }
.fluentform .ff-el-form-control,
.fluentform .bm-captcha__input {
	box-sizing: border-box;
	display: block;
	width: 100% !important;
	max-width: none;
	min-height: 50px;
	padding: 0.65rem 0.9rem;
	border: 2px solid #CDBF9F;
	border-radius: var(--bm-radius);
	background: var(--bm-base);
	color: var(--bm-ardoise);
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color 0.15s;
}
.fluentform textarea.ff-el-form-control { min-height: 170px; resize: vertical; }
.fluentform .ff-el-form-control:hover, .fluentform .bm-captcha__input:hover { border-color: var(--bm-meta); }
.fluentform .ff-el-form-control:focus, .fluentform .bm-captcha__input:focus { border-color: var(--bm-ardoise); outline: 3px solid rgb(166 56 35 / 0.25); outline-offset: 1px; }
.fluentform .ff-el-form-control::placeholder, .fluentform .bm-captcha__input::placeholder { color: #7D8790; opacity: 1; }
.fluentform .ff-el-help-message { margin-top: 0.35rem; color: var(--bm-meta); font-size: 0.875rem; font-style: normal; }
.fluentform .bm-captcha { padding: 0.9rem 1rem 1rem; border-radius: var(--bm-radius); background: var(--bm-mortar), var(--bm-sable); }
.fluentform .bm-captcha .ff-el-input--label { margin-bottom: 0.4rem; }
.fluentform .ff-el-form-check { display: flex; align-items: flex-start; gap: 0.6rem; margin: 0; }
.fluentform .ff-el-form-check-label { display: flex; align-items: flex-start; gap: 0.6rem; color: var(--bm-ardoise); font-size: 0.95rem; line-height: 1.5; cursor: pointer; }
.fluentform .ff-el-form-check-input { flex: none; width: 22px; height: 22px; margin: 0.1rem 0 0; accent-color: var(--bm-brique-text); }
.fluentform .ff_submit_btn_wrapper, .fluentform .ff-el-group.ff-text-left { margin-bottom: 0; }
.fluentform .ff-btn-submit,
.fluentform button.ff-btn-submit:not(.ff_btn_no_style) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 1.6rem;
	border: 0;
	border-radius: var(--bm-radius);
	background: var(--bm-brique-text) !important;
	box-shadow: 0 3px 0 #7E2A1A;
	color: var(--bm-base) !important;
	font: 800 1.05rem/1 var(--bm-heading);
	cursor: pointer;
}
.fluentform .ff-btn-submit:hover { background: var(--bm-ardoise) !important; box-shadow: 0 3px 0 #0E151A; }
.fluentform .error, .fluentform .text-danger { margin-top: 0.35rem; color: var(--bm-brique-text); font-size: 0.9rem; font-weight: 600; }
.fluentform .ff-el-is-error .ff-el-form-control { border-color: var(--bm-brique-text); }
.ff-message-success { padding: 1rem 1.2rem; border: 2px solid var(--bm-ardoise); border-radius: var(--bm-radius); background: var(--bm-ciel-pale); color: var(--bm-ardoise); box-shadow: none; }

@media (min-width: 600px) {
	.bm-prose .fluentform, .fluentform { padding: 2.2rem 1.8rem 1.6rem; }
}
@media (min-width: 1024px) {
	.bm-contact__grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 3.5rem; }
	.bm-contact__aside { position: relative; }
}
.bm-contact__grid > *, .bm-contact__main > *, .bm-aside-card { min-width: 0; }
.bm-aside-card .bm-devisbox__row { flex-direction: column; }
.bm-aside-card .bm-devisbox select, .bm-aside-card .bm-devisbox .bm-btn { flex: 0 0 auto; width: 100%; }
.fluentform .ff-el-form-check-label .ff-el-form-check-input { position: static !important; float: none; margin: 0.15rem 0 0 !important; }
.fluentform .ff_tc_checkbox { display: flex; flex: none; padding-top: 0.1rem; }
.fluentform .ff_t_c { flex: 1 1 auto; min-width: 0; margin: 0 !important; padding: 0 !important; }
.fluentform .ff-el-form-check label.ff-el-form-check-label { display: flex !important; align-items: flex-start; gap: 0.7rem !important; }
