:root{--booking-ink:#081b2b;--booking-muted:#61788a;--booking-line:#d8e7ef;--booking-blue:#126ca8;--booking-cyan:#35c9ef;--booking-soft:#f2f8fb;--booking-card:#fff}
.booking-page{min-height:70vh;background:radial-gradient(circle at 84% 8%,rgba(85,213,255,.18),transparent 28%),linear-gradient(180deg,#f4fafc 0,#fff 45%,#f3f8fb 100%);color:var(--booking-ink)}
.booking-container{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.booking-hero{position:relative;overflow:hidden;padding:66px 0 44px;background:linear-gradient(125deg,#071725,#0d3554 64%,#16618e);color:#fff}
.booking-hero::after{content:"";position:absolute;right:-8%;top:-80%;width:560px;height:560px;border:1px solid rgba(85,213,255,.16);border-radius:50%;box-shadow:0 0 0 68px rgba(85,213,255,.045),0 0 0 138px rgba(85,213,255,.025)}
.booking-hero .booking-container{position:relative;z-index:1}
.booking-kicker,.booking-label{color:#1876ab;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.booking-kicker{display:inline-flex;align-items:center;gap:9px;color:#a7ecff}.booking-kicker span{width:8px;height:8px;border-radius:50%;background:#55d5ff;box-shadow:0 0 0 6px rgba(85,213,255,.13)}
.booking-hero h1{max-width:780px;margin:14px 0 14px;font-size:clamp(38px,5.3vw,66px);line-height:.98;letter-spacing:-.045em}
.booking-hero>div>p{max-width:740px;margin:0;color:#c5dce9;font-size:18px;line-height:1.6}
.booking-steps{display:flex;gap:38px;margin:34px 0 0;padding:0;list-style:none}.booking-steps li{position:relative;display:flex;align-items:center;gap:9px;color:#8fa9ba;font-size:13px;font-weight:800}.booking-steps li:not(:last-child)::after{content:"";position:absolute;left:calc(100% + 11px);width:16px;height:1px;background:rgba(255,255,255,.25)}.booking-steps span{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(255,255,255,.24);border-radius:50%}.booking-steps .is-current{color:#fff}.booking-steps .is-current span{border-color:#55d5ff;background:#146da5;box-shadow:0 0 0 5px rgba(85,213,255,.11)}
.booking-workspace{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:22px;padding-block:30px 58px;align-items:start}
.booking-calendar-card,.booking-slots-card,.booking-details-card{border:1px solid rgba(18,108,168,.15);border-radius:24px;background:var(--booking-card);box-shadow:0 18px 50px rgba(20,70,99,.09)}
.booking-calendar-card,.booking-slots-card{padding:27px}.booking-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.booking-card-head h2,.booking-details-card h2{margin:5px 0 0;font-size:clamp(23px,2.6vw,31px);line-height:1.12;letter-spacing:-.025em}
.timezone-control{display:grid;gap:5px;color:var(--booking-muted);font-size:11px;font-weight:800}.timezone-control select{max-width:210px;min-height:42px;padding:0 34px 0 12px;border:1px solid var(--booking-line);border-radius:12px;background:#f8fbfd;color:var(--booking-ink);font:700 13px/1.2 inherit;cursor:pointer}
.timezone-note{display:flex;align-items:center;gap:8px;margin:17px 0 0;padding:10px 12px;border-radius:12px;background:#ecf8fd;color:#3f6c84;font-size:12px;line-height:1.4}.timezone-note svg{flex:0 0 17px;width:17px;height:17px;fill:none;stroke:#1681b8;stroke-width:1.7}
.calendar-toolbar{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:12px;margin:24px 0 18px}.calendar-toolbar h3{margin:0;text-align:center;font-size:20px;text-transform:capitalize}.calendar-arrow{width:42px;height:42px;border:1px solid var(--booking-line);border-radius:12px;background:#fff;color:#175e89;font-size:20px;cursor:pointer;transition:.18s}.calendar-arrow:hover:not(:disabled),.calendar-arrow:focus-visible{border-color:#54c8e9;background:#eaf8fd;transform:translateY(-1px)}.calendar-arrow:disabled{opacity:.32;cursor:not-allowed}
.calendar-weekdays,.booking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekdays{margin-bottom:7px;color:#8297a6;font-size:11px;font-weight:900;text-align:center;text-transform:uppercase}.calendar-weekdays span{padding:7px 0}.calendar-day{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;border:1px solid transparent;border-radius:14px;background:transparent;color:#8ca0ac;font:800 14px/1 inherit;cursor:default}.calendar-day.is-current-month{color:#506a7b}.calendar-day.has-slots{border-color:#c0e9f6;background:linear-gradient(145deg,#f0fbfe,#e2f5fb);color:#0e608d;cursor:pointer;box-shadow:inset 0 1px 0 #fff;transition:.16s}.calendar-day.has-slots::after{content:"";position:absolute;bottom:6px;width:5px;height:5px;border-radius:50%;background:#1db8df}.calendar-day.has-slots:hover,.calendar-day.has-slots:focus-visible{border-color:#21b6df;transform:translateY(-2px);box-shadow:0 7px 15px rgba(28,151,194,.16)}.calendar-day.is-selected{border-color:#126ca8;background:linear-gradient(145deg,#126ca8,#1e9dcc);color:#fff;box-shadow:0 9px 22px rgba(18,108,168,.3)}.calendar-day.is-selected::after{background:#fff}.calendar-day.is-today:not(.is-selected){outline:2px solid rgba(18,108,168,.32);outline-offset:-3px}.calendar-day:disabled{opacity:.46}
.calendar-legend{display:flex;flex-wrap:wrap;gap:15px;margin-top:17px;color:#718897;font-size:11px}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend i{width:9px;height:9px;border:1px solid #cedde5;border-radius:50%;background:#f4f7f9}.calendar-legend i.is-available{border-color:#2bbce1;background:#8ee5f8}
.booking-status{min-height:20px;margin:15px 0 0;color:#617b8d;font-size:13px}.booking-status.is-error{color:#a53e39}.booking-status button{padding:0;border:0;background:none;color:#126ca8;font:800 inherit;text-decoration:underline;cursor:pointer}
.slot-duration{padding:7px 10px;border:1px solid #bfe8f5;border-radius:999px;background:#effaff;color:#176d9c;font-size:11px;font-weight:900;white-space:nowrap}.selected-date{min-height:44px;margin:20px 0 15px;color:#526e80;font-size:14px;line-height:1.5}.booking-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;min-height:154px;align-content:start}.slots-placeholder{grid-column:1/-1;display:grid;place-items:center;align-content:center;min-height:154px;padding:20px;border:1px dashed #cbdce6;border-radius:17px;background:#f8fbfd;text-align:center;color:#78909f}.slots-placeholder span{font-size:30px;color:#26a9d1}.slots-placeholder p{max-width:250px;margin:8px 0 0;font-size:13px;line-height:1.45}.slot-button{min-height:43px;border:1px solid #c6e2ed;border-radius:12px;background:#fff;color:#165f88;font:900 14px/1 inherit;cursor:pointer;transition:.16s}.slot-button:hover,.slot-button:focus-visible{border-color:#26b9df;background:#eaf9fd;transform:translateY(-1px)}.slot-button.is-selected{border-color:#126ca8;background:#126ca8;color:#fff;box-shadow:0 7px 16px rgba(18,108,168,.25)}
.booking-help{display:grid;gap:3px;margin-top:20px;padding:15px 16px;border-radius:15px;background:linear-gradient(135deg,#edf8fc,#f6fbfd);color:#6c8494;font-size:12px;line-height:1.45}.booking-help strong{color:#245d7b;font-size:13px}
.booking-details-card{grid-column:1/-1;display:grid;grid-template-columns:.72fr 1.28fr;gap:32px;padding:32px}.booking-details-intro p{max-width:330px;margin:12px 0 0;color:var(--booking-muted);line-height:1.6}.booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-form>label:not(.booking-consent){display:grid;gap:6px;color:#213d4e;font-size:13px;font-weight:900}.booking-form input,.booking-form textarea{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #cbdde7;border-radius:12px;background:#fafdfe;color:#081b2b;font:500 14px/1.4 inherit;transition:.16s}.booking-form textarea{min-height:116px;resize:vertical}.booking-form input:focus,.booking-form textarea:focus,.timezone-control select:focus{outline:3px solid rgba(53,201,239,.2);border-color:#1db5dd}.booking-wide{grid-column:1/-1}.booking-summary{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #9eddef;border-radius:15px;background:#ecf9fd}.booking-summary[hidden]{display:none}.booking-summary-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#0f916f;color:#fff;font-weight:900}.booking-summary div{display:grid;gap:2px;min-width:0}.booking-summary strong{font-size:14px}.booking-summary div span{color:#567487;font-size:12px}.booking-summary button{margin-left:auto;border:0;background:none;color:#116e9f;font:900 12px/1 inherit;cursor:pointer}.booking-privacy{margin:0;color:#708695;font-size:11px;line-height:1.55}.booking-privacy a,.booking-consent a{color:#126ca8}.booking-consent{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;color:#637b8b;font-size:12px;line-height:1.45}.booking-consent input{width:16px;height:16px;margin:2px 0;padding:0}.booking-submit-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:5px}.booking-submit-row p{margin:0;color:#637c8c;font-size:12px;line-height:1.4}.booking-submit-row p.is-error{color:#a33b37}.booking-submit-row button{flex:0 0 auto;min-height:48px;padding:0 21px;border:1px solid #4fd5f5;border-radius:13px;background:linear-gradient(105deg,#126da8,#1aa3d3);color:#fff;font:900 14px/1 inherit;cursor:pointer;box-shadow:0 10px 21px rgba(18,108,168,.22);transition:.18s}.booking-submit-row button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 13px 25px rgba(18,108,168,.28)}.booking-submit-row button:disabled{border-color:#c8d5dc;background:#dbe4e9;color:#83949f;box-shadow:none;cursor:not-allowed}
.booking-dialog{position:fixed;z-index:10020;inset:0;display:grid;place-items:center;padding:20px}.booking-dialog[hidden]{display:none}.booking-dialog-shade{position:absolute;inset:0;background:rgba(3,17,29,.7);backdrop-filter:blur(6px)}.booking-dialog section{position:relative;width:min(100%,450px);box-sizing:border-box;padding:34px 30px 28px;border:1px solid rgba(85,213,255,.7);border-radius:24px;background:linear-gradient(145deg,#fff,#effaff);box-shadow:0 28px 70px rgba(0,0,0,.32);text-align:center}.booking-dialog-mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(135deg,#0b9b75,#38ceb0);color:#fff;font-size:29px;font-weight:900}.booking-dialog h2{margin:6px 0 11px;font-size:28px}.booking-dialog section>p:not(.booking-label){margin:0;color:#587285;line-height:1.55}.booking-dialog button{min-width:145px;min-height:44px;margin-top:22px;border:0;border-radius:12px;background:#126fa9;color:#fff;font:900 14px/1 inherit;cursor:pointer}
@media(max-width:880px){.booking-workspace{grid-template-columns:1fr}.booking-details-card{grid-template-columns:1fr}.booking-details-intro p{max-width:none}}
@media(max-width:600px){.booking-container{width:min(100% - 24px,1180px)}.booking-hero{padding:40px 0 32px}.booking-hero>div>p{font-size:16px}.booking-steps{gap:25px;margin-top:25px}.booking-steps li{font-size:11px}.booking-calendar-card,.booking-slots-card,.booking-details-card{padding:20px 16px;border-radius:20px}.booking-card-head{display:grid}.timezone-control select{max-width:none;width:100%}.calendar-weekdays,.booking-calendar{gap:4px}.calendar-day{border-radius:11px;font-size:13px}.booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-form{grid-template-columns:1fr}.booking-wide{grid-column:auto}.booking-submit-row{align-items:stretch;flex-direction:column}.booking-submit-row button{width:100%}.booking-dialog section{padding:30px 20px 24px}}
@media(prefers-reduced-motion:reduce){.calendar-day,.calendar-arrow,.slot-button,.booking-submit-row button{transition:none!important}}
