/* Kennenlern-Termin. Design aus der Beispielseite des Design Systems (Abschnitt Erstgespräch): Tage als Zellen, Zeiten als Chips,
   gewählter Zustand in Paper, Buchen-Button in Signal. Gilt im Salon-Rechner und auf der Teaser-Seite. */
.termin { display: flex; flex-direction: column; gap: 20px; }
.termin [hidden] { display: none !important; }
.termin .raster { display: grid; gap: 16px 24px; grid-template-columns: 1fr; }
@media (min-width: 600px) { .termin .raster--3 { grid-template-columns: repeat(3, 1fr); } }
.termin .fb-input { width: 100%; height: 52px; padding: 0 1rem; background: var(--ink-900); border: 1px solid var(--line-strong); border-radius: 0; color: var(--paper-100); font: 400 1.0625rem var(--font-body); }
.termin .fb-input:focus { outline: none; border-color: var(--signal); box-shadow: inset 0 -2px 0 var(--signal); }
.termin .fb-error { color: var(--error, #F0506E); font: 500 .875rem var(--font-mono); }
.termin__woche { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.termin__wochentext { font: 500 .8125rem var(--font-mono); letter-spacing: .04em; color: var(--stone-300); }
.termin__pfeil { width: 44px; height: 44px; display: inline-grid; place-items: center; border: 1px solid var(--line-strong); background: none; color: var(--paper-100); cursor: pointer; transition: border-color .24s; }
.termin__pfeil:hover { border-color: var(--paper-100); }
.termin__pfeil:disabled { opacity: .3; pointer-events: none; }
.termin__tage { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.termin__tag { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 4px 12px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: none; color: var(--paper-100); cursor: pointer; transition: background-color .24s, color .24s; }
.termin__tag:hover { background: rgba(207,202,192,.06); }
.termin__tag:disabled { color: var(--stone-400); cursor: default; }
.termin__tag:disabled:hover { background: none; }
.termin__tag.is-aktiv { background: var(--paper-100); color: var(--ink-800); }
.termin__wt { font: 500 .6875rem var(--font-mono); text-transform: uppercase; letter-spacing: .12em; }
.termin__nr { font: 800 1.5rem/1 var(--font-display); letter-spacing: -0.03em; }
.termin__frei { font: 400 .625rem var(--font-mono); letter-spacing: .04em; opacity: .75; }
.termin__zeiten { display: flex; flex-wrap: wrap; gap: 8px; min-height: 44px; }
.termin__zeit { height: 44px; padding: 0 18px; border: 1px solid var(--line-strong); background: none; color: var(--paper-100); font: 500 .875rem var(--font-mono); letter-spacing: .04em; cursor: pointer; transition: background-color .24s, color .24s, border-color .24s; }
.termin__zeit:hover { border-color: var(--paper-100); }
.termin__zeit.is-aktiv { background: var(--signal); border-color: var(--signal); color: var(--ink-800); }
.termin__hinweis { font: 400 .75rem/1.5 var(--font-mono); color: var(--stone-400); letter-spacing: .02em; }
.termin__fuss { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.termin__form { display: flex; flex-direction: column; gap: 16px; padding-top: 20px; border-top: 1px solid var(--line); }
.termin__form .feld { display: flex; flex-direction: column; gap: 8px; }
.termin__form .feld__label { font: 500 .75rem/1.4 var(--font-mono); text-transform: uppercase; letter-spacing: .12em; color: var(--stone-300); }
.termin__klein { font: 400 .8125rem/1.5 var(--font-body); color: var(--stone-400); max-width: 40rem; }
.termin__fertig { display: flex; flex-direction: column; gap: 12px; padding: 24px; border: 1px solid var(--signal); }
.termin__fertig h3 { font: 500 clamp(1.125rem, 2vw, 1.375rem)/1.3 var(--font-display); letter-spacing: -0.01em; }
.termin__fertig p { color: var(--stone-300); }
.termin__punkt { width: 9px; height: 9px; border-radius: 999px; background: var(--signal); }
.termin__ghost { align-self: flex-start; height: 40px; padding: 0; border: 0; background: none; color: var(--paper-100); font: 500 .8125rem var(--font-mono); letter-spacing: .04em; cursor: pointer; }
.termin__ghost::after { content: ""; display: block; height: 1px; background: var(--signal); margin-top: 3px; }
@media (max-width: 599px) { .termin__nr { font-size: 1.25rem; } .termin__frei { display: none; } }

/* Pflichtfeld-Sternchen im Kalender */
.termin .feld__pflicht { color: var(--signal, #FF5B1F); }
