/* Emeline Esthétique — styles des formulaires publics. */
.eec-booking, .eec-form, .eec-reviews, .eec-pricing {
	--eec-rose: #c08497;      /* vieux rose */
	--eec-poudre: #f6e3e7;    /* rose poudré */
	--eec-poudre-2: #fbf1f3;
	--eec-encre: #43333a;
	--eec-ligne: #e8d3d9;
	font-size: 1rem;
	color: var(--eec-encre);
}

/* Étapes */
.eec-steps { display: flex; gap: 4px; list-style: none; margin: 0 0 28px; padding: 0; counter-reset: step; }
.eec-steps li { flex: 1; text-align: center; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; padding: 10px 4px 12px; border-bottom: 2px solid var(--eec-ligne); color: #9c8a91; position: relative; }
.eec-steps li.is-active { color: var(--eec-rose); border-color: var(--eec-rose); font-weight: 600; }
.eec-steps li.is-done { color: var(--eec-encre); border-color: var(--eec-rose); }
@media (max-width: 640px) { .eec-steps li { font-size: 0; padding-bottom: 8px; } .eec-steps li.is-active { font-size: .68rem; } }

.eec-step { display: none; }
.eec-step.is-active { display: block; animation: eec-in .25s ease; }
@keyframes eec-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .eec-step.is-active { animation: none; } }

.eec-step-title { font-size: 1.35rem; margin: 0 0 18px; }
.eec-cat { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--eec-rose); margin: 22px 0 10px; }

