/* =========================================================================
   Réserv'Simple — style du formulaire (couleurs Laser & Équilibre)
   -------------------------------------------------------------------------
   👉 POUR CHANGER LES COULEURS : modifie uniquement les 3 lignes ci-dessous.
   ========================================================================= */
.rs-widget {
	--rs-accent: #12615d;        /* teal / pétrole du logo */
	--rs-accent-dark: #0d4b48;
	--rs-gold: #c2a878;          /* doré du logo */
	--rs-text: #26302f;
	--rs-muted: #6b7370;
	--rs-border: #e2e0d8;
	--rs-field-border: #d7d5cc;
	--rs-surface: #ffffff;

	max-width: 540px;
	margin: 0 auto !important;
	padding: 28px !important;
	background: var(--rs-surface) !important;
	border: 1px solid var(--rs-border);
	border-radius: 18px;
	box-shadow: 0 6px 30px rgba(18, 97, 93, 0.08);
	font-family: inherit;
	color: var(--rs-text) !important;
	text-align: left !important;
	line-height: 1.5;
	box-sizing: border-box;
}
.rs-widget *,
.rs-widget *::before,
.rs-widget *::after {
	box-sizing: border-box;
	text-align: left;
}

/* ---- Barre de progression ---- */
.rs-progress {
	display: flex;
	gap: 6px;
	margin-bottom: 24px;
}
.rs-progress-bar {
	flex: 1;
	height: 4px;
	border-radius: 2px;
	background: var(--rs-border);
	transition: background .2s ease;
}
.rs-progress-bar.is-active { background: var(--rs-accent); }

/* ---- Titres d'étape ---- */
.rs-step-title {
	font-weight: 600 !important;
	font-size: 15px !important;
	color: var(--rs-text) !important;
	margin: 0 0 4px !important;
}
.rs-recap {
	color: var(--rs-muted) !important;
	font-size: 13px !important;
	margin: 0 0 16px !important;
	text-transform: capitalize;
}

/* ---- Champs ---- */
.rs-field { margin-bottom: 20px; }

.rs-widget .rs-field > label {
	display: block !important;
	font-weight: 600 !important;
	color: var(--rs-text) !important;
	margin: 0 0 8px !important;
	font-size: 14px !important;
	letter-spacing: .01em;
	text-transform: none !important;
}
.rs-req { color: var(--rs-gold) !important; }

.rs-widget select,
.rs-widget input[type="text"],
.rs-widget input[type="email"],
.rs-widget input[type="tel"],
.rs-widget input[type="date"],
.rs-widget textarea {
	width: 100% !important;
	font-size: 16px !important;      /* 16px = pas de zoom auto iOS */
	font-family: inherit !important;
	color: var(--rs-text) !important;
	padding: 13px 15px !important;
	border: 1px solid var(--rs-field-border) !important;
	border-radius: 12px !important;
	background: #fff !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	box-shadow: none !important;
	appearance: none;
	-webkit-appearance: none;
	min-height: 0 !important;
}
.rs-widget select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2312615d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	padding-right: 40px !important;
}
.rs-widget select:focus,
.rs-widget input:focus,
.rs-widget textarea:focus {
	outline: none !important;
	border-color: var(--rs-accent) !important;
	box-shadow: 0 0 0 3px rgba(18, 97, 93, 0.15) !important;
}
.rs-widget textarea { min-height: 72px !important; resize: vertical; }

/* ---- Créneaux ---- */
.rs-slots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	gap: 10px;
	margin-bottom: 22px;
	min-height: 48px;
}
.rs-widget .rs-slot {
	padding: 12px 6px !important;
	border: 1px solid var(--rs-field-border) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--rs-text) !important;
	-webkit-text-fill-color: var(--rs-text) !important;
	cursor: pointer;
	font-size: 15px !important;
	font-weight: 500;
	font-family: inherit !important;
	line-height: 1.2 !important;
	transition: all .15s ease;
	text-align: center !important;
	width: 100%;
	-webkit-tap-highlight-color: transparent;
}
.rs-widget .rs-slot:hover {
	border-color: var(--rs-accent) !important;
	color: var(--rs-accent) !important;
	-webkit-text-fill-color: var(--rs-accent) !important;
}
.rs-widget .rs-slot--active,
.rs-widget .rs-slot--active:focus {
	background: var(--rs-accent) !important;
	border-color: var(--rs-accent) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-weight: 600;
}
.rs-loading,
.rs-noslots {
	display: block;
	color: var(--rs-muted) !important;
	font-size: 14px;
	padding: 6px 0;
}

/* ---- Boutons ---- */
.rs-widget .rs-btn {
	display: block !important;
	width: 100% !important;
	padding: 15px 20px !important;
	margin: 0 !important;
	background: var(--rs-accent) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border: none !important;
	border-radius: 12px !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	cursor: pointer;
	line-height: 1.2 !important;
	text-align: center !important;
	transition: background .15s ease;
	box-shadow: none !important;
	text-transform: none !important;
}
.rs-widget .rs-btn:hover { background: var(--rs-accent-dark) !important; }
.rs-widget .rs-btn:disabled,
.rs-widget .rs-btn.is-disabled { opacity: .45; cursor: default; }

.rs-widget .rs-btn-secondary {
	display: inline-block !important;
	padding: 14px 20px !important;
	margin: 0 !important;
	background: #fff !important;
	color: var(--rs-accent) !important;
	-webkit-text-fill-color: var(--rs-accent) !important;
	border: 1px solid var(--rs-field-border) !important;
	border-radius: 12px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	cursor: pointer;
	line-height: 1.2 !important;
	text-align: center !important;
	transition: border-color .15s ease;
	box-shadow: none !important;
}
.rs-widget .rs-btn-secondary:hover { border-color: var(--rs-accent) !important; }

