/*
 * refood-devis public styles
 * Clean, high-end, no external assets.
 */

/* Palette */
.rfd-devis{
	--rfd-fg:#1B2B1A;
	--rfd-fg-2:#3A4A38;
	--rfd-fg-3:#6B7B62;
	--rfd-bg:#FFFFFF;
	--rfd-panel:#FAFBF7;
	--rfd-line:#E4E8E1;
	--rfd-line-2:#C8D2C4;
	--rfd-accent:#5B8C46;
	--rfd-accent-2:#4A7638;
	--rfd-accent-soft:#EAF2E3;
	--rfd-shadow:0 1px 2px rgba(27,43,26,.04), 0 8px 24px rgba(27,43,26,.06);
	--rfd-radius:14px;
	--rfd-radius-sm:10px;
	--rfd-input-h:46px;

	max-width:1080px;
	margin:0 auto;
	padding:32px 36px 28px;
	font:400 15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
	color:var(--rfd-fg);
	background:var(--rfd-bg);
	border:1px solid var(--rfd-line);
	border-radius:var(--rfd-radius);
	box-shadow:var(--rfd-shadow);
	box-sizing:border-box;
}
.rfd-devis *,
.rfd-devis *::before,
.rfd-devis *::after{ box-sizing:border-box; }

.rfd-devis h3{
	margin:0 0 22px 0;
	font-size:20px;
	font-weight:600;
	color:var(--rfd-fg);
	letter-spacing:-.01em;
}

/* Stepper with connecting rail */
.rfd-devis__stepper{
	list-style:none;
	padding:0;
	margin:0 0 28px 0;
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:8px;
	position:relative;
}
.rfd-devis__stepper li{
	padding:12px 14px;
	background:var(--rfd-panel);
	border:1px solid var(--rfd-line);
	border-radius:var(--rfd-radius-sm);
	display:flex;
	align-items:center;
	gap:10px;
	color:var(--rfd-fg-3);
	font-size:13px;
	font-weight:500;
	transition:background .18s,border-color .18s,color .18s;
}
.rfd-devis__stepper li span{
	display:inline-flex;
	width:24px;height:24px;
	border-radius:50%;
	background:var(--rfd-line);
	color:var(--rfd-fg-2);
	align-items:center;justify-content:center;
	font-weight:700;font-size:12px;
	transition:background .18s,color .18s;
}
.rfd-devis__stepper li.is-active{
	border-color:var(--rfd-accent);
	color:var(--rfd-fg);
	background:var(--rfd-accent-soft);
}
.rfd-devis__stepper li.is-active span{
	background:var(--rfd-accent);
	color:#fff;
}
.rfd-devis__stepper li.is-done span{
	background:var(--rfd-accent);
	color:#fff;
}

/* Pages */
.rfd-devis__page{ display:none; }
.rfd-devis__page.is-active{ display:block; animation:rfd-fade .18s ease-out; }
@keyframes rfd-fade{ from{ opacity:0; transform:translateY(2px);} to{ opacity:1; transform:none;} }

/* Fields */
.rfd-devis__field{ display:block; margin:0 0 16px 0; }
.rfd-devis__field > span{
	display:block;
	font-size:13px;
	color:var(--rfd-fg-2);
	margin-bottom:6px;
	font-weight:600;
}
.rfd-devis .rfd-devis__field input,
.rfd-devis .rfd-devis__field select,
.rfd-devis .rfd-devis__field textarea{
	width:100%;
	height:var(--rfd-input-h);
	padding:0 14px;
	border:1px solid var(--rfd-line-2);
	border-radius:var(--rfd-radius-sm);
	font:inherit;
	color:inherit;
	background:#fff;
	transition:border-color .16s, box-shadow .16s;
	box-shadow:inset 0 1px 0 rgba(27,43,26,.02);
	appearance:none;
	-webkit-appearance:none;
}
.rfd-devis .rfd-devis__field select{
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='%236B7B62' d='M5 8l5 5 5-5z'/></svg>");
	background-repeat:no-repeat;
	background-position:right 12px center;
	background-size:16px;
	padding-right:36px;
}
.rfd-devis .rfd-devis__field textarea{
	height:auto;
	min-height:96px;
	padding:10px 14px;
	resize:vertical;
}
.rfd-devis .rfd-devis__field input:focus,
.rfd-devis .rfd-devis__field select:focus,
.rfd-devis .rfd-devis__field textarea:focus{
	outline:none;
	border-color:var(--rfd-accent);
	box-shadow:0 0 0 3px rgba(91,140,70,.18);
}
.rfd-devis .rfd-devis__field input::placeholder,
.rfd-devis .rfd-devis__field textarea::placeholder{
	color:#A9B4A4;
}

