/* Lokaal meegeleverde handschriftlettertypen voor een getypte handtekening.
   Bewust niet via de Google Fonts-CDN, zie assets/fonts/LICENSE.md. */
@font-face {
	font-family: 'SVSCaveat';
	src: url('../fonts/caveat.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'SVSDancingScript';
	src: url('../fonts/dancing-script.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'SVSGreatVibes';
	src: url('../fonts/great-vibes.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

.svs-inschrijving {
	max-width: 880px;
	margin: 0 auto;
	font-size: 1rem;
	line-height: 1.5;
}

.svs-section {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #e2e2e2;
}

.svs-section:last-of-type {
	border-bottom: none;
}

.svs-section h3 {
	margin-bottom: 0.75rem;
}

.svs-field {
	margin-bottom: 1.25rem;
}

.svs-field-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.svs-field-row .svs-field {
	flex: 1 1 220px;
}

.svs-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.4rem;
}

.svs-field input[type="text"],
.svs-field input[type="email"],
.svs-field input[type="tel"] {
	width: 100%;
	min-height: 48px;
	padding: 0.6rem 0.75rem;
	font-size: 1rem;
	border: 1px solid #999;
	border-radius: 4px;
	box-sizing: border-box;
}

.svs-field input:focus {
	outline: 3px solid #1e6fd9;
	outline-offset: 1px;
}

.svs-field-hint {
	font-size: 0.875rem;
	color: #555;
	margin-top: 0.35rem;
}

.svs-form-error {
	color: #a4262c;
	font-size: 0.9rem;
	margin-top: 0.35rem;
}

.svs-form-error--general {
	font-size: 1rem;
	padding: 0.75rem 1rem;
	border: 1px solid #a4262c;
	border-radius: 4px;
	background: #fdecea;
}

.svs-radio-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.svs-radio-card {
	flex: 1 1 220px;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1rem;
	border: 1px solid #999;
	border-radius: 6px;
	cursor: pointer;
}

.svs-radio-card input {
	width: 20px;
	height: 20px;
}

.svs-radio-card__price {
	color: #555;
	font-size: 0.9rem;
}

.svs-info-box {
	padding: 1rem;
	background: #f4f6f8;
	border-radius: 6px;
	margin-bottom: 1.25rem;
}

.svs-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	cursor: pointer;
}

.svs-checkbox input {
	width: 22px;
	height: 22px;
	flex: none;
	margin-top: 0.2rem;
}

.svs-signature-pad {
	border: 1px solid #999;
	border-radius: 6px;
	display: block;
	width: 100%;
	touch-action: none;
}

.svs-signature-pad canvas {
	display: block;
	width: 100%;
	height: 200px;
	cursor: crosshair;
	/* Zonder dit scrollt de pagina mee terwijl iemand op een touchscreen tekent. */
	touch-action: none;
	-ms-touch-action: none;
}

.svs-registration-view .svs-button {
	text-decoration: none;
	display: inline-block;
}

.svs-signature-tabs {
	display: flex;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.svs-signature-tab {
	min-height: 44px;
	padding: 0.5rem 1.25rem;
	font-size: 1rem;
	border: 1px solid #999;
	border-radius: 6px;
	background: #fff;
	color: #222;
	cursor: pointer;
}

.svs-signature-tab[aria-selected="true"] {
	background: #1e6fd9;
	border-color: #1e6fd9;
	color: #fff;
	font-weight: 600;
}

.svs-signature-fonts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.svs-signature-font {
	flex: 1 1 180px;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 56px;
	padding: 0.5rem 1rem;
	border: 1px solid #999;
	border-radius: 6px;
	cursor: pointer;
	font-size: 1.6rem;
	line-height: 1.2;
}

.svs-signature-font input {
	width: 20px;
	height: 20px;
	flex: none;
}

.svs-signature-font:has( input:checked ) {
	border-color: #1e6fd9;
	box-shadow: 0 0 0 1px #1e6fd9;
}

.svs-signature-font--caveat span {
	font-family: 'SVSCaveat', cursive;
	font-weight: 600;
}

.svs-signature-font--dancing-script span {
	font-family: 'SVSDancingScript', cursive;
	font-weight: 600;
}

.svs-signature-font--great-vibes span {
	font-family: 'SVSGreatVibes', cursive;
}

.svs-signature-image {
	max-width: 100%;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.svs-button {
	display: inline-block;
	min-height: 48px;
	padding: 0.75rem 1.75rem;
	font-size: 1.05rem;
	border-radius: 6px;
	border: none;
	cursor: pointer;
	margin-top: 0.75rem;
	/* Een <button> krijgt border-box van de browser, een <a> niet. Zonder dit
	   telt de padding bij width:100% op mobiel bovenop de breedte, en loopt de
	   downloadknop op de weergavepagina buiten beeld. */
	box-sizing: border-box;
	text-align: center;
}

.svs-button--primary {
	background: #1e6fd9;
	color: #fff;
}

.svs-button--secondary {
	background: #eee;
	color: #222;
	margin-bottom: 0.75rem;
}

.svs-honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 600px) {
	/* Postcode is kort: naast de plaats leest natuurlijker en scheelt een
	   volledige veldhoogte. Zonder nowrap en min-width:0 wrapt de rij alsnog. */
	.svs-field-row {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 0.75rem;
	}

	.svs-field-row .svs-field {
		flex: 1 1 0;
		min-width: 0;
	}

	.svs-field-row .svs-field:first-child {
		flex: 0 0 38%;
	}

	.svs-radio-cards {
		flex-direction: column;
		gap: 0.6rem;
	}

	/* De flex-basis van 220px is bedoeld als breedte in de rij-indeling van
	   desktop; in deze kolom zou die als hoogte gelden en maakt hij van een
	   keuze tussen twee opties een blok van ruim 500 pixels. */
	.svs-radio-card {
		flex: 0 0 auto;
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
		gap: 0.25rem 0.75rem;
		padding: 0.85rem 1rem;
		min-height: 56px;
	}

	.svs-radio-card > span {
		font-weight: 600;
	}

	.svs-radio-card__price {
		flex-basis: 100%;
		margin-left: 32px;
		font-weight: 400;
	}

	/* Op een telefoon teken je met een vinger: meer hoogte, en knoppen en
	   tabs over de volle breedte zodat ze makkelijk te raken zijn. */
	.svs-signature-pad canvas {
		height: 240px;
	}

	.svs-signature-tab {
		flex: 1;
		padding: 0.5rem 0.5rem;
	}

	.svs-signature-font {
		flex-basis: 100%;
		font-size: 1.4rem;
	}

	.svs-button {
		display: block;
		width: 100%;
	}

	/* Rustiger verticaal ritme: op een telefoon kost elke marge een stuk
	   beeldruimte, en het thema zet zelf ook nog een bovenmarge op koppen. */
	.svs-section {
		margin-bottom: 1rem;
		padding-bottom: 0.875rem;
	}

	.svs-section h2,
	.svs-section h3,
	.svs-section h4 {
		margin-top: 0;
		margin-bottom: 0.5rem;
	}

	.svs-section h3 {
		font-size: 1.05rem;
	}

	.svs-field {
		margin-bottom: 0.875rem;
	}

	.svs-field label {
		margin-bottom: 0.25rem;
	}

	.svs-info-box {
		padding: 0.75rem;
		margin-bottom: 0.875rem;
	}

	.svs-info-box p {
		overflow-wrap: anywhere;
		margin: 0.35rem 0;
	}
}
