/* Ausschreibung (single page + print/PDF) – layout of the printed template "VA". */

@font-face {
	font-family: "KF Noto Serif";
	src: url("../fonts/noto-serif-latin-400-normal.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "KF Noto Serif";
	src: url("../fonts/noto-serif-latin-700-normal.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

.kf-sheet {
	--kf-sheet-font: "KF Noto Serif", "Noto Serif", Georgia, "Times New Roman", serif;
	--kf-sheet-sans: "Helvetica Neue", Arial, sans-serif;
	--kf-sheet-grey: #d9d9d9;
	--kf-sheet-heading: #a3a3a3;
	--kf-sheet-text: #000;
	--kf-magenta: #e40350;
	position: relative;
	overflow: hidden;
	background: #fff;
	color: var(--kf-sheet-text);
	font-family: var(--kf-sheet-font);
	font-size: 16px;
	line-height: 1.45;
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

.kf-sheet *,
.kf-sheet *::before,
.kf-sheet *::after {
	box-sizing: border-box;
}

/* Stripe of the VA template: magenta, green, purple, yellow, blue, grey (x2) */
.kf-stripe--va {
	height: 3px;
	margin: 0;
	background: linear-gradient(90deg,
		#e41a54 0 8.33%, #03a671 0 16.66%, #af53e4 0 25%, #fccb02 0 33.33%, #236ab1 0 41.66%, #6d8085 0 50%,
		#e41a54 0 58.33%, #03a671 0 66.66%, #af53e4 0 75%, #fccb02 0 83.33%, #236ab1 0 91.66%, #6d8085 0 100%);
}

/* Header: VNB left, Kinderladen-Initiative right */
.kf-sheet__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
	position: relative;
	z-index: 1;
}

.kf-sheet__vnb {
	flex: 0 0 auto;
}

.kf-sheet__resp {
	display: block;
	margin-bottom: 6px;
	font-family: var(--kf-sheet-sans);
	font-size: 10px;
	color: #444;
}

.kf-sheet__vnb img {
	display: block;
	width: 170px;
	height: auto;
	padding: 6px 8px;
	border: 1px solid #c8c8c8;
	background: #fff;
}

.kf-sheet__kila {
	display: block;
	width: 280px;
	max-width: 48%;
	height: auto;
}

.kf-sheet__nr {
	position: relative;
	z-index: 1;
	margin: 28px 0 16px;
	font-family: var(--kf-sheet-font);
	font-size: 42px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--kf-sheet-heading);
}

/* Name + Inhalt, spiral in the background */
.kf-sheet__body {
	position: relative;
	min-height: 240px;
	padding: 24px 24px 8px;
}

.kf-sheet__spiral {
	position: absolute;
	top: -46px;
	right: -70px;
	width: 380px;
	max-width: 70%;
	height: auto;
	z-index: 0;
	pointer-events: none;
}

.kf-sheet__name,
.kf-sheet__sub,
.kf-sheet__label,
.kf-sheet__content {
	position: relative;
	z-index: 1;
}

.kf-sheet__name {
	margin: 0 0 6px;
	font-family: var(--kf-sheet-font);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--kf-sheet-text);
}

.kf-sheet__name .kf-sheet__label {
	font-weight: 400;
}

.kf-sheet__sub {
	margin: 0 0 18px;
	font-style: italic;
}

.kf-sheet__label--small {
	margin: 18px 0 6px;
	font-size: 14px;
}

.kf-sheet__content {
	max-width: 46em;
	font-size: 15px;
}

.kf-sheet__content > :first-child {
	margin-top: 0;
}

/* Grey table */
.kf-sheet__table {
	position: relative;
	z-index: 1;
	width: 100%;
	margin: 20px 0 8px;
	border: 0;
	border-collapse: separate;
	border-spacing: 4px;
	font-family: var(--kf-sheet-font);
}

.kf-sheet__table th,
.kf-sheet__table td {
	padding: 14px 22px;
	border: 0;
	background: var(--kf-sheet-grey);
	color: var(--kf-sheet-text);
	text-align: left;
	vertical-align: bottom;
	font-weight: 400;
}

.kf-sheet__table th {
	width: 34%;
	font-size: 18px;
}

.kf-sheet__table td {
	font-size: 15px;
}

.kf-sheet .kf-footnotes {
	position: relative;
	z-index: 1;
	margin: 8px 4px 0;
}

/* Buttons */
.kf-sheet__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 24px 4px 8px;
	font-family: var(--kf-sheet-sans);
}

.kf-sheet .kf-button {
	font-family: var(--kf-sheet-sans);
}

.kf-button--ghost {
	background: transparent !important;
	color: var(--kf-magenta, #e40350) !important;
	box-shadow: inset 0 0 0 2px currentColor;
}

.kf-button--ghost:hover,
.kf-button--ghost:focus-visible {
	background: rgba(228, 3, 80, 0.08) !important;
	filter: none;
}

.kf-sheet__closed {
	margin: 0;
	padding: 10px 14px;
	background: #f3f3f3;
	font-family: var(--kf-sheet-sans);
}

.kf-sheet .kf-back {
	margin: 8px 4px 0;
	font-family: var(--kf-sheet-sans);
}

/* Footer */
.kf-sheet__foot {
	margin-top: 32px;
	font-family: var(--kf-sheet-sans);
	font-size: 13px;
	line-height: 1.4;
}

.kf-sheet__foot-inner {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	padding-top: 10px;
}

.kf-sheet__foot-right {
	flex: 0 0 auto;
	text-align: right;
	white-space: nowrap;
}

/* Registration form (print) */
.kf-sheet__nr--form {
	margin-bottom: 10px;
}

.kf-form__for {
	margin: 18px 0 6px;
	font-size: 18px;
}

.kf-sheet__table--compact th,
.kf-sheet__table--compact td {
	padding: 8px 14px;
	vertical-align: top;
}

.kf-sheet__table--compact th {
	font-size: 15px;
}

.kf-form {
	margin-top: 18px;
}

.kf-form__row {
	display: grid;
	grid-template-columns: 15em 1fr;
	align-items: end;
	gap: 12px;
	margin: 0 0 14px;
	font-size: 15px;
}

.kf-form__line {
	display: block;
	height: 1.6em;
	border-bottom: 1px solid #000;
}

.kf-form__box {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.15em;
	border: 1px solid #000;
}

.kf-form__note {
	margin: 22px 0 8px;
	font-size: 13px;
}

.kf-form__sign {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-top: 36px;
	font-size: 13px;
}

.kf-form__sign .kf-form__line {
	margin-bottom: 4px;
}

/* Phones */
@media (max-width: 600px) {
	.kf-sheet {
		font-size: 15px;
	}

	.kf-sheet__head {
		gap: 12px;
	}

	.kf-sheet__vnb {
		flex: 0 1 46%;
		min-width: 0;
	}

	.kf-sheet__vnb img {
		width: 100%;
		max-width: 140px;
	}

	.kf-sheet__resp {
		font-size: 9px;
	}

	.kf-sheet__kila {
		flex: 0 1 50%;
		width: 50%;
		max-width: 190px;
	}

	.kf-sheet__nr {
		font-size: 30px;
		margin-top: 20px;
	}

	.kf-sheet__body {
		padding: 18px 4px 4px;
	}

	.kf-sheet__spiral {
		width: 260px;
		right: -90px;
	}

	.kf-sheet__name {
		font-size: 20px;
	}

	.kf-sheet__table,
	.kf-sheet__table tbody,
	.kf-sheet__table tr,
	.kf-sheet__table th,
	.kf-sheet__table td {
		display: block;
		width: 100%;
	}

	.kf-sheet__table {
		border-spacing: 0;
	}

	.kf-sheet__table tr {
		margin-bottom: 4px;
	}

	.kf-sheet__table th {
		padding: 10px 14px 2px;
		font-size: 13px;
		font-weight: 700;
	}

	.kf-sheet__table td {
		padding: 2px 14px 10px;
	}

	.kf-sheet__foot-inner {
		display: block;
	}

	.kf-sheet__foot-right {
		margin-top: 8px;
		text-align: left;
		white-space: normal;
	}

	.kf-form__row {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

/* Print view page (?kf_druck=…) */
.kf-print-body {
	margin: 0;
	background: #e9e9e9;
}

.kf-print-toolbar {
	position: sticky;
	top: 0;
	z-index: 10;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	padding: 12px 20px;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 14px;
}

.kf-print-toolbar .kf-button {
	border: 0;
	cursor: pointer;
	font-size: 15px;
}

.kf-print-toolbar span {
	color: #555;
}

.kf-page-a4 {
	width: 210mm;
	max-width: 100%;
	min-height: 297mm;
	margin: 24px auto;
	padding: 12mm 14mm;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.kf-page-a4 .kf-sheet {
	font-size: 11pt;
}

@page {
	size: A4;
	margin: 12mm 14mm;
}

@media print {
	.kf-noprint {
		display: none !important;
	}

	.kf-print-body {
		background: #fff;
	}

	.kf-page-a4 {
		width: auto;
		min-height: 0;
		margin: 0;
		padding: 0;
		box-shadow: none;
	}

	.kf-sheet {
		font-size: 10.5pt;
		overflow: visible;
	}

	.kf-sheet__nr {
		font-size: 30pt;
	}

	.kf-sheet__name {
		font-size: 16pt;
	}

	.kf-sheet__table th {
		font-size: 12pt;
	}

	.kf-sheet__table td,
	.kf-sheet__content {
		font-size: 10.5pt;
	}

	.kf-sheet__table tr,
	.kf-form__row,
	.kf-sheet__foot {
		break-inside: avoid;
	}

	/* Registration form must fit on one A4 page. */
	.kf-sheet--form .kf-sheet__nr--form {
		margin: 14px 0 4px;
		font-size: 24pt;
	}

	.kf-sheet--form .kf-form__for {
		margin: 6px 0 2px;
		font-size: 12pt;
	}

	.kf-sheet--form .kf-sheet__table--compact {
		margin: 8px 0 4px;
		border-spacing: 3px;
	}

	.kf-sheet--form .kf-sheet__table--compact th,
	.kf-sheet--form .kf-sheet__table--compact td {
		padding: 4px 10px;
		font-size: 10pt;
	}

	.kf-sheet--form .kf-form {
		margin-top: 10px;
	}

	.kf-sheet--form .kf-form__row {
		margin-bottom: 8px;
		grid-template-columns: 17em 1fr;
		font-size: 10.5pt;
	}

	.kf-sheet--form .kf-form__note {
		margin: 12px 0 4px;
		font-size: 9.5pt;
	}

	.kf-sheet--form .kf-form__sign {
		margin-top: 26px;
	}

	.kf-sheet--form .kf-sheet__foot {
		margin-top: 18px;
	}

	/* Normal single page printed via the browser menu: only the sheet. */
	body:not(.kf-print-body) * {
		visibility: hidden;
	}

	body:not(.kf-print-body) .kf-sheet,
	body:not(.kf-print-body) .kf-sheet * {
		visibility: visible;
	}

	body:not(.kf-print-body) .kf-sheet {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
	}
}