/* Rows (equal split by default, asymmetric variants below) */
.rfd-devis .rfd-devis__row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:14px;
	margin:0;
}
.rfd-devis .rfd-devis__row .rfd-devis__field{ margin:0 0 16px 0; }
.rfd-devis .rfd-devis__row--rue-num{ grid-template-columns: 1fr 140px; }
.rfd-devis .rfd-devis__row--cp-ville{ grid-template-columns: 160px 1fr; }

/* Custom radio + checkbox (fieldsets) */
.rfd-devis__inline,
.rfd-devis__checks{ border:0; padding:0; margin:0 0 18px 0; }
.rfd-devis__inline legend,
.rfd-devis__checks legend{
	font-size:13px;
	color:var(--rfd-fg-2);
	font-weight:600;
	margin:0 0 8px 0;
	padding:0;
}
.rfd-devis__inline label{
	display:inline-flex;
	align-items:center;
	gap:8px;
	margin:0 12px 0 0;
	padding:8px 14px 8px 12px;
	border:1px solid var(--rfd-line-2);
	border-radius:999px;
	background:#fff;
	font-size:14px;
	cursor:pointer;
	transition:border-color .15s,background .15s;
}
.rfd-devis__inline label:hover{ border-color:var(--rfd-accent); }
.rfd-devis__inline input[type=radio]{
	appearance:none; -webkit-appearance:none;
	width:16px; height:16px;
	border:2px solid var(--rfd-line-2);
	border-radius:50%;
	position:relative;
	transition:border-color .15s,background .15s;
	background:#fff;
	margin:0;
}
.rfd-devis__inline input[type=radio]:checked{
	border-color:var(--rfd-accent);
	background:var(--rfd-accent);
	box-shadow:inset 0 0 0 3px #fff;
}
.rfd-devis__inline label:has(input[type=radio]:checked){
	background:var(--rfd-accent-soft);
	border-color:var(--rfd-accent);
	color:var(--rfd-fg);
}

.rfd-devis__checks{
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:8px 14px;
}
.rfd-devis__checks legend{ grid-column:1/-1; }
.rfd-devis__checks label{
	display:flex;
	align-items:center;
	gap:10px;
	padding:10px 12px;
	border:1px solid var(--rfd-line);
	border-radius:var(--rfd-radius-sm);
	background:var(--rfd-panel);
	font-size:14px;
	cursor:pointer;
	transition:border-color .15s,background .15s;
}
.rfd-devis__checks label:hover{ border-color:var(--rfd-accent); }
.rfd-devis__checks input[type=checkbox]{
	appearance:none; -webkit-appearance:none;
	width:18px; height:18px;
	border:2px solid var(--rfd-line-2);
	border-radius:5px;
	background:#fff;
	position:relative;
	transition:border-color .15s,background .15s;
	margin:0;
	flex:none;
}
.rfd-devis__checks input[type=checkbox]:checked{
	border-color:var(--rfd-accent);
	background:var(--rfd-accent);
}
.rfd-devis__checks input[type=checkbox]:checked::after{
	content:"";
	position:absolute;
	left:4px; top:0;
	width:5px; height:10px;
	border:solid #fff;
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}
.rfd-devis__checks label:has(input[type=checkbox]:checked){
	border-color:var(--rfd-accent);
	background:var(--rfd-accent-soft);
}

