/* BNIHA Estimator - styles frontend.
   Toutes les regles sont limitees a .bniha-estimator pour ne jamais affecter
   le theme, Elementor, l en-tete, le pied de page ou une autre page. */

.bniha-estimator{
	--bne-p:#7717ED;
	--bne-p-dark:#5E0FC4;
	--bne-p-soft:#F3ECFD;
	--bne-sky:#0EA5E9;
	--bne-sky-soft:#E6F6FE;
	--bne-d:#16121F;
	--bne-t:#2B2733;
	--bne-m:#6B6577;
	--bne-bd:#EAE3F5;
	--bne-bg:#FBF9FE;
	--bne-ok:#0F9D58;
	--bne-err:#D93025;
	--bne-r:16px;
	box-sizing:border-box;
	max-width:1280px;
	margin-inline:auto;
	color:var(--bne-t);
	font-size:16px;
	line-height:1.6;
	text-align:start;
	width:100%;
	overflow-x:hidden;
}
.bniha-estimator *,
.bniha-estimator *::before,
.bniha-estimator *::after{box-sizing:inherit}
.bniha-estimator{scroll-margin-top:92px}
@media(max-width:600px){.bniha-estimator{scroll-margin-top:76px}}

/* En-tete produit (marque + titre + sous-titre) */
.bniha-estimator .bne-app-header{
	text-align:center;max-width:640px;margin:0 auto 28px;
}
.bniha-estimator .bne-brand{
	display:inline-block;font-size:12px;font-weight:800;letter-spacing:2px;
	color:var(--bne-p);text-transform:uppercase;margin:0 0 12px;
}
.bniha-estimator .bne-app-title{
	font-size:34px;line-height:1.18;font-weight:800;color:var(--bne-d);
	margin:0 0 10px;letter-spacing:-.3px;
}
.bniha-estimator .bne-app-sub{
	font-size:16px;line-height:1.6;color:var(--bne-m);margin:0 auto;max-width:34em;
}

.bniha-estimator .bne-title{
	font-size:22px;line-height:1.3;font-weight:800;color:var(--bne-d);
	margin:0 0 6px;
}
.bniha-estimator .bne-help{font-size:14px;color:var(--bne-m);margin:0 0 12px}

/* Phases (01 Projet -> 02 Construction -> 03 Options -> 04 Resultat) */
.bniha-estimator .bne-progress{margin:0 0 30px}
.bniha-estimator .bne-phases{
	display:flex;list-style:none;margin:0 0 14px;padding:0;
	justify-content:center;gap:0;
}
.bniha-estimator .bne-phase{
	display:flex;align-items:center;gap:9px;font-size:13px;color:var(--bne-m);
	padding:0 18px;position:relative;
}
.bniha-estimator .bne-phase::after{
	content:"";position:absolute;top:50%;inset-inline-end:-2px;width:36px;height:1px;
	background:var(--bne-bd);transform:translateY(-13px);
}
.bniha-estimator .bne-phase:last-child::after{display:none}
.bniha-estimator .bne-phase-n{
	display:inline-flex;align-items:center;justify-content:center;
	width:26px;height:26px;flex:0 0 26px;border-radius:50%;
	background:var(--bne-bg);border:1px solid var(--bne-bd);color:var(--bne-m);
	font-size:11px;font-weight:800;transition:.25s ease;
}
.bniha-estimator .bne-phase-label{font-weight:700;white-space:nowrap;transition:.25s ease}
.bniha-estimator .bne-phase.is-active .bne-phase-n{
	background:var(--bne-p);border-color:var(--bne-p);color:#fff;
	box-shadow:0 0 0 4px var(--bne-p-soft);
}
.bniha-estimator .bne-phase.is-active .bne-phase-label{color:var(--bne-d)}
.bniha-estimator .bne-phase.is-done .bne-phase-n{
	background:var(--bne-p-soft);border-color:var(--bne-p-soft);color:var(--bne-p);
}
.bniha-estimator .bne-phase.is-done .bne-phase-label{color:var(--bne-t)}
.bniha-estimator .bne-progress-bar{
	height:4px;background:var(--bne-bd);border-radius:99px;overflow:hidden;
	max-width:420px;margin:0 auto;
}
.bniha-estimator .bne-progress-fill{
	display:block;height:100%;width:0;border-radius:99px;
	background:linear-gradient(90deg,var(--bne-p),var(--bne-sky));
	transition:width .35s ease;
}
.bniha-estimator .bne-step-counter{
	display:none;font-size:13px;color:var(--bne-m);margin:10px 0 0;font-weight:600;text-align:center;
}
@media(prefers-reduced-motion:reduce){
	.bniha-estimator .bne-step.is-active{animation:none}
	.bniha-estimator .bne-progress-fill{transition:none}
}

