/* Booking widget + booking landing pages. Uses the design-v2 tokens. */

.bk-sec{padding-block:clamp(2.6rem,5vw,4.2rem)}
.bk-sec--blush{background:var(--blush)}
.bk-head{max-width:60ch;margin-bottom:clamp(1.4rem,2.4vw,2rem)}
.bk-head h2{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,3.6vw,2.6rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 .7rem}
.bk-head p:not(.eb){color:var(--ink-soft);margin:0}

/* ---------- hero extras ---------- */
.bk-proof{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:1.6rem 0 0;padding:0;list-style:none;font-family:var(--util);font-size:.86rem;font-weight:600;color:var(--paper-soft)}
.bk-proof li{display:flex;align-items:baseline;gap:.5rem}
.bk-proof b{font-family:var(--display);font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:var(--marigold)}
.bk-hero-img{max-width:420px;margin-inline:auto}
.bk-hero-img img{width:100%;border-radius:20px}
.bk-hero-img--cut img{border-radius:0;box-shadow:none}

/* ---------- widget shell ---------- */
.bk{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr);gap:clamp(1.4rem,3vw,2.4rem);align-items:start}
.bk__card{background:#fff;border:1px solid var(--rule);border-radius:20px;padding:clamp(1.3rem,3vw,2.2rem);box-shadow:0 24px 48px -30px rgba(42,22,38,.28)}
.bk__aside{position:sticky;top:5.5rem;background:var(--plum);color:var(--paper);border-radius:20px;padding:clamp(1.3rem,2.6vw,1.8rem)}
.bk__aside h3{font-family:var(--display);font-weight:700;font-size:1.15rem;letter-spacing:-.01em;margin:0 0 1rem;color:var(--paper)}
.bk__aside dl{margin:0;display:grid;gap:.85rem}
.bk__aside dt{font-family:var(--util);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--marigold)}
.bk__aside dd{margin:.1rem 0 0;font-size:.98rem;line-height:1.4;color:var(--paper)}
.bk__aside .bk-muted{color:var(--paper-soft);font-size:.9rem;line-height:1.5;margin:1.1rem 0 0}
.bk-steps{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:0 0 1.6rem;padding:0;list-style:none;font-family:var(--util);font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.bk-steps li{display:flex;align-items:center;gap:.5rem}
.bk-steps li span{display:inline-grid;place-items:center;width:1.55rem;height:1.55rem;border-radius:50%;border:1.5px solid var(--rule);font-size:.75rem}
.bk-steps li.is-on{color:var(--plum)}
.bk-steps li.is-on span{background:var(--plum);border-color:var(--plum);color:var(--paper)}
.bk-steps li.is-done span{background:var(--marigold);border-color:var(--marigold);color:var(--plum)}
.bk h3.bk-title{font-family:var(--display);font-weight:700;font-size:clamp(1.3rem,2.4vw,1.7rem);letter-spacing:-.02em;margin:0 0 .4rem}
.bk-sub{color:var(--ink-soft);margin:0 0 1.4rem;font-size:.98rem}

/* ---------- fields ---------- */
.bk-form{display:grid;gap:1.1rem}
.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.bk-row--3{grid-template-columns:1.2fr .8fr 1fr}
.bk-field{display:grid;gap:.4rem;min-width:0}
.bk-field label,.bk-legend{font-family:var(--util);font-size:.84rem;font-weight:600;color:var(--plum)}
.bk-hint{font-family:var(--util);font-size:.82rem;line-height:1.45;color:var(--ink-soft)}
.bk input[type=text],.bk input[type=email],.bk input[type=tel],.bk input[type=date],.bk input[type=time],.bk select,.bk textarea{width:100%;font-family:var(--util);font-size:.96rem;padding:.75rem 1rem;border-radius:10px;border:1.5px solid var(--rule);background:var(--paper);color:var(--plum);min-height:46px}
.bk select{appearance:auto}
.bk textarea{min-height:96px;resize:vertical;line-height:1.45}
.bk input:focus,.bk select:focus,.bk textarea:focus,.bk button:focus-visible,.bk a:focus-visible{outline:2px solid var(--guava);outline-offset:2px}
.bk input[aria-invalid=true],.bk select[aria-invalid=true]{border-color:var(--guava)}
.bk-check{display:flex;gap:.7rem;align-items:flex-start;font-family:var(--util);font-size:.88rem;line-height:1.45;color:var(--plum)}
.bk-check input{margin-top:.2rem;width:1.1rem;height:1.1rem;flex:none}
.bk fieldset{border:0;padding:0;margin:0;display:grid;gap:.6rem;min-width:0}
.bk-choices{display:grid;gap:.7rem}
.bk-choice{display:grid;grid-template-columns:auto 1fr auto;gap:.2rem 1rem;align-items:start;padding:1rem 1.1rem;border:1.5px solid var(--rule);border-radius:14px;cursor:pointer;background:var(--paper);transition:border-color .15s,box-shadow .15s}
.bk-choice:hover{border-color:var(--plum-mid)}
.bk-choice:has(input:checked){border-color:var(--plum);box-shadow:0 0 0 3px rgba(240,168,28,.35)}
.bk-choice input{margin-top:.25rem}
.bk-choice b{font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:-.01em}
.bk-choice em{font-style:normal;font-family:var(--util);font-weight:700;font-size:.95rem;color:var(--plum)}
.bk-choice small{grid-column:2/4;font-family:var(--util);font-size:.86rem;color:var(--ink-soft);line-height:1.4}

/* ---------- buttons ---------- */
.bk-actions{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center;margin-top:.4rem}
.bk-btn{font-family:var(--util);font-weight:700;font-size:1rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 2rem;min-height:52px;border:0;border-radius:999px;cursor:pointer;background:var(--marigold);color:var(--plum);box-shadow:0 10px 24px -10px rgba(240,168,28,.65);transition:transform .18s,box-shadow .18s,opacity .18s}
.bk-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 28px -10px rgba(240,168,28,.75)}
.bk-btn:disabled{opacity:.5;cursor:not-allowed}
.bk-link{font-family:var(--util);font-weight:600;font-size:.9rem;color:var(--guava-ink);background:none;border:0;padding:.3rem 0;cursor:pointer;border-bottom:1.5px solid currentColor;text-decoration:none}
.bk-link:hover{color:var(--plum)}

