/**
 * Zerosix — Modale.
 *
 * Portage 1:1 du style PS (PS:views/css/front.css § "join fidelity", l.292-406).
 * Scope : `#zerosix-join`. Typographie/inputs héritent du thème courant.
 * Le bouton `.zsx-btn` reprend l'identité PS (pilule noire) indépendante du thème.
 */

#zerosix-join .backdrop {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, .5);
	z-index: 999;
}

#zerosix-join dialog {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	max-width: 700px;
	max-height: 90vh;
	overflow: auto;
	margin: auto;
	background-color: #fff;
	color: inherit;
	border-radius: 5px;
	padding: 1rem 3rem;
	border: none;
	box-shadow: 0 0 10px rgba(0, 0, 0, .5);
}

#zerosix-join dialog[open] {
	display: block;
}

#zerosix-join dialog header {
	width: 100%;
	height: 1rem;
	margin-bottom: 1rem;
}

#zerosix-join dialog header .zerosix-join-close {
	float: right;
	cursor: pointer;
	line-height: 0;
}

#zerosix-join dialog header .zerosix-join-close img {
	width: 1rem;
	height: 1rem;
}

#zerosix-join dialog form.dialog-content {
	width: 100%;
	margin-bottom: 1rem;
}

#zerosix-join dialog form.dialog-content h1 {
	font-size: 1.4rem;
	margin: 0 0 1rem;
}

#zerosix-join dialog form.dialog-content p {
	margin: 0 0 1rem;
}

#zerosix-join dialog form.dialog-content input[type="text"],
#zerosix-join dialog form.dialog-content input[type="email"],
#zerosix-join dialog form.dialog-content input[type="password"],
#zerosix-join dialog form.dialog-content input[type="tel"] {
	padding: 1rem;
	line-height: 1rem;
	border-radius: 5px;
	border: 1px solid #000;
	width: 100%;
	background: #fff;
	color: inherit;
	box-sizing: border-box;
}

#zerosix-join dialog form.dialog-content input[type="checkbox"] {
	width: 15px;
	margin-right: 1rem;
}

#zerosix-join dialog form.dialog-content input[name="_name"] {
	display: none;
}

#zerosix-join dialog form.dialog-content .zsx-form-group {
	margin-bottom: 1rem;
}

#zerosix-join dialog form.dialog-content .zsx-form-group small {
	display: inline-block;
	margin-bottom: .25rem;
}

#zerosix-join dialog form.dialog-content .zsx-buttons {
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	justify-content: center;
	align-items: center;
	gap: .5rem;
	margin-top: 1rem;
}

#zerosix-join dialog form.dialog-content .zsx-buttons .zsx-btn {
	background-color: #000;
	color: #fff;
	padding: 0.5rem 2rem;
	border-radius: 25px;
	border: none;
	cursor: pointer;
	font: inherit;
	line-height: 1.4;
}

#zerosix-join dialog form.dialog-content .zsx-buttons .zsx-btn:hover,
#zerosix-join dialog form.dialog-content .zsx-buttons .zsx-btn:focus {
	background-color: #222;
	outline: none;
}

#zerosix-join dialog form.dialog-content .zsx-buttons .zsx-btn[disabled] {
	opacity: .6;
	cursor: default;
}

#zerosix-join dialog form.dialog-content .zsx-red {
	color: red;
}

#zerosix-join dialog form.dialog-content hr {
	border: 0;
	border-top: 1px solid rgba(0, 0, 0, .1);
	margin: 1rem 0;
}

/* Gestion des étapes affichées/masquées côté JS. */
#zerosix-join [data-zerosix-step] {
	display: none;
}

#zerosix-join [data-zerosix-step].is-active {
	display: block;
}

/* Overlay de chargement (portage PS). */
#zerosix-join dialog div.loading-overlay {
	display: none;
}

#zerosix-join.loading dialog div.loading-overlay {
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: hsla(0, 0%, 0%, .5);
	z-index: 1001;
}

.spinner {
	position: absolute;
	top: calc(50% - 25px);
	left: calc(50% - 25px);
	width: 50px;
	height: 50px;
	border: 5px solid #fff;
	border-top: 5px solid #000;
	border-bottom: 5px solid #000;
	border-radius: 50%;
	animation: zsx-spin 1s linear infinite;
}

@keyframes zsx-spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Intégration des fields WC natifs injectés dans la modale via
   `do_action('woocommerce_register_form')` — parité PS (customer-form.tpl).
   On recycle les règles de `.zsx-form-group` pour `.form-row`. */
#zerosix-join dialog form.dialog-content .form-row {
	margin-bottom: 1rem;
	display: block;
}

#zerosix-join dialog form.dialog-content .form-row label {
	display: inline-block;
	margin-bottom: .25rem;
	font-size: inherit;
}

#zerosix-join dialog form.dialog-content .form-row .woocommerce-Input {
	box-sizing: border-box;
	width: 100%;
}

#zerosix-join dialog form.dialog-content .form-row .required {
	color: red;
	text-decoration: none;
}

#zerosix-join dialog form.dialog-content .zerosix-phone-hint {
	display: block;
	margin-top: .25rem;
	color: hsl(0, 0%, 40%);
}

#zerosix-join dialog form.dialog-content .zerosix-cgu-field label {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
}

/* Responsive mobile : plein écran, moins de padding latéral. */
@media (max-width: 600px) {
	#zerosix-join dialog {
		max-width: 100%;
		max-height: 100vh;
		border-radius: 0;
		padding: 1rem 1.25rem;
	}
}
