.appointment-root{--appointment-paper:var(--color-bg);--appointment-surface:var(--color-surface);--appointment-ink:var(--color-heading);--appointment-text:var(--color-text);--appointment-muted:var(--color-muted);--appointment-green:var(--color-accent);--appointment-green-hover:var(--color-accent-hover);--appointment-rule:var(--color-border);--appointment-rust:#b65a2a;--appointment-error:#8a2a2a;background:var(--appointment-paper);min-height:60vh;color:var(--appointment-text);font-family:var(--font-sans);overflow:hidden}.appointment-root .appointment-shell{width:100%;max-width:var(--max-width);padding:clamp(3rem, 7vw, 5rem) var(--space-4);margin-inline:auto}.appointment-root .appointment-intro,.appointment-root .wizard-progress,.appointment-root .sales-progress,.appointment-root .appointment-card{max-width:48rem}.appointment-root .appointment-intro{margin-bottom:var(--space-7)}.appointment-root .appointment-eyebrow,.appointment-root .appointment-step,.appointment-root .summary-success__eyebrow,.appointment-root .success-eyebrow{margin:0 0 var(--space-3);color:var(--appointment-rust);letter-spacing:.1em;text-transform:uppercase;font:500 .72rem/1.4 JetBrains Mono,ui-monospace,monospace}.appointment-root .appointment-intro h1{margin:0 0 var(--space-4);color:var(--appointment-ink);letter-spacing:-.045em;font:700 clamp(2.5rem,6vw,4.5rem)/1 Space Grotesk,system-ui,sans-serif}.appointment-root .appointment-intro>p:last-child{max-width:42rem;color:var(--appointment-text);margin:0;font-size:1.05rem;line-height:1.65}.appointment-root .appointment-card{margin-top:var(--space-6);padding-top:var(--space-7);border-top:1px solid var(--appointment-rule)}.appointment-root .appointment-card>h2{margin:0 0 var(--space-3);color:var(--appointment-ink);letter-spacing:-.035em;font:600 clamp(1.75rem,4vw,2.7rem)/1.08 Space Grotesk,system-ui,sans-serif}.appointment-root .appointment-card>h2:before{content:"> ";color:var(--appointment-rust);font:500 .65em JetBrains Mono,ui-monospace,monospace}.appointment-root .appointment-card>h2+p{max-width:42rem;margin-bottom:var(--space-6)}.appointment-root .wizard-progress,.appointment-root .sales-progress{border-block:1px solid var(--appointment-rule);align-items:center;gap:0;padding:0;display:flex}.appointment-root .wizard-progress ol,.appointment-root .sales-progress ol{margin:0;padding:0;list-style:none;display:contents}.appointment-root .wizard-progress li,.appointment-root .sales-progress li{min-width:0;color:var(--appointment-muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.45rem;padding:.75rem .85rem .7rem 0;font:500 .7rem/1.25 JetBrains Mono,ui-monospace,monospace;display:flex;position:relative}.appointment-root .wizard-progress li:not(:last-child):after,.appointment-root .sales-progress li:not(:last-child):after{content:"";background:var(--appointment-rule);width:clamp(.65rem,2vw,1.5rem);height:1px;margin-left:.1rem}.appointment-root .wizard-progress li.current,.appointment-root .sales-progress li.current{color:var(--appointment-ink)}.appointment-root .wizard-progress li.complete,.appointment-root .sales-progress li.complete{color:var(--appointment-green)}.appointment-root .wizard-step__marker,.appointment-root .sales-progress li>span:first-child{color:inherit;flex:none}.appointment-root .wizard-progress li:not(.complete) .wizard-step__marker:after,.appointment-root .sales-progress li:not(.complete)>span:first-child:after{content:"."}.appointment-root .wizard-step__label,.appointment-root .sales-progress strong{font:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appointment-root .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.appointment-root .selection-list,.appointment-root .sales-options,.appointment-root .bring-in-list{gap:var(--space-3);margin:var(--space-6) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.appointment-root .selection-card,.appointment-root .sales-option,.appointment-root .bring-in-list button{border:1px solid var(--appointment-rule);background:var(--appointment-surface);width:100%;min-height:4.75rem;color:var(--appointment-text);box-shadow:none;cursor:pointer;font:inherit;text-align:left;border-radius:2px;padding:1.2rem 1.25rem;transition:border-color .15s,background .15s}.appointment-root .selection-card strong,.appointment-root .sales-option{color:var(--appointment-ink);font-family:Space Grotesk,system-ui,sans-serif;font-size:1.05rem;font-weight:600;line-height:1.3}.appointment-root .selection-card strong{margin-bottom:.35rem;display:block}.appointment-root .selection-card span,.appointment-root .selection-card li{color:var(--appointment-text);font-size:.92rem;line-height:1.55}.appointment-root .selection-card ul{margin:.6rem 0 0;padding-left:1.15rem}.appointment-root .selection-card li::marker{color:var(--appointment-rust)}.appointment-root .selection-card:hover,.appointment-root .sales-option:hover,.appointment-root .bring-in-list button:hover{border-color:var(--appointment-green)}.appointment-root .selection-card.selected,.appointment-root .sales-option.selected,.appointment-root .bring-in-list button.selected{border-color:var(--appointment-green);box-shadow:inset 4px 0 0 var(--appointment-green);background:#e6decc}.appointment-root .description-field,.appointment-root .sales-field,.appointment-root .details-grid label{gap:var(--space-2);color:var(--appointment-ink);font:600 .82rem/1.4 Space Grotesk,system-ui,sans-serif;display:grid}.appointment-root .description-field,.appointment-root .sales-field{margin:var(--space-6) 0}.appointment-root .sales-field--short{max-width:18rem}.appointment-root .description-field small,.appointment-root .sales-field small{color:var(--appointment-muted);font:inherit;font-weight:400}.appointment-root input,.appointment-root textarea,.appointment-root select{box-sizing:border-box;width:100%;min-height:3rem;padding:var(--space-3);border:1px solid var(--appointment-rule);background:var(--appointment-surface);color:var(--appointment-text);font:400 1rem/1.5 var(--font-sans);border-radius:2px}.appointment-root textarea{resize:vertical;min-height:9rem}.appointment-root input:focus,.appointment-root textarea:focus,.appointment-root select:focus{outline:2px solid var(--appointment-green);outline-offset:2px;border-color:var(--appointment-green)}.appointment-root .input-suffix{align-items:center;gap:var(--space-3);display:flex}.appointment-root .input-suffix span{color:var(--appointment-muted)}.appointment-root .details{margin:var(--space-6) 0}.appointment-root .details-intro{color:var(--appointment-text)}.appointment-root .details-grid{gap:var(--space-5);margin:var(--space-6) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.appointment-root .details-grid label.error span,.appointment-root .details-grid label small,.appointment-root .field-error{color:var(--appointment-error)!important}.appointment-root .details-grid label small{font-weight:400}.appointment-root .booking-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.appointment-root .appointment-button,.appointment-root .details-submit,.appointment-root .summary-confirm,.appointment-root .summary-back,.appointment-root .summary-actions button,.appointment-root .sales-success button,.appointment-root .service-state button{min-height:2.9rem;padding:var(--space-3) var(--space-5);border-radius:var(--radius);background:var(--appointment-green);color:var(--color-accent-contrast,#fff);cursor:pointer;font:700 .85rem/1.2 var(--font-sans);letter-spacing:.05em;text-transform:uppercase;border:1px solid #0000;transition:background .15s,color .15s,border-color .15s;display:inline-block}.appointment-root .appointment-button:hover,.appointment-root .details-submit:hover,.appointment-root .summary-confirm:hover,.appointment-root .summary-actions .confirm:hover,.appointment-root .service-state button:hover{background:var(--appointment-green-hover)}.appointment-root .appointment-button--secondary,.appointment-root .summary-back,.appointment-root .summary-actions .secondary,.appointment-root .sales-success .secondary,.appointment-root .service-state button{border-color:var(--appointment-rule);color:var(--appointment-ink);background:0 0}.appointment-root .appointment-button--secondary:hover,.appointment-root .summary-back:hover,.appointment-root .summary-actions .secondary:hover,.appointment-root .sales-success .secondary:hover,.appointment-root .service-state button:hover{border-color:var(--appointment-ink);background:0 0}.appointment-root button:focus-visible,.appointment-root input:focus-visible,.appointment-root textarea:focus-visible,.appointment-root select:focus-visible{outline:2px solid var(--appointment-rust);outline-offset:3px}.appointment-root button:disabled{opacity:.45;cursor:not-allowed}.appointment-root .appointment-actions,.appointment-root .summary-actions{justify-content:space-between;gap:var(--space-3);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--appointment-rule);flex-wrap:wrap;display:flex}.appointment-root .appointment-edit-links{margin-top:var(--space-5);flex-wrap:wrap;gap:.5rem 1rem;display:flex}.appointment-root .appointment-edit-links button{color:var(--appointment-green);cursor:pointer;font:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.appointment-root .calendar,.appointment-root .bring-in-options,.appointment-root .slot-days{margin:var(--space-6) 0}.appointment-root .calendar-navigation{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.appointment-root .calendar-navigation strong,.appointment-root .slot-days legend{color:var(--appointment-ink);text-transform:capitalize;font-family:Space Grotesk,system-ui,sans-serif;font-weight:600}.appointment-root .calendar-navigation button{border:1px solid var(--appointment-rule);min-height:2.75rem;color:var(--appointment-ink);cursor:pointer;font:inherit;background:0 0;border-radius:2px;padding:.65rem .8rem}.appointment-root .calendar-weekdays,.appointment-root .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;display:grid}.appointment-root .calendar-weekdays{color:var(--appointment-muted);text-align:center;margin-bottom:.35rem;font-size:.75rem;font-weight:700}.appointment-root .calendar-grid button{border:1px solid var(--appointment-rule);min-height:2.9rem;color:var(--appointment-muted);cursor:not-allowed;font:inherit;background:#e6decc;border-radius:2px}.appointment-root .calendar-grid button.available{background:var(--appointment-surface);color:var(--appointment-ink);cursor:pointer}.appointment-root .calendar-grid button.available:hover,.appointment-root .calendar-grid button.selected{border-color:var(--appointment-green)}.appointment-root .calendar-grid button.selected{background:var(--appointment-green);color:var(--appointment-paper);box-shadow:inset 0 -3px 0 var(--appointment-rust)}.appointment-root .calendar-grid button.outside{visibility:hidden}.appointment-root .bring-in-explanation{margin-bottom:var(--space-5);padding:var(--space-4) var(--space-5);border-left:4px solid var(--appointment-green);background:var(--appointment-surface);color:var(--appointment-text)}.appointment-root .slot-days{gap:var(--space-4);display:grid}.appointment-root .slot-days fieldset{padding:var(--space-4);border:1px solid var(--appointment-rule);margin:0}.appointment-root .slot-days legend{padding:0 .4rem}.appointment-root .slot-times{flex-wrap:wrap;gap:.65rem;display:flex}.appointment-root .slot-times button{border:1px solid var(--appointment-green);background:var(--appointment-surface);min-width:5.5rem;min-height:2.75rem;color:var(--appointment-ink);cursor:pointer;border-radius:2px;padding:.7rem 1rem;font:600 .85rem JetBrains Mono,ui-monospace,monospace}.appointment-root .slot-times button:hover,.appointment-root .slot-times button.selected{background:var(--appointment-green);color:var(--appointment-paper)}.appointment-root .appointment-placeholder,.appointment-root .selection-status,.appointment-root .calendar-status,.appointment-root .bring-in-status,.appointment-root .service-state{min-height:6rem;margin:var(--space-6) 0;padding:var(--space-4);border:1px dashed var(--appointment-rule);color:var(--appointment-text);text-align:center;place-items:center;display:grid}.appointment-root .selection-status--error,.appointment-root .calendar-status--error,.appointment-root .bring-in-status--error,.appointment-root .service-state--error,.appointment-root .service-notice,.appointment-root .summary-notice,.appointment-root .summary-error{margin:var(--space-4) 0;padding:var(--space-4) var(--space-5);border:0;border-left:4px solid var(--appointment-error);background:var(--appointment-surface);color:var(--appointment-ink);text-align:left}.appointment-root .summary-list,.appointment-root .summary-success__list{margin:var(--space-6) 0;border-top:1px solid var(--appointment-rule)}.appointment-root .summary-list>div,.appointment-root .summary-success__list>div{gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--appointment-rule);grid-template-columns:minmax(10rem,1fr) 2fr;display:grid}.appointment-root .summary-list dt,.appointment-root .summary-success__list dt{color:var(--appointment-muted);letter-spacing:.04em;text-transform:uppercase;font:500 .75rem/1.5 JetBrains Mono,ui-monospace,monospace}.appointment-root .summary-list dd,.appointment-root .summary-success__list dd{color:var(--appointment-ink);overflow-wrap:anywhere;margin:0}.appointment-root .summary-success,.appointment-root .sales-success{margin:var(--space-6) 0;border:1px solid var(--appointment-rule);border-top:4px solid var(--appointment-green);background:var(--appointment-surface);padding:clamp(1.25rem,3vw,2rem)}.appointment-root .summary-success h3,.appointment-root .sales-success h3{margin:0 0 var(--space-4);color:var(--appointment-ink);font:600 clamp(1.45rem,3vw,2rem)/1.15 Space Grotesk,system-ui,sans-serif}.appointment-root .summary-success__hint{color:var(--appointment-text)}.appointment-root .summary>.summary-confirm,.appointment-root .summary>.summary-back,.appointment-root .summary-success>.summary-back,.appointment-root .sales-success>.secondary{margin:var(--space-3) var(--space-3) 0 0}@media (width<=48rem){.appointment-root .appointment-shell{padding-block:var(--space-7)}.appointment-root .appointment-intro{margin-bottom:var(--space-6)}.appointment-root .wizard-progress li,.appointment-root .sales-progress li{padding-right:.5rem;font-size:.65rem}.appointment-root .wizard-progress li:not(.current) .wizard-step__label,.appointment-root .sales-progress li:not(.current) strong{display:none}.appointment-root .wizard-progress li.current,.appointment-root .sales-progress li.current{flex:auto}.appointment-root .selection-list,.appointment-root .sales-options,.appointment-root .bring-in-list,.appointment-root .details-grid{grid-template-columns:1fr}.appointment-root .selection-card,.appointment-root .sales-option,.appointment-root .bring-in-list button{min-height:4.25rem}.appointment-root .summary-list>div,.appointment-root .summary-success__list>div{grid-template-columns:1fr;gap:.35rem}}@media (width<=30rem){.appointment-root .appointment-intro h1{overflow-wrap:break-word;font-size:clamp(2rem,9vw,2.5rem)}.appointment-root .calendar-navigation{flex-wrap:wrap}.appointment-root .calendar-navigation strong{text-align:center;order:-1;width:100%}.appointment-root .calendar-navigation button{flex:8rem}.appointment-root .appointment-actions{flex-direction:column-reverse}.appointment-root .appointment-actions .appointment-button,.appointment-root .details-submit,.appointment-root .summary-actions button{text-align:center;width:100%}}@media (prefers-reduced-motion:reduce){.appointment-root *,.appointment-root :before,.appointment-root :after{scroll-behavior:auto!important;transition:none!important}}
