/* ALEEN only — appointment wizard v1.0.6 compact calendar. Scoped to avoid affecting TheConcept. */
.as-appointment{--as-ink:#28241f;--as-muted:#807c76;--as-line:#d9d6d1;--as-ivory:#f8f6f2;color:var(--as-ink);width:100%;font-family:inherit;background:#fff}
.as-appointment *, .as-appointment *::before,.as-appointment *::after{box-sizing:border-box}
.as-appointment button,.as-appointment input,.as-appointment select,.as-appointment textarea{font-family:inherit}
.as-appointment button{cursor:pointer}
.as-appointment button:disabled{cursor:not-allowed}
.as-appointment button:focus-visible,.as-appointment input:focus-visible,.as-appointment select:focus-visible,.as-appointment textarea:focus-visible{outline:2px solid #8c7b6a;outline-offset:2px}
.as-appointment__eyebrow{font-size:10px;letter-spacing:.22em;text-transform:uppercase;line-height:1.5;font-weight:500;color:#696258;margin:0 0 20px}
.as-appointment__schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:min(780px,90vh);background:#fbfaf8}
.as-appointment__schedule{padding:clamp(34px,3.5vw,72px) clamp(20px,3.2vw,70px);background:#fff;min-width:0}
.as-appointment__schedule h1{font-family:inherit;font-weight:500;font-size:clamp(20px,2vw,31px);line-height:1.24;margin:0 0 35px;text-align:center;letter-spacing:.01em}
.as-appointment__schedule>.as-appointment__eyebrow{text-align:center;margin-bottom:8px}
.as-appointment__product{font-size:12px;color:var(--as-muted);margin:10px 0 22px}.as-appointment__product strong{font-weight:600;color:var(--as-ink)}
.as-appointment__schedule-columns{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(140px,.8fr);gap:clamp(18px,2.3vw,44px);align-items:start}
.as-appointment__calendar-pane{min-width:0}.as-appointment__calendar-bar{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0 0 19px}
.as-appointment__calendar-bar strong{font-size:12px;letter-spacing:.01em;text-align:center;font-weight:600}
.as-appointment__calendar-bar button{display:grid;place-items:center;width:32px;height:32px;border:none;background:transparent;font-size:23px;color:#333}
.as-appointment__calendar-bar button:disabled{opacity:.24}
.as-appointment__calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.as-appointment__weekday{font-size:10px;color:#5f5b56;padding:6px 0 10px}
.as-appointment__day,.as-appointment__calendar-blank{display:grid;place-items:center;aspect-ratio:1;min-height:32px;border:1px solid transparent;background:transparent;font-size:12px;color:var(--as-ink);padding:0}
.as-appointment__day:not(:disabled):hover{border-radius:50%;border-color:#8b827a}.as-appointment__day:disabled{color:#cecbc6}
.as-appointment__day.is-selected{border-radius:50%;background:#181818;color:white;border-color:#181818}
.as-appointment__timezone{margin-top:22px}.as-appointment__timezone label{font-size:10px;display:block;margin-bottom:7px}
.as-appointment__timezone select{width:100%;min-height:35px;padding:6px 24px 6px 9px;border:1px solid #e2dfd8;color:#45413e;background:#fff;font-size:11px;max-width:100%}
.as-appointment__timezone small{display:block;color:var(--as-muted);font-size:10px;margin-top:8px;line-height:1.5}
.as-appointment__slot-pane h2{font-size:11px;letter-spacing:.03em;text-align:center;font-weight:500;margin:10px 0 18px}
.as-appointment__slots{display:flex;flex-direction:column;gap:9px;max-height:365px;overflow:auto;padding:0 4px 0 0;scrollbar-width:thin}
.as-appointment__slots button{display:block;background:white;border:1px solid #9e9e9e;border-radius:5px;padding:11px 8px;text-align:center;font-size:12px;color:#272727;min-height:40px}
.as-appointment__slots button:hover{border-color:#1a1a1a}.as-appointment__slots button.is-selected{background:#1d1c1c;color:white;border-color:#1d1c1c}
.as-appointment__help{font-size:12px;line-height:1.8;color:var(--as-muted)}
.as-appointment__buttons{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:35px}
.as-appointment__buttons--schedule{justify-content:flex-end;margin-top:22px}
.as-appointment__primary,.as-appointment__back{font-size:10px;letter-spacing:.18em;text-transform:uppercase;min-height:46px;padding:13px 24px;border:1px solid #302b25}
.as-appointment__primary{background:#302b25;color:white}.as-appointment__primary:hover:not(:disabled){background:#514b44}
.as-appointment__primary:disabled{opacity:.35}.as-appointment__back{background:transparent;color:#302b25}
.as-appointment__preview-note{font-size:10px;line-height:1.6;color:#99958f;margin:20px 0 0;text-align:right}
.as-appointment__details-layout{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.15fr);gap:clamp(30px,5vw,115px);max-width:1640px;margin:0 auto;padding:clamp(50px,6vw,110px) clamp(25px,7vw,140px) 120px;align-items:start}
.as-appointment__aside{padding:24px 0 0}.as-appointment__aside h2{font:400 clamp(32px,3.6vw,60px)/1.15 Georgia,'Times New Roman',serif;letter-spacing:-.015em;margin:30px 0 27px}.as-appointment__aside h2 em{font-weight:400}
.as-appointment__aside>p:not(.as-appointment__eyebrow),.as-appointment__aside-note p:not(.as-appointment__eyebrow){color:#77726c;font-size:13px;line-height:2;max-width:440px}
.as-appointment__aside-note{border-top:1px solid #dedbd4;margin-top:35px;padding-top:26px}.as-appointment__aside-note>.as-appointment__eyebrow{margin:8px 0 12px}
.as-appointment__details-panel{background:#f3f0ec;padding:clamp(27px,3.4vw,54px);min-width:0}
.as-appointment__selection-summary{border-bottom:1px solid #d9d4ce;margin-bottom:28px;padding-bottom:22px}
.as-appointment__selection-summary>.as-appointment__eyebrow{margin-bottom:13px}
.as-appointment__selection-summary>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px 23px;color:#4d4842;font-size:12px;line-height:1.8}
.as-appointment__edit-time{background:none;border:0;padding:0;color:#71665e;font-size:10px;letter-spacing:.12em;text-decoration:underline;text-underline-offset:3px;margin-top:17px}
.as-appointment__label,.as-appointment__fields>label{display:block;font-size:10px;letter-spacing:.09em;text-transform:uppercase;line-height:1.7}
.as-appointment__fieldset{margin:0 0 22px}.as-appointment__choices{display:flex;gap:0;flex-wrap:wrap;margin-top:11px}
.as-appointment__choice{font-size:10px;text-transform:uppercase;letter-spacing:.065em;padding:11px 17px;border:1px solid #cfc9c2;background:transparent;color:#4a4641;margin-right:-1px;min-height:38px}
.as-appointment__choice.is-selected{background:#28241f;color:white;border-color:#28241f;position:relative;z-index:1}
.as-appointment__virtual{margin-top:20px;padding:18px;border:1px solid #d4cfc8;background:#faf9f6}
.as-appointment__form-title{margin:29px 0 20px}
.as-appointment__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 20px;align-items:start}
.as-appointment__fields input:not([type='radio']),.as-appointment__fields select,.as-appointment__fields textarea{display:block;width:100%;min-width:0;margin-top:9px;padding:10px 0;border:0;border-bottom:1px solid #bdb6af;background:transparent;border-radius:0;font-size:12px;color:#28241f;line-height:1.6}
.as-appointment__fields input::placeholder,.as-appointment__fields textarea::placeholder{color:#88827b}
.as-appointment__fields input:focus,.as-appointment__fields textarea:focus,.as-appointment__fields select:focus{border-color:#332c25}
.as-appointment__wide{grid-column:1/-1}.as-appointment__field{min-width:0}
.as-appointment__combobox{position:relative;margin-top:9px}
.as-appointment__combobox .sf-combobox__trigger{display:flex;align-items:center;justify-content:space-between;gap:9px;text-align:left;width:100%;min-height:38px;padding:9px 0;border:0;border-bottom:1px solid #bdb6af;background:transparent;font-size:12px;color:#3b342f}
.as-appointment__combobox .sf-combobox__panel{position:absolute;left:0;top:100%;width:max(100%,260px);max-width:min(350px,90vw);z-index:70;padding:9px;background:white;border:1px solid #d6d1ca;box-shadow:0 13px 30px #0002}
.as-appointment__combobox .sf-combobox__search{display:block;width:100%;margin:0 0 9px!important;padding:8px!important;border:1px solid #d5cfc8!important;background:white!important}
.as-appointment__combobox .sf-combobox__options{max-height:220px;overflow:auto}
.as-appointment__combobox .sf-combobox__option{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;background:white;border:0;width:100%;font-size:12px;padding:10px;color:#27241f}
.as-appointment__combobox .sf-combobox__option:hover{background:#f4f0eb}.as-appointment__combobox .sf-combobox__option small{color:#706b62;font-size:10px}
.as-appointment__phone-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;margin-top:2px}.as-appointment__phone-row .as-appointment__combobox{margin-top:0}
.as-appointment__errors{padding:18px;border:1px solid #be9284;color:#903d31;margin-top:28px;font-size:12px}.as-appointment__errors ul{padding-left:18px}
.as-appointment__summary{border-top:1px solid #d2cdc7}.as-appointment__summary p{display:grid;grid-template-columns:115px minmax(0,1fr);gap:12px;border-bottom:1px solid #d2cdc7;padding:13px 0;font-size:12px;line-height:1.6;overflow-wrap:anywhere;margin:0}.as-appointment__summary strong{font-weight:500}.as-appointment__summary span{color:#6f6b66}
.as-appointment__preview-warning{margin-top:25px;padding:20px;background:#faf8f5;border:1px solid #d6d1ca;font-size:12px;line-height:1.8}.as-appointment__preview-warning p{margin:6px 0;color:#7e7870}
/* CMS marker does not render visual content. */
#as-appointment-wizard-mount{display:none!important}
@media(max-width:1050px){.as-appointment__schedule{padding:35px 20px}.as-appointment__schedule-columns{gap:16px}.as-appointment__details-layout{padding:50px 36px 80px;gap:40px}}
/* v1.0.5: Fixed truncated @media rules from v1.0.4. Every breakpoint is closed independently. */
@media (max-width:820px) {
  .as-appointment__schedule-layout {grid-template-columns:1fr}
  .as-appointment__details-layout {grid-template-columns:1fr;gap:30px}
  .as-appointment__aside {padding:0}
  .as-appointment__aside-note {display:none}
}
@media (max-width:520px) {
  .as-appointment__schedule-columns {grid-template-columns:1fr}
  .as-appointment__slot-pane {margin-top:12px;border-top:1px solid var(--as-line);padding-top:18px}
  .as-appointment__slots {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:270px}
  .as-appointment__details-layout {padding:38px 18px 70px}
  .as-appointment__details-panel {padding:22px 18px}
  .as-appointment__fields {grid-template-columns:1fr}
  .as-appointment__schedule {padding:30px 17px 55px}
  .as-appointment__selection-summary>div {flex-direction:column;align-items:flex-start;gap:3px}
}
@media (prefers-reduced-motion:reduce) {
  .as-appointment * {scroll-behavior:auto!important;transition:none!important}
}

/* v1.0.4: Designer-referenced text-only editorial CMS layout; one step per screen. */
.as-appointment-page{display:block;width:100%;background:#f7f5f0;overflow:visible!important;min-height:70vh}
.as-appointment{background:#f7f5f0;overflow:visible!important}
.as-appointment__intro{background:#eeeae3;text-align:center;padding:clamp(72px,9vw,145px) 22px clamp(64px,8vw,115px);margin:0}
.as-appointment__intro .as-appointment__eyebrow{margin:0 0 20px}
.as-appointment__intro h1{font:400 clamp(48px,6.8vw,94px)/1.12 Georgia,'Times New Roman',serif;letter-spacing:-.03em;margin:0 0 20px}
.as-appointment__intro h1 em{font-weight:400}
.as-appointment__intro>p:last-child{font-size:14px;line-height:1.9;color:#70675e;max-width:590px;margin:0 auto}
.as-appointment__layout{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(45px,7vw,128px);align-items:start;max-width:1700px;margin:0 auto;padding:clamp(64px,7vw,110px) clamp(22px,7vw,130px) 120px;overflow:visible!important}
.as-appointment__layout>.as-appointment__aside{position:sticky!important;top:max(calc(var(--sf-header-current-height, 0px) + 24px), 118px)!important;align-self:start!important;margin:0;padding:0;max-height:calc(100dvh - var(--sf-header-current-height,145px) - 40px);overflow-y:auto;overscroll-behavior:contain}
.as-appointment__aside>p:not(.as-appointment__eyebrow){max-width:460px}
.as-appointment__aside h2{margin:22px 0 20px;font-size:clamp(35px,3.3vw,53px)}
.as-appointment__aside-note{margin-top:34px}
.as-appointment__journey{min-width:0;align-self:start}
.as-appointment__schedule{background:#f0ece5;padding:clamp(25px,3vw,55px);min-height:510px}
.as-appointment__schedule>.as-appointment__eyebrow{margin:0 0 15px;text-align:left}
.as-appointment__schedule h2{font:400 clamp(23px,2.5vw,39px)/1.25 Georgia,'Times New Roman',serif;text-align:left;margin:0 0 30px}
.as-appointment__calendar-pane{width:min(100%,390px);margin:0 auto}
.as-appointment__calendar-bar{margin-bottom:20px}
.as-appointment__calendar-grid{gap:4px}
.as-appointment__day,.as-appointment__calendar-blank{width:min(38px,100%);aspect-ratio:1;min-height:0;margin-inline:auto;font-size:12px;border-radius:50%}
.as-appointment__timezone{margin-top:27px}
.as-appointment__schedule--times .as-appointment__time-zone-label{font-size:12px;color:#776b61;margin:-12px 0 25px}
.as-appointment__schedule--times .as-appointment__slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible;gap:12px;padding:0}
.as-appointment__schedule--times .as-appointment__slots button{padding:15px;min-height:49px}
.as-appointment__preview-note{text-align:left}
.as-appointment__details-panel{background:#f0ece5;padding:clamp(25px,3vw,55px)}
.as-appointment__buttons{margin-top:30px}
/* This page has a solid header, with its existing search/account actions unchanged. */
@media(max-width:960px){.as-appointment__layout{gap:38px;padding:65px 32px 85px}.as-appointment__layout>.as-appointment__aside{top:max(calc(var(--sf-header-current-height,0px) + 15px),90px)!important}}
@media(max-width:820px){.as-appointment__layout{grid-template-columns:1fr;gap:32px;padding:46px 22px 80px}.as-appointment__layout>.as-appointment__aside{position:static!important;top:auto!important;max-height:none;overflow:visible}.as-appointment__aside-note{display:none}.as-appointment__intro{padding:80px 22px 70px}.as-appointment__schedule{min-height:0;padding:32px 24px}.as-appointment__details-panel{padding:32px 24px}}
@media(max-width:520px){.as-appointment__intro{padding:64px 18px 55px}.as-appointment__intro h1{font-size:45px}.as-appointment__layout{padding:32px 16px 65px;gap:25px}.as-appointment__schedule,.as-appointment__details-panel{padding:24px 18px}.as-appointment__schedule--times .as-appointment__slots{grid-template-columns:repeat(2,minmax(0,1fr))}.as-appointment__day,.as-appointment__calendar-blank{width:min(34px,100%);min-height:0}.as-appointment__buttons{gap:12px}.as-appointment__primary,.as-appointment__back{padding:12px 17px;letter-spacing:.1em}}