/* ---------- notices ---------- */
.bk-note{font-family:var(--util);font-size:.88rem;line-height:1.5;background:var(--blush);border-radius:12px;padding:.85rem 1rem;color:var(--plum)}
.bk-err{font-family:var(--util);font-size:.9rem;font-weight:600;color:#8a1236;background:#fbe3ea;border-radius:12px;padding:.85rem 1rem}
.bk-err[hidden],.bk-note[hidden]{display:none}

/* ---------- time zone + calendar ---------- */
.bk-tz{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin-bottom:1.2rem;font-family:var(--util);font-size:.86rem;color:var(--ink-soft)}
.bk-tz select{width:auto;max-width:100%;min-height:40px;padding:.45rem .8rem;font-size:.86rem}
.bk-cal__bar b{font-family:var(--display);font-weight:700;font-size:1.1rem;letter-spacing:-.01em}
.bk-cal__nav{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--rule);background:#fff;font-size:1.1rem;cursor:pointer;color:var(--plum)}
.bk-cal__nav:disabled{opacity:.35;cursor:not-allowed}
.bk-times{margin-top:1.2rem}
.bk-times h4{font-family:var(--util);font-size:.9rem;font-weight:700;margin:0 0 .7rem}
.bk-times__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr));gap:.55rem}
.bk-time{font-family:var(--util);font-size:.94rem;font-weight:600;min-height:46px;border-radius:12px;border:1.5px solid var(--plum-mid);background:#fff;color:var(--plum);cursor:pointer;transition:background .15s,color .15s}
.bk-time:hover{background:var(--plum);color:var(--paper)}
.bk-time.is-sel{background:var(--plum);color:var(--paper)}
.bk-empty{font-family:var(--util);font-size:.92rem;color:var(--ink-soft);margin:.4rem 0 0}
.bk-alt{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--rule)}
.bk-loading{font-family:var(--util);font-size:.9rem;color:var(--ink-soft);padding:.8rem 0}

