/* Appointment booking — follows the existing Novia typography and colours. */
#termin-buchen,#kontaktformular{scroll-margin-top:24px}
.booking-section{padding:64px 0 72px;background:linear-gradient(135deg,#edf5ff,#f8fbff 66%,#fff);border-bottom:1px solid #dce8f5}
.booking-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);align-items:center;gap:48px;margin-bottom:28px}
.booking-heading h2{margin:14px 0 18px;font-size:clamp(30px,3.5vw,45px);line-height:1.14;letter-spacing:-.025em;color:#061c50}
.booking-heading .lead{font-size:17px;line-height:1.75;max-width:730px;color:#536783}
.booking-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.booking-tags span{padding:7px 12px;border-radius:6px;border:1px solid #cfdef1;background:#fff;font-size:13px;font-weight:700;line-height:1.4;color:#24456f}
.booking-host{display:flex;align-items:center;gap:18px;padding:24px;border:1px solid #d1e1f2;background:#ffffffc9;border-radius:14px;min-width:0}
.booking-host img{width:76px;height:76px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 1px #d1e1f2;flex:0 0 76px}
.booking-host strong,.booking-host span{display:block;color:#061c50}
.booking-host strong{font-size:19px;line-height:1.3}
.booking-host span{margin-top:6px;font-size:14px;line-height:1.5;color:#536783}
.booking-card{background:#fff;border:1px solid #d1e1f2;border-radius:18px;box-shadow:0 16px 45px #061c500c;overflow:hidden}
.booking-placeholder{padding:38px;display:grid;grid-template-columns:100px minmax(0,1fr);gap:30px;align-items:center;min-height:230px}
.booking-symbol{display:grid;place-items:center;width:100px;height:100px;background:linear-gradient(135deg,#eef6ff,#deedff);border-radius:24px;color:#006bff}
.booking-symbol svg{width:48px;height:48px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.booking-placeholder h3{font-size:25px;line-height:1.3;color:#061c50;letter-spacing:-.02em}
.booking-placeholder p{font-size:16px;line-height:1.65;color:#536783;margin-top:12px;max-width:820px}
.booking-placeholder .actions{margin-top:22px;gap:14px}
.booking-placeholder .booking-privacy{font-size:13px;line-height:1.65;margin-top:18px;color:#60718a}
.booking-privacy a{color:#0061e7;text-decoration:underline;text-underline-offset:3px}
.booking-direct{font-size:14px;font-weight:700;color:#0061e7;padding:10px 0;text-decoration:underline;text-underline-offset:4px}
.booking-direct:hover{color:#0045ae}
.booking-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:18px 26px;background:#f5f9ff;border-bottom:1px solid #dce8f5}
.booking-controls strong{font-size:15px;color:#061c50}
.booking-close{background:#fff;border:1px solid #d1e1f2;border-radius:6px;padding:9px 14px;font:inherit;font-size:13px;font-weight:700;color:#24456f}
.booking-close:hover{border-color:#006bff;color:#0061e7}
.booking-mount{width:100%;height:780px;min-width:0}
.booking-mount iframe{border:0;width:100%}
.booking-status:empty{display:none}
.booking-status{margin:0;padding:16px 26px;font-size:14px;line-height:1.6;background:#f5f9ff;color:#24456f;border-top:1px solid #dce8f5}
.booking-fallback{padding:12px 26px 18px;font-size:13px;line-height:1.6;color:#60718a;border-top:1px solid #e7eef7}
.booking-fallback a{font-weight:700;color:#0061e7;text-decoration:underline;text-underline-offset:3px}
.booking-steps{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.booking-steps li{display:flex;gap:13px;align-items:flex-start;min-width:0}
.booking-step-number{display:grid;place-items:center;flex:0 0 30px;height:30px;border:1px solid #c5d9f0;border-radius:50%;font-size:12px;font-weight:700;color:#0061e7;background:#fff}
.booking-steps strong{display:block;font-size:15px;line-height:1.5;color:#061c50}
.booking-steps p{font-size:14px;line-height:1.65;margin-top:5px;color:#536783}
.booking-contact-actions{margin-top:26px}
.booking-banner{padding:52px 0;background:#edf5ff;border-top:1px solid #dce8f5}
.booking-banner-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center}
.booking-banner h2{font-size:clamp(25px,2.8vw,36px);line-height:1.2;letter-spacing:-.02em;margin-top:12px;color:#061c50}
.booking-banner p{margin-top:14px;max-width:820px;font-size:16px;line-height:1.7;color:#536783}
.booking-banner .btn{max-width:360px}
.footer-contact a.footer-booking{display:inline-flex;align-items:center;gap:10px;border:1px solid #91bfff66;border-radius:6px;padding:10px 14px;margin:20px 0 0;color:#fff;font-weight:700;font-size:14px;line-height:1.5}
.footer-contact a.footer-booking:hover{background:#ffffff12;border-color:#9ccfff;color:#d8edff}
.footer-booking svg{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:900px){.booking-heading{grid-template-columns:1fr;gap:24px}.booking-host{max-width:420px}.booking-banner-inner{grid-template-columns:1fr;gap:24px}.booking-banner .btn{justify-self:start}}
@media(max-width:650px){.booking-section{padding:42px 0 48px}.booking-heading h2{font-size:31px}.booking-heading .lead{font-size:16px}.booking-placeholder{grid-template-columns:1fr;gap:20px;padding:26px}.booking-symbol{width:62px;height:62px;border-radius:16px}.booking-symbol svg{width:34px;height:34px}.booking-placeholder h3{font-size:23px}.booking-placeholder .actions{align-items:stretch;flex-direction:column}.booking-placeholder .btn{width:100%;text-align:center;white-space:normal}.booking-direct{align-self:flex-start}.booking-steps{grid-template-columns:1fr;gap:18px}.booking-host{padding:18px}.booking-mount{height:1050px}.booking-controls{padding:16px 20px}.booking-status,.booking-fallback{padding-inline:20px}.booking-banner{padding:38px 0}.booking-contact-actions .btn{white-space:normal}}
@media(max-width:480px){.booking-section>.container{width:calc(100% - 24px);padding-inline:0}.booking-card{border-radius:12px}.booking-placeholder{padding:24px 20px}.booking-heading{padding-inline:8px}.booking-steps{padding-inline:8px}}
