/* Digital Skill: current official ds-base.css / dsx-home.css palette, verified 2026-10-12. */
.booking-page{--ds-primary:#7557d6;--ds-hover:#553aa7;--ds-ink:#17201e;--ds-text:#35423f;--ds-muted:#68746f;--ds-paper:#fcfdfb;--ds-white:#fff;--ds-soft:#eef6f1;--ds-mint:#c9e5d8;--ds-line:#d8e5de;--ds-control:#68746f;--ds-disabled:#a6b0ac;--ds-error:#a12622;--navy:var(--ds-ink);--petrol:var(--ds-primary);--muted:var(--ds-muted);--line:var(--ds-line);color:var(--ds-text)}
.booking-page{min-height:100vh;background:var(--ds-paper)}.booking-top{max-width:1250px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 28px}.booking-top .brand{padding:0}.booking-mode{font-size:12px;color:var(--ds-text);border:1px solid var(--ds-line);border-radius:20px;padding:7px 12px;background:var(--ds-soft)}.booking-main{max-width:1250px;margin:0 auto;padding:5px 28px 30px}.booking-preview{padding:14px 18px;border:1px solid #e3d3af;border-radius:9px;background:#faf4e6;color:#7a602d;margin-bottom:22px;display:flex;align-items:flex-start;gap:17px;font-size:12px}.booking-preview strong{white-space:nowrap;font-weight:650}.booking-preview p{line-height:1.5}.booking-card{display:grid;grid-template-columns:280px minmax(270px,1fr) minmax(280px,.94fr);border:1px solid var(--ds-line);border-radius:15px;background:white;box-shadow:0 12px 40px rgb(23 32 30 / 3%);overflow:hidden}.booking-intro{padding:32px 27px;background:var(--ds-soft);border-right:1px solid var(--ds-line)}.booking-avatar{height:62px;width:62px;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:500;letter-spacing:1px;background:var(--ds-mint);border:1px solid var(--ds-line);border-radius:50%;color:var(--ds-text);margin-bottom:30px}.booking-intro h1{font-size:30px;line-height:1.18;letter-spacing:-1px;margin:8px 0 14px}.booking-intro-copy{font-size:14px;color:var(--ds-text);margin-bottom:28px}.booking-intro .field-label{font-size:12px}.booking-rules{font-size:12px;margin:26px 0}.booking-rules>div{margin-bottom:17px}.booking-rules dt{color:var(--ds-text);font-weight:600}.booking-rules dd{margin:3px 0 0;color:var(--ds-text)}.booking-privacy{font-size:12px;color:var(--ds-text);border-top:1px solid var(--ds-line);padding-top:19px}.booking-selection{padding:32px 24px;border-right:1px solid var(--ds-line);min-width:0}.booking-step-heading{display:flex;align-items:center;gap:10px;margin-bottom:24px}.booking-step-heading h2{font-size:16px;letter-spacing:-.25px}.booking-step-number{width:25px;height:25px;border-radius:50%;border:1px solid var(--ds-line);background:var(--ds-soft);color:var(--ds-text);font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.booking-month-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.booking-month-bar h3{font-size:15px;text-transform:capitalize}.booking-month-bar .icon-button{height:38px;min-width:38px}.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.booking-weekdays{font-size:11px;color:var(--ds-muted);text-align:center;margin-bottom:6px}.booking-days{margin-bottom:22px}.booking-day{display:flex;align-items:center;justify-content:center;min-height:38px;aspect-ratio:1;border:1px solid transparent;border-radius:50%;background:var(--ds-soft);color:var(--ds-text);font-size:13px;padding:0}.booking-day:hover:not(:disabled){background:var(--ds-mint);border-color:var(--ds-control)}.booking-day.is-selected,.booking-day.is-selected:hover:not(:disabled){background:var(--ds-primary);color:#fff;border-color:var(--ds-primary)}.booking-day.is-today{border-color:var(--ds-control)}.booking-day:disabled{background:transparent;color:var(--ds-disabled);cursor:default;opacity:1}.booking-day.is-other-month{color:var(--ds-disabled)}.booking-selection .text-input{font-size:12px}.booking-slot-section{margin-top:24px;padding-top:19px;border-top:1px solid var(--ds-line)}.booking-slot-section h3{font-size:14px;margin-bottom:8px}.booking-help{font-size:12px;color:var(--ds-muted);line-height:1.65}.booking-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.booking-slot{min-height:40px;border:1px solid var(--ds-control);border-radius:7px;color:var(--ds-hover);background:#fff;font-size:13px;font-weight:600}.booking-slot:hover{background:var(--ds-soft)}.booking-slot.is-selected{background:var(--ds-primary);color:white;border-color:var(--ds-primary)}.booking-contact{padding:32px 25px;min-width:0}.booking-selection-summary{font-size:14px;line-height:1.65;background:var(--ds-soft);border-radius:8px;padding:13px 14px;color:var(--ds-text);margin-bottom:20px;min-height:73px}.booking-selection-summary.has-selection{color:var(--ds-text);background:var(--ds-soft)}.booking-contact fieldset{border:0;padding:0;margin:0;min-width:0}.booking-contact fieldset:disabled{opacity:.55}.booking-contact .field-label{font-size:12px;margin-top:17px}.booking-contact .text-input{font-size:14px;min-height:44px}.booking-contact textarea{font-family:inherit;resize:vertical;max-height:200px}.booking-optional{font-size:11px;font-weight:400;color:var(--ds-muted);margin-left:3px}.booking-contact .booking-help{margin:18px 0}.booking-contact .button-primary{width:100%;min-height:45px;font-size:13px}.booking-contact .text-button{margin-top:14px}.booking-footer{text-align:center;font-size:11px;color:var(--ds-muted);padding:23px 0 0}.booking-result{max-width:690px;text-align:center;background:white;border:1px solid var(--ds-line);border-radius:15px;padding:42px 35px;margin:20px auto}.booking-result h1{font-size:28px;line-height:1.3;margin-bottom:16px}.booking-result-mark{width:56px;height:56px;border:1px solid var(--ds-line);border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ds-soft);color:#487340;font-size:27px;margin:0 auto 20px}.booking-result.is-pending .booking-result-mark{background:#fcf4e3;border-color:#e2ca99;color:#957134}.booking-result>p:not(.eyebrow){font-size:14px;line-height:1.7;color:var(--ds-text)}.booking-result-time{padding:16px 14px;border:1px solid var(--ds-line);border-radius:8px;background:var(--ds-soft);margin:22px 0;font-size:16px!important;color:var(--ds-text)!important}.booking-result .booking-help{font-size:12px!important;margin-top:18px;overflow-wrap:anywhere}.booking-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.booking-result .booking-actions{justify-content:center;margin-top:22px}.booking-result a{overflow-wrap:anywhere}.booking-manage{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:25px;border:1px solid var(--ds-line);border-radius:13px;padding:25px 28px;background:#fff;margin-bottom:23px}.booking-manage h1{font-size:25px;letter-spacing:-.6px;margin-bottom:10px}.booking-manage p{font-size:14px;color:var(--ds-text)}.booking-manage .booking-help{font-size:12px;margin-top:5px}.booking-cancel-confirm{border-top:1px solid var(--ds-line);padding-top:17px;width:100%}.booking-cancel-confirm>.booking-actions{margin-top:13px}.booking-danger{background:var(--ds-error)!important;border-color:var(--ds-error)!important}.booking-page .notice{margin-top:5px}.booking-page button:disabled{cursor:not-allowed}.booking-page #result-heading:focus{outline:none}
@media(max-width:1050px){.booking-card{grid-template-columns:240px minmax(250px,1fr)}.booking-contact{grid-column:1/-1;display:grid;grid-template-columns:240px 1fr;gap:0 24px;border-top:1px solid var(--ds-line)}.booking-contact .booking-step-heading{grid-column:1;margin-bottom:16px;align-self:start}.booking-contact .booking-selection-summary{grid-column:1;align-self:start;grid-row:2}.booking-contact form{grid-column:2;grid-row:1/4}.booking-contact .text-button{grid-column:1}.booking-selection{border-right:0}.booking-contact .field-label:first-child{margin-top:0}}
@media(max-width:650px){.booking-top{padding:21px 17px}.booking-top .brand{font-size:17px}.booking-mode{font-size:10px;padding:6px 9px}.booking-main{padding:0 14px 20px}.booking-preview{display:block;font-size:12px;padding:13px 15px;margin-bottom:17px}.booking-preview strong{display:block;margin-bottom:4px}.booking-card{display:block;border-radius:11px}.booking-intro{padding:23px 22px;border-right:0;border-bottom:1px solid var(--ds-line)}.booking-avatar{width:46px;height:46px;font-size:16px;float:right;margin:0 0 10px 15px}.booking-intro h1{font-size:27px;max-width:250px}.booking-intro-copy{font-size:13px;margin-bottom:18px}.booking-intro-copy br{display:none}.booking-rules{display:flex;gap:22px;margin:17px 0 0}.booking-rules>div{margin-bottom:13px}.booking-privacy{padding-top:12px}.booking-selection{padding:24px 22px}.booking-step-heading{margin-bottom:20px}.booking-day{min-height:42px;max-height:48px;aspect-ratio:auto}.booking-contact{display:block;padding:23px 22px}.booking-contact .booking-selection-summary{margin-bottom:22px}.booking-contact .field-label:first-child{margin-top:14px}.booking-contact .button-primary{margin-bottom:3px}.booking-result{padding:30px 20px;margin-top:7px}.booking-result h1{font-size:24px}.booking-manage{padding:21px;gap:17px}.booking-manage .button{font-size:12px;white-space:normal}.booking-footer{font-size:10px}.booking-days{gap:6px}.booking-month-bar .icon-button{min-height:42px;min-width:42px}}
.booking-choice-fieldset{border:0;padding:0;margin:25px 0 0;min-width:0}.booking-choice-fieldset legend{font-size:13px;font-weight:650;color:var(--ds-text);padding:0;margin-bottom:11px}.booking-duration-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.booking-duration-choice{display:flex;align-items:center;gap:10px;position:relative;border:1px solid var(--ds-control);border-radius:8px;background:#fff;padding:14px 12px;cursor:pointer;min-height:73px}.booking-duration-choice input,.booking-meeting-choice input{accent-color:var(--ds-primary);width:17px;height:17px;flex-shrink:0;margin:0}.booking-duration-copy{display:flex;flex-direction:column;gap:1px}.booking-duration-copy strong{font-size:25px;line-height:1.1;font-weight:600;color:var(--ds-text)}.booking-duration-copy>span{font-size:11px;color:var(--ds-text)}.booking-duration-choice:has(input:checked){background:var(--ds-primary);border-color:var(--ds-primary)}.booking-duration-choice:has(input:checked) .booking-duration-copy strong,.booking-duration-choice:has(input:checked) .booking-duration-copy>span{color:white}.booking-duration-choice:has(input:checked) input{accent-color:var(--ds-mint)}.booking-duration-choice:has(input:focus-visible),.booking-meeting-choice:has(input:focus-visible){outline:3px solid var(--ds-hover);outline-offset:3px}.booking-duration-choice:hover:not(:has(input:checked)){background:var(--ds-soft);border-color:var(--ds-control)}.booking-meeting-choices{display:flex;flex-direction:column;gap:10px}.booking-meeting-choice{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--ds-control);border-radius:8px;background:#fff;padding:13px 12px;cursor:pointer}.booking-meeting-choice input{margin-top:3px}.booking-meeting-copy{min-width:0;display:flex;flex-direction:column;gap:5px}.booking-meeting-copy strong{font-size:13px;line-height:1.4;color:var(--ds-text);font-weight:650}.booking-meeting-copy>span{font-size:11px;line-height:1.55;color:var(--ds-text)}.booking-meeting-choice:has(input:checked){border-color:var(--ds-primary);background:var(--ds-soft);box-shadow:inset 0 0 0 1px var(--ds-primary)}.booking-meeting-choice.is-unavailable{background:var(--ds-soft);cursor:not-allowed;border-color:var(--ds-line)}.booking-meeting-copy>.booking-mode-unavailable{font-size:10px;font-weight:600;color:#8b7448}.booking-meeting-choice.is-fixed{cursor:default}.booking-meeting-fieldset>.booking-help{font-size:11px;margin:10px 0 0;line-height:1.6}.booking-selection-summary{white-space:pre-line}.booking-meeting-details{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ds-text);margin:12px 0 7px;overflow-wrap:anywhere}.booking-meeting-details>strong{font-weight:600}.booking-meeting-details>.button{align-self:flex-start;white-space:normal;margin-top:7px}.booking-result .booking-meeting-details{align-items:center;padding-bottom:15px}.booking-result .booking-meeting-details>.button{align-self:center}.booking-result .booking-meeting-details .booking-help{margin-top:3px!important}.booking-meeting-details>span{font-size:12px;color:var(--ds-text)}
@media(max-width:650px){.booking-choice-fieldset{margin-top:20px}.booking-duration-choice{min-height:71px;padding:13px 16px;gap:13px}.booking-duration-copy strong{font-size:26px}.booking-duration-copy>span{font-size:12px}.booking-meeting-choice{padding:14px 15px}.booking-meeting-copy>span{font-size:12px}.booking-meeting-copy strong{font-size:14px}.booking-meeting-fieldset>.booking-help{font-size:12px}.booking-rules{margin-top:22px}}

/* Original Digital Skill wordmark, embedded in the booking page. */
.booking-brand{display:inline-flex;align-items:center;flex:0 1 auto;min-width:0;line-height:0;border-radius:4px}
.booking-brand-logo{display:block;width:156px;max-width:100%;height:auto}
.booking-top .booking-mode{flex-shrink:0}
@media(max-width:650px){.booking-brand-logo{width:132px}}

/* Scope shared components to the public booking page. */
.booking-page h1,.booking-page h2,.booking-page h3{color:var(--ds-ink)}
.booking-page .eyebrow,.booking-page .field-label{color:var(--ds-text)}
.booking-page a,.booking-page .text-button{color:var(--ds-hover)}
.booking-page .button-primary{background:var(--ds-primary);border-color:var(--ds-primary);color:var(--ds-white)}
.booking-page .button-primary:hover:not(:disabled){background:var(--ds-hover);border-color:var(--ds-hover)}
.booking-page .button-secondary{background:var(--ds-white);border-color:var(--ds-control);color:var(--ds-hover)}
.booking-page .button-secondary:hover,.booking-page .icon-button:hover{background:var(--ds-soft);border-color:var(--ds-hover)}
.booking-page .icon-button{color:var(--ds-hover)}
.booking-page .text-input{background:var(--ds-white);border-color:var(--ds-control);color:var(--ds-text)}
.booking-page .text-input::placeholder{color:var(--ds-muted);opacity:1}
.booking-page :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--ds-hover);outline-offset:3px}
.booking-slot:hover:not(.is-selected){border-color:var(--ds-hover)}
.booking-duration-choice:has(input:checked):hover,.booking-slot.is-selected:hover{background:var(--ds-hover);border-color:var(--ds-hover)}
.booking-meeting-choice:hover:not(.is-unavailable):not(.is-fixed){border-color:var(--ds-hover)}
.booking-page .notice.is-error{color:var(--ds-error)}
.booking-intro .booking-help{color:var(--ds-text)}

/* Small project note, separate from the booking flow. */
.booking-project-credit{margin:14px 0 4px;font-size:12px;line-height:1.6;color:var(--ds-text)}
.booking-project{max-width:650px;margin:0 auto;font-size:13px;line-height:1.7}
.booking-project summary{width:fit-content;max-width:100%;min-height:44px;margin:0 auto;padding:10px 4px;color:var(--ds-hover);cursor:pointer;text-underline-offset:3px}
.booking-project summary:hover{text-decoration:underline}
.booking-project-copy{padding:18px 22px;text-align:left;background:var(--ds-soft);border:1px solid var(--ds-line);border-radius:10px;color:var(--ds-text)}
.booking-project-copy p+p{margin-top:12px}
.booking-project-copy>a{display:inline-block;margin-top:12px;font-weight:600}
@media(max-width:650px){.booking-project-credit{max-width:270px;margin:14px auto 4px}.booking-project-copy{padding:17px 18px}}
