{
 "$schema": "../../schema.json",
 "schema": "fundus/1",
 "id": "termin-verfuegbarkeit-anfrage",
 "name": "Wunschtermin mit freien Terminen und Anfrage-Übergabe",
 "name_en": "Event date availability with inquiry handover",
 "kurz": "Wunschdatum, Anlass und Gäste in einer Leiste, darunter ehrlich frei, angefragt oder vergeben als Monatstabelle mit Stand-Datum; ein Klick auf einen freien Tag übergibt alles an die Anfrage.",
 "kategorie": "Sektionen & Funktionen",
 "kategorie_slug": "sektionen",
 "kategorie_nr": 16,
 "bau_chat": "D",
 "prioritaet": "D",
 "trendstatus": "aufsteigend",
 "belegstatus": "belegt",
 "website_belege": 4,
 "stimmung": [
  "präzise",
  "filmisch"
 ],
 "stimmung_roh": [
  "klar",
  "funktional",
  "ehrlich",
  "feierlich"
 ],
 "technik": [
  "css",
  "vanilla-js",
  "intl",
  "form"
 ],
 "technik_gruppen": [
  "css",
  "js"
 ],
 "leistungskosten": "niedrig",
 "steckbrief": {
  "beschreibung": "Für Locations, Caterer und Festsäle ist das Datum die erste Frage: Ist unser Samstag noch frei? Eine Leiste fragt Wunschdatum (oder Monat mit „flexibel“), Anlass und Gäste ab und antwortet sofort darunter. Eine Monatsansicht als echte Tabelle zeigt, welche Tage frei, angefragt (Option mit Haltefrist) oder vergeben sind, als Text und Zeichen, mit Stand-Datum. Ein Klick auf einen freien Tag übernimmt das Datum in die Leiste und öffnet die Anfrage mit allen Angaben. Ein Tag, kein Zeitraum.",
  "warum_es_wirkt": "Paare und Firmen klären zuerst das Datum, alles andere später. Wer sofort sieht, dass der Wunschsamstag vergeben ist, schreibt keine vergebliche Anfrage und findet den nächsten freien Tag selbst. Der Status „angefragt“ erklärt die Option offen und lädt zum Vormerken ein, statt Knappheit vorzutäuschen. Die Anfrage kommt mit Datum, Anlass und Gästezahl an; das spart dem Haus die erste Rückfrage.",
  "wann_einsetzen": "Hochzeitslocation, Gutshof, Festsaal, Tagungshaus, Eventcatering, Bootsvermietung für Feiern, Fotostudio zur Tagesmiete: überall, wo ein ganzer Tag vergeben wird und das Haus seinen Kalender selbst pflegt.",
  "wann_nicht": "Wenn niemand den Kalender pflegt: Ein veralteter Kalender ist schlimmer als keiner, dann nur die Leiste mit Ausweichdatum. Für Zimmer mit An- und Abreise gilt buchungsleiste-datumsbereich, für Termine im Stundentakt termin-buchung-zwei-klick. Nicht für verbindliche Online-Buchung mit Anzahlung: Hier wird angefragt, nicht gebucht.",
  "varianten": [
   "Leiste unter dem Hero: Datum oder Monat, Anlass, Gäste, Antwort sofort darunter, mobil untereinander",
   "Monatskalender mit frei, angefragt und vergeben, Erklärung der Option und Übergabe an die Anfrage",
   "Catering: mehrere Feiern am Tag, Status „noch Kapazität“ mit Gästezahl statt frei",
   "Ohne gepflegten Kalender: nur Leiste mit Ausweichdatum"
  ],
  "umsetzung": "Ein form mit Datum als Texteingabe (TT.MM.JJJJ, auch „12.6.27“), Schalter „Datum flexibel“ mit Monatsauswahl, Anlass als select, Erwachsene und Kinder als Zahlenfelder. Die Belegung kommt aus einer JSON-Datei, die das Haus pflegt ({stand, tage: {\"2027-06-19\": {status: \"angefragt\", bis: \"2026-11-09\"}}}); ist der Stand älter als 21 Tage, fehlt der Kalender und die Leiste fragt ein Ausweichdatum ab. Die Monatsansicht ist eine table role=grid mit Spaltenköpfen (Wochentage) und Zeilenköpfen (Kalenderwoche); in jeder Zelle ein Knopf mit vollem Namen („Samstag, 19. Juni 2027, angefragt, Option bis 9. November“) und Roving tabindex. Freie Tage übernehmen das Datum und öffnen die Anfrage; angefragte erklären die Option und bieten „Als Nächste vormerken“; vergebene sind aria-disabled, nennen beim Aktivieren den Grund und schlagen die nächsten freien Tage vor (gleicher Wochentag zuerst). Feiertage rechnet ein kleines Oster-Rechenstück je Bundesland aus. Die Anfrage übernimmt alle Angaben als Zusammenfassung mit „Angaben ändern“, verlangt bei vergebenem Tag ein Ausweichdatum und sagt ehrlich, dass der Tag damit noch nicht reserviert ist. Catering-Variante: je Tag eine Restkapazität in Gästen; die eingegebene Gästezahl rechnet den Kalender live um.",
  "mobil": "Die Leiste stapelt sich: Datum, Anlass, Gäste, Knopf in voller Breite. Im Kalender zeigen die Zellen Ziffer und Zeichen, der Status steht im Namen und in der Legende; jede Zelle mindestens 50 px hoch. Die Anfrage folgt unter dem Kalender, der Fokus springt auf ihre Überschrift.",
  "reduzierte_bewegung": "Monatswechsel und Anfrage-Tafel ohne Weg, nur kurzes Einblenden in 200 ms; der vorgeführte Zeiger springt.",
  "barrierefreiheit": "Kalender als table role=grid mit Spalten- und Zeilenköpfen, Roving tabindex, Pfeiltasten, Bild auf/ab für Monate, Pos1/Ende für die Woche; Monatstitel als aria-live. Status nie nur über Farbe: jedes Zeichen hat eine eigene Form (Punkt, Halbkreis, Kreuz mit Schraffur), der Status steht im Namen. Vergebene Tage sind aria-disabled, nicht versteckt. Gewählter Tag mit aria-selected, heute mit aria-current=\"date\". Datum immer auch als Texteingabe mit Format im Label. Antworten der Leiste in einer Statusregion; Fehler im Formular stehen am Feld (aria-invalid, aria-describedby), der Fokus springt aufs erste. Nach der Übergabe bekommt die Überschrift der Anfrage den Fokus. Datenschutz-Hinweis als markierter Platzhalter, vom Kunden prüfen lassen."
 },
 "messwerte": {
  "easing": "cubic-bezier(0.625, 0.05, 0, 1)",
  "dauer_ms": "250 Farben und Hover, 400 Kalenderzelle und Hinweise, 475 Knopf-Füllung, 525 Monatswechsel und Anfrage-Tafel",
  "stagger_ms": "",
  "distanz": "Monatswechsel 24 px seitlich, Anfrage-Tafel 16 px von unten",
  "sonstiges": "Kurve und Dauern aus dem Animationsstil token-studio-signatur laut Rezept eventlocation-hochzeit",
  "herkunft": "eigene Festlegung",
  "quelle": "Rezept eventlocation-hochzeit (bewegung)"
 },
 "kurve": {
  "bezier": [
   0.625,
   0.05,
   0.0,
   1.0
  ],
  "css": "cubic-bezier(0.625, 0.05, 0, 1)",
  "name": "eigene Kurve",
  "dauer_ms": 250
 },
 "gesehen_bei": [
  {
   "seite": "Hedsor House: FAQ",
   "url": "https://www.hedsor.com/contact-us/frequently-asked-questions",
   "auszeichnung": "",
   "beobachtung": "Laut Rezept-Recherche (live geprüft 02.11.2026): Der Wunschtermin wird nach der Besichtigung als „provisional hold“ gehalten, sieben Tage kostenlos. Vorbild für den Status „angefragt“ mit Haltefrist.",
   "art": "website"
  },
  {
   "seite": "Schloss Hohenkammer: Heiraten",
   "url": "https://www.schlosshohenkammer.de/Heiraten",
   "auszeichnung": "",
   "beobachtung": "Laut Rezept-Recherche (live geprüft 02.11.2026): Saisonpreise und Mindestgäste stehen auf der Seite, die Anfrage läuft aber nur über Telefon und E-Mail, ohne Datum und Gästezahl. Genau diese Lücke schließt der Baustein.",
   "art": "website"
  },
  {
   "seite": "Landgut Stober: Tagungsräume",
   "url": "https://landgut-stober.de/tagungen-landgut-stober/tagungsraeume-uebersicht.html",
   "auszeichnung": "",
   "beobachtung": "Laut Rezept-Recherche (live geprüft 02.11.2026): Anfrageformular „Unverbindlich anfragen“ mit Verpflegungsbausteinen, aber ohne sichtbares Datum und ohne Verfügbarkeit.",
   "art": "website"
  },
  {
   "seite": "Berlin.de: Samstagstermine der Standesämter",
   "url": "https://www.berlin.de/standesamt/samstagstermine/",
   "auszeichnung": "",
   "beobachtung": "Per WebFetch am 02.11.2026 gelesen: Samstagstermine je Standesamt als Liste „TT.MM.JJJJ – Reservierung ab …“, ein Haus markiert belegte Tage als „vergeben“. Kein sichtbares Stand-Datum und keine Übergabe an eine Anfrage. Zeigt, wie stark Samstage als eigene Ware gelten.",
   "art": "website"
  },
  {
   "seite": "WAI-ARIA APG: Date Picker Dialog",
   "url": "https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog/",
   "auszeichnung": "",
   "beobachtung": "Kalender als Tabelle mit role=grid und Roving tabindex; Pfeiltasten für Tage und Wochen, Bild auf/ab für Monate, Pos1/Ende für die Woche. Grundlage für die Tastaturbedienung.",
   "art": "demo"
  }
 ],
 "tutorials": [
  {
   "titel": "WAI-ARIA APG: Date Picker Dialog Example",
   "url": "https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/examples/datepicker-dialog/"
  },
  {
   "titel": "WAI-ARIA APG: Grid Pattern",
   "url": "https://www.w3.org/WAI/ARIA/apg/patterns/grid/"
  },
  {
   "titel": "MDN: Intl.DateTimeFormat",
   "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat"
  }
 ],
 "kombinierbar_mit": [
  "mehrschritt-anfrage",
  "raumkapazitaeten-bestuhlung",
  "animiertes-select",
  "validierung-nach-interaktion",
  "formular-fehlerzusammenfassung",
  "termin-buchung-zwei-klick",
  "cinematic-video-hero",
  "fuellung-vom-eintrittspunkt",
  "kontur-button-zeichnen",
  "sticky-shrink-header"
 ],
 "urls": {
  "detail": "https://cecodesign.de/lab/fundus/sektionen/termin-verfuegbarkeit-anfrage/",
  "meta": "https://cecodesign.de/lab/fundus/sektionen/termin-verfuegbarkeit-anfrage/meta.json",
  "demo": "https://cecodesign.de/lab/fundus/sektionen/termin-verfuegbarkeit-anfrage/demo"
 },
 "herkunft": {
  "quelldateien": [
   "Rezept-Runde 02.11.2026"
  ],
  "pruefnotizen": [
   "Hedsor, Hohenkammer und Stober laut eventlocation-hochzeit-fehlend.md am 02.11.2026 live geprüft; sie belegen den Bedarf (Option mit Haltefrist, Anfrage ohne Datum), nicht ein fertiges Vorbild. Berlin.de per WebFetch am 02.11.2026 gelesen.",
   "Keine der geprüften deutschen Locations zeigt freie Termine auf der Seite. Der Baustein ist deshalb als Lücke gebaut, nicht als beobachteter Trend.",
   "Option, Anzahlung und Storno sowie der Datenschutz-Hinweis an der Anfrage kommen vom Kunden und werden vom Kunden geprüft (Verträge über Veranstaltungen mit festem Termin: kein Widerrufsrecht im Fernabsatz, § 312g Abs. 2 Nr. 9 BGB laut Rezept)."
  ]
 },
 "bau": {
  "status": "fertig",
  "kurz": "Wunschdatum, Anlass und Gäste in einer Leiste, darunter ehrlich frei, angefragt oder vergeben als Monatstabelle mit Stand-Datum; ein Klick auf einen freien Tag übergibt alles an die Anfrage.",
  "demo": true,
  "abhaengigkeiten": [],
  "werte": {
   "easing": "cubic-bezier(0.625, 0.05, 0, 1) für alles (token-studio-signatur)",
   "farben_hover_ms": 250,
   "zelle_hinweis_ms": 400,
   "knopf_fuellung_ms": 475,
   "monatswechsel_ms": 525,
   "tafel_ms": 525,
   "zeiger_ms": 725,
   "distanz": "Monatswechsel translateX ±24 px mit opacity 0 → 1 (WAAPI), Tafel translate 0 16 px → 0",
   "knopf_haupt": "Mohnrot #C43B2B, Füllung Nachtblau #15171F per clip-path circle() vom Eintrittspunkt, Radius = Abstand zur fernsten Ecke + 2 px; Fokus füllt ab der Mitte, Umriss 2 px #1D1A17 mit 3 px Abstand; min-height 48 px",
   "knopf_neben": "Kontur 1 px #1D1A17, zweite Kontur 1 px Messing #8C6A3C um 3 px versetzt, rückt bei Hover und Fokus auf 0",
   "kalender": "table role=grid, Spalte KW 44 px (Telefon 30 px), Zellen 58 px hoch (Telefon 50 px), border-spacing 3 px, Archivo wdth 87 mit Tabellenziffern",
   "status_zeichen": "frei = Mohnrot-Punkt 10 px; angefragt = halb gefüllter Kreis; vergeben = Kreuz plus Schraffur 135° (Messing 16 %); catering: Balken 12 × 8 px mit Restzahl, zu knapp = leerer Ring",
   "samstag": "Zellgrund #F0E6D6, Spaltenkopf mit Messing-Unterstrich 2 px",
   "feiertag": "Messing-Dreieck 10 px in der Ecke, Name im Zellnamen; Bayern, Ostern nach Gauß berechnet",
   "stand_frist_tage": 21,
   "haltefrist": "Option bis zu sieben Tage (Hedsor), Text „Ein Paar hält diesen Tag bis …“",
   "kapazitaet": "Haus 180 Gäste, Catering 400 Gäste am Tag; darüber Hinweis mit Telefon",
   "schrift": "Imbue (opsz, wght 300 bis 400) ab 2rem für Titel, Monat und Datum; Archivo 1.0625rem Text, Labels wdth 112 wght 600 .8125rem versal +0.08em",
   "farben": "#F5F0E6 Kalk, #FBF8F2 Leiste und Zellen, #E9DCC8 Sandstein, #1D1A17 Text, #5C574E Sekundär, #C43B2B Signal, #A3301F Signal als Schrift, #8C6A3C Messing nur als Linie, #857C70 Feldrand",
   "reduziert": "Farben 200 ms, Monatswechsel nur opacity 200 ms, Tafel ohne Weg, Knopf-Füllung als opacity 150 ms linear, Zeiger springt",
   "vorfuehrung": "Leiste: Datum vergeben, Vorschlag wählen, 196 Gäste (Hinweis), 96 + 8, Termin anfragen, Anfrage-Tafel; Kalender: flexibel, Mai, Pfeil Juni, 19. Juni (Option), 12. Juni (Übergabe); Catering: 140 Gäste, dann wie Kalender"
  },
  "ausloeser": "klick",
  "touch": "Unter 900 px zwei Spalten, unter 640 px eine Spalte; Tafel unter dem Kalender, nach der Übergabe scrollt sie ins Bild und bekommt den Fokus. Kalenderzellen zeigen nur Ziffer und Zeichen (Status im Namen und in der Legende), mindestens 44 × 50 px. Die Knopf-Füllung startet beim Tippen am Tipp-Punkt und zieht sich nach 725 ms zurück. Eingaben 17 px gegen Zoom.",
  "reduziert": "Kein Weg: Monatswechsel blendet nur in 200 ms ein, Tafel erscheint sofort, Füllung des Hauptknopfs als kurzes Einblenden, Doppelkontur liegt schon auf, der vorgeführte Zeiger springt. Farben wechseln in 200 ms.",
  "korrekturen": {
   "beschreibung": "Für Locations, Caterer und Festsäle ist das Datum die erste Frage: Ist unser Samstag noch frei? Eine Leiste fragt Wunschdatum (oder Monat mit „flexibel“), Anlass und Gäste ab und antwortet sofort darunter. Eine Monatsansicht als echte Tabelle zeigt, welche Tage frei, angefragt (Option mit Haltefrist) oder vergeben sind, als Text und Zeichen, mit Stand-Datum. Ein Klick auf einen freien Tag übernimmt das Datum in die Leiste und öffnet die Anfrage mit allen Angaben. Ein Tag, kein Zeitraum.",
   "umsetzung": "Ein form mit Datum als Texteingabe (TT.MM.JJJJ, auch „12.6.27“), Schalter „Datum flexibel“ mit Monatsauswahl, Anlass als select, Erwachsene und Kinder als Zahlenfelder. Die Belegung kommt aus einer JSON-Datei, die das Haus pflegt ({stand, tage: {\"2027-06-19\": {status: \"angefragt\", bis: \"2026-11-09\"}}}); ist der Stand älter als 21 Tage, fehlt der Kalender und die Leiste fragt ein Ausweichdatum ab. Die Monatsansicht ist eine table role=grid mit Spaltenköpfen (Wochentage) und Zeilenköpfen (Kalenderwoche); in jeder Zelle ein Knopf mit vollem Namen („Samstag, 19. Juni 2027, angefragt, Option bis 9. November“) und Roving tabindex. Freie Tage übernehmen das Datum und öffnen die Anfrage; angefragte erklären die Option und bieten „Als Nächste vormerken“; vergebene sind aria-disabled, nennen beim Aktivieren den Grund und schlagen die nächsten freien Tage vor (gleicher Wochentag zuerst). Feiertage rechnet ein kleines Oster-Rechenstück je Bundesland aus. Die Anfrage übernimmt alle Angaben als Zusammenfassung mit „Angaben ändern“, verlangt bei vergebenem Tag ein Ausweichdatum und sagt ehrlich, dass der Tag damit noch nicht reserviert ist. Catering-Variante: je Tag eine Restkapazität in Gästen; die eingegebene Gästezahl rechnet den Kalender live um.",
   "mobil": "Die Leiste stapelt sich: Datum, Anlass, Gäste, Knopf in voller Breite. Im Kalender zeigen die Zellen Ziffer und Zeichen, der Status steht im Namen und in der Legende; jede Zelle mindestens 50 px hoch. Die Anfrage folgt unter dem Kalender, der Fokus springt auf ihre Überschrift.",
   "barrierefreiheit": "Kalender als table role=grid mit Spalten- und Zeilenköpfen, Roving tabindex, Pfeiltasten, Bild auf/ab für Monate, Pos1/Ende für die Woche; Monatstitel als aria-live. Status nie nur über Farbe: jedes Zeichen hat eine eigene Form (Punkt, Halbkreis, Kreuz mit Schraffur), der Status steht im Namen. Vergebene Tage sind aria-disabled, nicht versteckt. Gewählter Tag mit aria-selected, heute mit aria-current=\"date\". Datum immer auch als Texteingabe mit Format im Label. Antworten der Leiste in einer Statusregion; Fehler im Formular stehen am Feld (aria-invalid, aria-describedby), der Fokus springt aufs erste. Nach der Übergabe bekommt die Überschrift der Anfrage den Fokus. Datenschutz-Hinweis als markierter Platzhalter, vom Kunden prüfen lassen."
  },
  "geprueft": "02.11.2026",
  "notiz": "Welt: Rezept eventlocation-hochzeit, erfundener Gutshof „Gut Weidenhain“ in Ochsenfurt am Main (Bayern, Feiertage mit Mariä Himmelfahrt). Hero als eigene SVG-Illustration mit Hinweis „Platzhalter für ein eigenes Foto“. Zustände: leer, Datum frei, angefragt mit Haltefrist und Vormerken, vergeben mit Vorschlägen, flexibel mit Monatsübersicht, über 180 Gäste mit Telefon, Kalender veraltet (Pult „Stand veraltet“: Kalender fehlt, Leiste mit Ausweichdatum), Übergabe, Fehler am Feld, Dank mit Antwortfrist. Belegung als erzeugte Beispieldaten, im echten Einsatz JSON vom Haus. Referenzen: hedsor.com, schlosshohenkammer.de, landgut-stober.de, berlin.de, w3.org (APG). AD-Review-Nachbesserung: Telefonnummer auf 09331 0 47 11 0 geändert; mit 0 nach der Vorwahl ist sie nicht vergebbar (Hinweis der Bundesnetzagentur zu Rufnummern für Medienproduktionen), die alte hätte einem echten Anschluss gehören können. AD-Review 02.11.2026: Note 4",
  "varianten": [
   {
    "id": "leiste",
    "name": "Leiste unterm Hero",
    "wann": "Startseite jeder Location oder jedes Festsaals: Datum, Anlass und Gäste direkt unter dem Foto, Antwort sofort darunter, Anfrage klappt unter der Leiste auf.",
    "werte": {
     "hero": "Imbue clamp(3rem, 1.6rem + 6vw, 7.5rem) wght 300, Bild 16 : 5,2, Leiste −64 px überlappend",
     "kalender": "keiner, freie Tage als Vorschläge (gleicher Wochentag zuerst)"
    }
   },
   {
    "id": "kalender",
    "name": "Monatskalender",
    "wann": "Eigene Seite oder Abschnitt „Freie Termine“, wenn das Haus den Kalender werktags pflegt: Monatsansicht mit frei, angefragt, vergeben und Tafel für Option, Vergeben und Anfrage.",
    "werte": {
     "layout": "Kalender minmax(0, 1fr), Tafel 340 px, Abstand 32 px",
     "monatswechsel_ms": 525
    }
   },
   {
    "id": "catering",
    "name": "Catering-Kapazität",
    "wann": "Caterer und Küchen, die an einem Tag mehrere Feiern beliefern: Status „noch Kapazität“ mit Gästezahl statt frei, Gästezahl rechnet den Kalender um, dazu Ort und Form.",
    "werte": {
     "kapazitaet_tag": 400,
     "status": "noch n Gäste, zu knapp (leerer Ring), ausgebucht (Kreuz, Schraffur)",
     "felder": "Form (Menü, Buffet, Flying Dinner, Food-Stationen), Ort der Feier"
    }
   }
  ]
 }
}
