/*
  Heimatfreunde Verein: Terminliste, Eckdaten, Anmeldeformular.
  Nutzt die Farben des Themes (Dorfbrett), mit Ersatzwerten für andere Themes.
*/
.hfv-event-list, .hfv-reg, .hfv-facts, .hfv-next, .hfv-bk, .hfv-mini, .hfv-projects, .hfv-progress-card, .hfv-donors, .hfv-pop {
	--hfv-bg: var(--wp--preset--color--bg, #f6f8f3);
	--hfv-surface: var(--wp--preset--color--surface, #fff);
	--hfv-surface-2: var(--wp--preset--color--surface-2, #eaefe5);
	--hfv-ink: var(--wp--preset--color--ink, #122018);
	--hfv-muted: var(--wp--preset--color--muted, #4c5a50);
	--hfv-line: var(--wp--preset--color--line, #c5cfbf);
	--hfv-field: var(--hf-field, #85928a);
	--hfv-green: var(--wp--preset--color--green, #2f5a1f);
	--hfv-green-soft: var(--wp--preset--color--green-soft, #e3f0c8);
	--hfv-blue-soft: var(--wp--preset--color--blue-soft, #d4eef2);
	--hfv-red-soft: var(--wp--preset--color--red-soft, #f8dcd6);
	--hfv-green-ink: var(--hf-green-ink, #2f5a1f);
	--hfv-blue-ink: var(--hf-blue-ink, #0d6f82);
	--hfv-red-ink: var(--hf-red-ink, #b0281f);
	--hfv-card: var(--hf-card, 0 0 0 1px rgba(18,32,24,.13), 0 10px 24px -18px rgba(18,32,24,.35));
	--hfv-lift: var(--hf-lift, 0 0 0 1px rgba(18,32,24,.09), 0 18px 36px -20px rgba(18,32,24,.45));
	--hfv-focus: var(--hf-focus, #0d6f82);
	--hfv-ease: cubic-bezier(0.23, 1, 0.32, 1);
}
.hfv-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Filter */
.hfv-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.hfv-filters button { font: inherit; font-weight: 700; font-size: 1rem; min-height: 46px; padding: 10px 18px; border-radius: 999px; border: 0; background: var(--hfv-surface); color: var(--hfv-ink); box-shadow: var(--hfv-card); cursor: pointer; transition: background-color 180ms ease, color 180ms ease, transform 160ms var(--hfv-ease); }
.hfv-filters button:active { transform: scale(0.96); }
.hfv-filters button[aria-pressed="true"] { background: var(--wp--preset--color--blue, #0d6f82); color: #fff; }
.hfv-filters button:focus-visible { outline: 3px solid var(--hfv-focus); outline-offset: 3px; }

/* Terminliste */
.hfv-dates { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.hfv-month h2 { font-size: 1.5rem; margin: 18px 0 2px; font-variation-settings: 'wdth' 112; }
.hfv-month:first-child h2 { margin-top: 0; }
.hfv-date { position: relative; display: grid; grid-template-columns: 96px minmax(0, 1fr) auto auto; gap: 24px; align-items: center; padding: 16px 20px 16px 16px; border-radius: 22px; background: var(--hfv-surface); box-shadow: var(--hfv-card); transition: transform 300ms var(--hfv-ease), box-shadow 220ms ease; }
.hfv-date[hidden], .hfv-month[hidden] { display: none; }
.hfv-dbox { width: 96px; height: 96px; border-radius: 18px; background: var(--hfv-blue-soft); color: var(--hfv-blue-ink); display: grid; place-content: center; text-align: center; line-height: 1; font-variant-numeric: tabular-nums; }
.hfv-dbox strong { font-size: 2.6rem; font-weight: 900; font-variation-settings: 'wdth' 120; }
.hfv-dbox span { display: block; font-weight: 700; font-size: .9rem; margin-top: 4px; }
.hfv-date h3 { font-size: clamp(1.2rem, 3.4vw, 1.6rem); line-height: 1.1; margin: 0; font-variation-settings: 'wdth' 106; }
.hfv-date h3 a { text-decoration: none; color: inherit; }
.hfv-date h3 a::before { content: ''; position: absolute; inset: 0; border-radius: inherit; }
.hfv-date h3 a:focus-visible { outline: none; }
.hfv-date:focus-within { outline: 3px solid var(--hfv-focus); outline-offset: 3px; }
.hfv-meta { color: var(--hfv-muted); margin: 6px 0 0; font-size: 1rem; }
.hfv-arrow { width: 50px; height: 50px; border-radius: 999px; background: var(--hfv-ink); color: var(--hfv-surface); display: grid; place-items: center; transition: transform 300ms var(--hfv-ease); }
.hfv-arrow .hf-ic { width: 22px; height: 22px; }
@media (hover: hover) and (pointer: fine) {
	.hfv-date:hover { transform: translateX(4px); box-shadow: var(--hfv-lift); }
	.hfv-date:hover .hfv-arrow { transform: translateX(3px); }
}
.hfv-badge { display: inline-flex; align-items: center; font-weight: 700; font-size: .92rem; padding: 8px 14px; border-radius: 999px; white-space: nowrap; }
.hfv-b-free { background: var(--hfv-green-soft); color: var(--hfv-green-ink); }
.hfv-b-paid { background: var(--hfv-blue-soft); color: var(--hfv-blue-ink); }
.hfv-b-none { background: var(--hfv-surface-2); color: var(--hfv-muted); }
.hfv-b-full { background: var(--hfv-red-soft); color: var(--hfv-red-ink); }
.hfv-empty { padding: 26px; border-radius: 22px; background: var(--hfv-surface); box-shadow: var(--hfv-card); }
.hfv-empty p { margin: 0; }

/* Nächster Termin (Kachel) */
.hfv-next { display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: center; }
.hfv-next p { margin: 0; }
.hfv-next-label { font-weight: 600; font-size: .95rem; color: #cfeef3; }
.hfv-next-title { font-size: clamp(1.3rem, 1.8vw, 1.75rem) !important; margin: 4px 0 8px !important; line-height: 1.1; font-variation-settings: 'wdth' 106; }
.hfv-next-title a { color: inherit; text-decoration-thickness: 2px; }
.hfv-next-meta { color: #e3f5f8; font-size: .98rem; }

/* Eckdaten */
.hfv-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.hfv-fact { background: var(--hfv-surface); border-radius: 22px; padding: 20px 22px; display: grid; grid-template-columns: 46px 1fr; grid-template-rows: auto auto; column-gap: 14px; align-items: center; box-shadow: var(--hfv-card); }
.hfv-fact-ic { grid-row: span 2; width: 46px; height: 46px; border-radius: 999px; background: var(--hfv-blue-soft); color: var(--hfv-blue-ink); display: grid; place-items: center; }
.hfv-fact-ic .hf-ic { width: 22px; height: 22px; }
.hfv-fact dt { color: var(--hfv-muted); font-weight: 600; font-size: .88rem; }
.hfv-fact dd { margin: 0; font-weight: 700; font-size: 1.08rem; line-height: 1.3; }

/* Anmeldung */
.hfv-reg { background: var(--hfv-surface); border-radius: 26px; padding: clamp(22px, 3vw, 36px); box-shadow: var(--hfv-lift); scroll-margin-top: 100px; }
.hfv-reg-title { font-size: 2.1rem !important; margin: 0 0 16px !important; }
.hfv-status { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.hfv-pill { display: inline-flex; align-items: center; font-weight: 700; font-size: .95rem; padding: 7px 14px; border-radius: 999px; background: var(--hfv-bg); box-shadow: inset 0 0 0 1.5px var(--hfv-line); }
.hfv-pill-free { background: var(--hfv-green-soft); color: var(--hfv-green-ink); box-shadow: none; }
.hfv-pill-few { background: var(--hfv-red-soft); color: var(--hfv-red-ink); box-shadow: none; }
.hfv-pill-full { background: var(--hfv-red-soft); color: var(--hfv-red-ink); box-shadow: none; }
.hfv-form { display: grid; gap: 26px; }
.hfv-step { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 14px; }
.hfv-legend { font-weight: 800; font-size: 1.15rem; padding: 0; margin-bottom: 4px; font-variation-settings: 'wdth' 106; }
.hfv-sub { font-weight: 600; color: var(--hfv-muted); font-size: .9rem; margin: 0; }
.hfv-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.hfv-field { display: grid; gap: 6px; margin: 0; min-width: 0; }
.hfv-field label { font-weight: 600; font-size: .95rem; }
.hfv-form input:not([type="checkbox"]):not([type="radio"]), .hfv-form select { width: 100%; font: inherit; font-size: 1.05rem; color: var(--hfv-ink); background: var(--hfv-surface); border: 2px solid var(--hfv-field); border-radius: 14px; padding: 12px 14px; min-height: 50px; }
.hfv-form input:focus, .hfv-form select:focus { outline: none; border-color: var(--hfv-green); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--green-bright, #c7e27a) 60%, transparent); }
.hfv-form [aria-invalid="true"] { border-color: var(--hfv-red-ink) !important; }
.hfv-err { color: var(--hfv-red-ink); font-size: .9rem; font-weight: 600; }
.hfv-hint { color: var(--hfv-muted); font-size: .95rem; margin: 0; }
.hfv-hp { position: absolute !important; left: -9999px !important; }
.hfv-person { border: 0; padding: 0; margin: 4px 0 0; min-width: 0; }
.hfv-person legend { font-weight: 600; color: var(--hfv-muted); font-size: .9rem; padding: 0; margin-bottom: 8px; display: flex; gap: 12px; align-items: center; }
.hfv-link { font: inherit; font-size: .9rem; background: none; border: 0; padding: 4px 6px; color: var(--hfv-red-ink); text-decoration: underline; cursor: pointer; min-height: 32px; }
.hfv-add { display: inline-flex; gap: 8px; align-items: center; font: inherit; font-weight: 700; background: none; border: 2px dashed var(--hfv-field); color: var(--hfv-ink); padding: 11px 16px; border-radius: 14px; cursor: pointer; min-height: 48px; }
.hfv-add:hover { border-color: var(--hfv-ink); }
.hfv-tickets { display: grid; gap: 10px; }
.hfv-ticket { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 16px; border: 2px solid var(--hfv-field); border-radius: 16px; transition: border-color 200ms ease, background-color 200ms ease; }
.hfv-ticket.is-active { border-color: var(--hfv-green); background: color-mix(in srgb, var(--hfv-green-soft) 45%, var(--hfv-surface)); }
.hfv-ticket label { display: grid; gap: 2px; }
.hfv-ticket small { color: var(--hfv-muted); }
.hfv-price { color: var(--hfv-muted); font-variant-numeric: tabular-nums; }
.hfv-stepper { display: inline-flex; align-items: center; gap: 6px; }
.hfv-stepper input { width: 72px !important; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.hfv-stepper button { width: 44px; height: 44px; border-radius: 999px; border: 2px solid var(--hfv-field); background: var(--hfv-surface); color: var(--hfv-ink); font: inherit; font-size: 1.3rem; line-height: 1; cursor: pointer; transition: transform 140ms var(--hfv-ease), border-color 160ms ease; }
.hfv-stepper button:hover { border-color: var(--hfv-ink); }
.hfv-stepper button:active { transform: scale(0.92); }
.hfv-js .hfv-stepper input { width: 52px !important; padding-inline: 4px !important; }
.hfv-pay { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.hfv-pay-opt { position: relative; }
.hfv-pay-opt input { position: absolute; opacity: 0; }
.hfv-pay-opt span { display: grid; gap: 4px; height: 100%; padding: 14px; border: 2px solid var(--hfv-field); border-radius: 16px; cursor: pointer; transition: border-color 180ms ease, background-color 180ms ease; }
.hfv-pay-opt small { color: var(--hfv-muted); line-height: 1.35; }
.hfv-pay-opt input:checked + span { border-color: var(--hfv-green); background: color-mix(in srgb, var(--hfv-green-soft) 45%, var(--hfv-surface)); box-shadow: inset 0 0 0 1px var(--hfv-green); }
.hfv-pay-opt input:focus-visible + span { outline: 3px solid var(--hfv-focus); outline-offset: 2px; }
.hfv-sum { display: flex; justify-content: space-between; align-items: baseline; padding-top: 14px; border-top: 1.5px solid var(--hfv-line); margin: 0; font-size: 1.05rem; }
.hfv-sum strong { font-size: 2rem; font-variant-numeric: tabular-nums; }
.hfv-checks { gap: 12px; }
.hfv-check { display: flex; gap: 12px; align-items: flex-start; font-size: .98rem; line-height: 1.45; cursor: pointer; }
.hfv-check input { width: 22px; height: 22px; margin-top: 1px; accent-color: var(--hfv-green); flex: none; }
.hfv-submit { width: 100%; min-height: 58px; font-size: 1.12rem !important; white-space: nowrap; background: var(--hfv-green) !important; color: #fff !important; border: 0; border-radius: 999px; cursor: pointer; }
.hfv-submit[aria-busy="true"] { opacity: .75; }
.hfv-notice { padding: 18px 20px; border-radius: 18px; background: var(--hfv-bg); box-shadow: inset 0 0 0 1.5px var(--hfv-line); margin: 0 0 18px; }
.hfv-notice p { margin: 0; }
.hfv-notice ul { margin: 8px 0 0; padding-left: 1.2em; }
.hfv-notice-ok { background: var(--hfv-green-soft); box-shadow: none; color: var(--hfv-ink); }
.hfv-notice-warn, .hfv-notice-error { background: var(--hfv-red-soft); box-shadow: none; }
.hfv-notice:focus { outline: 3px solid var(--hfv-focus); outline-offset: 3px; }
.hfv-cancel { display: grid; gap: 12px; }
.hfv-btn-danger { background: var(--wp--preset--color--red, #b0281f) !important; color: #fff !important; justify-self: start; }
.hfv-plain { font-size: 1.1rem; margin: 0 0 12px; }
.hfv-link-ics { font-weight: 700; }

@media (max-width: 900px) {
	.hfv-date { grid-template-columns: 80px minmax(0, 1fr); }
	.hfv-date .hfv-badge { grid-column: 2; justify-self: start; }
	.hfv-date .hfv-arrow { display: none; }
	.hfv-dbox { width: 80px; height: 80px; }
	.hfv-facts { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.hfv-date { grid-template-columns: 68px minmax(0, 1fr); gap: 14px; }
	.hfv-dbox { width: 68px; height: 68px; }
	.hfv-dbox strong { font-size: 2rem; }
	.hfv-date h3 { font-size: 1.18rem; hyphens: auto; font-variation-settings: 'wdth' 100; }
	.hfv-grid2 { grid-template-columns: 1fr; }
	.hfv-submit { font-size: 1.02rem !important; }
	.hfv-next { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.hfv-date, .hfv-arrow, .hfv-filters button, .hfv-stepper button { transition: none; }
}
.hfv-reg *, .hfv-reg *::before, .hfv-reg *::after, .hfv-bk *, .hfv-bk *::before, .hfv-bk *::after { box-sizing: border-box; }

/* Schlumps Backs: Kalender und Anfrage */
.hfv-bk { background: var(--hfv-surface); border-radius: 26px; padding: clamp(22px, 3vw, 36px); box-shadow: var(--hfv-lift); scroll-margin-top: 100px; }
.hfv-bk-intro { max-width: 62ch; margin: 0 0 24px; font-size: 1.05rem; }
.hfv-bk-layout { display: grid; grid-template-columns: minmax(280px, 400px) minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.hfv-bk-cal { position: sticky; top: 100px; background: var(--hfv-bg); border-radius: 22px; padding: 18px; }
.hfv-bk-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.hfv-bk-month { font-size: 1.2rem !important; margin: 0 !important; text-align: center; line-height: 1.15; font-variation-settings: 'wdth' 106; }
.hfv-bk-nav { width: 44px; height: 44px; flex: none; border-radius: 999px; border: 2px solid var(--hfv-field); background: var(--hfv-surface); color: var(--hfv-ink); display: grid; place-items: center; cursor: pointer; text-decoration: none; transition: transform 140ms var(--hfv-ease), border-color 160ms ease; }
.hfv-bk-nav .hf-ic { width: 20px; height: 20px; }
.hfv-bk-nav:hover:not(:disabled) { border-color: var(--hfv-ink); }
.hfv-bk-nav:active:not(:disabled) { transform: scale(0.92); }
.hfv-bk-nav:disabled, span.hfv-bk-nav { opacity: .35; cursor: default; }
.hfv-bk-nav:focus-visible, .hfv-bk-day:focus-visible { outline: 3px solid var(--hfv-focus); outline-offset: 2px; }
.hfv-bk-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.hfv-bk-grid.is-slide-l { animation: hfvCalL 280ms var(--hfv-ease); }
.hfv-bk-grid.is-slide-r { animation: hfvCalR 280ms var(--hfv-ease); }
@keyframes hfvCalL { from { opacity: .3; transform: translateX(14px); } }
@keyframes hfvCalR { from { opacity: .3; transform: translateX(-14px); } }
.hfv-bk-wd span { text-align: center; font-size: .8rem; font-weight: 700; color: var(--hfv-muted); padding-bottom: 4px; }
.hfv-bk-day { aspect-ratio: 1; min-height: 40px; display: grid; place-items: center; border: 0; border-radius: 12px; font: inherit; font-weight: 700; font-size: 1rem; font-variant-numeric: tabular-nums; color: var(--hfv-ink); background: transparent; padding: 0; }
.hfv-bk-day.is-empty { visibility: hidden; }
.hfv-bk-day.is-out { color: color-mix(in srgb, var(--hfv-muted) 60%, transparent); font-weight: 500; }
.hfv-bk-day.is-free { background: var(--hfv-green-soft); color: var(--hfv-green-ink); }
button.hfv-bk-day.is-free { cursor: pointer; transition: transform 140ms var(--hfv-ease), box-shadow 160ms ease; }
button.hfv-bk-day.is-free:hover { box-shadow: inset 0 0 0 2px var(--hfv-green); }
button.hfv-bk-day.is-free:active { transform: scale(0.92); }
.hfv-bk-day.is-res { background: repeating-linear-gradient(135deg, var(--hfv-blue-soft) 0 5px, var(--hfv-surface) 5px 10px); color: var(--hfv-blue-ink); cursor: not-allowed; }
.hfv-bk-day.is-busy { background: var(--hfv-surface-2); color: var(--hfv-muted); text-decoration: line-through 2px; text-decoration-color: var(--hfv-red-ink); cursor: not-allowed; }
.hfv-bk-day.is-picked { background: var(--hfv-green) !important; color: #fff !important; box-shadow: 0 6px 14px -8px rgba(18, 32, 24, .6); }
.hfv-bk-legend, .hfv-mini-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 14px 0 0; font-size: .9rem; color: var(--hfv-muted); }
.hfv-bk-legend span, .hfv-mini-legend span { display: inline-flex; gap: 6px; align-items: center; }
.hfv-lg { width: 16px; height: 16px; border-radius: 5px; display: inline-block; }
.hfv-lg.is-free { background: var(--hfv-green-soft); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--hfv-green-ink) 30%, transparent); }
.hfv-lg.is-res { background: repeating-linear-gradient(135deg, var(--hfv-blue-soft) 0 3px, var(--hfv-surface) 3px 6px); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--hfv-blue-ink) 35%, transparent); }
.hfv-lg.is-busy { background: var(--hfv-surface-2); box-shadow: inset 0 0 0 1px var(--hfv-line); position: relative; }
.hfv-lg.is-busy::after { content: ''; position: absolute; left: 2px; right: 2px; top: 7px; height: 2px; background: var(--hfv-red-ink); }
.hfv-req { color: var(--hfv-red-ink); font-weight: 700; }
.hfv-req-note { margin: 0 0 .6rem; color: var(--hfv-muted); font-size: .92rem; }
.hfv-field-narrow select { max-width: 8rem; }
.hfv-hint-inline, .hfv-opt { font-weight: 500; color: var(--hfv-muted); font-size: .88rem; }
.hfv-bk-picked { display: grid; gap: 2px; margin: 0; padding: 14px 16px; border-radius: 16px; border: 2px dashed var(--hfv-field); color: var(--hfv-muted); }
.hfv-bk-picked small { font-size: .85rem; color: var(--hfv-muted); }
.hfv-bk-picked strong { font-size: 1.12rem; color: var(--hfv-ink); }
.hfv-bk-picked.is-set { border-style: solid; border-color: var(--hfv-green); background: color-mix(in srgb, var(--hfv-green-soft) 45%, var(--hfv-surface)); }
.hfv-bk-picked.is-bad { border-style: solid; border-color: var(--hfv-red-ink); background: var(--hfv-red-soft); }
.hfv-bk-areas { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.hfv-bk-area { position: relative; display: block; cursor: pointer; }
.hfv-bk-area input { position: absolute; top: 18px; left: 16px; width: 22px; height: 22px; margin: 0; accent-color: var(--hfv-green); }
.hfv-bk-area-box { display: grid; gap: 4px; height: 100%; padding: 14px 16px 14px 50px; border: 2px solid var(--hfv-field); border-radius: 16px; transition: border-color 180ms ease, background-color 180ms ease; }
.hfv-bk-area-top { display: grid; gap: 2px; }
.hfv-bk-area-top strong { line-height: 1.25; }
.hfv-bk-price { font-weight: 700; color: var(--hfv-green-ink); font-variant-numeric: tabular-nums; }
.hfv-bk-area small { color: var(--hfv-muted); line-height: 1.4; }
.hfv-bk-area input:checked + .hfv-bk-area-box { border-color: var(--hfv-green); background: color-mix(in srgb, var(--hfv-green-soft) 45%, var(--hfv-surface)); }
.hfv-bk-area input:focus-visible + .hfv-bk-area-box { outline: 3px solid var(--hfv-focus); outline-offset: 2px; }
.hfv-bk-area.is-included .hfv-bk-price { color: var(--hfv-muted); }
.hfv-sum strong.is-empty { font-size: 1.05rem; color: var(--hfv-muted); font-weight: 600; }
.hfv-bk-rules { padding: 16px 18px; border-radius: 16px; background: var(--hfv-bg); }
.hfv-bk-rules ul { margin: 8px 0 0; padding-left: 1.2em; display: grid; gap: 6px; }
.hfv-bk-rules li[hidden] { display: none; }
.hfv-bk-form textarea { width: 100%; font: inherit; font-size: 1.05rem; color: var(--hfv-ink); background: var(--hfv-surface); border: 2px solid var(--hfv-field); border-radius: 14px; padding: 12px 14px; }
.hfv-bk-form textarea:focus { outline: none; border-color: var(--hfv-green); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--green-bright, #c7e27a) 60%, transparent); }
.hfv-bk-form fieldset[tabindex]:focus { outline: none; }

/* Belegung im kleinen Format (Startseite, roter Block) */
.hfv-mini { background: var(--hfv-surface); color: var(--hfv-ink); border-radius: 18px; padding: 16px; max-width: 360px; margin-top: 26px; box-shadow: 0 14px 30px -18px rgba(0, 0, 0, .55); }
.hfv-mini p { margin: 0; }
.hfv-mini-title { font-weight: 800; font-size: 1rem; margin-bottom: 10px !important; color: var(--hfv-ink) !important; }
.hfv-mini-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; font-size: .82rem; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.hfv-mini-grid b { color: var(--hfv-muted); font-weight: 600; }
.hfv-mini-grid span { padding: 5px 0; border-radius: 8px; }
.hfv-mini-grid .is-free { background: var(--hfv-green-soft); color: var(--hfv-green-ink); }
.hfv-mini-grid .is-res { background: repeating-linear-gradient(135deg, var(--hfv-blue-soft) 0 4px, var(--hfv-surface) 4px 8px); color: var(--hfv-blue-ink); }
.hfv-mini-grid .is-busy { background: var(--hfv-surface-2); color: var(--hfv-muted); text-decoration: line-through 2px; text-decoration-color: var(--hfv-red-ink); }
.hfv-mini-grid .is-past { color: color-mix(in srgb, var(--hfv-muted) 55%, transparent); }
.hfv-mini-legend { font-size: .82rem !important; margin-top: 10px !important; color: var(--hfv-muted) !important; }
.hfv-mini-link { margin-top: 10px !important; font-weight: 700; }
.hfv-mini-link a { color: var(--hfv-ink) !important; }

@media (max-width: 900px) {
	.hfv-bk-layout { grid-template-columns: 1fr; }
	.hfv-bk-cal { position: static; }
}
@media (max-width: 600px) {
	.hfv-bk-cal { padding: 12px; margin-inline: -6px; }
	.hfv-bk-grid { gap: 3px; }
	.hfv-bk-day { min-height: 36px; border-radius: 10px; font-size: .95rem; }
}
@media (prefers-reduced-motion: reduce) {
	.hfv-bk-nav, button.hfv-bk-day { transition: none; }
	.hfv-bk-grid.is-slide-l, .hfv-bk-grid.is-slide-r { animation: none; }
}

/* Spenden */
.hfv-projects { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.hfv-project { position: relative; display: grid; grid-template-rows: auto 1fr; background: var(--hfv-surface); border-radius: 26px; overflow: hidden; box-shadow: var(--hfv-card); transition: transform 300ms var(--hfv-ease), box-shadow 220ms ease; }
.hfv-project-img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--hfv-surface-2); }
.hfv-project-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 900ms var(--hfv-ease); }
.hfv-project-body { display: flex; flex-direction: column; gap: 12px; padding: 22px 24px 24px; }
.hfv-project-body .hfv-badge { align-self: flex-start; }
.hfv-project h3 { font-size: 1.45rem; line-height: 1.12; margin: 0; font-variation-settings: 'wdth' 108; }
.hfv-project h3 a { color: inherit; text-decoration: none; }
.hfv-project h3 a::after { content: ''; position: absolute; inset: 0; border-radius: inherit; }
.hfv-project h3 a:focus-visible { outline: none; }
.hfv-project:focus-within { outline: 3px solid var(--hfv-focus); outline-offset: 3px; }
.hfv-project-text { margin: 0; color: var(--hfv-muted); }
.hfv-project .hfv-progress { margin-top: auto; }
.hfv-project-cta { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--hfv-green-ink); }
.hfv-project-cta .hf-ic { width: 20px; height: 20px; transition: transform 300ms var(--hfv-ease); }
@media (hover: hover) and (pointer: fine) {
	.hfv-project:hover { transform: translateY(-4px); box-shadow: var(--hfv-lift); }
	.hfv-project:hover .hfv-project-img img { transform: scale(1.04); }
	.hfv-project:hover .hfv-project-cta .hf-ic { transform: translateX(4px); }
}
.hfv-progress { display: grid; gap: 8px; }
.hfv-progress p { margin: 0; }
.hfv-progress-nums { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.hfv-progress-nums strong { font-size: 1.6rem; font-weight: 900; font-variant-numeric: tabular-nums; font-variation-settings: 'wdth' 110; }
.hfv-progress-nums span, .hfv-progress-sub { color: var(--hfv-muted); font-size: .95rem; }
.hfv-bar { height: 14px; border-radius: 999px; background: var(--hfv-surface-2); overflow: hidden; box-shadow: inset 0 0 0 1px var(--hfv-line); }
.hfv-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--hfv-green), var(--wp--preset--color--green-bright, #8fbf3c)); transform-origin: left; animation: hfvGrow 900ms var(--hfv-ease) both; }
@keyframes hfvGrow { from { transform: scaleX(0); } }
.hfv-progress-card { background: var(--hfv-surface); border-radius: 26px; padding: 24px 26px; box-shadow: var(--hfv-card); display: grid; gap: 14px; }
.hfv-progress-card p { margin: 0; }
.hfv-progress-card .hfv-badge { justify-self: start; }
.hfv-btn-inline { display: flex !important; align-items: center; justify-content: center; text-decoration: none; }
/* Knöpfe mit voller Breite: Innenabstand in die Breite einrechnen, damit nichts über die Karte hinausragt */
.hfv-submit, .hfv-progress-card *, .hfv-progress-card *::before, .hfv-progress-card *::after { box-sizing: border-box; }
.hfv-donors { background: var(--hfv-surface); border-radius: 26px; padding: 24px 26px; box-shadow: var(--hfv-card); }
.hfv-donors h2 { font-size: 1.4rem !important; margin: 0 0 12px !important; }
.hfv-donors ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hfv-donors li { padding: 7px 14px; border-radius: 999px; background: var(--hfv-green-soft); color: var(--hfv-green-ink); font-weight: 700; }
.hfv-donors li span { font-weight: 500; }
.hfv-donate { scroll-margin-top: 100px; }
.hfv-amounts { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 10px; }
.hfv-amount:last-child { grid-column: 1 / -1; }
.hfv-amount { position: relative; }
.hfv-amount input { position: absolute; opacity: 0; }
.hfv-amount span { display: grid; place-items: center; min-height: 56px; padding: 8px 10px; text-align: center; border: 2px solid var(--hfv-field); border-radius: 16px; font-weight: 800; font-size: 1.15rem; cursor: pointer; font-variant-numeric: tabular-nums; transition: border-color 160ms ease, background-color 160ms ease, transform 140ms var(--hfv-ease); }
.hfv-amount:last-child span { font-size: .98rem; font-weight: 700; }
.hfv-amount span:active { transform: scale(0.96); }
.hfv-amount input:checked + span { border-color: var(--hfv-green); background: var(--hfv-green); color: #fff; }
.hfv-amount input:focus-visible + span { outline: 3px solid var(--hfv-focus); outline-offset: 2px; }
.hfv-amount-other[hidden], .hfv-receipt-address[hidden], .hfv-opt[hidden] { display: none; }
.hfv-amount-other { max-width: 260px; }
.hfv-receipt-address { display: grid; gap: 10px; padding: 16px 18px; border-radius: 16px; background: var(--hfv-bg); }
.hfv-sum strong.is-empty { font-size: 1.05rem; color: var(--hfv-muted); font-weight: 600; }
.hfv-bank { display: grid; gap: 0; margin: 0; border-radius: 18px; overflow: hidden; box-shadow: inset 0 0 0 1.5px var(--hfv-line); }
.hfv-bank div { display: grid; grid-template-columns: 170px 1fr; gap: 12px; padding: 12px 18px; border-top: 1.5px solid var(--hfv-line); }
.hfv-bank div:first-child { border-top: 0; }
.hfv-bank dt { color: var(--hfv-muted); font-weight: 600; }
.hfv-bank dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
@media (max-width: 600px) {
	.hfv-projects { grid-template-columns: 1fr; }
	.hfv-bank div { grid-template-columns: 1fr; gap: 2px; }
	.hfv-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
	.hfv-project, .hfv-project-img img, .hfv-amount span { transition: none; }
	.hfv-bar span { animation: none; }
}

/* Beitritt */
.hfv-fees { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.hfv-fees li { display: grid; gap: 2px; padding: 14px 18px; border-radius: 16px; background: var(--hfv-green-soft); color: var(--hfv-green-ink); }
.hfv-fees span { font-size: 1.35rem; font-weight: 900; font-variant-numeric: tabular-nums; font-variation-settings: 'wdth' 110; color: var(--hfv-ink); }
.hfv-grid3 { display: grid; grid-template-columns: 1fr 1fr minmax(150px, .8fr); gap: 14px 16px; }
.hfv-sepa { padding: 14px 16px; border-radius: 14px; background: var(--hfv-bg); line-height: 1.5; }
[data-hfv-family][hidden], [data-hfv-guardian][hidden] { display: none; }
.hfv-easyverein { width: 100%; min-height: 2400px; border: 0; border-radius: 16px; background: #fff; }
@media (max-width: 600px) { .hfv-grid3 { grid-template-columns: 1fr; } }

/* Hinweis-Fenster */
.hfv-pop { border: 0; padding: 0; background: transparent; max-width: min(560px, calc(100vw - 32px)); width: 100%; color: var(--hfv-ink); overflow: visible; }
.hfv-pop::backdrop { background: rgba(10, 18, 13, .55); backdrop-filter: blur(3px); }
.hfv-pop[open] { animation: hfvPopIn 320ms var(--hfv-ease); }
.hfv-pop[open]::backdrop { animation: hfvFade 320ms ease; }
@keyframes hfvPopIn { from { opacity: 0; transform: translateY(12px) scale(.97); } }
@keyframes hfvFade { from { opacity: 0; } }
.hfv-pop-card { position: relative; background: var(--hfv-surface); border-radius: 28px; overflow: hidden; box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .6); max-height: calc(100dvh - 48px); overflow-y: auto; }
.hfv-pop-media { aspect-ratio: 16 / 9; overflow: hidden; }
.hfv-pop-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hfv-pop-body { padding: 26px 28px 28px; display: grid; gap: 12px; }
.hfv-pop-kicker { margin: 0; font-weight: 700; font-size: .9rem; color: var(--hfv-red-ink); }
.hfv-pop h2 { margin: 0; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.1; font-variation-settings: 'wdth' 110; }
.hfv-pop-text p { margin: 0 0 .6em; }
.hfv-pop-text > :last-child { margin-bottom: 0; }
.hfv-pop-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 6px; }
.hfv-pop-actions .hfv-submit { width: auto; padding-inline: 26px; }
.hfv-pop-dismiss { font: inherit; font-weight: 700; min-height: 52px; padding: 0 22px; border-radius: 999px; border: 2px solid var(--hfv-field); background: var(--hfv-surface); color: var(--hfv-ink); cursor: pointer; }
.hfv-pop-dismiss:hover { border-color: var(--hfv-ink); }
.hfv-pop-x { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border-radius: 999px; border: 0; background: var(--hfv-surface); color: var(--hfv-ink); box-shadow: var(--hfv-card); display: grid; place-items: center; cursor: pointer; }
.hfv-pop-x .hf-ic { width: 20px; height: 20px; }
.hfv-pop :focus-visible { outline: 3px solid var(--hfv-focus); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .hfv-pop[open], .hfv-pop[open]::backdrop { animation: none; } }
.hfv-member .hfv-field:has(#hfv-mb-iban), .hfv-member .hfv-field:has(#hfv-mb-account_holder) { grid-column: 1 / -1; }
.hf-ev-body .hfv-member { position: static; }

/* Beitritt auf Papier */
.hfv-paper { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 20px; margin: 0 0 22px; padding: 16px 18px; border-radius: 18px; background: var(--hfv-bg); box-shadow: inset 0 0 0 1.5px var(--hfv-line); }
.hfv-paper p { margin: 0; }
.hfv-paper-text { flex: 1 1 280px; }
.hfv-paper-title { font-weight: 800; font-size: 1.1rem; margin-bottom: 4px !important; }
.hfv-paper-text p:last-child { color: var(--hfv-muted); font-size: .98rem; }
.hfv-paper-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.hfv-paper-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 10px 18px; border-radius: 999px; border: 0; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; background: var(--hfv-green); color: #fff; transition: transform 140ms var(--hfv-ease); }
.hfv-paper-btn .hf-ic { width: 18px; height: 18px; transform: rotate(90deg); }
.hfv-paper-btn small { font-weight: 500; opacity: .85; }
.hfv-paper-print { background: var(--hfv-surface); color: var(--hfv-ink); box-shadow: inset 0 0 0 2px var(--hfv-ink); }
.hfv-paper-btn:active { transform: scale(0.97); }
.hfv-paper-btn:focus-visible { outline: 3px solid var(--hfv-focus); outline-offset: 3px; }

/* Bildnachweis und KI-Kennzeichnung am Bild */
.has-hf-credit { position: relative; }
.hf-media-credit { position: absolute; left: 10px; bottom: 10px; max-width: calc(100% - 20px); padding: 4px 9px; border-radius: 999px; background: rgba(18, 32, 24, .72); color: #fff; font-size: .74rem; line-height: 1.3; font-weight: 600; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.hf-media-credit a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.hf-media-ai::before { content: ""; display: inline-block; width: .5em; height: .5em; margin-right: .4em; border-radius: 50%; background: #9fe07a; vertical-align: .08em; }
@media print { .hf-media-credit { position: static; background: none; color: inherit; padding: 2px 0; } }

/* Kalender: drei klar unterscheidbare Zustände (frei = Grün, angefragt = Bernstein, belegt = Rot) */
.hfv-reg, .hfv-bk, .hfv-mini { --hfv-amber-soft: var(--hf-amber-soft, #ffe09a); --hfv-amber-ink: var(--hf-amber-ink, #6e4300); --hfv-amber-line: var(--hf-amber-line, #c07f0c); }
.hfv-bk-cal { box-shadow: inset 0 0 0 1px var(--hfv-line); }
.hfv-bk-day.is-free, .hfv-mini-grid .is-free { background: var(--hfv-green-soft); color: var(--hfv-green-ink); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--hfv-green-ink) 45%, transparent); }
button.hfv-bk-day.is-free:hover { box-shadow: inset 0 0 0 2.5px var(--hfv-green); }
.hfv-bk-day.is-res, .hfv-mini-grid .is-res { background: repeating-linear-gradient(135deg, var(--hfv-amber-soft) 0 6px, color-mix(in srgb, var(--hfv-amber-soft) 55%, var(--hfv-surface)) 6px 12px); color: var(--hfv-amber-ink); box-shadow: inset 0 0 0 2px var(--hfv-amber-line); font-weight: 800; }
.hfv-bk-day.is-busy, .hfv-mini-grid .is-busy { background: var(--hfv-red-soft); color: var(--hfv-red-ink); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--hfv-red-ink) 45%, transparent); text-decoration: line-through 2.5px; text-decoration-color: var(--hfv-red-ink); }
.hfv-bk-day.is-out { color: color-mix(in srgb, var(--hfv-muted) 70%, transparent); }
.hfv-bk-day.is-picked { box-shadow: 0 0 0 3px var(--hfv-surface), 0 0 0 5px var(--hfv-green), 0 8px 16px -8px rgba(18, 32, 24, .6); }
.hfv-lg { width: 18px; height: 18px; }
.hfv-lg.is-free { background: var(--hfv-green-soft); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--hfv-green-ink) 45%, transparent); }
.hfv-lg.is-res { background: repeating-linear-gradient(135deg, var(--hfv-amber-soft) 0 3px, color-mix(in srgb, var(--hfv-amber-soft) 55%, var(--hfv-surface)) 3px 6px); box-shadow: inset 0 0 0 2px var(--hfv-amber-line); }
.hfv-lg.is-busy { background: var(--hfv-red-soft); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--hfv-red-ink) 45%, transparent); }
.hfv-lg.is-busy::after { top: 8px; }
.hfv-bk-legend, .hfv-mini-legend { color: var(--hfv-ink) !important; font-weight: 600; }
.hfv-mini { box-shadow: 0 2px 4px rgba(60, 8, 5, .2), 0 24px 44px -20px rgba(60, 8, 5, .7); }

/* Zwei-Klick-Lösung für eingebettete Formulare (easyVerein) */
.hfv-consent { display: grid; gap: 10px; padding: clamp(18px, 3vw, 28px); border-radius: 18px; background: var(--hfv-bg); box-shadow: inset 0 0 0 1.5px var(--hfv-line); }
.hfv-consent p { margin: 0; }
.hfv-consent-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 6px !important; }
.hfv-btn-auto { width: auto !important; padding-inline: 26px !important; }

/* Jahreskalender herunterladen */
.hfv-cal-download { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0; }
.hfv-cal-download span { color: var(--hfv-muted); font-size: .95rem; }

/* Mobil: Kästen nie breiter als der Bildschirm, lange Wörter (z. B. „Beitrittserklärung“) trennen */
.hfv-reg { box-sizing: border-box; max-width: 100%; min-width: 0; }
.hfv-reg-title { font-size: clamp(1.45rem, 7vw, 2.1rem) !important; hyphens: auto; overflow-wrap: break-word; }
.hfv-reg h2, .hfv-reg h3, .hfv-form label { hyphens: auto; overflow-wrap: break-word; }
@media (max-width: 480px) { .hfv-reg { padding: 20px 16px; border-radius: 20px; } }
.hfv-cal-download span { flex-basis: 100%; }
/* Quelle einmal unter einer Galerie statt auf jedem Bild */
.hf-gallery-credit { margin: 8px 0 0 !important; font-size: .82rem; color: var(--wp--preset--color--muted); }
.hf-gallery-credit .hf-media-credit { position: static; background: none; color: inherit; padding: 0; backdrop-filter: none; -webkit-backdrop-filter: none; font-weight: 500; }
.hf-gallery-credit .hf-media-credit a { color: inherit; }

/* Weitere Fragen im Anmeldeformular: Antworten als Knöpfe */
.hfv-q-l { font-weight: 600; font-size: .95rem; }
.hfv-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.hfv-opt { position: relative; }
.hfv-opt input { position: absolute; opacity: 0; inset: 0; margin: 0; }
.hfv-opt span { display: inline-flex; align-items: center; min-height: 46px; padding: 10px 18px; border: 2px solid var(--hfv-field); border-radius: 999px; background: var(--hfv-surface); cursor: pointer; transition: border-color 160ms ease, background-color 160ms ease; }
.hfv-opt input:checked + span { border-color: var(--hfv-green); background: color-mix(in srgb, var(--hfv-green-soft) 55%, var(--hfv-surface)); box-shadow: inset 0 0 0 1px var(--hfv-green); font-weight: 600; }
.hfv-opt input:focus-visible + span { outline: 3px solid var(--hfv-focus); outline-offset: 2px; }
.hfv-opt input[aria-invalid="true"] + span { border-color: var(--hfv-error, #b0281f); }
