/**
 * Formulaire de montant et page de remerciement.
 *
 * Trois tailles : petite, moyenne (defaut), grande. Chaque taille ne fait que
 * redefinir les variables de dimension ci-dessous : aucune regle dupliquee.
 * Les couleurs derivent toutes de --wsd-accent, defini en ligne par le PHP.
 */

.wsd-widget {
	--wsd-accent: #C2701C;
	--wsd-ink: #1F2937;
	--wsd-muted: #7C7368;
	--wsd-line: #E7E2DA;
	--wsd-soft: #F4F1EC;

	/* Dimensions de la taille moyenne, surchargees par les variantes. */
	--wsd-width: 520px;
	--wsd-radius: 18px;
	--wsd-font: 16px;
	--wsd-pad: 22px;
	--wsd-tab-pad: 18px;
	--wsd-amount-height: 52px;
	--wsd-input-height: 54px;
	--wsd-cta-height: 56px;
	--wsd-columns: 4;

	box-sizing: border-box;
	max-width: var(--wsd-width);
	margin: 0 auto;
	color: var(--wsd-ink);
	font-size: var(--wsd-font);
	line-height: 1.5;
}

.wsd-widget--small {
	--wsd-width: 340px;
	--wsd-radius: 14px;
	--wsd-font: 15px;
	--wsd-pad: 16px;
	--wsd-tab-pad: 13px;
	--wsd-amount-height: 44px;
	--wsd-input-height: 46px;
	--wsd-cta-height: 48px;
	--wsd-columns: 2;
}

.wsd-widget--large {
	--wsd-width: 720px;
	--wsd-radius: 22px;
	--wsd-font: 18px;
	--wsd-pad: 32px;
	--wsd-tab-pad: 22px;
	--wsd-amount-height: 64px;
	--wsd-input-height: 64px;
	--wsd-cta-height: 66px;
	--wsd-columns: 4;
}

.wsd-widget *,
.wsd-checkout * {
	box-sizing: border-box;
}

.wsd-widget__title {
	margin: 0 0 16px;
	font-size: 1.4em;
	text-align: center;
}

.wsd-card {
	background: #FFFFFF;
	border: 1px solid var(--wsd-line);
	border-radius: var(--wsd-radius);
	box-shadow: 0 10px 30px rgba(31, 41, 55, 0.06);
	overflow: hidden;
}

.wsd-card--notice {
	padding: 24px;
	text-align: center;
}

.wsd-card--notice p {
	margin: 0;
}

/* Onglets ponctuel / mensuel */

.wsd-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--wsd-soft);
}

.wsd-tab {
	display: block;
	padding: var(--wsd-tab-pad) 12px;
	text-align: center;
	font-weight: 600;
	color: var(--wsd-muted);
	cursor: pointer;
	border-bottom: 3px solid transparent;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.wsd-tab:hover {
	color: var(--wsd-ink);
}

.wsd-tabs input:checked + .wsd-tab {
	background: #FFFFFF;
	color: var(--wsd-ink);
	border-bottom-color: var(--wsd-accent);
	border-top-right-radius: var(--wsd-radius);
	border-top-left-radius: var(--wsd-radius);
}

.wsd-tabs input:focus-visible + .wsd-tab {
	outline: 2px solid var(--wsd-accent);
	outline-offset: -4px;
}

.wsd-form__body {
	padding: var(--wsd-pad);
}

/* Montants proposes */

.wsd-amounts {
	display: grid;
	grid-template-columns: repeat(var(--wsd-columns), 1fr);
	gap: 10px;
	margin-bottom: 12px;
}

.wsd-amount {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--wsd-amount-height);
	padding: 10px 6px;
	border: 1px solid var(--wsd-line);
	border-radius: 10px;
	background: #FFFFFF;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.wsd-amount:hover {
	border-color: var(--wsd-accent);
}

.wsd-widget .wsd-amounts input:checked + .wsd-amount {
	background: var(--wsd-accent);
	border-color: var(--wsd-accent);
	color: #FFFFFF;
}

.wsd-amounts input:focus-visible + .wsd-amount {
	outline: 2px solid var(--wsd-accent);
	outline-offset: 2px;
}

/* Montant libre */

.wsd-free {
	position: relative;
	margin-bottom: 18px;
}