/* Etapes : gabarit lecture confortable, le resultat utilise tout l espace */
.bniha-estimator .bne-form{width:100%}
.bniha-estimator .bne-step{display:none}
.bniha-estimator .bne-step.is-active{
	display:block;animation:bne-in .32s cubic-bezier(.2,.7,.3,1);
	max-width:720px;margin-inline:auto;
}
.bniha-estimator .bne-step.is-active.bne-step-result{max-width:920px}
@keyframes bne-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Cartes de choix */
.bniha-estimator .bne-cards{display:grid;gap:12px;margin:0 0 6px}
.bniha-estimator .bne-cards-3{grid-template-columns:repeat(3,1fr)}
.bniha-estimator .bne-cards-2{grid-template-columns:repeat(2,1fr)}
.bniha-estimator .bne-card{
	position:relative;display:block;cursor:pointer;
	border:1.5px solid var(--bne-bd);border-radius:var(--bne-r);
	background:#fff;padding:18px 18px;
	transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.bniha-estimator .bne-card:hover{border-color:#C9B2F0;transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(22,18,31,.25)}
.bniha-estimator .bne-card input{position:absolute;opacity:0;width:0;height:0}
.bniha-estimator .bne-card:has(input:checked){
	border-color:var(--bne-p);background:var(--bne-p-soft);
	box-shadow:0 10px 24px -12px rgba(119,23,237,.4);
}
.bniha-estimator .bne-card input:focus-visible ~ .bne-card-body{outline:2px solid var(--bne-p);outline-offset:4px;border-radius:6px}
.bniha-estimator .bne-card-body{display:flex;flex-direction:column;gap:4px}
.bniha-estimator .bne-card-title{font-weight:700;color:var(--bne-d);font-size:16.5px}
.bniha-estimator .bne-card-sub{font-size:13px;color:var(--bne-m)}
.bniha-estimator .bne-check{
	position:absolute;top:12px;inset-inline-end:12px;width:19px;height:19px;
	border-radius:50%;border:2px solid var(--bne-bd);background:#fff;transition:.2s;
}
.bniha-estimator .bne-card:has(input:checked) .bne-check{
	border-color:var(--bne-p);background:var(--bne-p);
	box-shadow:inset 0 0 0 3px #fff;
}

/* Champs */
.bniha-estimator .bne-field{margin:0 0 14px}
.bniha-estimator .bne-label{
	display:block;font-size:12px;font-weight:700;letter-spacing:.6px;
	text-transform:uppercase;color:var(--bne-m);margin:0 0 7px;
}
.bniha-estimator .bne-input-wrap{position:relative;display:flex;align-items:center}
.bniha-estimator .bne-input{
	width:100%;font:inherit;font-weight:700;color:var(--bne-d);
	background:#fff;border:1.5px solid var(--bne-bd);border-radius:12px;
	padding:13px 62px 13px 15px;margin:0;min-height:50px;
	transition:border-color .2s ease,box-shadow .2s ease;
	-moz-appearance:textfield;
}
.bniha-estimator .bne-input::-webkit-outer-spin-button,
.bniha-estimator .bne-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bniha-estimator .bne-input:focus{
	outline:none;border-color:var(--bne-p);
	box-shadow:0 0 0 3px rgba(119,23,237,.14);
}
.bniha-estimator .bne-input.has-error{border-color:var(--bne-err);box-shadow:0 0 0 3px rgba(217,48,37,.12)}
.bniha-estimator .bne-suffix{
	position:absolute;inset-inline-end:14px;font-size:13px;font-weight:700;
	color:var(--bne-m);pointer-events:none;
}

/* Niveaux */
.bniha-estimator .bne-floors{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.bniha-estimator .bne-floor{
	display:flex;align-items:center;gap:12px;
	background:var(--bne-bg);border:1px solid var(--bne-bd);border-radius:12px;padding:11px 13px;
}
.bniha-estimator .bne-floor-name{
	flex:1 1 auto;font-weight:700;color:var(--bne-d);font-size:15px;min-width:0;
}
.bniha-estimator .bne-floor .bne-input-wrap{flex:0 0 160px}
.bniha-estimator .bne-floor-remove{
	flex:0 0 auto;width:38px;height:38px;border-radius:10px;cursor:pointer;
	border:1px solid var(--bne-bd);background:#fff;color:var(--bne-m);
	font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;
	transition:.2s;
}
.bniha-estimator .bne-floor-remove:hover{border-color:var(--bne-err);color:var(--bne-err);background:#FEF3F2}

/* Boutons */
.bniha-estimator .bne-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	font:inherit;font-weight:700;cursor:pointer;
	border-radius:12px;padding:14px 26px;min-height:50px;
	border:1px solid transparent;text-decoration:none;
	transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease;
}
.bniha-estimator .bne-btn:hover{transform:translateY(-2px)}
.bniha-estimator .bne-btn:focus-visible{outline:2px solid var(--bne-p);outline-offset:3px}
.bniha-estimator .bne-btn-primary{
	background:var(--bne-p);color:#fff;
	box-shadow:0 10px 22px -10px rgba(119,23,237,.55);
}
.bniha-estimator .bne-btn-primary:hover{background:var(--bne-p-dark);color:#fff}
.bniha-estimator .bne-btn-ghost{
	background:#fff;color:var(--bne-d);border-color:var(--bne-bd);
}
.bniha-estimator .bne-btn-ghost:hover{border-color:var(--bne-p);color:var(--bne-p)}
.bniha-estimator .bne-btn-add{width:100%;margin-bottom:16px}
.bniha-estimator .bne-btn[hidden]{display:none}
.bniha-estimator .bne-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

.bniha-estimator .bne-nav{
	display:flex;gap:12px;justify-content:space-between;
	margin-top:24px;padding-top:18px;border-top:1px solid var(--bne-bd);
	max-width:720px;margin-inline:auto;
}
.bniha-estimator .bne-nav .bne-btn{flex:0 1 auto;min-width:130px}

/* Centre le bouton Suivant dans la zone de contenu, sans changer sa taille ni la position du bouton Retour. Le bandeau mobile sticky (<=600px) garde son comportement d origine. */
@media(min-width:601px){
	.bniha-estimator .bne-nav{
		display:grid;
		grid-template-columns:1fr auto 1fr;
		align-items:center;
	}
	.bniha-estimator .bne-nav [data-bne-prev]{grid-column:1;justify-self:start;}
	.bniha-estimator .bne-nav [data-bne-next]{grid-column:2;justify-self:center;}
}

.bniha-estimator .bne-btn-outline{
	background:#fff;color:var(--bne-p);border:1.5px solid var(--bne-bd);font-weight:700;
}
.bniha-estimator .bne-btn-outline:hover{background:var(--bne-p-soft);color:var(--bne-p-dark);border-color:var(--bne-p-soft)}
.bniha-estimator .bne-btn-restart{width:100%;justify-content:center;min-height:48px;margin-top:6px}
@media(min-width:783px){.bniha-estimator .bne-btn-restart{width:auto;min-width:260px;display:flex;margin-inline:auto}}

/* Groupes / choix */
.bniha-estimator .bne-group{
	border:1px solid var(--bne-bd);border-radius:var(--bne-r);
	padding:18px;margin:0 0 16px;background:#fff;
}
.bniha-estimator .bne-legend{
	font-weight:700;color:var(--bne-d);font-size:15.5px;padding:0 6px;margin-inline-start:-6px;
}
.bniha-estimator .bne-choices{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.bniha-estimator .bne-choice{
	position:relative;cursor:pointer;border:1.5px solid var(--bne-bd);
	border-radius:99px;padding:10px 24px;background:#fff;font-weight:700;
	font-size:15px;color:var(--bne-t);transition:.2s;min-height:44px;
	display:inline-flex;align-items:center;
}
.bniha-estimator .bne-choice input{position:absolute;opacity:0;width:0;height:0}
.bniha-estimator .bne-choice:has(input:checked){
	border-color:var(--bne-p);background:var(--bne-p-soft);color:var(--bne-p);
}
.bniha-estimator .bne-conditional{
	margin-top:16px;padding-top:16px;border-top:1px dashed var(--bne-bd);
}
.bniha-estimator [hidden]{display:none !important}

/* Piscine */
.bniha-estimator .bne-pool-grid{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));
	gap:10px;margin-top:10px;
}
.bniha-estimator .bne-pool-option{
	position:relative;cursor:pointer;text-align:center;
	border:1.5px solid var(--bne-bd);border-radius:12px;padding:12px 8px;background:#fff;
	display:flex;flex-direction:column;gap:2px;transition:.2s;min-height:64px;
	justify-content:center;
}
.bniha-estimator .bne-pool-option input{position:absolute;opacity:0;width:0;height:0}
.bniha-estimator .bne-pool-option:has(input:checked){border-color:var(--bne-p);background:var(--bne-p-soft)}
.bniha-estimator .bne-pool-dim{font-weight:800;color:var(--bne-d);font-size:15px}
.bniha-estimator .bne-pool-area{font-size:12px;color:var(--bne-m)}
.bniha-estimator .bne-mini-recap{
	margin-top:16px;background:var(--bne-bg);
	border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;
}
.bniha-estimator .bne-mini-recap>div{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.bniha-estimator .bne-mini-recap span{color:var(--bne-m)}
.bniha-estimator .bne-mini-recap strong{color:var(--bne-d)}
.bniha-estimator .bne-mini-total{
	border-top:1px solid var(--bne-bd);padding-top:8px;margin-top:2px;
}
.bniha-estimator .bne-mini-total strong{color:var(--bne-p);font-size:16px}

/* Services de finition */
.bniha-estimator .bne-services{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.bniha-estimator .bne-service{
	border:1px solid var(--bne-bd);border-radius:var(--bne-r);background:#fff;overflow:hidden;
	transition:border-color .2s ease;
}
.bniha-estimator .bne-service.is-on{border-color:var(--bne-p)}
.bniha-estimator .bne-service-head{
	display:flex;align-items:center;gap:12px;cursor:pointer;padding:14px 16px;
	min-height:56px;
}
.bniha-estimator .bne-service-head input{position:absolute;opacity:0;width:0;height:0}
.bniha-estimator .bne-switch{
	flex:0 0 44px;width:44px;height:26px;border-radius:99px;background:var(--bne-bd);
	position:relative;transition:background .22s ease;
}
.bniha-estimator .bne-switch::after{
	content:"";position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;
	border-radius:50%;background:#fff;transition:transform .22s ease;
	box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.bniha-estimator .bne-service-head:has(input:checked) .bne-switch{background:var(--bne-p)}
.bniha-estimator .bne-service-head:has(input:checked) .bne-switch::after{transform:translateX(18px)}
.bniha-estimator [dir="rtl"] .bne-service-head:has(input:checked) .bne-switch::after,
[dir="rtl"] .bniha-estimator .bne-service-head:has(input:checked) .bne-switch::after{transform:translateX(-18px)}
.bniha-estimator .bne-service-name{flex:1 1 auto;font-weight:700;color:var(--bne-d);min-width:0}
.bniha-estimator .bne-service-rate{
	flex:0 0 auto;font-size:13px;font-weight:700;color:var(--bne-p);
	background:var(--bne-p-soft);padding:5px 11px;border-radius:99px;white-space:nowrap;
}
.bniha-estimator .bne-service-body{
	padding:0 16px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.bniha-estimator .bne-service-body .bne-input-wrap{flex:1 1 180px}
.bniha-estimator .bne-service-sub{
	flex:0 0 auto;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--bne-m);
}
.bniha-estimator .bne-service-sub strong{color:var(--bne-d);font-size:16px}

/* Encadres */
.bniha-estimator .bne-callout{
	background:var(--bne-p-soft);border-radius:12px;
	padding:14px 16px;font-size:14px;color:#4A1B8C;margin:0 0 16px;line-height:1.55;
}
.bniha-estimator .bne-note{
	background:var(--bne-bg);border-radius:12px;
	padding:16px 18px;margin:0 0 16px;
}
.bniha-estimator .bne-note-title{font-size:14px;font-weight:700;color:var(--bne-d);margin:0 0 8px}
.bniha-estimator .bne-list{margin:0;padding-inline-start:20px;color:var(--bne-m);font-size:14px}
.bniha-estimator .bne-list li{margin:0 0 4px}
.bniha-estimator .bne-summary-box{
	display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
	background:var(--bne-bg);border-radius:12px;
	padding:16px 18px;margin:6px 0 0;
}
.bniha-estimator .bne-summary-label{font-size:14px;color:var(--bne-m);font-weight:600}
.bniha-estimator .bne-summary-value{font-size:19px;font-weight:800;color:var(--bne-p)}

/* Erreurs */
.bniha-estimator .bne-error{
	display:none;margin:14px 0 0;font-size:14px;font-weight:600;color:var(--bne-err);
	background:#FEF3F2;border-radius:10px;padding:11px 14px;
}
.bniha-estimator .bne-error.is-visible{display:block}

/* Resultat : hero total (element visuel le plus fort de l ecran) */
.bniha-estimator .bne-result-hero{
	text-align:center;padding:34px 20px 30px;margin:0 0 30px;border-radius:24px;
	background:linear-gradient(155deg,var(--bne-p) 0%,var(--bne-p-dark) 55%,var(--bne-sky) 130%);
	color:#fff;box-shadow:0 24px 50px -20px rgba(94,15,196,.45);
}
.bniha-estimator .bne-result-kicker{
	display:inline-block;font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;
	color:rgba(255,255,255,.78);margin:0 0 10px;
}
.bniha-estimator .bne-result-total{
	font-size:52px;line-height:1.05;font-weight:800;color:#fff;letter-spacing:-1px;
	margin:0 0 8px;
}
.bniha-estimator .bne-result-rates{
	display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
	gap:6px 14px;font-size:15px;font-weight:600;color:rgba(255,255,255,.85);margin:0 0 20px;
}
.bniha-estimator .bne-result-rate{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.bniha-estimator .bne-result-rate-label{color:rgba(255,255,255,.72)}
.bniha-estimator .bne-result-rate-value{font-weight:800;color:#fff}
.bniha-estimator .bne-result-rate-sep{color:rgba(255,255,255,.45)}
@media(max-width:480px){
	.bniha-estimator .bne-result-rates{flex-direction:column;gap:4px}
	.bniha-estimator .bne-result-rate-sep{display:none}
}
.bniha-estimator .bne-result-chips{
	display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
}
.bniha-estimator .bne-chip{
	display:inline-flex;align-items:center;font-size:13.5px;font-weight:700;color:#fff;
	background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);
	padding:7px 15px;border-radius:99px;backdrop-filter:blur(2px);
}

.bniha-estimator .bne-breakdown-section{margin:0 0 20px}
.bniha-estimator .bne-breakdown-title{
	font-size:13px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
	color:var(--bne-m);margin:0 0 12px;padding:0 4px;
}
.bniha-estimator .bne-breakdown{
	border-radius:var(--bne-r);overflow:hidden;background:#fff;
	border:1px solid #F1EDF9;
}
.bniha-estimator .bne-row{
	display:flex;align-items:center;gap:14px;
	padding:15px 18px;border-bottom:1px solid #F3EFFA;
}
.bniha-estimator .bne-row:last-child{border-bottom:0}
.bniha-estimator .bne-row-icon{
	flex:0 0 auto;width:38px;height:38px;border-radius:11px;
	background:var(--bne-p-soft);color:var(--bne-p);
	display:flex;align-items:center;justify-content:center;
}
.bniha-estimator .bne-row-icon svg{width:19px;height:19px}
.bniha-estimator .bne-row-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.bniha-estimator .bne-row-label{color:var(--bne-t);font-size:15px;font-weight:600}
.bniha-estimator .bne-row-note{display:block;font-size:12.5px;color:var(--bne-m)}
.bniha-estimator .bne-row-value{font-weight:800;color:var(--bne-d);white-space:nowrap;font-size:15.5px}
.bniha-estimator .bne-row.is-muted .bne-row-icon{background:var(--bne-bg);color:var(--bne-m)}
.bniha-estimator .bne-row.is-muted .bne-row-value{color:var(--bne-m);font-weight:700}

.bniha-estimator .bne-disclaimer{
	font-size:12.5px;line-height:1.6;color:var(--bne-m);
	padding:0 4px;margin:0 0 22px;
}

@media(max-width:900px){
	.bniha-estimator .bne-phase-label{display:none}
	.bniha-estimator .bne-phase{padding:0 10px}
	.bniha-estimator .bne-phase::after{width:18px}
	.bniha-estimator .bne-step-counter{display:block}
}
@media(max-width:782px){
	.bniha-estimator .bne-nav{max-width:none}
}

@media(max-width:600px){
	.bniha-estimator{font-size:15px}
	.bniha-estimator .bne-app-header{margin-bottom:20px}
	.bniha-estimator .bne-app-title{font-size:24px}
	.bniha-estimator .bne-app-sub{font-size:14.5px}
	.bniha-estimator .bne-title{font-size:19px}
	.bniha-estimator .bne-phase-n{width:22px;height:22px;flex-basis:22px;font-size:10px}
	.bniha-estimator .bne-phase{padding:0 6px}
	.bniha-estimator .bne-phase::after{width:10px}
	.bniha-estimator .bne-cards-3,
	.bniha-estimator .bne-cards-2{grid-template-columns:1fr}
	.bniha-estimator .bne-floor{flex-wrap:wrap;gap:10px}
	.bniha-estimator .bne-floor-name{flex:1 1 100%}
	.bniha-estimator .bne-floor .bne-input-wrap{flex:1 1 auto}
	.bniha-estimator .bne-pool-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}
	.bniha-estimator .bne-service-body{flex-direction:column;align-items:stretch}
	.bniha-estimator .bne-service-sub{justify-content:space-between}
	.bniha-estimator .bne-service-rate{font-size:12px;padding:4px 9px}
	.bniha-estimator .bne-group{padding:14px}
	.bniha-estimator .bne-result-hero{padding:26px 14px 22px;border-radius:18px}
	.bniha-estimator .bne-result-total{font-size:36px}
	.bniha-estimator .bne-result-rates{font-size:13.5px;gap:4px 10px;margin-bottom:16px}
	.bniha-estimator .bne-chip{font-size:12.5px;padding:6px 12px}
	.bniha-estimator .bne-row{padding:13px 14px;gap:11px}
	.bniha-estimator .bne-row-icon{width:32px;height:32px;border-radius:9px}
	.bniha-estimator .bne-row-icon svg{width:16px;height:16px}
	.bniha-estimator .bne-row-label{font-size:14px}
	.bniha-estimator .bne-row-value{font-size:14.5px}
}

/* Aluminium / fenetres */
.bniha-estimator .bne-callout-warn{background:#FFF8EC;color:#7A5310}
.bniha-estimator .bne-windows{display:flex;flex-direction:column;gap:12px;margin:0 0 14px}
.bniha-estimator .bne-window{border:1px solid var(--bne-bd);border-radius:var(--bne-r);background:#fff;overflow:hidden;transition:border-color .2s ease}
.bniha-estimator .bne-window.is-open{border-color:var(--bne-p)}
.bniha-estimator .bne-window-head{display:flex;align-items:center;gap:12px;padding:14px 16px;min-height:60px}
.bniha-estimator .bne-window-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.bniha-estimator .bne-window-name{font-weight:700;color:var(--bne-d);font-size:15px}
.bniha-estimator .bne-window-meta{font-size:13px;color:var(--bne-m);display:flex;flex-wrap:wrap;gap:4px 10px}
.bniha-estimator .bne-window-meta span{white-space:nowrap}
.bniha-estimator .bne-window-surface{font-weight:700;color:var(--bne-p)}
.bniha-estimator .bne-window-actions{flex:0 0 auto;display:flex;gap:8px;align-items:center}
.bniha-estimator .bne-window-edit{font:inherit;font-size:13px;font-weight:700;cursor:pointer;border:1px solid var(--bne-bd);background:#fff;color:var(--bne-d);border-radius:10px;padding:9px 14px;min-height:40px;transition:.2s}
.bniha-estimator .bne-window-edit:hover{border-color:var(--bne-p);color:var(--bne-p)}
.bniha-estimator .bne-window-remove{width:40px;height:40px;flex:0 0 40px;border-radius:10px;cursor:pointer;border:1px solid var(--bne-bd);background:#fff;color:var(--bne-m);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;transition:.2s}
.bniha-estimator .bne-window-remove:hover{border-color:var(--bne-err);color:var(--bne-err);background:#FEF3F2}
.bniha-estimator .bne-window-body{padding:0 16px 16px;border-top:1px dashed var(--bne-bd);margin-top:2px;padding-top:16px;display:flex;flex-direction:column;gap:16px}
.bniha-estimator .bne-dims{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bniha-estimator .bne-window-surface-line{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--bne-bg);border-radius:10px;padding:11px 14px;font-size:14px}
.bniha-estimator .bne-window-surface-line strong{color:var(--bne-p);font-size:16px}
.bniha-estimator .bne-qualities{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bniha-estimator .bne-quality{position:relative;cursor:pointer;text-align:center;border:1.5px solid var(--bne-bd);border-radius:10px;padding:11px 6px;background:#fff;font-size:13.5px;font-weight:700;color:var(--bne-t);transition:.2s;min-height:46px;display:flex;align-items:center;justify-content:center}
.bniha-estimator .bne-quality input{position:absolute;opacity:0;width:0;height:0}
.bniha-estimator .bne-quality:has(input:checked){border-color:var(--bne-p);background:var(--bne-p-soft);color:var(--bne-p)}
.bniha-estimator .bne-opt-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bniha-estimator .bne-opt-label{font-size:14px;font-weight:600;color:var(--bne-t)}
@media(max-width:600px){
	.bniha-estimator .bne-window-head{flex-wrap:wrap;gap:10px}
	.bniha-estimator .bne-window-info{flex:1 1 100%}
	.bniha-estimator .bne-window-actions{flex:1 1 100%;justify-content:space-between}
	.bniha-estimator .bne-window-edit{flex:1 1 auto}
	.bniha-estimator .bne-dims{grid-template-columns:1fr}
	.bniha-estimator .bne-qualities{grid-template-columns:1fr}
	.bniha-estimator .bne-opt-row{flex-direction:column;align-items:stretch}
}

/* CTA WhatsApp : etape suivante naturelle, discrete face au total */
.bniha-estimator .bne-wa{
	background:#F7FBF8;
	border-radius:var(--bne-r);
	padding:20px 22px;margin:0 0 18px;text-align:center;
}
.bniha-estimator .bne-wa-title{font-size:16.5px;font-weight:700;color:var(--bne-d);margin:0 0 5px}
.bniha-estimator .bne-wa-text{font-size:13.5px;line-height:1.55;color:var(--bne-m);margin:0 auto 16px;max-width:34em}
.bniha-estimator .bne-btn-wa{
	background:#25D366;color:#fff !important;font-weight:800;font-size:15.5px;
	padding:14px 26px;min-height:52px;border-radius:12px;
	display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;
	white-space:normal;text-align:center;
	box-shadow:0 10px 22px -10px rgba(37,211,102,.5);
}
.bniha-estimator .bne-btn-wa:hover{filter:brightness(.94);color:#fff !important;transform:translateY(-2px)}
.bniha-estimator .bne-btn-wa:focus-visible{outline:3px solid var(--bne-d);outline-offset:3px}
.bniha-estimator .bne-wa-ic{width:19px;height:19px;flex:0 0 19px;color:#fff}
.bniha-estimator .bne-btn-wa span{min-width:0;color:#fff}
@media(max-width:600px){
	.bniha-estimator .bne-wa{padding:18px 16px}
	.bniha-estimator .bne-btn-wa{width:100%;padding:13px 16px}
}

/* Bureau : navigation dediee etape 3 (fondations) et etape 4 (options) */
@media(min-width:783px){
	.bniha-estimator .bne-step.is-active[data-bne-step="2"]{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-items:start}
	.bniha-estimator [data-bne-step="2"] .bne-title,
	.bniha-estimator [data-bne-step="2"] .bne-summary-box,
	.bniha-estimator [data-bne-step="2"] .bne-error{grid-column:1/-1}
	.bniha-estimator .bne-step.is-active[data-bne-step="3"]{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-items:start}
	.bniha-estimator [data-bne-step="3"] .bne-title,
	.bniha-estimator [data-bne-step="3"] [data-bne-pool-group],
	.bniha-estimator [data-bne-step="3"] .bne-error{grid-column:1/-1}
}

/* Mobile : navigation collante en bas de l estimateur, texte non reduit */
@media(max-width:600px){
	.bniha-estimator .bne-nav{
		position:sticky;bottom:0;z-index:5;
		background:rgba(255,255,255,.96);
		-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
		margin-top:14px;padding:10px 4px 12px;
		flex-direction:row;gap:10px;
	}
	.bniha-estimator .bne-nav .bne-btn{flex:1 1 auto;min-width:0;padding:13px 14px;min-height:48px}
	.bniha-estimator .bne-nav [data-bne-prev]{flex:0 0 38%}
	.bniha-estimator .bne-pool-grid{gap:8px}
}

/* ============================================================
   Section SEO / informative sous le calculateur.
   Entierement scopee a .bniha-estimator .bne-seo, n affecte rien
   d autre (theme, Elementor, en-tete, pied de page).
   ============================================================ */
.bniha-estimator .bne-seo{
	margin-top:56px;padding-top:48px;border-top:1px solid var(--bne-bd);
}
.bniha-estimator .bne-seo-inner{max-width:820px;margin-inline:auto}
.bniha-estimator .bne-seo-h2{
	font-size:30px;line-height:1.24;font-weight:800;color:var(--bne-d);
	margin:0 0 18px;letter-spacing:-.3px;text-align:center;
}
.bniha-estimator .bne-seo-lead{
	font-size:16px;line-height:1.7;color:var(--bne-t);margin:0 0 14px;
}
.bniha-estimator .bne-seo-block{margin:36px 0 0}
.bniha-estimator .bne-seo-block h3{
	font-size:19px;line-height:1.35;font-weight:800;color:var(--bne-d);
	margin:0 0 10px;
}
.bniha-estimator .bne-seo-block p{
	font-size:15px;line-height:1.7;color:var(--bne-t);margin:0 0 10px;
}
.bniha-estimator .bne-seo-note{
	font-size:13px;color:var(--bne-m);background:var(--bne-sky-soft);
	border-radius:12px;padding:12px 14px;margin-top:12px;
}
.bniha-estimator .bne-seo-price-solo{
	display:inline-flex;align-items:center;
	font-size:20px;font-weight:800;color:var(--bne-sky);
	background:var(--bne-sky-soft);border-radius:12px;
	padding:10px 20px;margin:4px 0 12px;
}
.bniha-estimator .bne-seo-price-cards{margin:6px 0 0}
.bniha-estimator .bne-seo-price-card{
	border:1.5px solid var(--bne-bd);border-radius:var(--bne-r);
	background:#fff;padding:18px;text-align:center;
}
.bniha-estimator .bne-seo-price-label{
	display:block;font-size:13px;font-weight:700;color:var(--bne-m);
	text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;
}
.bniha-estimator .bne-seo-price-val{
	display:block;font-size:19px;font-weight:800;color:var(--bne-sky);
}
.bniha-estimator .bne-seo-list{
	margin:0;padding-inline-start:20px;color:var(--bne-t);font-size:15px;line-height:1.8;
}
.bniha-estimator .bne-seo-list li{margin:0 0 6px}
.bniha-estimator .bne-seo-list-grid{
	display:grid;grid-template-columns:repeat(2,1fr);gap:2px 24px;
	padding-inline-start:20px;
}
.bniha-estimator .bne-seo-example{
	display:grid;gap:10px;background:var(--bne-bg);border-radius:12px;
	padding:16px 18px;margin:14px 0;
}
.bniha-estimator .bne-seo-example>div{
	display:flex;align-items:center;justify-content:space-between;gap:12px;
	font-size:14px;
}
.bniha-estimator .bne-seo-example span{color:var(--bne-m)}
.bniha-estimator .bne-seo-example strong{color:var(--bne-d);font-weight:800}
.bniha-estimator .bne-seo-cta{
	margin-top:44px;text-align:center;
	background:linear-gradient(180deg,var(--bne-sky-soft),#fff);
	border:1px solid var(--bne-bd);border-radius:var(--bne-r);
	padding:36px 24px;
}
.bniha-estimator .bne-seo-cta-title{
	font-size:22px;font-weight:800;color:var(--bne-d);margin:0 0 8px;
}
.bniha-estimator .bne-seo-cta-text{
	font-size:15px;line-height:1.6;color:var(--bne-m);
	max-width:44em;margin:0 auto 20px;
}
.bniha-estimator .bne-seo-cta-btn{min-width:220px}

@media(max-width:782px){
	.bniha-estimator .bne-seo-price-cards.bne-cards-3{grid-template-columns:1fr}
}
@media(max-width:600px){
	.bniha-estimator .bne-seo{margin-top:40px;padding-top:32px}
	.bniha-estimator .bne-seo-h2{font-size:24px}
	.bniha-estimator .bne-seo-block h3{font-size:17px}
	.bniha-estimator .bne-seo-list-grid{grid-template-columns:1fr;gap:2px}
	.bniha-estimator .bne-seo-cta{padding:26px 18px}
}
/* ============================================================
   Page SEO dediee "Prix construction villa Marrakech".
   Reutilise .bne-seo-* (blocs, listes, encadres, CTA) deja definis
   ci-dessus ; ajoute uniquement les elements propres a une page
   autonome (H1, conteneur de page, CTA en ligne).
   ============================================================ */
.bniha-estimator .bne-villa-page{padding:48px 20px 64px}
.bniha-estimator .bne-villa-h1{
	font-size:36px;line-height:1.2;font-weight:800;color:var(--bne-d);
	margin:0 0 28px;letter-spacing:-.3px;text-align:center;
}
.bniha-estimator .bne-villa-h2-solo{
	font-size:24px;line-height:1.3;font-weight:800;color:var(--bne-d);
	margin:44px 0 0;text-align:center;
}
.bniha-estimator .bne-villa-cta-inline{display:flex;justify-content:center;margin:18px 0 4px}
.bniha-estimator .bne-seo-example-label{
	font-size:13px;font-weight:700;color:var(--bne-m);margin:0 0 8px;
}
@media(max-width:600px){
	.bniha-estimator .bne-villa-page{padding:32px 16px 48px}
	.bniha-estimator .bne-villa-h1{font-size:26px;margin-bottom:20px}
	.bniha-estimator .bne-villa-h2-solo{font-size:20px;margin-top:32px}
}

/* Guides hub (/guides/) -- card grid linking to the 6 SEO guide pages. */
.bne-guides-grid{
	display:grid;grid-template-columns:repeat(2,1fr);gap:14px;
}
.bne-guide-card{
	display:flex;flex-direction:column;gap:6px;
	border:1.5px solid var(--bne-bd);border-radius:var(--bne-r);
	background:#fff;padding:20px;text-decoration:none;
	transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.bne-guide-card:hover{
	border-color:var(--bne-p);box-shadow:0 10px 22px -14px rgba(119,23,237,.35);
	transform:translateY(-1px);
}
.bne-guide-card-title{font-weight:800;color:var(--bne-d);font-size:17px}
.bne-guide-card-desc{font-size:14px;line-height:1.55;color:var(--bne-m)}
.bne-guide-card-link{font-size:13px;font-weight:700;color:var(--bne-p);margin-top:4px}
@media(max-width:640px){
	.bne-guides-grid{grid-template-columns:1fr}
}

/* 400 m2 villa example page -- answer box, comparison table, FAQ. */
.bne-seo-answer-box{
	background:var(--bne-bg);border:1px solid var(--bne-bd);border-radius:var(--bne-r);
	padding:20px 22px;margin:0 0 4px;
}
.bne-table-wrap{overflow-x:auto;margin:6px 0 0;-webkit-overflow-scrolling:touch}
.bne-table{
	width:100%;border-collapse:collapse;font-size:15px;
}
.bne-table th,.bne-table td{
	text-align:start;padding:12px 14px;border-bottom:1px solid var(--bne-bd);
}
.bne-table th{
	font-size:12px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;
	color:var(--bne-m);
}
.bne-table td{color:var(--bne-t)}
.bne-table-highlight td{background:var(--bne-p-soft)}
.bne-faq-item{
	border-top:1px solid var(--bne-bd);padding:16px 0;
}
.bne-faq-item:first-of-type{border-top:none;padding-top:10px}
.bne-faq-q{font-size:16px;font-weight:700;color:var(--bne-d);margin:0 0 6px}
.bne-faq-a{font-size:14.5px;line-height:1.65;color:var(--bne-t);margin:0}
@media(max-width:640px){
	.bne-table thead{display:none}
	.bne-table,.bne-table tbody,.bne-table tr,.bne-table td{display:block;width:100%}
	.bne-table tr{border:1px solid var(--bne-bd);border-radius:12px;margin:0 0 10px;padding:4px 0;overflow:hidden}
	.bne-table td{border-bottom:none;display:flex;justify-content:space-between;gap:12px;padding:8px 14px}
	.bne-table td::before{content:attr(data-label);font-weight:700;color:var(--bne-m);font-size:12px;text-transform:uppercase}
}