@font-face {font-family:Outfit;src:url('/assets/fonts/outfit.ttf') format('truetype');font-weight:100 900;font-display:swap;}
@font-face {font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-garamond.ttf') format('truetype');font-weight:300 700;font-display:swap;}
:root {
  --purple:#5B1FA8;
  --purple-dark:#3A0F70;
  --purple-light:#F3EEF9;
  --gold:#C9A84C;
  --cream:#FAF8F5;
  --text:#3D2B52;
  --muted:#7A6890;
  --line:#e9e0ed
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:Outfit,Arial,sans-serif;
  font-size:15px;
  line-height:1.65
}
header {
  max-width:1400px;
  margin:auto;
  padding:30px 44px;
  display:flex;
  align-items:center;
  justify-content:space-between
}
.wordmark {
  font-size:18px;
  letter-spacing:.25em;
  color:#29232d;
  text-decoration:none;
  border-bottom:1px solid #29232d
}
.header-note {
  letter-spacing:.12em;
  font-family:Georgia,serif;
  color:var(--purple-dark)
}
.header-note b {
  color:var(--gold)
}
.booking-shell {
  display:grid;
  grid-template-columns:350px 1fr;
  max-width:1260px;
  margin:20px auto 45px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 15px 55px #3a0f7009;
  border-radius:6px;
  overflow:hidden;
  min-height:760px
}
.provider {
  padding:46px 36px;
  border-right:1px solid var(--line);
  background:linear-gradient(160deg,#fff 60%,#f8f4fc);
  display:flex;
  flex-direction:column
}
.eyebrow {
  font-size:10px;
  letter-spacing:.18em;
  font-weight:600;
  color:var(--purple);
  margin:8px 0 20px
}
.eyebrow:before {
  content:'';
  display:inline-block;
  width:23px;
  height:1px;
  background:var(--gold);
  vertical-align:middle;
  margin-right:10px
}
.portrait {
  border-radius:50%;
  object-fit:cover;
  object-position:center 20%;
  border:4px solid var(--purple-light);
  margin:12px 0 2px
}
.provider-name {
  font-size:13px;
  color:var(--muted);
  margin:14px 0 8px
}
h1,h2 {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;
  line-height:1.16;
  letter-spacing:-.025em
}
h1 {
  font-size:35px;
  margin:0 0 20px
}
h2 {
  font-size:38px;
  margin:10px 0 16px
}
em {
  color:var(--purple);
  font-weight:400
}
.description {
  font-size:14px;
  color:var(--muted);
  margin:0 0 25px
}
.facts {
  list-style:none;
  padding:0;
  margin:0
}
.facts li {
  display:flex;
  gap:15px;
  align-items:flex-start;
  margin:20px 0;
  font-size:14px
}
.facts li>span {
  color:var(--purple);
  font-size:24px;
  line-height:1.2;
  width:24px
}
.facts small {
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:400
}
.provider-footer {
  margin-top:auto;
  padding-top:35px;
  font-size:12px;
  color:var(--muted)
}
.gold-line {
  display:block;
  width:36px;
  height:1px;
  background:var(--gold)
}
a {
  color:var(--purple)
}
.booking-content {
  padding:36px 42px 42px;
  min-width:0
}
.steps {
  display:flex;
  list-style:none;
  padding:0;
  margin:0 0 42px;
  gap:25px;
  font-size:11px;
  color:var(--muted)
}
.steps li {
  display:flex;
  align-items:center;
  gap:7px
}
.steps span {
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  width:23px;
  height:23px
}
.steps .active {
  color:var(--purple);
  font-weight:600
}
.steps .active span {
  background:var(--purple);
  color:white;
  border-color:var(--purple)
}
.muted {
  color:var(--muted);
  font-size:14px;
  margin-bottom:28px
}
.schedule-grid {
  display:grid;
  grid-template-columns:minmax(270px,1.2fr) minmax(180px,1fr);
  gap:28px
}
.month-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:12px 0 20px
}
.month-nav h3 {
  font-weight:500;
  font-size:17px;
  text-transform:capitalize;
  margin:0
}
.icon-button {
  border:0;
  background:var(--purple-light);
  border-radius:50%;
  width:34px;
  height:34px;
  color:var(--purple);
  font-size:24px;
  cursor:pointer
}
.icon-button:disabled {
  opacity:.3;
  cursor:default
}
.weekdays,.days {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px
}
.weekdays span {
  text-align:center;
  font-size:12px;
  color:var(--muted);
  padding-bottom:10px
}
.days button {
  aspect-ratio:1;
  border:0;
  border-radius:50%;
  font-size:14px;
  color:var(--purple);
  background:var(--purple-light);
  cursor:pointer;
  font-weight:bold
}
.days button:disabled {
  color:#b9b0c2;
  background:transparent;
  font-weight:400;
  cursor:default
}
.days button.selected {
  background:var(--purple);
  color:white;
  box-shadow:0 0 0 3px #5b1fa820
}
.days button.today {
  outline:1px solid var(--gold);
  outline-offset:-4px
}
.timezone-label {
  display:block;
  margin:26px 0 8px;
  font-size:12px;
  font-weight:600
}
select,input,textarea {
  font:inherit;
  width:100%;
  border:1px solid #d5c7df;
  border-radius:4px;
  background:white;
  padding:10px 12px;
  color:var(--text)
}
select {
  font-size:12px
}
.calendar-help {
  font-size:11px;
  color:var(--muted);
  margin-top:12px
}
.slots-pane h3 {
  margin:17px 0;
  font-size:14px;
  font-weight:500;
  min-height:36px
}
.slots {
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:360px;
  overflow:auto;
  padding:3px
}
.slots button {
  padding:12px;
  border:1px solid var(--purple);
  border-radius:4px;
  background:white;
  color:var(--purple);
  font-size:14px;
  cursor:pointer
}
.slots button.selected {
  background:var(--purple-light);
  box-shadow:inset 0 0 0 1px var(--purple)
}
.empty {
  font-size:13px;
  color:var(--muted);
  background:var(--cream);
  padding:25px 18px;
  text-align:center
}
.primary {
  width:100%;
  background:var(--purple);
  border:1px solid var(--purple);
  border-radius:3px;
  padding:14px 18px;
  font:inherit;
  font-size:14px;
  font-weight:600;
  color:white;
  margin-top:20px;
  cursor:pointer
}
.primary:hover {
  background:var(--purple-dark)
}
button:disabled {
  opacity:.45;
  cursor:default
}
.primary:disabled:hover {
  background:var(--purple)
}
.text-button {
  background:none;
  border:0;
  padding:0;
  color:var(--purple);
  font:inherit;
  font-size:13px;
  cursor:pointer;
  margin:0 0 20px
}
.fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:22px
}
label {
  display:block;
  font-size:13px;
  font-weight:500
}
label input,label textarea {
  margin-top:7px
}
textarea {
  resize:vertical;
  min-height:115px
}
.character-count {
  text-align:right;
  font-size:11px;
  color:var(--muted);
  margin:4px 0 20px
}
.policy-box {
  background:var(--purple-light);
  border-left:2px solid var(--purple);
  padding:18px 20px;
  font-size:12px;
  margin:18px 0;
  color:var(--muted)
}
.policy-box h3 {
  color:var(--text);
  font-size:14px;
  margin:0 0 8px
}
.policy-box p {
  margin:8px 0
}
.consent {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:12px;
  font-weight:400;
  margin:22px 0
}
.consent input {
  width:auto;
  margin-top:6px;
  accent-color:var(--purple)
}
.payment-note {
  font-size:11px;
  color:var(--muted);
  text-align:center
}
.selection-summary {
  border-top:1px solid var(--line);
  padding:15px 0;
  margin-top:15px;
  font-size:13px;
  color:var(--purple);
  white-space:pre-line
}
.notice,.error {
  padding:13px 16px;
  border-radius:3px;
  font-size:13px;
  background:#f8f1df;
  color:#685524
}
.error {
  background:#fff0f0;
  color:#892e35
}
.honeypot {
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden
}
footer {
  text-align:center;
  color:var(--muted);
  font-size:11px;
  padding:20px
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:3px
}
[hidden] {
  display:none!important
}
@media(max-width:1050px) {
  .booking-shell {
  margin:15px 25px;
  grid-template-columns:290px 1fr
}
.provider {
  padding:35px 25px
}
.booking-content {
  padding:30px 25px
}
.schedule-grid {
  grid-template-columns:1fr;
  gap:10px
}
.slots {
  display:grid;
  grid-template-columns:1fr 1fr;
  max-height:240px
}
.slots-pane h3 {
  min-height:0
}
h1 {
  font-size:30px
}

}
@media(max-width:650px) {
  header {
  padding:22px 20px
}
.wordmark {
  font-size:12px
}
.header-note {
  font-size:12px
}
.booking-shell {
  display:block;
  margin:0 12px 20px;
  min-height:0
}
.provider {
  padding:28px 24px;
  border-right:0;
  border-bottom:1px solid var(--line)
}
.provider .eyebrow {
  margin-bottom:8px
}
.portrait {
  width:65px;
  height:65px;
  margin:8px 0
}
.provider h1 {
  font-size:29px
}
.provider h1 br {
  display:none
}
.description {
  margin-bottom:6px
}
.facts {
  display:flex;
  flex-wrap:wrap;
  gap:5px 20px
}
.facts li {
  margin:8px 0;
  font-size:12px
}
.facts li:nth-child(2) {
  width:100%
}
.facts small {
  font-size:11px
}
.provider-footer {
  display:none
}
.booking-content {
  padding:26px 23px
}
.steps {
  gap:12px;
  margin-bottom:26px;
  font-size:10px
}
h2 {
  font-size:31px
}
.schedule-grid {
  display:block
}
.days button {
  max-height:48px
}
.fields {
  grid-template-columns:1fr;
  gap:15px
}
.selection-summary {
  margin-bottom:0
}
.slots {
  grid-template-columns:1fr 1fr
}
.slots-pane h3 {
  margin-top:22px
}

}

.days button.outside-month {
  opacity:.65
}


.policy-box h4 {font-size:12px;color:var(--text);margin:16px 0 4px;font-weight:600;}
.configured-text {white-space:pre-wrap;overflow-wrap:anywhere;}