/* ---------- content sections ---------- */
.bk-trio{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2vw,1.6rem)}
.bk-trio--3{grid-template-columns:repeat(3,1fr)}
.bk-tile{background:#fff;border:1px solid var(--rule);border-radius:16px;padding:1.3rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.5rem}
.bk-tile .eb{margin:0}
.bk-tile h3{font-family:var(--display);font-weight:700;font-size:1.2rem;letter-spacing:-.01em;margin:0}
.bk-tile p{margin:0;color:var(--ink-soft);font-size:.96rem;line-height:1.55}
.bk-tile a.bk-more{margin-top:auto;padding-top:.6rem;font-family:var(--util);font-weight:600;font-size:.88rem;color:var(--guava-ink);border-bottom:1.5px solid currentColor;align-self:flex-start}
.bk-faq{display:grid;gap:1rem;max-width:68ch}
.bk-faq h3{font-family:var(--display);font-weight:700;font-size:1.1rem;margin:0 0 .3rem;letter-spacing:-.01em}
.bk-faq p{margin:0;color:var(--ink-soft);font-size:1rem}
.bk-quote{margin:0;max-width:34ch;padding-left:1.3rem;border-left:3px solid var(--marigold)}
.bk-quote p{font-family:var(--display);font-weight:600;font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.3;letter-spacing:-.01em;margin:0 0 .6rem}
.bk-quote cite{font-family:var(--util);font-style:normal;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.bk-steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);margin:0;padding:0;list-style:none;counter-reset:s}
.bk-steps3 li{counter-increment:s;background:#fff;border:1px solid var(--rule);border-radius:16px;padding:1.2rem 1.3rem}
.bk-steps3 li::before{content:counter(s);display:block;font-family:var(--display);font-weight:800;font-size:2rem;line-height:1;color:var(--marigold-ink);margin-bottom:.5rem}
.bk-steps3 b{display:block;font-family:var(--display);font-size:1.05rem;margin-bottom:.25rem}
.bk-steps3 span{color:var(--ink-soft);font-size:.95rem;line-height:1.5}

/* ---------- thank-you ---------- */
.ty__col{max-width:760px}
.ty h1{font-family:var(--display);font-weight:700;font-size:clamp(2rem,4.4vw,3.1rem);letter-spacing:-.025em;line-height:1.05;margin:0 0 1rem;color:var(--paper)}
.ty__card{background:#fff;border:1px solid var(--rule);border-radius:20px;padding:clamp(1.3rem,3vw,2rem);margin-bottom:1.4rem}
.ty__card h2{font-family:var(--display);font-weight:700;font-size:1.3rem;letter-spacing:-.01em;margin:0 0 .6rem}
.ty__card p{margin:0 0 .9rem;color:var(--ink-soft)}
.ty__card dl{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.4rem;margin:0 0 1.2rem;font-family:var(--util);font-size:.95rem}
.ty__card dt{font-weight:700;color:var(--plum)}
.ty__card dd{margin:0;color:var(--plum)}
.ty__social{display:flex;flex-wrap:wrap;gap:.7rem}
.ty__social a{font-family:var(--util);font-weight:600;font-size:.95rem;padding:.8rem 1.3rem;border-radius:999px;border:1.5px solid var(--plum);color:var(--plum);transition:background .15s,color .15s}
.ty__social a:hover{background:var(--plum);color:var(--paper)}

@media(max-width:900px){
  .bk{grid-template-columns:1fr}
  .bk__aside{position:static;order:-1}
  .bk-trio{grid-template-columns:repeat(2,1fr)}
  .bk-trio--3,.bk-steps3{grid-template-columns:1fr}
}
@media(max-width:560px){
  .bk-row,.bk-row--3{grid-template-columns:1fr}
  .bk-trio{grid-template-columns:1fr}
  .bk-choice{grid-template-columns:auto 1fr}
  .bk-choice em{grid-column:2}
  .bk-choice small{grid-column:2}
  .bk-btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.bk-btn,.bk-choice{transition:none}}

/* ---------- lean mobile layout (Readings page: data-lean="1") ---------- */
.bk-m-only{display:none}
.bk-stepline{display:none}
.bk-facts{font-family:var(--util);font-weight:600;color:var(--plum);margin:0 0 .6rem}
.bk-priv{margin:0;font-size:.78rem}
.bk-more{border-top:1px solid var(--rule);padding-top:.1rem}
.bk-more summary{cursor:pointer;font-family:var(--util);font-weight:600;font-size:.9rem;color:var(--plum);padding:.55rem 0;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:44px}
.bk-more summary::-webkit-details-marker{display:none}
.bk-more summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--guava-ink)}
.bk-more[open] summary::after{content:"\2212"}
.bk-more .bk-field{padding-bottom:.4rem}

