#expa-booking {
    margin-inline: auto;
    position: relative;
    color: var(--expa-ink);
    font: 19px/1.45 Georgia, serif;
    text-align: start;
}
#expa-booking *, #expa-booking *::before, #expa-booking *::after { box-sizing: border-box; }
#expa-booking a { color: inherit; }
#expa-booking h2 { color: inherit; font: 700 32px/1.2 Lato, system-ui, sans-serif; margin: 0 0 18px; }
#expa-booking .expa-intro { margin: 0 0 66px; }
#expa-booking .expa-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 8px 20px; flex-wrap: wrap; border-bottom: 1px solid #dad8cf; padding-bottom: 6px; margin-bottom: 20px; font-size: 16px; }
#expa-booking .expa-meta strong { font: 700 23px/1.3 Lato, system-ui, sans-serif; }
#expa-booking .expa-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 50px; }
#expa-booking .expa-month { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; text-align: center; margin-bottom: 10px; }
#expa-booking .expa-month a { text-decoration: none; }
#expa-booking .expa-month > :first-child, #expa-booking .expa-month > :last-child { font-size: 28px; }
#expa-booking .expa-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); row-gap: 5px; text-align: center; }
#expa-booking .expa-grid > * { display: grid; place-items: center; min-height: 43px; text-decoration: none; position: relative; }
#expa-booking .expa-grid abbr { margin-bottom: 6px; }
#expa-booking .expa-grid a { font-size: 17px; }
#expa-booking .expa-day-available::after { content: ""; position: absolute; bottom: 5px; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
#expa-booking .expa-muted { opacity: .55; }
#expa-booking .expa-times { border: 0; padding: 0; margin: 0; min-width: 0; }
#expa-booking .expa-times legend { padding: 0; margin: 3px 0 28px; font: inherit; }
#expa-booking .expa-slots { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 2px; }
#expa-booking .expa-slots label { position: relative; cursor: pointer; }
#expa-booking .expa-slots input { position: absolute; opacity: 0; }
#expa-booking .expa-slots span { display: block; padding: 9px 4px; border: 1px solid #9c9e97; text-align: center; }
#expa-booking .expa-slots input:focus-visible + span { outline: 2px solid currentColor; outline-offset: -4px; }
#expa-booking .expa-day[aria-current], #expa-booking .expa-slots input:checked + span, #expa-booking button.expa-next {
    color: #fff;
    background: var(--expa-accent);
    border-color: var(--expa-accent);
}
#expa-booking button.expa-next { display: block; width: 100%; margin-top: 46px; padding: 9px 12px; border: 1px solid var(--expa-accent); border-radius: 0; font: inherit; letter-spacing: normal; text-transform: none; }
#expa-booking button:disabled { opacity: .65; cursor: not-allowed; }
#expa-booking .expa-details { display: grid; gap: 12px; }
#expa-booking .expa-details input, #expa-booking .expa-details textarea { display: block; width: 100%; }
@media (max-width: 620px) {
    #expa-booking .expa-columns { grid-template-columns: 1fr; gap: 20px; }
    #expa-booking .expa-intro { margin-bottom: 32px; }
    #expa-booking button.expa-next { margin-top: 25px; }
}

#expa-booking .expa-next-available {
    display: block;
    padding: 9px 12px;
    margin-top: 28px;
    color: #fff;
    background: var(--expa-accent);
    text-align: center;
    text-decoration: none;
}
#expa-booking:has(.expa-details) { width: min(100%, 940px); font: 16px/1.5 "Playfair Display", Georgia, serif; }
#erstberatung:has(.expa-details) > .elementor-widget-heading { display: none; }
#expa-booking .expa-back { display: inline-block; margin-bottom: 12px; font: 14px/1.4 Lato, system-ui, sans-serif; }
#expa-booking:has(.expa-details) h2 { margin-bottom: 36px; }
#expa-booking .expa-details { display: grid; grid-template-columns: minmax(0, 608fr) minmax(0, 280fr); align-items: start; gap: clamp(24px, 4vw, 52px); }
#expa-booking .expa-details h3 { font: 700 20px/1.3 Lato, system-ui, sans-serif; color: inherit; margin: 0 0 20px; }
#expa-booking .expa-customer h3 { font-weight: 400; }
#expa-booking .expa-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 24px; }
#expa-booking .expa-message { grid-column: 1 / -1; }
#expa-booking .expa-fields input, #expa-booking .expa-fields textarea {
    width: 100%; min-height: 40px; margin: 7px 0 0; padding: 8px 10px;
    border: 1px solid var(--expa-ink); border-radius: 0; color: inherit; background: transparent; font: inherit;
}
#expa-booking .expa-fields textarea { min-height: 92px; }
#expa-booking .expa-summary h3 { padding-bottom: 14px; border-bottom: 1px solid #dad8cf; }
#expa-booking .expa-summary details { padding-bottom: 14px; border-bottom: 1px solid #dad8cf; margin-bottom: 18px; }
#expa-booking .expa-summary summary { cursor: pointer; }
#expa-booking .expa-summary button.expa-next { margin-top: 28px; }
@media (max-width: 700px) {
    #expa-booking .expa-details { grid-template-columns: 1fr; }
}
@media (max-width: 460px) {
    #expa-booking .expa-fields { grid-template-columns: 1fr; }
}
#erstberatung:has(.expa-confirmation) > .elementor-widget-heading { display: none; }
#expa-booking .expa-confirmation { text-align: center; padding: clamp(24px, 5vw, 52px) 20px; border: 1px solid #dad8cf; }
#expa-booking .expa-confirmation-icon { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 16px; border: 1px solid var(--expa-ink); border-radius: 50%; }
#expa-booking .expa-confirmation p { max-width: 48ch; margin: 0 auto 12px; }
#expa-booking .expa-confirmation p:last-child { margin-bottom: 0; }
#erstgespraech #expa-booking:has(.expa-intro) h2 { font: 400 20px/1.3 Lato, system-ui, sans-serif; }
#erstgespraech #expa-booking .expa-intro { font: 400 16px/1.5 Lato, system-ui, sans-serif; }