/* Prestations */
.eec-services { display: grid; gap: 10px; }
.eec-service { display: flex; align-items: baseline; gap: 12px; padding: 13px 16px; border: 1px solid var(--eec-ligne); border-radius: 10px; cursor: pointer; background: #fff; transition: border-color .15s, background .15s; }
.eec-service:hover { border-color: var(--eec-rose); }
.eec-service:has(input:checked) { border-color: var(--eec-rose); background: var(--eec-poudre-2); box-shadow: 0 0 0 1px var(--eec-rose); }
.eec-service input { accent-color: var(--eec-rose); }
.eec-service-name { flex: 1; font-weight: 500; }
.eec-service-meta { color: #8a767d; font-size: .88rem; white-space: nowrap; }

/* Champs */
.eec-field { margin: 0 0 14px; }
.eec-field label { display: block; font-size: .85rem; font-weight: 500; }
.eec-field input, .eec-field select, .eec-field textarea {
	width: 100%; margin-top: 5px; padding: 11px 13px; border: 1px solid var(--eec-ligne);
	border-radius: 8px; font: inherit; background: #fff; box-sizing: border-box;
}
.eec-field input:focus, .eec-field select:focus, .eec-field textarea:focus { outline: 2px solid var(--eec-rose); outline-offset: 1px; border-color: var(--eec-rose); }
.eec-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .eec-row { grid-template-columns: 1fr; gap: 0; } }
.eec-travel-note { min-height: 1.4em; color: var(--eec-rose); font-size: .9rem; font-style: italic; }
.eec-travel-note.is-free { color: #1a7a3a; font-style: normal; font-weight: 600; }
.eec-travel-note.is-fee { color: #7a5a20; font-style: normal; }
.eec-travel-note.is-blocked { color: #b32d2e; font-style: normal; font-weight: 600; }

/* Calendrier */
.eec-cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.eec-cal-nav button { border: 1px solid var(--eec-ligne); background: #fff; border-radius: 8px; width: 38px; height: 38px; font-size: 1.15rem; cursor: pointer; }
.eec-cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.eec-cal-dow { text-align: center; font-size: .7rem; color: #9c8a91; padding: 4px 0; }
.eec-cal-d { aspect-ratio: 1; border: 1px solid transparent; background: var(--eec-poudre-2); border-radius: 8px; cursor: pointer; font: inherit; }
.eec-cal-d:not(:disabled):hover { border-color: var(--eec-rose); }
.eec-cal-d:disabled { background: transparent; color: #cbbcc1; cursor: default; }
.eec-cal-d.is-selected { background: var(--eec-rose); color: #fff; font-weight: 600; }
.eec-cal-none, .eec-cal-loading { color: #8a767d; font-style: italic; }

/* Créneaux */
.eec-slots { margin-top: 18px; }
.eec-slots-label { font-weight: 500; }
.eec-slot { display: inline-block; margin: 0 8px 8px 0; padding: 9px 16px; border: 1px solid var(--eec-ligne); border-radius: 999px; background: #fff; cursor: pointer; font: inherit; }
.eec-slot:hover { border-color: var(--eec-rose); }
.eec-slot.is-selected { background: var(--eec-rose); border-color: var(--eec-rose); color: #fff; }

/* Récapitulatif */
.eec-summary { margin: 0 0 18px; border: 1px solid var(--eec-ligne); border-radius: 12px; overflow: hidden; }
.eec-summary > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 16px; }
.eec-summary > div:nth-child(odd) { background: var(--eec-poudre-2); }
.eec-summary dt { font-weight: 500; }
.eec-summary dd { margin: 0; text-align: right; }
.eec-summary > div:last-child { background: var(--eec-poudre); font-weight: 600; }

.eec-consent label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .9rem; }
.eec-consent input { margin-top: 3px; accent-color: var(--eec-rose); }

/* Boutons & messages */
.eec-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; }
.eec-nav .eec-btn:only-child { margin-left: auto; }
.eec-btn { border: 0; background: var(--eec-rose); color: #fff; font: inherit; font-weight: 600; padding: 13px 28px; border-radius: 999px; cursor: pointer; transition: filter .15s; }
.eec-btn:hover:not(:disabled) { filter: brightness(1.08); }
.eec-btn:disabled { opacity: .45; cursor: default; }
.eec-btn-ghost { background: transparent; color: var(--eec-encre); border: 1px solid var(--eec-ligne); }
.eec-error { background: #fdecec; border: 1px solid #e8b6b6; color: #8c2f39; padding: 12px 16px; border-radius: 10px; }
.eec-success { text-align: center; background: var(--eec-poudre-2); border: 1px solid var(--eec-ligne); border-radius: 14px; padding: 40px 24px; }
.eec-success h3 { color: var(--eec-rose); font-size: 1.4rem; margin: 0 0 8px; }
.eec-success-inline { color: #2d6a4f; font-weight: 500; }
.eec-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.eec-test-mode { font-size: .8rem; color: #8a767d; font-style: italic; }

/* Avis */
.eec-reviews-empty { font-style: italic; color: #8a767d; padding: 24px; background: var(--eec-poudre-2); border-radius: 12px; text-align: center; }
.eec-reviews-list { list-style: none; margin: 0 0 36px; padding: 0; display: grid; gap: 16px; }
.eec-review { border: 1px solid var(--eec-ligne); border-radius: 12px; padding: 18px 20px; background: #fff; }
.eec-review-head { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; margin: 0 0 6px; }
.eec-review-head em { color: #8a767d; font-size: .85rem; }
.eec-stars { color: var(--eec-rose); letter-spacing: 2px; }
.eec-review-body { margin: 0; }
.eec-review-reply { margin: 12px 0 0; padding: 10px 14px; background: var(--eec-poudre-2); border-left: 3px solid var(--eec-rose); border-radius: 0 8px 8px 0; font-size: .92rem; }
.eec-review-form-title { margin-top: 8px; }
.eec-rating { display: inline-flex; flex-direction: row-reverse; gap: 2px; margin-top: 6px; }
.eec-rating input { position: absolute; opacity: 0; }
.eec-rating span { font-size: 1.7rem; color: #d8c3ca; cursor: pointer; }
.eec-rating input:checked ~ span, .eec-rating label:hover span, .eec-rating label:hover ~ label span { color: var(--eec-rose); }
.eec-rating input:focus-visible + span { outline: 2px solid var(--eec-rose); border-radius: 4px; }

/* Tarifs */
.eec-pricing-cat h3 { font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; color: var(--eec-rose); border-bottom: 1px solid var(--eec-ligne); padding-bottom: 8px; }
.eec-pricing-cat ul { list-style: none; margin: 0 0 30px; padding: 0; }
.eec-pricing-cat li { display: flex; align-items: baseline; gap: 10px; padding: 9px 0; }
.eec-p-dots { flex: 1; border-bottom: 1px dotted var(--eec-ligne); }
.eec-p-meta { color: #8a767d; font-size: .9rem; white-space: nowrap; }

/* ============ Options avancées (modules facultatifs) ============ */

/* Prestations supplémentaires */
.eec-extras { margin-top: 1.4rem; border-top: 1px dashed #e6d3d8; padding-top: 1rem; }
.eec-extras-toggle {
	background: none; border: 1px solid var(--eec-rose); color: var(--eec-rose);
	border-radius: 999px; padding: .5rem 1.1rem; font: inherit; font-size: .92rem;
	cursor: pointer; transition: background .2s, color .2s;
}
.eec-extras-toggle:hover { background: var(--eec-poudre); }
.eec-extras-help { font-size: .9rem; color: #7d6a71; margin: .8rem 0; }
.eec-service-extra .eec-service-name::before { content: '+ '; color: var(--eec-rose); }

/* Code promo / carte cadeau */
.eec-promo { margin: 1.2rem 0; }
.eec-promo label { display: block; font-size: .92rem; margin-bottom: .35rem; color: #6d5a61; }
.eec-promo-row { display: flex; gap: .5rem; flex-wrap: wrap; }
.eec-promo-row input { flex: 1 1 200px; }
.eec-promo-msg { margin: .5rem 0 0; font-size: .92rem; }
.eec-promo-msg.is-ok { color: #1a7a3a; }
.eec-promo-msg.is-error { color: #b32d2e; }

/* Note de paiement */
.eec-pay-note {
	background: var(--eec-poudre); border-radius: 10px; padding: .8rem 1rem;
	font-size: .93rem; color: #5f4c53;
}

/* Liste d'attente */
.eec-waitlist {
	margin-top: 1.4rem; padding: 1rem 1.2rem;
	background: var(--eec-poudre); border-radius: 12px;
}
.eec-waitlist-intro { margin-top: 0; font-size: .95rem; }
.eec-waitlist-msg { margin: .6rem 0 0; font-size: .92rem; }
.eec-waitlist-msg.is-ok { color: #1a7a3a; }
.eec-waitlist-msg.is-error { color: #b32d2e; }

/* Bouton WhatsApp flottant */
.eec-whatsapp {
	position: fixed; right: 18px; bottom: 18px; z-index: 999;
	display: inline-flex; align-items: center; gap: .5rem;
	background: #25d366; color: #fff; text-decoration: none;
	padding: .7rem 1.05rem; border-radius: 999px; font-size: .93rem; font-weight: 500;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
}
.eec-whatsapp:hover { background: #1fbb59; color: #fff; }
@media (max-width: 600px) {
	.eec-whatsapp span { display: none; }
	.eec-whatsapp { padding: .8rem; }
}

/* ============ Autocomplétion d'adresse ============ */
.eec-address-field { position: relative; }
.eec-suggestions {
	position: absolute; left: 0; right: 0; top: 100%; z-index: 40;
	background: #fff; border: 1px solid var(--eec-rose);
	border-radius: 0 0 10px 10px; box-shadow: 0 8px 24px rgba(67,51,58,.14);
	max-height: 280px; overflow-y: auto;
}
.eec-sug {
	display: block; width: 100%; text-align: left; border: 0; background: none;
	padding: .6rem .9rem; font: inherit; cursor: pointer; color: var(--eec-ink, #43333a);
	border-bottom: 1px solid #f4e9ec;
}
.eec-sug:last-child { border-bottom: 0; }
.eec-sug:hover, .eec-sug.is-active { background: var(--eec-poudre); }
.eec-addr-hint { display: block; font-size: .82rem; color: #8a7580; margin-top: .3rem; }

/* ============ Mise en avant des jours (secteurs / tournées) ============ */
.eec-cal-d.is-preferred:not(:disabled) {
	position: relative;
	background: #eaf6ec; border-color: #8fce9c; color: #256b34; font-weight: 600;
}
.eec-cal-d.is-preferred:not(:disabled)::after {
	content: '★'; position: absolute; top: 2px; right: 4px; font-size: .6rem; color: #3ba152;
}
.eec-cal-d.is-preferred.is-selected { background: var(--eec-rose); color: #fff; }
.eec-sector-banner {
	background: #eaf6ec; border: 1px solid #bfe4c6; color: #256b34;
	border-radius: 8px; padding: .6rem .9rem; font-size: .9rem; margin: 0 0 .8rem;
}

/* ============ Espace client ============ */
.eec-account { max-width: 960px; margin: 0 auto; }
.eec-auth-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.eec-auth-box {
	background: #fff; border: 1px solid #eadfe3; border-radius: 14px; padding: 1.6rem 1.8rem;
}
.eec-auth-intro, .eec-profile-help { font-size: .92rem; color: #7d6a71; }
.eec-auth-alt { margin-top: .8rem; font-size: .88rem; }
.eec-account-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.eec-logout { font-size: .9rem; color: var(--eec-rose); }
.eec-account-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 2.2rem; margin-top: 1rem; }
.eec-appt-list { list-style: none; padding: 0; margin: 0 0 1rem; }
.eec-appt {
	display: grid; grid-template-columns: 1fr auto; gap: .2rem .8rem;
	padding: .7rem .9rem; border: 1px solid #eadfe3; border-radius: 10px; margin-bottom: .6rem;
}
.eec-appt-date { font-weight: 600; }
.eec-appt-service { color: #7d6a71; font-size: .92rem; }
.eec-appt-status {
	grid-row: 1 / span 2; align-self: center; font-size: .8rem;
	padding: .2rem .6rem; border-radius: 999px; background: var(--eec-poudre); color: #6d4c58;
}
.eec-appt-cancelled { opacity: .6; }
.eec-appt-cancelled .eec-appt-status { background: #f6e0e0; color: #a23; }

@media (max-width: 780px) {
	.eec-auth-cols, .eec-account-grid { grid-template-columns: 1fr; }
}

/* ============ Pages légales ============ */
.eec-legal { max-width: 780px; }
.eec-legal h2 { font-size: 1.15rem; margin: 2rem 0 .6rem; padding-bottom: .3rem; border-bottom: 1px solid #e8d3d9; }
.eec-legal h2:first-of-type { margin-top: 0; }
.eec-legal ul { padding-left: 1.2rem; }
.eec-legal li { margin-bottom: .35rem; }
.eec-legal-table { width: 100%; border-collapse: collapse; margin: .6rem 0 1rem; font-size: .93rem; }
.eec-legal-table th, .eec-legal-table td { text-align: left; vertical-align: top; padding: .55rem .7rem; border: 1px solid #e8d3d9; }
.eec-legal-table th { background: #fbf1f3; font-weight: 600; }
.eec-legal-extra { margin-top: 1.6rem; padding-top: 1rem; border-top: 1px solid #e8d3d9; }
.eec-legal-updated { margin-top: 1.6rem; font-size: .85rem; color: #8a767d; font-style: italic; }
.eec-legal-admin-hint {
	background: #fff6e5; border: 1px solid #f0d9a8; color: #7a5a20;
	border-radius: 8px; padding: .7rem 1rem; font-size: .92rem; margin: .8rem 0;
}
@media (max-width: 560px) {
	.eec-legal-table, .eec-legal-table tbody, .eec-legal-table tr, .eec-legal-table td { display: block; width: 100%; box-sizing: border-box; }
	.eec-legal-table thead { display: none; }
	.eec-legal-table tr { margin-bottom: .8rem; border: 1px solid #e8d3d9; border-radius: 8px; overflow: hidden; }
	.eec-legal-table td { border: 0; border-bottom: 1px solid #f4e9ec; }
	.eec-legal-table td:last-child { border-bottom: 0; }
}

/* ============ Réservation en ligne coupée ============ */
.eec-booking-closed {
	text-align: center; background: var(--eec-poudre-2); border: 1px solid var(--eec-ligne);
	border-radius: 14px; padding: 40px 24px;
}
.eec-booking-closed .eec-step-title { color: var(--eec-rose); }
.eec-closed-contact { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 18px; }

/* ============ Multi-prestations (module facultatif) ============ */
.eec-extras { margin-top: 1.4rem; border-top: 1px dashed #e2d3d8; padding-top: 1rem; }
.eec-extras-toggle {
	background: none; border: 0; color: var(--eec-rose); font: inherit; font-weight: 600;
	cursor: pointer; padding: .3rem 0;
}
.eec-extras-toggle:hover { text-decoration: underline; }
.eec-extras-help { font-size: .88rem; color: #7d6a71; margin: .4rem 0 .8rem; }
.eec-extras-group { margin-bottom: .8rem; }
.eec-extras-group h5 { margin: .4rem 0; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: #8a7580; }
.eec-extra {
	display: flex; align-items: center; gap: .6rem; padding: .5rem .7rem;
	border: 1px solid #eadfe3; border-radius: 8px; margin-bottom: .4rem; cursor: pointer;
}
.eec-extra:hover { border-color: var(--eec-rose); }
.eec-extra-name { flex: 1; }
.eec-extra-meta { font-size: .85rem; color: #7d6a71; }
.eec-extra.is-main { opacity: .45; cursor: not-allowed; }
.eec-extra.is-main .eec-extra-meta::after { content: ' (déjà choisie)'; font-style: italic; }
