:root{
	--primary:#2d0068;
	--primary-600:#4a1aa0;
	--bg:#f8f7fc;
	--text:#1b1b1f;
	--muted:#6b7280;
	--border:#e5e7eb;
	--card:#ffffff;
	--radius:14px;
	--shadow:0 12px 30px rgba(45,0,104,.12)
}
*{box-sizing:border-box}
html,body{height:100%}
body{
	margin:0;
	font-family:ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
	color:var(--text);
	background:radial-gradient(1200px 800px at 10% 20%, #f5f1ff 0%, #ffffff 60%) no-repeat,
		linear-gradient(135deg, #f6f4ff 0%, #ffffff 100%);
}
.container{width:min(1200px,94%);margin:0 auto}

.site-header{background:transparent;padding:18px 0}
.header-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.header-left{justify-self:start}
.header-center{justify-self:center}
.header-right{justify-self:end}
.link-back{color:var(--muted);text-decoration:none;font-weight:700}
.btn.outline{background:#fff;border:1px solid var(--border);color:var(--primary-600);text-decoration:none}
.site-header .btn.outline{background:var(--primary);border-color:var(--primary);color:#fff;text-decoration:none}
.site-header .btn.outline:hover{filter:brightness(1.05)}
.brand{display:flex;align-items:center;gap:12px}
.brand a{text-decoration:none;transition:opacity 0.2s ease}
.brand a:hover{opacity:0.8}
.logo{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:700;box-shadow:0 6px 18px rgba(45,0,104,.25);font-size:13px}
.logo-img{width:36px;height:36px;object-fit:contain}
.brand__text small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.brand__text strong{font-family:'Orbitron', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; letter-spacing:0.5px; font-size:22px}
.header-actions .link{color:var(--primary);text-decoration:none;font-weight:600}

.layout{display:block;margin:16px auto 36px}
.layout > form{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:980px){.layout > form{grid-template-columns:70% 30%;align-items:start}}
@media(min-width:980px){
	/* override previous 100vh attempt */
	.layout > form{min-height:auto;align-items:start}
	.main,.sidebar{min-height:auto}
	.sidebar{position:sticky;top:14px;height:fit-content}
	.cart{height:auto;display:block}
	/* slight size increase */
	.main{padding:28px;min-height:50vh}
	.cart{padding:22px}
	/* mêmes hauteurs pour les deux colonnes */
	.main, .sidebar{min-height:60vh}
	.sidebar .cart{min-height:60vh; height:100%}
}

.main{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.sidebar{position:sticky;top:14px;height:fit-content;background:linear-gradient(180deg,#faf9ff 0%, #f5f3ff 100%);border-radius:20px;padding:8px}
.cart{background:linear-gradient(180deg,#f8f5ff 0%, #f0ebff 100%);border:1px solid #d6c7ff;border-radius:16px;box-shadow:0 12px 32px rgba(45,0,104,.12);padding:18px}
.cart h2{margin:0 0 12px 0;font-size:18px;background:linear-gradient(90deg,#f0edff 0%, transparent 60%);padding:8px 10px;border-radius:10px;color:#3a2c7a;border-left:3px solid var(--primary)}
.cart__row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px dashed #ece8fb}
.cart__row:last-of-type{border-bottom:0}
.cart__row.small{font-size:13px;color:var(--muted);display:block}
.cart__row.total{font-size:16px;font-weight:700;color:var(--muted)}
.cart__row.credit{font-size:18px;color:var(--primary);font-weight:800;background:linear-gradient(180deg,#f8f5ff 0%, #f0ebff 100%);border:1px solid #d6c7ff;border-radius:12px;padding:12px;margin-top:8px}
.cart__row.credit span{font-size:13px;color:var(--muted);font-weight:600}
.cart__row.credit strong{font-size:22px;font-weight:900;color:var(--primary)}
.cart__info.credit-info{background:linear-gradient(180deg,#f8f5ff 0%, #f0ebff 100%);border:1px solid #d6c7ff;border-radius:12px;padding:12px;margin-top:8px}
.credit-pill{background:linear-gradient(135deg,var(--primary) 0%, #7740d4 100%);color:white;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600}
.btn.primary.wide{transition:transform .15s ease, box-shadow .15s ease}
.btn.primary.wide:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(45,0,104,.35)}
#sum_address:empty::after{content:'—';opacity:.5}
.page-title{font-size:26px;margin:8px 0 40px}
.subtext{color:var(--muted);margin-top:-6px}
.btn.cta{background:linear-gradient(135deg,#ff7a59,#ff4f81);color:#fff;box-shadow:0 8px 20px rgba(255,79,129,.25)}
#sum_service_pricing{color:var(--muted)}
.cart__sep{height:12px}
.btn.wide{width:100%;margin-top:10px}

.steps__header{display:none}
.steps-progress{margin:0 0 30px 0}
.progress{height:8px;width:100%;background:#eee;border-radius:999px;overflow:hidden}
.progress > i{display:block;height:100%;background:linear-gradient(90deg, var(--primary) 0%, #7740d4 100%);border-radius:inherit;transition:width .25s ease}

.step{display:none}
.step.is-active{display:block}

h2{margin:8px 0 12px;font-size:22px}
.field{margin:14px 0}
.two-cols{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:640px){.two-cols{grid-template-columns:1fr 1fr}}

label{display:block;font-weight:600;margin-bottom:6px}
input[type="text"],input[type="email"],input[type="tel"],input[type="number"],textarea{
	width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:15px
}
input[type="range"]{width:100%}
.range{display:flex;align-items:center;gap:10px}
.range output{min-width:76px;text-align:right;color:var(--muted)}

.radio-card,.chk{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-right:10px;cursor:pointer;user-select:none}
.radio-card input,.chk input{accent-color:var(--primary)}
.consent{margin-top:8px}

.nav{display:flex;justify-content:space-between;gap:8px;margin-top:35px}
.nav.center{justify-content:center}
.btn{background:#eee;border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}
.btn.ghost{background:#f4f4f5}
.btn.next{background:#e9e1ff;color:var(--primary)}
.btn.primary{background:var(--primary);color:#fff;box-shadow:0 10px 24px rgba(45,0,104,.25)}
.btn:disabled{opacity:.6;cursor:not-allowed}

.notice{width:min(860px,94%);margin:14px auto;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:12px 14px;border-radius:12px}
.notice__title{font-weight:800}
.notice__body{font-size:14px}

/* Service cards */
.card-grid{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:740px){.card-grid{grid-template-columns:1fr 1fr}}
.card-grid .service-card{border:1px solid var(--border);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.card-grid .service-card input{margin-right:8px}
.card-grid .service-card .title{font-weight:800}
.card-grid .service-card .price{display:flex;gap:8px;align-items:baseline}
.card-grid .service-card .price .after{color:var(--primary);font-weight:900;font-size:20px}
.card-grid .service-card .badges{display:flex;flex-wrap:wrap;gap:6px}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#f2edff;color:var(--primary);font-weight:700;font-size:12px}
.badge.outline{background:transparent;border:1px solid var(--border);color:var(--muted)}

/* Quick duration buttons */
.quick{display:flex;flex-wrap:wrap;gap:8px}
.quick button{border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 12px;cursor:pointer}
.quick button.is-active{background:#efe9ff;border-color:#d6c7ff;color:var(--primary);font-weight:800}

/* Reassurance */
.reassure{background:#faf8ff;border:1px dashed #e9e1ff;padding:10px 12px;border-radius:12px;color:#4338ca;margin:8px 0 18px}
.reassure ul{margin:6px 0 0 16px}

/* Modals */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:10px;z-index:50}
.modal.is-open{display:flex}
.modal__dialog{background:#fff;border-radius:14px;box-shadow:var(--shadow);width:min(760px,96%);max-height:86vh;overflow:auto;padding:14px}
.modal__header{display:flex;justify-content:space-between;align-items:center}
.modal__header h3{margin:0}
.modal__close{border:0;background:transparent;font-size:22px;cursor:pointer}

/* Confirmation modal visuals */
.modal__dialog--confirm{padding:0}
.modal__dialog--confirm .modal__header{padding:10px 12px}
.modal__dialog--confirm .modal__body{padding:0 18px 18px}
.confirm-hero{display:grid;justify-items:center;gap:8px;padding:18px 18px 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#faf8ff 0%, #ffffff 60%)}
.confirm-icon{width:52px;height:52px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#6f3ef1,#b794f6);color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(45,0,104,.25)}
.confirm-hero h3{margin:0;text-align:center}
.confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.modal__dialog--confirm a.btn{ text-decoration:none }

/* Recap */
.recap{border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:22px}
.recap .row{display:flex;justify-content:space-between;border-bottom:1px dashed var(--border);padding:6px 0}
.recap .row:last-child{border-bottom:0}

.cart__info{margin:8px 0 6px;padding:10px 12px;border:1px solid #ece8fb;background:#faf9ff;border-radius:10px;color:#4b5563}
.cart__info small{font-size:12px;display:block;line-height:1.35}

/* Step 1 spacing */
.step[data-step="1"] .field{margin:22px 0}
.step[data-step="1"] .reassure{margin:14px 0 28px}
.step[data-step="1"] .nav.center{margin-top:22px}

/* Step 5 spacing for duration helpers */
.step[data-step="5"] .field small{display:block;margin-bottom:18px}

/* Step 8 spacing (recap -> address/identity fields) */
.step[data-step="8"] .two-cols{margin:16px 0}

/* Sticky footer centered */
body{display:flex;flex-direction:column;min-height:100vh}
main.container.layout{flex:1}
.site-footer{text-align:center;padding:16px 0 20px;color:var(--muted)}

#cityField select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:15px;background:#fff}
#city_select.is-empty{color:var(--muted);font-style:italic}

/* New option list cards */
.option-list{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:740px){.option-list{grid-template-columns:1fr}}
.service-card{display:block}
.service-card input{display:none}
.service-card .box{position:relative;display:flex;gap:14px;border:1.5px solid var(--border);border-radius:14px;background:#fff;padding:14px;transition:border-color .2s ease, box-shadow .2s ease}
.service-card .thumb{width:64px;height:64px;border-radius:12px;display:grid;place-items:center;background:#fff1f2;font-size:28px}
.service-card .content{flex:1}
.service-card .title{font-weight:800;margin-bottom:4px}
.service-card .prices{display:flex;align-items:baseline;gap:10px}
.service-card .prices .price{font-weight:800;color:#1f2937}
.service-card .prices .old{text-decoration:line-through;color:#9ca3af;font-size:14px}
.service-card .after{color:var(--primary);font-weight:800;margin-top:2px}
.service-card .features{margin:8px 0 0 16px;color:#4b5563}
.service-card .badge-pop{position:absolute;right:10px;top:10px;background:#fde68a;color:#92400e;font-weight:800;font-size:12px;padding:4px 8px;border-radius:999px}
.service-card input:checked + .box{border-color:#e0d1ff;box-shadow:0 10px 24px rgba(45,0,104,.15)}

/* Minimal cards variant */
.service-card .box.minimal{border:1px solid var(--border);padding:12px;border-radius:12px}
.service-card .box.minimal .title{font-weight:700}
.service-card .box.minimal .thumb.sm{width:48px;height:48px;font-size:22px;background:#faf5ff}
.service-card .box.minimal .after{color:var(--primary);font-weight:700;margin-top:2px}
.service-card .box.minimal .desc{margin:6px 0 0;color:#6b7280}
.service-card input:checked + .box.minimal{border-color:#e3ddff;box-shadow:0 6px 20px rgba(45,0,104,.1)}

/* Customer type segmented control */
.customer-toggle{display:flex;flex-direction:column;gap:18px;align-items:center}
.seg-option{display:block;width:100%}
.seg-option input{display:none}
.seg-box{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:#fff;cursor:pointer;transition:border-color .2s ease, box-shadow .2s ease;width:100%;max-width:480px;margin:0 auto}
.seg-box i{font-style:normal;font-size:18px}
.seg-box b{display:block;font-weight:800}
.seg-box small{display:block;color:#6b7280}
.seg-option input:checked + .seg-box{border-color:var(--primary);box-shadow:0 12px 28px rgba(45,0,104,.35), 0 0 0 2px rgba(45,0,104,.55)}
.seg-option:hover .seg-box{border-color:#ddd7ff}

/* Enhanced segmented control visuals */
.seg-box{position:relative;background:
	linear-gradient(#fff,#fff) padding-box,
	linear-gradient(135deg, rgba(45,0,104,.20), rgba(119,64,212,.20)) border-box;
	border:1.5px solid transparent;
}
.seg-box i{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#f3edff,#ffffff);box-shadow:inset 0 0 0 1px #eee}
.seg-option:hover .seg-box{transform:translateY(-1px);box-shadow:0 10px 24px rgba(45,0,104,.10)}
.seg-option input:checked + .seg-box{background:
	linear-gradient(#ffffff,#ffffff) padding-box,
	linear-gradient(135deg, #6f3ef1, #b794f6) border-box;
}
.seg-option input:checked + .seg-box::after{content:'\2713';position:absolute;right:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:999px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:14px}
.seg-box, .seg-option input:checked + .seg-box{transition:box-shadow .2s ease, transform .15s ease, background .25s ease}

.is-hidden{display:none !important}

.radio-card{position:relative}
.radio-card input{appearance:none;width:18px;height:18px;border:1px solid var(--border);border-radius:999px;margin-right:8px;display:inline-block;vertical-align:middle;position:relative}
.radio-card input:checked{border-color:var(--primary);background:linear-gradient(135deg,#6f3ef1,#b794f6)}
.radio-card input:checked::after{content:'\2713';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px}
.radio-card span{display:inline-block}

/* Retirer l’ombre de l’icône validée (sélecteur Particulier/Entreprise) */
.seg-option input:checked + .seg-box::after{content:'\2713';position:absolute;right:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:999px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:14px}

/* Style moderne pour les cartes de type de ménage (même esprit que le segment) */
.option-list{display:grid;grid-template-columns:1fr;gap:18px}
.option-list .service-card{display:block;width:100%}
.option-list .service-card .box.minimal{position:relative;background:
	linear-gradient(#ffffff,#ffffff) padding-box,
	linear-gradient(135deg, rgba(45,0,104,.18), rgba(119,64,212,.18)) border-box;
	border:1.5px solid transparent;border-radius:14px;padding:16px;transition:transform .15s ease, box-shadow .2s ease, background .25s ease;max-width:660px;margin:0 auto}
.option-list .service-card .thumb.sm{width:48px;height:48px;font-size:22px;background:#f6f2ff;border-radius:12px;display:grid;place-items:center}
.option-list .service-card:hover .box.minimal{transform:translateY(-1px);box-shadow:0 10px 24px rgba(45,0,104,.08)}
.option-list .service-card input:checked + .box.minimal{background:
	linear-gradient(#ffffff,#ffffff) padding-box,
	linear-gradient(135deg, #6f3ef1, #b794f6) border-box}
.option-list .service-card input:checked + .box.minimal::after{content:'\2713';position:absolute;right:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:999px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:14px}

/* Accordion cards for service selection */
.box.accordion{overflow:hidden}
.box.accordion .details{max-height:0;opacity:0;transition:max-height .25s ease, opacity .2s ease}
.box.accordion.is-open{background:
	linear-gradient(#ffffff,#ffffff) padding-box,
	linear-gradient(135deg, #6f3ef1, #b794f6) border-box;
	border:1.5px solid transparent}
.box.accordion.is-open .details{max-height:260px;opacity:1;margin-top:8px}
.box.accordion .title-row{display:flex;align-items:center;justify-content:space-between}
.box.accordion .badge-pop{margin-left:10px}

/* Typo allégée */
.service-card .title{font-weight:600}
.service-card .prices .price{font-weight:600}
.service-card .after{font-weight:600}
.seg-box b{font-weight:600}

/* Section title with info */
.section-title-line{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-bottom:14px}
.section-title-line .info-btn{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:999px;background:var(--primary);color:#fff;text-decoration:none;font-weight:800;box-shadow:0 6px 16px rgba(157, 130, 192, 0.25)}
.section-title-line .info-btn:hover{filter:brightness(1.05)}

#modal-services-inclus .modal__header{position:relative}
#modal-services-inclus .modal__header h3{position:absolute;left:50%;transform:translateX(-50%);margin:0;text-align:center;width:70%}

/* Radio grid modern */
.radio-grid{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:640px){.radio-grid{grid-template-columns:1fr 1fr}}
.radio-card{position:relative;display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:12px 40px 12px 12px;background:#fff;cursor:pointer;transition:border-color .2s ease, box-shadow .2s ease}
.radio-card input{display:none}
.radio-card span{flex:1;position:relative}
.radio-card span strong{font-weight:600}
/* remove default circle; only show check when selected */
.radio-card span::after{content:'';position:absolute;right:-8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:999px;display:none}
.radio-card input:checked ~ span::after{display:grid;place-items:center;content:'\2713';background:var(--primary);color:#fff;font-size:12px}
.radio-card:hover{border-color:#ddd7ff}
.radio-card input:checked ~ span{position:relative}

/* Time selector modern */
.time-selector{display:flex;align-items:center;justify-content:center;gap:12px;margin:6px 0}
.stepper{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:#fff;font-weight:800;cursor:pointer;box-shadow:0 6px 16px rgba(45,0,104,.08)}
.stepper:hover{border-color:#ddd7ff}
.time-display{min-width:90px;text-align:center;font-size:22px;font-weight:700;color:#111827}
.time-slider{margin:6px 0 10px}
.time-slider input[type=range]{width:100%}

/* Futuristic range styling */
.time-slider{position:relative}
.time-slider input[type=range]{-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:linear-gradient(90deg,#06b6d4 0%, #f472b6 100%);outline:none}
.time-slider input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:#e5f6fb}
.time-slider input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:#e5f6fb}
.time-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-7px;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 30% 30%, #ffffff 0 30%, #a7f3d0 31% 100%);box-shadow:0 0 0 3px #fff, 0 0 18px rgba(6,182,212,.6)}
.time-slider input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 30% 30%, #ffffff 0 30%, #a7f3d0 31% 100%);box-shadow:0 0 0 3px #fff, 0 0 18px rgba(6,182,212,.6)}

/* Calculateur CTA and note */
.calc-link{display:inline-block;margin:20px auto;padding:10px 16px;border-radius:10px;background:var(--primary);color:#fff;text-decoration:none;font-weight:700;box-shadow:0 8px 20px rgba(45,0,104,.18)}
.calc-link:hover{filter:brightness(1.02)}
.field .calc-link{display:flex;justify-content:center;max-width:220px}
.calc-note{margin-top:10px;color:#6b7280;font-size:14px}

/* Encadré d'estimation */
.calc-note{margin-top:12px;padding:12px 14px;border:1px solid #e9e5ff;border-left:4px solid var(--primary);background:#f8f7ff;border-radius:10px;color:#3f3d56;display:flex;gap:10px;align-items:flex-start}
.calc-note::before{content:'\2139'; /* ℹ */ font-size:16px;line-height:1;color:var(--primary)}

/* Material segmented control */
.material-toggle{display:flex;flex-direction:column;gap:14px;align-items:center;margin-top:6px}
.material-toggle .seg-option{width:100%;max-width:580px}
.material-toggle .seg-box i{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#f3edff,#ffffff);box-shadow:inset 0 0 0 1px #eee}

/* Mobile styles */
@media (max-width: 979px) {
	.cart {
		margin-bottom: 30px;
	}
}

