/* Kraynak Reunion: RSVP form (public page, helpers portal, wp-admin) */
.kfr-rsvp {
	--k-ink: #231b16;
	--k-ink2: #5e5147;
	--k-line: #b9bfb2;
	--k-mount: #fbfaf5;
	--k-red: #a3231b;
	--k-red2: #7e1812;
	--k-walnut: #6b3a22;
	--k-focus: #d6a032;
	color: var(--k-ink);
	font-family: "Atkinson Hyperlegible", system-ui, sans-serif;
	font-size: 1.1875rem;
	line-height: 1.5;
	max-width: 900px;
}
.kfr-rsvp *, .kfr-rsvp *::before, .kfr-rsvp *::after { box-sizing: border-box; }

.kfr-block { border: 0; margin: 0 0 2.25rem; padding: 0; min-width: 0; }
.kfr-legend {
	font-family: "Young Serif", Georgia, serif;
	font-size: 1.5rem;
	line-height: 1.25;
	margin: 0 0 .75rem;
	padding: 0;
	color: var(--k-ink);
}
.kfr-grid + .kfr-help { margin-top: .75rem; }
.kfr-help { color: var(--k-ink2); margin: -.25rem 0 1rem; font-size: 1.0625rem; max-width: 60ch; }

/* Attendance choices */
.kfr-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .75rem; }
.kfr-choice {
	display: flex; align-items: center; gap: .75rem;
	padding: 1rem 1.1rem;
	background: var(--k-mount);
	border: 2px solid var(--k-line);
	border-radius: 10px;
	cursor: pointer;
	font-weight: 700;
	min-height: 64px;
}
.kfr-choice input { width: 1.35rem; height: 1.35rem; margin: 0; flex: none; accent-color: var(--k-red); }
.kfr-choice:has(input:checked) { border-color: var(--k-red); background: #fff; box-shadow: inset 0 0 0 1px var(--k-red); }
.kfr-choice:has(input:focus-visible) { outline: 3px solid var(--k-focus); outline-offset: 2px; }
.kfr-choice--no { font-weight: 400; }

/* Fields */
.kfr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.kfr-field { display: flex; flex-direction: column; gap: .35rem; margin: 0 0 1rem; }
.kfr-grid .kfr-field { margin: 0; }
.kfr-field > span { font-size: 1rem; font-weight: 700; color: var(--k-ink); }
.kfr-rsvp input[type="text"], .kfr-rsvp input[type="email"], .kfr-rsvp input[type="tel"], .kfr-rsvp select, .kfr-rsvp textarea {
	width: 100%;
	font: inherit;
	font-size: 1.125rem;
	color: var(--k-ink);
	background: #fff;
	border: 2px solid var(--k-line);
	border-radius: 8px;
	padding: .7rem .8rem;
	min-height: 52px;
	max-width: none;
	box-shadow: none;
}
.kfr-rsvp select { padding-right: 2rem; line-height: 1.2; }
.kfr-rsvp textarea { min-height: 0; resize: vertical; }
.kfr-rsvp input:focus, .kfr-rsvp select:focus, .kfr-rsvp textarea:focus { outline: 3px solid var(--k-focus); outline-offset: 1px; border-color: var(--k-walnut); }

/* People rows */
.kfr-people { display: flex; flex-direction: column; gap: .75rem; }
.kfr-person {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(128px, .85fr) minmax(170px, 1.25fr) auto;
	gap: .75rem;
	align-items: end;
	padding: .9rem 1rem;
	background: var(--k-mount);
	border: 1px solid var(--k-line);
	border-radius: 10px;
}
.kfr-person .kfr-field { margin: 0; }
.kfr-person .kfr-field > span { font-size: .875rem; font-weight: 700; color: var(--k-ink2); }
.kfr-remove, .kfr-add {
	font: inherit;
	font-size: 1rem;
	cursor: pointer;
	border-radius: 8px;
	min-height: 52px;
}
.kfr-remove { background: none; border: 0; color: var(--k-ink2); text-decoration: underline; padding: 0 .25rem; }
.kfr-remove:hover { color: var(--k-red); }
.kfr-add {
	margin-top: .9rem;
	background: #fff;
	border: 2px dashed var(--k-walnut);
	color: var(--k-walnut);
	font-weight: 700;
	padding: .6rem 1.2rem;
}
.kfr-add:hover { background: var(--k-mount); }
.kfr-remove:focus-visible, .kfr-add:focus-visible, .kfr-submit:focus-visible { outline: 3px solid var(--k-focus); outline-offset: 2px; }

.kfr-submitrow { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.kfr-submit {
	font: inherit;
	font-size: 1.25rem;
	font-weight: 700;
	color: #fff;
	background: var(--k-red);
	border: 0;
	border-radius: 8px;
	padding: 1rem 2.25rem;
	min-height: 60px;
	cursor: pointer;
}
.kfr-submit:hover { background: var(--k-red2); }

.kfr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 760px) {
	.kfr-grid { grid-template-columns: 1fr; }
	.kfr-person { grid-template-columns: 1fr 1fr; }
	.kfr-person .kfr-field:nth-child(4) { grid-column: 1 / -1; }
	.kfr-remove { grid-column: 1 / -1; justify-self: start; min-height: 40px; }
	.kfr-choices { grid-template-columns: 1fr; }
}