@media(max-width:900px){
  /* the purple "Your booking" box is hidden; the essentials are repeated in the confirm step */
  .bk-lean .bk__aside{display:none}
  .bk-lean .bk-m-only{display:block}
  .bk-lean .bk-d-only{display:none}
  .bk-lean .bk{gap:0}
}
@media(max-width:560px){
  .bk-sec:has(.bk-lean){padding-block:1.6rem}
  .bk-sec:has(.bk-lean) .bk-head{margin-bottom:.9rem}
  .bk-sec:has(.bk-lean) .bk-head h2{font-size:1.5rem}
  .bk-lean .bk__card{padding:1rem 1rem 1.2rem;border-radius:16px}
  .bk-lean .bk-steps{display:none}
  .bk-lean .bk-stepline{display:block;font-family:var(--util);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .45rem}
  .bk-lean h3.bk-title{font-size:1.25rem;margin:0 0 .8rem}
  .bk-lean .bk-sub{margin-bottom:.9rem}
  .bk-lean .bk-form{gap:.8rem}
  /* experience cards: compact, wording kept */
  .bk-lean .bk-choices{gap:.5rem}
  .bk-lean .bk-choice{padding:.6rem .75rem;grid-template-columns:auto 1fr auto;gap:.1rem .6rem;border-radius:12px}
  .bk-lean .bk-choice b{font-size:.96rem}
  .bk-lean .bk-choice em{grid-column:auto;font-size:.84rem}
  .bk-lean .bk-choice small{grid-column:2/4;font-size:.78rem;line-height:1.3}
  /* virtual / in person as a side-by-side switch */
  .bk-lean .bk-seg .bk-choices{grid-template-columns:1fr 1fr}
  .bk-lean .bk-seg .bk-choice{grid-template-columns:auto 1fr;padding:.6rem .7rem}
  .bk-lean .bk-seg .bk-choice small,.bk-lean .bk-seg .bk-choice em{display:none}
  /* birthday selects share one row */
  .bk-lean .bk-row--3{grid-template-columns:1.5fr .8fr 1fr;gap:.5rem}
  .bk-lean .bk select{padding:.6rem .45rem;font-size:.9rem}
  .bk-lean .bk-field label,.bk-lean .bk-legend{font-size:.82rem}
  .bk-lean .bk-check{font-size:.82rem;line-height:1.4}
  .bk-lean .bk-actions{margin-top:0}
  .bk-lean .bk-btn{width:100%;padding:.9rem 1.2rem}
  /* calendar step */
  .bk-lean .bk-tz{margin-bottom:.8rem}
  .bk-lean .bk-times{margin-top:.8rem}
  .bk-lean .bk-times__grid{grid-template-columns:repeat(3,1fr)}
  .bk-lean .bk-alt{margin-top:1rem;padding-top:.8rem}
}

/* Readings page: no hero picture once the layout stacks (phones and small tablets) */
@media(max-width:860px){
  .bk-hero-img,.bk-hero-img--cut{display:none}
}

/* Hero: stack to one full-width column on phones (design-v2 keeps .is-narrow as two columns) */
@media(max-width:860px){
  .phero2__grid.is-narrow{grid-template-columns:1fr}
}


/* ---------- week cards (replaces the month grid) ---------- */
.bk-weeknav{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.bk-weeklabel{flex:1;text-align:center;font-family:var(--util);font-weight:600;color:var(--plum)}
.bk-weeklabel small{display:block;font-weight:500;font-size:.72rem;color:var(--ink-soft)}
.bk-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.bk-day{font-family:var(--util);text-align:center;line-height:1.25;padding:.65rem .2rem;min-height:78px;border-radius:12px;border:1.5px solid var(--rule);background:#fff;color:var(--plum);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:border-color .15s,background .15s}
.bk-day__dow{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.bk-day__date{font-weight:700;font-size:.92rem}
.bk-day small{font-size:.7rem;color:var(--ink-soft)}
.bk-day:disabled{opacity:.5;cursor:not-allowed;background:var(--blush)}
.bk-day.is-avail:hover{border-color:var(--plum)}
.bk-day.is-sel{background:var(--plum);border-color:var(--plum);color:var(--paper)}
.bk-day.is-sel .bk-day__dow,.bk-day.is-sel small{color:var(--paper-soft)}
@media(max-width:700px){.bk-days{grid-template-columns:repeat(4,minmax(0,1fr))}}


/* ---------- phones: one short card per step (Readings) ---------- */
.bk-stack{display:grid;gap:.7rem;min-width:0}
.bk-done{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border:1px solid var(--rule);border-radius:14px;padding:.7rem .9rem;font-family:var(--util);font-size:.86rem;color:var(--plum)}
.bk-done b{display:block;font-family:var(--display);font-weight:700;font-size:.95rem;letter-spacing:-.01em}
.bk-done span{color:var(--ink-soft)}
