934 lines
20 KiB
CSS
934 lines
20 KiB
CSS
/* Online-Terminbuchung – zwei Bereiche:
|
||
1. .tb-overlay & Co.: Kalender-Pop-up auf der Startseite (index.html).
|
||
2. .terminbuchung-seite: Buchungsformular-Seite (html/terminbuchung.html),
|
||
Tokens und Formular-Styles entsprechen css/kontakt.css. */
|
||
|
||
/* =========================================================
|
||
1. Terminbuchungs-Pop-up (Kalender) auf der Startseite
|
||
========================================================= */
|
||
|
||
.tb-overlay {
|
||
--background-panel: #152027;
|
||
--text-primary: #ffffff;
|
||
--text-muted: #9ba7aa;
|
||
--accent: #4597A3;
|
||
--border: rgba(234, 8, 8, 0.1);
|
||
--font-display: "Sora", sans-serif;
|
||
--font-body: "DM Sans", Arial, Helvetica, sans-serif;
|
||
--radius: 1.1rem;
|
||
|
||
position: fixed;
|
||
inset: 0;
|
||
z-index: 1000;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 24px;
|
||
background: rgb(7 20 25 / 72%);
|
||
backdrop-filter: blur(6px);
|
||
-webkit-backdrop-filter: blur(6px);
|
||
}
|
||
|
||
.tb-overlay[hidden] {
|
||
display: none;
|
||
}
|
||
|
||
.tb-dialog {
|
||
position: relative;
|
||
width: min(560px, 100%);
|
||
max-height: calc(100vh - 48px);
|
||
overflow-y: auto;
|
||
background-color: var(--background-panel);
|
||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||
border-radius: calc(var(--radius) + 0.4rem);
|
||
box-shadow: 0 30px 90px rgb(0 0 0 / 45%);
|
||
padding: 28px;
|
||
color: var(--text-primary);
|
||
font-family: var(--font-body);
|
||
line-height: 1.6;
|
||
}
|
||
|
||
.tb-close {
|
||
position: absolute;
|
||
top: 14px;
|
||
right: 14px;
|
||
display: grid;
|
||
place-items: center;
|
||
width: 36px;
|
||
height: 36px;
|
||
border: 1px solid var(--border);
|
||
border-radius: 10px;
|
||
background: rgb(255 255 255 / 4%);
|
||
color: var(--text-primary);
|
||
font-size: 1.1rem;
|
||
line-height: 1;
|
||
cursor: pointer;
|
||
transition: border-color 0.15s ease, background-color 0.15s ease;
|
||
}
|
||
|
||
.tb-close:hover,
|
||
.tb-close:focus-visible {
|
||
border-color: var(--accent);
|
||
background: rgb(69 151 163 / 14%);
|
||
}
|
||
|
||
.tb-kicker {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
font-size: 0.72rem;
|
||
font-weight: 600;
|
||
letter-spacing: 0.18em;
|
||
text-transform: uppercase;
|
||
color: var(--accent);
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.tb-kicker::before {
|
||
content: "";
|
||
width: 24px;
|
||
height: 2px;
|
||
border-radius: 2px;
|
||
background: var(--accent);
|
||
}
|
||
|
||
.tb-title {
|
||
margin: 0 0 6px;
|
||
font-family: var(--font-display);
|
||
font-size: 1.5rem;
|
||
font-weight: 600;
|
||
letter-spacing: -0.02em;
|
||
}
|
||
|
||
.tb-subtitle {
|
||
margin: 0 0 20px;
|
||
font-size: 0.9rem;
|
||
color: var(--text-muted);
|
||
}
|
||
|
||
/* ---------- Trainer-Auswahl ---------- */
|
||
|
||
.tb-trainer-label {
|
||
display: block;
|
||
font-size: 0.85rem;
|
||
font-weight: 600;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.tb-trainer {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 10px;
|
||
margin-bottom: 22px;
|
||
}
|
||
|
||
.tb-trainer-btn {
|
||
padding: 9px 16px;
|
||
border-radius: 999px;
|
||
border: 1px solid rgba(255, 255, 255, 0.14);
|
||
background: rgb(255 255 255 / 4%);
|
||
color: var(--text-primary);
|
||
font-family: var(--font-body);
|
||
font-size: 0.9rem;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
transition: border-color 0.15s ease, background-color 0.15s ease;
|
||
}
|
||
|
||
.tb-trainer-btn:hover {
|
||
border-color: var(--accent);
|
||
}
|
||
|
||
.tb-trainer-btn.is-active {
|
||
border-color: var(--accent);
|
||
background: rgb(69 151 163 / 18%);
|
||
}
|
||
|
||
/* ---------- Kalender ---------- */
|
||
|
||
.tb-cal-head {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 12px;
|
||
margin-bottom: 12px;
|
||
}
|
||
|
||
.tb-cal-month {
|
||
font-family: var(--font-display);
|
||
font-size: 1rem;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.tb-cal-nav {
|
||
display: grid;
|
||
place-items: center;
|
||
width: 34px;
|
||
height: 34px;
|
||
border-radius: 9px;
|
||
border: 1px solid rgba(255, 255, 255, 0.14);
|
||
background: rgb(255 255 255 / 4%);
|
||
color: var(--text-primary);
|
||
font-size: 1.05rem;
|
||
cursor: pointer;
|
||
transition: border-color 0.15s ease, background-color 0.15s ease;
|
||
}
|
||
|
||
.tb-cal-nav:hover:not(:disabled) {
|
||
border-color: var(--accent);
|
||
background: rgb(69 151 163 / 14%);
|
||
}
|
||
|
||
.tb-cal-nav:disabled {
|
||
opacity: 0.35;
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
.tb-cal-weekdays,
|
||
.tb-cal-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(7, minmax(0, 1fr));
|
||
gap: 6px;
|
||
}
|
||
|
||
.tb-cal-weekdays span {
|
||
text-align: center;
|
||
font-size: 0.72rem;
|
||
font-weight: 600;
|
||
letter-spacing: 0.08em;
|
||
text-transform: uppercase;
|
||
color: var(--text-muted);
|
||
padding-bottom: 4px;
|
||
}
|
||
|
||
.tb-day {
|
||
position: relative;
|
||
display: grid;
|
||
place-items: center;
|
||
min-height: 44px;
|
||
border-radius: 10px;
|
||
border: 1px solid transparent;
|
||
background: transparent;
|
||
font-family: var(--font-body);
|
||
font-size: 0.88rem;
|
||
color: var(--text-primary);
|
||
cursor: pointer;
|
||
transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
|
||
}
|
||
|
||
/* Leere Zellen vor dem ersten bzw. nach dem letzten Tag des Monats */
|
||
.tb-day--leer {
|
||
visibility: hidden;
|
||
pointer-events: none;
|
||
}
|
||
|
||
/* Verfügbarkeitskategorien */
|
||
.tb-day--verfuegbar {
|
||
background: rgb(34 197 94 / 12%);
|
||
border-color: rgb(34 197 94 / 40%);
|
||
}
|
||
|
||
.tb-day--verfuegbar:hover,
|
||
.tb-day--verfuegbar:focus-visible {
|
||
background: rgb(34 197 94 / 22%);
|
||
border-color: rgb(34 197 94 / 70%);
|
||
}
|
||
|
||
.tb-day--nicht {
|
||
color: rgb(255 255 255 / 26%);
|
||
background: rgb(255 255 255 / 3%);
|
||
cursor: default;
|
||
}
|
||
|
||
/* Heute: dezent markiert, ohne die Kategorie zu verdecken */
|
||
.tb-day--heute {
|
||
font-weight: 700;
|
||
box-shadow: inset 0 -2px 0 0 var(--accent);
|
||
}
|
||
|
||
/* Ausgewählter Tag */
|
||
.tb-day--ausgewaehlt {
|
||
background: var(--accent);
|
||
border-color: var(--accent);
|
||
color: #03242b;
|
||
font-weight: 700;
|
||
}
|
||
|
||
/* ---------- Legende ---------- */
|
||
|
||
.tb-legend {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 18px;
|
||
list-style: none;
|
||
margin: 14px 0 0;
|
||
padding: 0;
|
||
font-size: 0.82rem;
|
||
color: var(--text-muted);
|
||
}
|
||
|
||
.tb-legend li {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 7px;
|
||
}
|
||
|
||
.tb-dot {
|
||
width: 10px;
|
||
height: 10px;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.tb-dot--verfuegbar {
|
||
background: #22c55e;
|
||
}
|
||
|
||
.tb-dot--nicht {
|
||
background: rgb(255 255 255 / 22%);
|
||
}
|
||
|
||
/* ---------- Uhrzeiten des gewählten Tages ---------- */
|
||
|
||
.tb-times {
|
||
margin-top: 20px;
|
||
padding-top: 18px;
|
||
border-top: 1px solid var(--border);
|
||
}
|
||
|
||
.tb-times-label {
|
||
margin: 0 0 12px;
|
||
font-size: 0.9rem;
|
||
color: var(--text-muted);
|
||
}
|
||
|
||
.tb-times-label strong {
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
.tb-time-chips {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 10px;
|
||
}
|
||
|
||
.tb-time-chip {
|
||
padding: 8px 16px;
|
||
border-radius: 999px;
|
||
border: 1px solid rgba(255, 255, 255, 0.16);
|
||
background: rgb(255 255 255 / 4%);
|
||
color: var(--text-primary);
|
||
font-family: var(--font-body);
|
||
font-size: 0.9rem;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
|
||
}
|
||
|
||
.tb-time-chip:hover {
|
||
border-color: var(--accent);
|
||
}
|
||
|
||
.tb-time-chip.is-active {
|
||
background: var(--accent);
|
||
border-color: var(--accent);
|
||
color: #03242b;
|
||
}
|
||
|
||
/* ---------- Buchen-Button ---------- */
|
||
|
||
.tb-book {
|
||
display: block;
|
||
width: 100%;
|
||
margin-top: 22px;
|
||
padding: 0.85rem 1.5rem;
|
||
border-radius: 999px;
|
||
border: none;
|
||
background: var(--accent);
|
||
color: #03242b;
|
||
font-family: var(--font-body);
|
||
font-size: 0.98rem;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
|
||
}
|
||
|
||
.tb-book:hover:not(:disabled) {
|
||
transform: translateY(-1px);
|
||
box-shadow: 0 10px 28px rgb(0 179 194 / 28%);
|
||
}
|
||
|
||
.tb-book:disabled {
|
||
opacity: 0.5;
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
.tb-hinweis {
|
||
margin: 12px 0 0;
|
||
font-size: 0.78rem;
|
||
color: var(--text-muted);
|
||
}
|
||
|
||
/* =========================================================
|
||
2. Buchungsformular-Seite (html/terminbuchung.html)
|
||
========================================================= */
|
||
|
||
.terminbuchung-seite {
|
||
/* Farben – Tokens von tri-hub.de (wie css/kontakt.css) */
|
||
--background: #0714198a;
|
||
--background-rgb: 7 20 25;
|
||
--background-panel: #152027;
|
||
--text-primary: #ffffff;
|
||
--text-muted: #9ba7aa;
|
||
--accent: #4597A3;
|
||
--accent-warm: #f7c230;
|
||
--border: rgba(234, 8, 8, 0.1);
|
||
|
||
/* Typografie */
|
||
--font-display: "Sora", sans-serif;
|
||
--font-body: "DM Sans", Arial, Helvetica, sans-serif;
|
||
|
||
/* Layout */
|
||
--container: 1120px;
|
||
--radius: 1.1rem;
|
||
}
|
||
|
||
/* ---------- Basic ---------- */
|
||
|
||
.terminbuchung-seite,
|
||
.terminbuchung-seite *,
|
||
.terminbuchung-seite::before,
|
||
.terminbuchung-seite *::before,
|
||
.terminbuchung-seite::after,
|
||
.terminbuchung-seite *::after {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.terminbuchung-seite {
|
||
min-height: 100vh;
|
||
margin: 0;
|
||
background-color: var(--background);
|
||
color: var(--text-primary);
|
||
font-family: var(--font-body);
|
||
line-height: 1.625;
|
||
-webkit-font-smoothing: antialiased;
|
||
position: relative;
|
||
isolation: isolate;
|
||
scroll-behavior: smooth;
|
||
}
|
||
|
||
/* Licht */
|
||
.terminbuchung-seite::before {
|
||
content: "";
|
||
position: absolute;
|
||
inset: 0;
|
||
z-index: -1;
|
||
background:
|
||
radial-gradient(900px 520px at 78% -10%, rgb(0 179 194 / 13%), transparent 65%),
|
||
radial-gradient(700px 480px at -10% 30%, rgb(35 137 148 / 10%), transparent 60%),
|
||
radial-gradient(600px 420px at 90% 95%, rgb(247 194 48 / 5%), transparent 60%);
|
||
pointer-events: none;
|
||
}
|
||
|
||
.terminbuchung-seite h1,
|
||
.terminbuchung-seite h2,
|
||
.terminbuchung-seite h3 {
|
||
margin-top: 0;
|
||
font-family: var(--font-display);
|
||
color: var(--text-primary);
|
||
line-height: 1.2;
|
||
letter-spacing: -0.01em;
|
||
}
|
||
|
||
.terminbuchung-seite p {
|
||
margin: 0 0 1em;
|
||
}
|
||
|
||
.terminbuchung-seite .container {
|
||
width: min(100% - 48px, var(--container));
|
||
margin-inline: auto;
|
||
}
|
||
|
||
/* ---------- Typo-Helfer ---------- */
|
||
|
||
.terminbuchung-seite .kicker {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
font-size: 0.78rem;
|
||
font-weight: 600;
|
||
letter-spacing: 0.18em;
|
||
text-transform: uppercase;
|
||
color: var(--accent);
|
||
margin-bottom: 18px;
|
||
}
|
||
|
||
.terminbuchung-seite .kicker::before {
|
||
content: "";
|
||
width: 28px;
|
||
height: 2px;
|
||
border-radius: 2px;
|
||
background: var(--accent);
|
||
}
|
||
|
||
.terminbuchung-seite .lead {
|
||
font-size: 1.15rem;
|
||
color: var(--text-muted);
|
||
max-width: 660px;
|
||
}
|
||
|
||
/* Die Navigationsleiste oben wird von css/navigation.css gestylt (.site-navigation). */
|
||
|
||
/* ---------- Kopfzeile / Hero ---------- */
|
||
|
||
.terminbuchung-seite .hero {
|
||
padding: 72px 0 56px;
|
||
}
|
||
|
||
.terminbuchung-seite .hero h1 {
|
||
font-size: clamp(2.2rem, 5vw, 3.2rem);
|
||
font-weight: 500;
|
||
letter-spacing: -0.04em;
|
||
margin-bottom: 16px;
|
||
}
|
||
|
||
.terminbuchung-seite .hero__text {
|
||
font-size: 1.1rem;
|
||
color: var(--text-muted);
|
||
max-width: 640px;
|
||
}
|
||
|
||
/* ---------- Sektionen ---------- */
|
||
|
||
.terminbuchung-seite .section {
|
||
padding: 56px 0 88px;
|
||
}
|
||
|
||
.terminbuchung-seite .section + .section {
|
||
border-top: 1px solid var(--border);
|
||
}
|
||
|
||
.terminbuchung-seite .section h2 {
|
||
font-size: clamp(1.7rem, 3.5vw, 2.4rem);
|
||
margin-bottom: 16px;
|
||
}
|
||
|
||
/* ---------- Termin-Zusammenfassung ---------- */
|
||
|
||
.tb-summary {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||
gap: 20px;
|
||
margin-top: 32px;
|
||
}
|
||
|
||
.tb-summary__item {
|
||
background-color: var(--background-panel);
|
||
border: 1px solid var(--border);
|
||
border-radius: calc(var(--radius) + 0.4rem);
|
||
padding: 22px;
|
||
}
|
||
|
||
.tb-summary__label {
|
||
display: block;
|
||
font-size: 0.7rem;
|
||
letter-spacing: 0.2em;
|
||
text-transform: uppercase;
|
||
color: var(--text-muted);
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.tb-summary__value {
|
||
font-family: var(--font-display);
|
||
font-size: 1.05rem;
|
||
font-weight: 600;
|
||
color: var(--text-primary);
|
||
margin: 0;
|
||
}
|
||
|
||
/* Hinweis, wenn die Seite ohne Termin-Parameter geöffnet wurde */
|
||
.tb-summary--fehlend {
|
||
grid-template-columns: minmax(0, 1fr);
|
||
}
|
||
|
||
.tb-summary--fehlend .tb-summary__item {
|
||
border-color: rgb(247 194 48 / 45%);
|
||
background: rgb(247 194 48 / 6%);
|
||
}
|
||
|
||
.tb-summary--fehlend a {
|
||
color: var(--accent);
|
||
}
|
||
|
||
/* ---------- Formular ---------- */
|
||
|
||
.terminbuchung-seite form {
|
||
margin-top: 32px;
|
||
display: grid;
|
||
gap: 20px;
|
||
}
|
||
|
||
.terminbuchung-seite .field label {
|
||
display: block;
|
||
font-size: 0.9rem;
|
||
font-weight: 500;
|
||
color: var(--text-primary);
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.terminbuchung-seite .field input,
|
||
.terminbuchung-seite .field select,
|
||
.terminbuchung-seite .field textarea {
|
||
width: 100%;
|
||
padding: 12px 16px;
|
||
border-radius: 10px;
|
||
border: 1px solid var(--border);
|
||
background: rgb(255 255 255 / 4%);
|
||
color: var(--text-primary);
|
||
font-family: var(--font-body);
|
||
font-size: 0.95rem;
|
||
transition: border-color 0.15s ease, background-color 0.15s ease;
|
||
}
|
||
|
||
.terminbuchung-seite .field input::placeholder,
|
||
.terminbuchung-seite .field textarea::placeholder {
|
||
color: rgb(255 255 255 / 40%);
|
||
}
|
||
|
||
.terminbuchung-seite .field input:focus,
|
||
.terminbuchung-seite .field select:focus,
|
||
.terminbuchung-seite .field textarea:focus {
|
||
outline: none;
|
||
border-color: var(--accent);
|
||
background: rgb(255 255 255 / 6%);
|
||
}
|
||
|
||
.terminbuchung-seite .field select option {
|
||
background: #0b1a20;
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
.terminbuchung-seite .field textarea {
|
||
min-height: 110px;
|
||
resize: vertical;
|
||
}
|
||
|
||
/* terminbuchung-form.js setzt die Zustandsklassen für ungültige Felder und Rückmeldungen. */
|
||
.terminbuchung-seite .field input.invalid,
|
||
.terminbuchung-seite .field select.invalid,
|
||
.terminbuchung-seite .field textarea.invalid {
|
||
border-color: #ef4444;
|
||
}
|
||
|
||
.terminbuchung-seite .field input.valid,
|
||
.terminbuchung-seite .field textarea.valid {
|
||
border-color: #22c55e;
|
||
}
|
||
|
||
.terminbuchung-seite .field__error {
|
||
display: none;
|
||
margin-top: 6px;
|
||
font-size: 0.8rem;
|
||
color: #f87171;
|
||
}
|
||
|
||
.terminbuchung-seite .field__hint {
|
||
margin-top: 6px;
|
||
font-size: 0.8rem;
|
||
color: var(--text-muted);
|
||
}
|
||
|
||
.terminbuchung-seite .field.has-error .field__error {
|
||
display: block;
|
||
}
|
||
|
||
/* ---------- Anamnese-Tags (Allergien & Unverträglichkeiten) ---------- */
|
||
|
||
.tb-tag-row {
|
||
display: flex;
|
||
gap: 10px;
|
||
}
|
||
|
||
.tb-tag-row input {
|
||
flex: 1;
|
||
}
|
||
|
||
.tb-tag-add {
|
||
flex-shrink: 0;
|
||
padding: 0 18px;
|
||
border-radius: 10px;
|
||
border: 1px solid var(--accent);
|
||
background: rgb(69 151 163 / 14%);
|
||
color: var(--text-primary);
|
||
font-family: var(--font-body);
|
||
font-size: 0.9rem;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
transition: background-color 0.15s ease, border-color 0.15s ease;
|
||
}
|
||
|
||
.tb-tag-add:hover {
|
||
background: rgb(69 151 163 / 28%);
|
||
}
|
||
|
||
.tb-tags {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 8px;
|
||
list-style: none;
|
||
margin: 10px 0 0;
|
||
padding: 0;
|
||
}
|
||
|
||
.tb-tags:empty {
|
||
display: none;
|
||
}
|
||
|
||
.tb-tag {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
padding: 5px 12px;
|
||
border-radius: 999px;
|
||
background: rgb(69 151 163 / 16%);
|
||
border: 1px solid rgb(69 151 163 / 45%);
|
||
font-size: 0.85rem;
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
.tb-tag button {
|
||
display: grid;
|
||
place-items: center;
|
||
width: 18px;
|
||
height: 18px;
|
||
border: none;
|
||
border-radius: 50%;
|
||
background: rgb(255 255 255 / 12%);
|
||
color: var(--text-primary);
|
||
font-size: 0.7rem;
|
||
line-height: 1;
|
||
cursor: pointer;
|
||
transition: background-color 0.15s ease;
|
||
}
|
||
|
||
.tb-tag button:hover {
|
||
background: rgb(239 68 68 / 60%);
|
||
}
|
||
|
||
/* ---------- Button ---------- */
|
||
|
||
.terminbuchung-seite .btn {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 0.5rem;
|
||
padding: 0.8rem 1.5rem;
|
||
border-radius: 999px;
|
||
font-family: var(--font-body);
|
||
font-weight: 600;
|
||
font-size: 0.95rem;
|
||
line-height: 1.2;
|
||
text-decoration: none;
|
||
border: 1px solid transparent;
|
||
cursor: pointer;
|
||
transition: transform 0.18s ease, box-shadow 0.18s ease,
|
||
background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
|
||
}
|
||
|
||
.terminbuchung-seite .btn-accent {
|
||
background: var(--accent);
|
||
color: #03242b;
|
||
}
|
||
|
||
.terminbuchung-seite .btn-accent:hover:not(:disabled) {
|
||
transform: translateY(-1px);
|
||
box-shadow: 0 10px 28px rgb(0 179 194 / 28%);
|
||
}
|
||
|
||
.terminbuchung-seite .btn-block {
|
||
width: 100%;
|
||
}
|
||
|
||
.terminbuchung-seite .btn:disabled {
|
||
opacity: 0.5;
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
.terminbuchung-seite .form-status {
|
||
display: none;
|
||
font-size: 0.9rem;
|
||
}
|
||
|
||
.terminbuchung-seite .form-status.is-visible {
|
||
display: block;
|
||
}
|
||
|
||
.terminbuchung-seite .form-status--ok {
|
||
color: #4ade80;
|
||
}
|
||
|
||
.terminbuchung-seite .form-status--error {
|
||
color: #f87171;
|
||
}
|
||
|
||
/* ---------- Footer ---------- */
|
||
|
||
.terminbuchung-seite .logo {
|
||
font-family: var(--font-display);
|
||
font-size: 1.35rem;
|
||
letter-spacing: -0.02em;
|
||
color: var(--text-muted);
|
||
text-decoration: none;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.terminbuchung-seite .logo span {
|
||
color: var(--accent);
|
||
}
|
||
|
||
.terminbuchung-seite .site-footer {
|
||
margin-top: 0;
|
||
padding: 64px 0 40px;
|
||
border-top: 1px solid var(--border);
|
||
background: rgb(255 255 255 / 1.5%);
|
||
}
|
||
|
||
.terminbuchung-seite .footer-grid {
|
||
display: grid;
|
||
grid-template-columns: 2fr 1fr 1fr;
|
||
gap: 48px;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-brand p {
|
||
color: var(--text-muted);
|
||
font-size: 0.95rem;
|
||
max-width: 340px;
|
||
margin-top: 14px;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-col h3 {
|
||
font-size: 0.85rem;
|
||
letter-spacing: 0.14em;
|
||
text-transform: uppercase;
|
||
color: var(--text-muted);
|
||
margin-bottom: 16px;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-col ul {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-col a {
|
||
display: block;
|
||
padding: 5px 0;
|
||
color: var(--text-muted);
|
||
text-decoration: none;
|
||
font-size: 0.92rem;
|
||
transition: color 0.15s ease;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-col a:hover {
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
.terminbuchung-seite .footer-legal {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
gap: 12px;
|
||
margin-top: 48px;
|
||
padding-top: 24px;
|
||
border-top: 1px solid var(--border);
|
||
color: var(--text-muted);
|
||
font-size: 0.85rem;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-legal a {
|
||
color: inherit;
|
||
text-decoration: none;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-legal a:hover {
|
||
color: var(--text-primary);
|
||
}
|
||
|
||
/* ---------- Scroll-Reveal ---------- */
|
||
|
||
.terminbuchung-seite .reveal {
|
||
opacity: 0;
|
||
transform: translateY(18px);
|
||
transition: opacity 0.6s ease, transform 0.6s ease;
|
||
}
|
||
|
||
.terminbuchung-seite .reveal.visible {
|
||
opacity: 1;
|
||
transform: none;
|
||
}
|
||
|
||
/* ---------- Responsiv ---------- */
|
||
|
||
@media (max-width: 980px) {
|
||
.terminbuchung-seite .tb-summary {
|
||
grid-template-columns: minmax(0, 1fr);
|
||
}
|
||
|
||
.terminbuchung-seite .footer-grid {
|
||
grid-template-columns: 1fr 1fr;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 760px) {
|
||
.terminbuchung-seite .section {
|
||
padding: 48px 0 64px;
|
||
}
|
||
|
||
.terminbuchung-seite .hero {
|
||
padding: 56px 0 48px;
|
||
}
|
||
|
||
.terminbuchung-seite .footer-grid {
|
||
grid-template-columns: 1fr;
|
||
gap: 32px;
|
||
}
|
||
}
|
||
|
||
/* Pop-up auf schmalen Bildschirmen */
|
||
@media (max-width: 560px) {
|
||
.tb-overlay {
|
||
padding: 12px;
|
||
align-items: stretch;
|
||
}
|
||
|
||
.tb-dialog {
|
||
max-height: calc(100vh - 24px);
|
||
padding: 22px 18px;
|
||
}
|
||
|
||
.tb-day {
|
||
min-height: 38px;
|
||
font-size: 0.8rem;
|
||
}
|
||
}
|
||
|
||
/* ---------- Reduzierte Bewegung ---------- */
|
||
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.terminbuchung-seite {
|
||
scroll-behavior: auto;
|
||
}
|
||
|
||
.terminbuchung-seite .reveal {
|
||
opacity: 1;
|
||
transform: none;
|
||
transition: none;
|
||
}
|
||
|
||
.terminbuchung-seite,
|
||
.terminbuchung-seite *,
|
||
.tb-overlay,
|
||
.tb-overlay * {
|
||
transition-duration: 0.01ms !important;
|
||
}
|
||
}
|