/* Module Location — catalogue & réservation */

.ra-locations { margin: 1.5em 0; }

.ra-loc-filtres {
	display: flex;
	flex-wrap: wrap;
	gap: .5em;
	margin-bottom: 1.2em;
}

.ra-loc-filtre {
	border: 1px solid #2271b1;
	background: #fff;
	color: #2271b1;
	border-radius: 20px;
	padding: .4em 1em;
	cursor: pointer;
	font-size: .9em;
}

.ra-loc-filtre.actif,
.ra-loc-filtre:hover { background: #2271b1; color: #fff; }

.ra-loc-grille {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 240px, 1fr ) );
	gap: 1.2em;
}

.ra-loc-carte {
	border: 1px solid #e2e2e2;
	border-radius: 10px;
	overflow: hidden;
	transition: box-shadow .15s;
	background: #fff;
}

.ra-loc-carte:hover { box-shadow: 0 4px 16px rgba( 0, 0, 0, .1 ); }

.ra-loc-carte-lien { display: block; color: inherit; text-decoration: none; padding: 0 0 1em; }

.ra-loc-carte-img img { width: 100%; height: 180px; object-fit: cover; display: block; }

.ra-loc-carte-titre { margin: .7em 1em .2em; font-size: 1.05em; }
.ra-loc-carte-soustitre { margin: 0 1em .4em; color: #666; font-size: .9em; }
.ra-loc-carte-prix { margin: .3em 1em; font-weight: 600; color: #2271b1; }

.ra-loc-carte-cta {
	display: inline-block;
	margin: .5em 1em 0;
	color: #2271b1;
	font-weight: 600;
	font-size: .9em;
}

/* Formulaire de réservation */
.ra-location-resa {
	max-width: 640px;
	margin: 2em 0;
	border-top: 2px solid #eee;
	padding-top: 1.2em;
}

.ra-loc-caracts {
	list-style: none;
	padding: 0;
	margin: 0 0 1em;
	display: flex;
	flex-wrap: wrap;
	gap: .4em 1.2em;
}

.ra-loc-caracts li { position: relative; padding-left: 1.2em; }
.ra-loc-caracts li::before { content: "✓"; position: absolute; left: 0; color: #22a447; }

.ra-loc-champs {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	margin-bottom: 1em;
}

.ra-loc-champs input {
	padding: .5em .6em;
	border: 1px solid #ccc;
	border-radius: 6px;
}

.ra-loc-resume {
	padding: .6em .9em;
	border-radius: 6px;
	font-weight: 600;
	min-height: 1em;
}

.ra-loc-resume--ok { background: #eaf6ee; border-left: 3px solid #22a447; }
.ra-loc-resume--ko { background: #fdecec; border-left: 3px solid #d63638; }

.ra-loc-coordonnees { margin-top: 1.2em; }

.ra-loc-coordonnees input:not([type="checkbox"]),
.ra-loc-coordonnees textarea {
	width: 100%;
	max-width: 420px;
	padding: .5em .6em;
	border: 1px solid #ccc;
	border-radius: 6px;
}

/* La case CGL garde sa taille naturelle (sinon width:100% la déforme et décale le texte). */
.ra-loc-coordonnees .ra-cgv-check { width: auto; max-width: none; }

.ra-loc-message { margin-top: 1em; }
.ra-loc-message--succes { background: #e7f6ec; border-left: 4px solid #22a447; padding: .9em 1.1em; border-radius: 4px; }
.ra-loc-message--erreur { background: #fdecec; border-left: 4px solid #d63638; padding: .9em 1.1em; border-radius: 4px; }

/* Sélecteur de taille (déclinaisons) */
.ra-loc-tailles { margin: 0 0 1.2em; }
.ra-loc-tailles > strong { display:block; margin-bottom:.4em; }
.ra-loc-tailles-choix { display:flex; flex-wrap:wrap; gap:.5em; }
.ra-loc-taille {
	display:inline-flex; align-items:center; gap:.4em;
	border:1px solid #ccc; border-radius:6px; padding:.4em .8em; cursor:pointer;
}
.ra-loc-taille:hover { border-color:#2271b1; }
.ra-loc-taille input { margin:0; }
.ra-loc-taille-nom { font-weight:600; }
.ra-loc-taille-dispo { color:#666; font-size:.85em; }
.ra-loc-taille--indispo, .ra-loc-taille--complet { opacity:.5; }
.ra-loc-taille--indispo { cursor:not-allowed; }
.ra-loc-taille-hint { margin:.5em 0 0; }