.wsd-free__input {
	width: 100%;
	min-height: var(--wsd-input-height);
	padding: 12px 42px 12px 16px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: var(--wsd-soft);
	font-size: 1em;
	color: var(--wsd-ink);
	appearance: textfield;
	-moz-appearance: textfield;
}

.wsd-free__input::-webkit-outer-spin-button,
.wsd-free__input::-webkit-inner-spin-button {
	appearance: none;
	margin: 0;
}

.wsd-free__input:focus {
	border-color: var(--wsd-accent);
	outline: none;
	background: #FFFFFF;
}

.wsd-free__symbol {
	position: absolute;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
	color: var(--wsd-muted);
	pointer-events: none;
}

/* Bouton principal.
   Les couleurs sont forcees : sans cela, un theme ou un constructeur de page
   qui style tous les boutons du site repeint le bouton de don et le reglage
   "Couleur principale" ne sert plus a rien. */

.wsd-widget .wsd-submit,
.wsd-checkout .wsd-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: var(--wsd-cta-height, 56px);
	padding: 14px 20px;
	border: 0;
	border-radius: 10px;
	background: var(--wsd-accent) !important;
	color: #FFFFFF !important;
	font-family: inherit;
	font-size: 1em;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	cursor: pointer;
	transition: filter 0.15s ease, transform 0.15s ease;
}

.wsd-widget .wsd-submit:hover:not([disabled]),
.wsd-checkout .wsd-submit:hover:not([disabled]) {
	filter: brightness(0.94);
}

.wsd-widget .wsd-submit:active:not([disabled]),
.wsd-checkout .wsd-submit:active:not([disabled]) {
	transform: translateY(1px);
}

.wsd-widget .wsd-submit[disabled],
.wsd-checkout .wsd-submit[disabled] {
	opacity: 0.6;
	cursor: progress;
}

.wsd-submit--link {
	display: inline-flex;
	width: auto;
	padding-left: 28px;
	padding-right: 28px;
}

.wsd-submit__arrow {
	font-size: 1.1em;
	line-height: 1;
}

/* Mentions et logos */

.wsd-secure {
	margin: 14px 0 10px;
	text-align: center;
	font-size: 0.8em;
	color: var(--wsd-muted);
}

.wsd-note {
	margin: 10px 0 0;
	text-align: center;
	font-size: 0.85em;
	color: var(--wsd-muted);
}

.wsd-logos {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wsd-logo {
	margin: 0;
	line-height: 0;
}

.wsd-logo svg {
	height: 22px;
	width: auto;
	display: block;
}

.wsd-widget--small .wsd-logos {
	gap: 12px;
}

.wsd-widget--small .wsd-logo svg {
	height: 18px;
}

.wsd-widget--large .wsd-logo svg {
	height: 26px;
}

/* Erreurs */

.wsd-error {
	margin: 0 0 12px;
	padding: 10px 12px;
	border-radius: 8px;
	background: #FEF2F2;
	color: #B42318;
	font-size: 0.9em;
}

.wsd-error[hidden] {
	display: none;
}

/* Utilitaires */

.wsd-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.wsd-honeypot {
	display: none !important;
}

/* Remerciement */

.wsd-thankyou__card {
	padding: 28px 24px;
	text-align: center;
}

.wsd-thankyou__title {
	margin: 0 0 12px;
	font-size: 1.3em;
}

.wsd-thankyou__amount {
	margin: 0 0 6px;
	font-size: 2em;
	font-weight: 700;
	color: var(--wsd-accent);
}

.wsd-thankyou__frequency {
	font-size: 0.45em;
	font-weight: 600;
	color: var(--wsd-muted);
}

/* Mobile : la grande taille redescend au gabarit moyen, la moyenne passe
   sur deux colonnes. La petite taille est deja compacte. */

@media (max-width: 720px) {
	.wsd-widget--large {
		--wsd-font: 16px;
		--wsd-pad: 22px;
		--wsd-amount-height: 52px;
		--wsd-input-height: 54px;
		--wsd-cta-height: 56px;
	}
}

@media (max-width: 520px) {
	.wsd-widget {
		--wsd-columns: 2;
		--wsd-pad: 18px;
		--wsd-tab-pad: 15px;
	}

	.wsd-widget--large {
		--wsd-columns: 2;
	}
}
