.appointment-page{background:#f2f4f8;min-height:100dvh;display:flex;flex-direction:column}.appointment-page header{position:static;background:white}.appointment-page .nav{min-height:84px}.return-link{font-size:15px;text-decoration:none}.appointment-wrap{width:min(940px,calc(100% - 40px));margin:32px auto 28px;flex:1}.preview-note{display:flex;align-items:baseline;gap:12px;font-size:14px;color:#4a3a1b;background:#fff8e9;border:1px solid #e9d6ad;border-radius:6px;padding:11px 16px;margin-bottom:18px}.preview-note strong{white-space:nowrap}.appointment-card{background:#fff;border:1px solid #dce2ec;border-radius:12px;box-shadow:0 12px 40px #01113f08;overflow:hidden}.appointment-heading{padding:25px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);border-top:4px solid var(--aqua)}.appointment-heading h1{font-size:29px;line-height:1.2;letter-spacing:-.025em;color:var(--navy);margin:0 0 7px}.appointment-heading p{font-size:16px;color:var(--muted);margin:0}.duration{font-size:14px;background:#eef8fa;color:#075d6e;border-radius:100px;padding:6px 13px;white-space:nowrap}.appointment-layout{display:grid;grid-template-columns:1.06fr 1fr}.choose-moment{padding:26px 30px 24px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.appointment-card h2{font-size:18px;letter-spacing:0;margin:0;line-height:1.4}.calendar-heading h2::first-letter{text-transform:uppercase}.month-buttons{display:flex;gap:7px}.month-buttons button{width:36px;height:36px;border:1px solid var(--line);background:white;border-radius:6px;color:var(--navy);font-size:25px;line-height:1;cursor:pointer}.month-buttons button:disabled{opacity:.3;cursor:default}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{font-size:13px;color:var(--muted);text-align:center;margin-bottom:7px}.calendar button,.calendar .empty-day{height:40px;display:flex;align-items:center;justify-content:center}.calendar button{border:1px solid transparent;border-radius:6px;background:#edf7f8;color:#075468;font-size:15px;font-weight:600;cursor:pointer}.calendar button:disabled{color:#939ba9;font-weight:400;background:transparent;cursor:default}.calendar button:not(:disabled):hover{border-color:var(--aqua)}.calendar button[aria-pressed=true]{background:var(--navy);color:#fff}.calendar button.today{box-shadow:inset 0 -2px var(--aqua)}.calendar-legend{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:7px;margin:12px 0 22px}.calendar-legend span{width:12px;height:12px;border-radius:3px;background:#edf7f8;border:1px solid #bedde2}.times-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px;margin:0 0 12px}.times-heading h2{font-size:16px}.times-heading>span{font-size:12px;color:var(--muted)}.times{display:flex;flex-wrap:wrap;gap:8px}.time-choice{background:white;border:1px solid #ccd6e3;color:var(--navy);border-radius:6px;min-height:42px;min-width:77px;padding:7px 15px;cursor:pointer;font-size:16px}.time-choice:hover{border-color:var(--aqua)}.time-choice[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:white}.availability-status{font-size:14px;color:var(--muted);margin-top:12px;min-height:1.6em}.appointment-form{padding:27px 30px 24px;border-left:1px solid var(--line);background:#fbfcfe}.appointment-form h2{margin-bottom:19px}.appointment-form label{display:block;font-size:14px;font-weight:600;color:var(--navy);margin:13px 0 5px}.appointment-form input{box-sizing:border-box;width:100%;font:inherit;font-size:16px;min-height:44px;padding:10px 12px;border:1px solid #cbd4e1;border-radius:5px;color:var(--ink);background:#fff}.appointment-form input::placeholder{color:#788294;font-size:14px}.appointment-summary{margin-top:22px;padding:13px 15px;border-left:3px solid var(--aqua);background:#edf6f8;display:flex;flex-direction:column;gap:3px;font-size:14px}.appointment-summary>span{color:var(--muted);font-size:12px}.appointment-summary strong{font-size:15px;font-weight:600;color:var(--navy)}.form-privacy{font-size:13px;color:var(--muted);line-height:1.5;margin:15px 0}.confirm-appointment{border:0;border-radius:5px;background:var(--navy);color:white;min-height:47px;width:100%;display:flex;align-items:center;justify-content:space-between;padding:11px 16px;font:inherit;font-size:16px;font-weight:600;cursor:pointer}.confirm-appointment:disabled{background:#dce1e9;color:#647086;cursor:not-allowed}.form-status{font-size:14px;line-height:1.5;color:#075468;margin-top:12px}.form-status:empty{display:none}.real-booking{font-size:14px;text-align:center;color:var(--muted);margin:20px 0 0}.appointment-footer{padding:18px 0;background:transparent;text-align:center;font-size:13px}.appointment-card :focus-visible{outline:3px solid var(--aqua);outline-offset:3px}@media(max-width:700px){.appointment-wrap{width:calc(100% - 28px);margin-top:20px}.preview-note{display:block;line-height:1.5}.preview-note strong{display:block;margin-bottom:3px}.appointment-layout{grid-template-columns:1fr}.appointment-heading{padding:21px}.appointment-heading h1{font-size:25px}.choose-moment{padding:22px}.appointment-form{padding:23px 22px;border-left:0;border-top:1px solid var(--line)}.appointment-page .nav{flex-wrap:nowrap;min-height:78px;gap:15px}.appointment-page .return-link{font-size:13px;max-width:75px;text-align:right}.appointment-page .brand small{font-size:11px}.duration{display:none}.calendar button,.calendar .empty-day{height:42px}.real-booking{line-height:1.6}.appointment-footer{font-size:12px}}

.appointment-dialog{width:min(940px,calc(100% - 32px));max-height:92dvh}.appointment-dialog .booking-body{padding:0}.appointment-dialog .preview-note{margin:0;border:0;border-bottom:1px solid #e9d6ad;border-radius:0;font-size:13px;padding:10px 25px}.appointment-dialog .appointment-card{border:0;border-radius:0;box-shadow:none}.appointment-dialog .appointment-layout{margin:0}.booking-open{overflow:hidden}@media(max-width:700px){.appointment-dialog{width:calc(100% - 20px);max-height:94dvh}.appointment-dialog .preview-note{padding:10px 20px}.appointment-dialog .preview-note strong{display:inline;margin-right:7px}}
.appointment-dialog[open]{display:flex;flex-direction:column}.appointment-dialog .dialog-head{flex-shrink:0}.appointment-dialog .booking-body{min-height:0;overflow:auto;overscroll-behavior:contain}