/* Consent */
.rfd-devis__consent{
	display:flex;
	gap:10px;
	align-items:flex-start;
	background:var(--rfd-panel);
	padding:14px 16px;
	border:1px solid var(--rfd-line);
	border-radius:var(--rfd-radius-sm);
	font-size:13.5px;
	color:var(--rfd-fg-2);
	margin-top:8px;
}
.rfd-devis__consent input[type=checkbox]{
	appearance:none; -webkit-appearance:none;
	width:18px; height:18px;
	border:2px solid var(--rfd-line-2);
	border-radius:5px;
	background:#fff;
	position:relative;
	margin:2px 0 0 0;
	flex:none;
}
.rfd-devis__consent input[type=checkbox]:checked{
	background:var(--rfd-accent);
	border-color:var(--rfd-accent);
}
.rfd-devis__consent input[type=checkbox]:checked::after{
	content:"";
	position:absolute;
	left:4px; top:0;
	width:5px; height:10px;
	border:solid #fff;
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}
.rfd-devis__consent a{ color:var(--rfd-fg); text-decoration:underline; }

/* Captcha block */
.rfd-devis__captcha{
	background:var(--rfd-panel);
	border:1px solid var(--rfd-line);
	border-radius:var(--rfd-radius-sm);
	padding:14px 16px;
	margin:8px 0 14px 0;
}
.rfd-devis__captcha .rfd-devis__field{ margin:0; }
.rfd-devis__captcha .rfd-devis__field input{ max-width:280px; }

/* Nav buttons */
.rfd-devis__nav{
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-top:24px;
	gap:12px;
}
.rfd-devis .rfd-devis__btn{
	appearance:none;
	background:var(--rfd-accent);
	border:none;
	color:#fff;
	font-weight:600;
	font-size:15px;
	padding:12px 22px;
	border-radius:var(--rfd-radius-sm);
	cursor:pointer;
	transition:background .15s,transform .05s,box-shadow .15s;
	box-shadow:0 1px 2px rgba(27,43,26,.06);
	line-height:1;
}
.rfd-devis .rfd-devis__btn:hover{
	background:var(--rfd-accent-2);
	box-shadow:0 4px 10px rgba(74,118,56,.24);
}
.rfd-devis .rfd-devis__btn:active{ transform:translateY(1px); }
.rfd-devis .rfd-devis__btn--prev{
	background:#fff;
	color:var(--rfd-fg);
	border:1px solid var(--rfd-line-2);
	box-shadow:none;
}
.rfd-devis .rfd-devis__btn--prev:hover{
	background:var(--rfd-panel);
	border-color:var(--rfd-accent);
}
.rfd-devis .rfd-devis__btn[disabled]{ opacity:.55; cursor:not-allowed; }

/* Honeypot */
.rfd-devis__hp{ position:absolute; left:-9999px; top:-9999px; height:0; overflow:hidden; }

/* Status message */
.rfd-devis__message{ margin-top:16px; padding:0; }
.rfd-devis__message.is-ok{
	padding:14px 16px;
	border-radius:var(--rfd-radius-sm);
	background:var(--rfd-accent-soft);
	border:1px solid var(--rfd-accent);
	color:var(--rfd-fg);
}
.rfd-devis__message.is-err{
	padding:14px 16px;
	border-radius:var(--rfd-radius-sm);
	background:#FCECEC;
	border:1px solid #E68B8B;
	color:#8B1F1F;
}

/* Section spacing */
.rfd-devis__besoins{ margin:6px 0 12px 0; }
.rfd-devis__besoins .rfd-devis__row{ margin-bottom:0; }

/* Universal safety: [hidden] must always hide, even inside themes that force display:block on labels */
.rfd-devis [hidden]{ display:none !important; }

@media (max-width:720px){
	.rfd-devis{ padding:20px; }
	.rfd-devis .rfd-devis__row,
	.rfd-devis .rfd-devis__row--rue-num,
	.rfd-devis .rfd-devis__row--cp-ville{
		grid-template-columns:1fr;
	}
	.rfd-devis__checks{ grid-template-columns:1fr; }
	.rfd-devis__stepper{ grid-template-columns:1fr; }
	.rfd-devis__inline label{ display:flex; margin:0 0 6px 0; }
}