/* Ligne de navigation (Retour / Continuer) */
.rs-nav { display: flex; gap: 10px; align-items: stretch; }
.rs-nav .rs-btn { flex: 1; width: auto !important; }

/* ---- Messages ---- */
.rs-message {
	margin: 0 0 16px;
	padding: 12px 15px;
	border-radius: 12px;
	font-size: 14px;
}
.rs-message--error { background: #fdecea; color: #a5281b; }
.rs-message--success { background: #e7f3f0; color: var(--rs-accent-dark); }

/* ---- Confirmation ---- */
.rs-success { text-align: center !important; padding: 20px 8px; }
.rs-success * { text-align: center !important; }
.rs-check {
	width: 60px; height: 60px; line-height: 60px;
	margin: 0 auto 14px;
	border-radius: 50%;
	background: var(--rs-accent);
	color: #fff;
	font-size: 32px;
}
.rs-success h3 { margin: 0 0 10px !important; color: var(--rs-text) !important; font-size: 20px !important; }
.rs-success p { margin: 0 0 6px !important; color: var(--rs-text) !important; }
.rs-loc { color: var(--rs-muted) !important; font-size: 14px !important; }
.rs-empty { color: var(--rs-muted) !important; }


/* ---- Cartes prestation ---- */
.rs-widget .rs-services { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.rs-widget .rs-service-card {
	display: flex; justify-content: space-between; align-items: center; gap: 12px;
	width: 100% !important;
	text-align: left !important;
	border: 1px solid var(--rs-field-border) !important;
	border-radius: 12px !important;
	background: #fff !important;
	padding: 14px 16px !important;
	cursor: pointer;
	font-family: inherit !important;
	transition: all .15s ease;
	box-shadow: none !important;
}
.rs-widget .rs-service-card:hover { border-color: var(--rs-accent) !important; }
.rs-widget .rs-service-card.is-selected {
	border: 2px solid var(--rs-accent) !important;
	background: #f1f7f6 !important;
	padding: 13px 15px !important;
}
.rs-widget .rs-service-info { display: flex; flex-direction: column; gap: 2px; text-align: left; }
.rs-widget .rs-service-name { font-weight: 600; font-size: 15px; color: var(--rs-text) !important; -webkit-text-fill-color: var(--rs-text) !important; }
.rs-widget .rs-service-dur { font-size: 13px; color: var(--rs-muted) !important; -webkit-text-fill-color: var(--rs-muted) !important; }
.rs-widget .rs-service-price { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-weight: 600; white-space: nowrap; text-align: right; }
.rs-widget .rs-price-old { text-decoration: line-through; font-size: 13px; font-weight: 500; opacity: .8; }
.rs-widget .rs-price-sale { font-weight: 700; font-size: 15px; }

/* ---- Titre secondaire espacé ---- */
.rs-widget .rs-mt { margin-top: 4px !important; }

/* ---- Calendrier ---- */
.rs-widget .rs-cal { border: 1px solid var(--rs-border); border-radius: 14px; padding: 14px; margin-bottom: 24px; }
.rs-widget .rs-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.rs-widget .rs-cal-month { font-weight: 600; font-size: 15px; text-transform: capitalize; color: var(--rs-text); }
.rs-widget .rs-cal-nav {
	width: 34px; height: 34px; min-width: 34px;
	border: 1px solid var(--rs-field-border) !important;
	background: #fff !important;
	border-radius: 9px !important;
	cursor: pointer;
	font-size: 18px;
	color: var(--rs-accent) !important;
	-webkit-text-fill-color: var(--rs-accent) !important;
	display: flex; align-items: center; justify-content: center;
	padding: 0 !important; line-height: 1 !important;
}
.rs-widget .rs-cal-nav:disabled { opacity: .35; cursor: default; }
.rs-widget .rs-cal-dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px; }
.rs-widget .rs-cal-dow span { text-align: center !important; font-size: 12px; color: var(--rs-muted) !important; font-weight: 600; padding: 4px 0; }
.rs-widget .rs-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.rs-widget .rs-cell {
	aspect-ratio: 1 / 1;
	display: flex; align-items: center; justify-content: center;
	border-radius: 9px;
	font-size: 14px;
	cursor: pointer;
	border: 1px solid transparent !important;
	background: #fff !important;
	color: var(--rs-text) !important;
	-webkit-text-fill-color: var(--rs-text) !important;
	transition: all .12s ease;
}
.rs-widget .rs-cell:hover:not(.is-off):not(.is-empty) { border-color: var(--rs-accent) !important; }
.rs-widget .rs-cell.is-off { color: #c9ccc9 !important; -webkit-text-fill-color: #c9ccc9 !important; cursor: default; }
.rs-widget .rs-cell.is-empty { border: none !important; background: transparent !important; cursor: default; }
.rs-widget .rs-cell.is-selected {
	background: var(--rs-accent) !important;
	border-color: var(--rs-accent) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-weight: 600;
}


/* ---- Ajouter à mon agenda (confirmation) ---- */
.rs-widget .rs-addcal { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--rs-border); }
.rs-widget .rs-addcal-label { font-size: 13px; color: var(--rs-muted) !important; margin: 0 0 10px !important; text-align: center !important; }
.rs-widget .rs-addcal-btns { display: flex; gap: 10px; justify-content: center; }
.rs-widget .rs-addcal-btns .rs-btn-secondary { flex: 1; max-width: 190px; text-decoration: none !important; display: inline-flex; align-items: center; justify-content: center; }

/* ---- Mobile ---- */
@media (max-width: 560px) {
	.rs-widget { padding: 20px !important; border-radius: 16px; }
	.rs-slots { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); }
	.rs-btn-secondary { padding: 14px 16px !important; }
}
