:root{--book-soft:#edf6fd;--book-line:#cfd9e5}
.book-page{min-height:calc(100vh - 186px);padding:48px clamp(24px,4vw,68px) 78px;background:#fff}
.book-intro,.booking-workflow,.booking-confirmation{max-width:1440px;margin-inline:auto}
.book-intro h1{font:800 clamp(50px,5vw,76px)/.95 Manrope,sans-serif;letter-spacing:-.055em;margin:0;color:var(--navy)}
.book-intro>p{margin:16px 0 30px;color:var(--muted);font-size:18px}
.booking-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;list-style:none;padding:0;margin:0 0 24px;counter-reset:steps}
.booking-steps li{display:flex;align-items:center;gap:12px;color:#607084;font-size:14px;font-weight:700;position:relative}
.booking-steps li:not(:last-child):after{content:"";height:1px;background:#d6dde6;flex:1;margin-left:8px}
.booking-steps span{width:32px;height:32px;border:1.5px solid var(--navy);border-radius:50%;display:grid;place-items:center;flex:0 0 auto;color:var(--navy)}
.booking-steps .active{color:var(--orange)}.booking-steps .active span{background:var(--orange);border-color:var(--orange);color:#fff}
.booking-workflow{display:grid;grid-template-columns:1fr 1fr 1.05fr;gap:12px}
.booking-panel{border:1px solid var(--book-line);border-radius:11px;padding:26px 22px;min-width:0;background:#fff}
.panel-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:23px}.panel-heading>span{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;font-size:13px}.panel-heading h2{font:800 21px/1.2 Manrope;margin:1px 0 5px;letter-spacing:-.03em}.panel-heading p{font-size:13px;color:var(--muted);margin:0;line-height:1.45}
.service-list{display:grid;gap:12px}.service-choice{width:100%;display:grid;grid-template-columns:22px 1fr auto;gap:14px;align-items:center;text-align:left;padding:18px 16px;border:1px solid var(--book-line);border-radius:9px;background:#fff;color:var(--navy);cursor:pointer;font:inherit}.service-choice:hover,.service-choice:focus-visible{border-color:var(--orange);outline:none;box-shadow:0 0 0 3px #ff451c17}.service-choice.selected{border:2px solid var(--orange);padding:17px 15px;background:#fffaf8}.service-radio{width:20px;height:20px;border:1.5px solid var(--navy);border-radius:50%;position:relative}.selected .service-radio{border-color:var(--orange)}.selected .service-radio:after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--orange)}.service-name{font-weight:800}.service-description{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:400;line-height:1.35}.service-duration{font-size:12px;color:var(--muted);white-space:nowrap}.timezone-note,.privacy-note{display:flex;align-items:flex-start;gap:8px;color:var(--muted);font-size:12px;line-height:1.45}.timezone-note{margin:26px 2px 0}.timezone-note svg,.privacy-note svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7}
.date-label,.details-panel label{display:flex;flex-direction:column;gap:7px;color:var(--navy);font-weight:800;font-size:13px}.date-label input,.details-panel input,.details-panel textarea{width:100%;border:1px solid #9eafc1;border-radius:7px;padding:12px 13px;background:#fff;color:var(--navy);font:500 15px "DM Sans";outline:none}.date-label input:focus,.details-panel input:focus,.details-panel textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px #ff451c18}.date-label input:disabled{background:#f2f5f7;color:#8a97a5}.slot-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 12px;font-size:13px}.slot-heading span{color:var(--muted);font-size:11px}.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.time-slots>p{grid-column:1/-1;color:var(--muted);font-size:13px;line-height:1.5;padding:12px 0;margin:0}.slot-button{min-height:40px;border:1px solid #8297ad;border-radius:5px;background:#fff;color:var(--navy);font:700 12px "DM Sans";cursor:pointer}.slot-button:hover,.slot-button:focus-visible{border-color:var(--orange);outline:none}.slot-button.selected{background:var(--orange);color:#fff;border-color:var(--orange)}.loading-copy{color:var(--muted);font-size:13px}
.details-panel form{display:grid;gap:14px}.details-panel label{margin:0}.details-panel small{font-weight:500;color:var(--muted)}.details-panel textarea{resize:vertical;min-height:88px}.website-field{position:absolute!important;left:-9999px!important}.confirm-button{min-height:50px;border:0;border-radius:6px;background:var(--orange);color:#fff;font:800 16px Manrope;cursor:pointer;margin-top:2px}.confirm-button:disabled{background:#aab5c0;cursor:not-allowed}.confirm-button:not(:disabled):hover{background:#df3514}.form-message{color:#bd2e16;font-size:13px;min-height:18px;margin:0}.privacy-note{margin:0 auto;max-width:300px;text-align:left}
.booking-confirmation{max-width:720px;padding:58px 54px;text-align:center;border:1px solid #bdd2e5;border-radius:14px;background:var(--book-soft);box-shadow:0 18px 55px #0a27420c}.confirmation-check{width:72px;height:72px;margin:0 auto 22px;border:2px solid var(--navy);border-radius:50%;display:grid;place-items:center}.confirmation-check svg{width:38px;height:38px;fill:none;stroke:var(--navy);stroke-width:2.2}.booking-confirmation h2{font:800 42px/1 Manrope;margin:0;letter-spacing:-.04em}.booking-confirmation>p{color:var(--muted)}.booking-summary{margin:24px auto;font-size:16px;line-height:1.55}.booking-summary strong{display:block;font:800 20px Manrope}.booking-confirmation hr{border:0;border-top:1px solid #b9c9d8;margin:28px 0}.calendar-prompt{font-weight:700!important;color:var(--navy)!important}.calendar-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.calendar-actions a{min-height:52px;border:1px solid #738aa2;border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;gap:9px;font-weight:800;font-size:13px;cursor:pointer}.calendar-actions a:hover{border-color:var(--orange);color:var(--orange)}.calendar-brand{font:800 18px Manrope}.google{color:#4285f4}.apple{color:#111}.outlook{color:#1676d2}.book-again{margin-top:26px;padding:11px 17px;border:1px solid var(--navy);border-radius:6px;background:transparent;color:var(--navy);font-weight:800;cursor:pointer}
@media(max-width:1180px){.booking-workflow{grid-template-columns:1fr 1fr}.details-panel{grid-column:1/-1}.details-panel form{grid-template-columns:1fr 1fr}.details-panel label:nth-of-type(4),.confirm-button,.form-message,.privacy-note{grid-column:1/-1}}
@media(max-width:900px){.book-page{padding-top:38px}.booking-steps{grid-template-columns:repeat(4,auto);gap:8px;overflow-x:auto;padding-bottom:6px}.booking-steps li{white-space:nowrap}.booking-steps li:after{display:none!important}.booking-workflow{grid-template-columns:1fr}.details-panel{grid-column:auto}.details-panel form{grid-template-columns:1fr}.details-panel label:nth-of-type(4),.confirm-button,.form-message,.privacy-note{grid-column:auto}.calendar-actions{grid-template-columns:1fr}footer nav{flex-wrap:wrap}}
@media(max-width:600px){.book-page{padding:32px 18px 55px}.book-intro h1{font-size:47px}.book-intro>p{font-size:16px}.booking-steps li{font-size:12px}.booking-steps span{width:28px;height:28px}.booking-panel{padding:22px 17px}.time-slots{grid-template-columns:repeat(2,1fr)}.booking-confirmation{padding:42px 20px}.booking-confirmation h2{font-size:36px}}
