/* /book/ only. Loads after colors_and_type.css and page.css. Repo-only file. */

.bk{max-width:1200px;margin:0 auto;padding:clamp(40px,5vw,72px) clamp(24px,5vw,72px) clamp(48px,6vw,96px)}
.bk-step{margin:0 0 clamp(40px,5vw,64px);scroll-margin-top:clamp(72px,8vw,104px)} /* clear of the fixed nav */
.bk-step[hidden]{display:none}
.bk .grouplabel{margin-bottom:18px}
.bk p{max-width:60ch}
.bk-done h2{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,48px);line-height:1.1;margin:6px 0 0}
.bk-done h2 em{font-style:italic;font-weight:300}
.bk-quiet{font-family:var(--serif);font-style:italic;color:var(--ink-mute);font-size:16px;margin:12px 0 0}

/* Service cards */
.bk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.bk-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:22px 22px 20px;background:var(--paper);border:1px solid var(--shell);transition:border-color 250ms var(--ease-slow),background 250ms var(--ease-slow)}
.bk-card:hover{border-color:var(--ink-faint)}
.bk-card:focus-visible{outline:2px solid var(--clay);outline-offset:2px}
.bk-card[aria-checked="true"]{border-color:var(--ink);background:var(--cream-soft)}
.bk-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2vw,26px);line-height:1.15;margin:0;color:var(--ink)}
.bk-card .bk-blurb{font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink-soft)}
@media (max-width:720px){.bk-card .bk-blurb{font-size:17px}}
.bk-card .bk-meta{font-family:var(--sans);font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-mute);line-height:1.7}
.bk-card .bk-cprice{font-family:var(--serif);font-size:21px;color:var(--ink);margin-top:auto;padding-top:6px}
/* Arrived with ?service=: only the chosen card, with a link back to the full list */
.bk-cards.is-one .bk-card[aria-checked="false"]{display:none}
.bk-change{all:unset;cursor:pointer;display:inline-block;margin:14px 0 0;font-family:var(--sans);font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink-faint);padding-bottom:2px}
.bk-change:focus-visible{outline:2px solid var(--clay);outline-offset:4px}
.bk-change[hidden]{display:none}
.bk-card .bk-tag{align-self:flex-start;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--cream);background:var(--clay);padding:5px 9px}
/* The Regulars pass panel: the card empty and finished, then what it gives */
.bk-passcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:900px}
.bk-passcard{margin:0}
.bk-passface{position:relative;box-shadow:0 1px 2px rgba(43,39,36,.08),0 10px 28px rgba(43,39,36,.10)}
.bk-passface img{display:block;width:100%;height:auto}
.bk-passface svg{position:absolute;inset:0;width:100%;height:100%}
.bk-passcard figcaption{font-family:var(--sans);font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-mute);margin:12px 0 0}
/* One fact per row: a small label in a fixed column, the text beside it, a hairline
   between rows. Rows of any length line up, so nothing has to match in pairs. */
.bk-passfacts{margin:34px 0 0;max-width:900px;border-top:1px solid var(--ink-faint)}
.bk-passfacts>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--ink-faint)}
.bk-passfacts dt{font-family:var(--sans);font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-mute)}
.bk-passfacts dd{margin:0;font-family:var(--serif);font-size:18px;line-height:1.45;color:var(--ink)}
@media (max-width:700px){
  .bk-passcards{grid-template-columns:1fr}
  .bk-passfacts>div{grid-template-columns:1fr;gap:4px;padding:12px 0}
}
.bk-weekly{font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.6;color:var(--ink-mute);margin:22px 0 0}
.bk-weekly a{color:var(--ink);border-bottom:1px solid var(--ink-faint);padding-bottom:2px;font-style:normal}

/* Partner link (?partner=<slug>): one service, no cards */
.bk-partner{padding:24px 24px 22px;background:var(--paper);border:1px solid var(--shell);border-left:4px solid var(--clay);max-width:760px}
.bk-partner h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,32px);line-height:1.15;margin:0 0 10px;color:var(--ink)}
.bk-partner h2 em{font-style:italic;font-weight:300}
.bk-partner p{font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--ink-soft);margin:0}
.bk-field[hidden],.bk-pay[hidden]{display:none}

/* Calendar */
.bk-cal{max-width:460px}
.bk-cal-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}
.bk-month{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.4vw,28px);margin:0;max-width:none}
.bk-nav{all:unset;cursor:pointer;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink);border:1px solid var(--ink-faint);border-radius:var(--r-pill)}
.bk-nav:hover{border-color:var(--ink)}
.bk-nav:disabled{opacity:.3;cursor:default;border-color:var(--ink-faint)}
.bk-nav:focus-visible{outline:2px solid var(--clay);outline-offset:2px}
.bk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.bk-dow span{font-family:var(--sans);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-mute);text-align:center;padding:6px 0}
.bk-day{all:unset;box-sizing:border-box;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:14px;color:var(--ink-faint);border:1px solid transparent}
.bk-day.open{cursor:pointer;color:var(--ink);background:var(--paper);border-color:var(--shell)}
.bk-day.open:hover{border-color:var(--ink)}
.bk-day.open:focus-visible{outline:2px solid var(--clay);outline-offset:1px}
.bk-day.picked{background:var(--sand);border-color:var(--sand);color:var(--ink)}
.bk-day.sel{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.bk-day.today .bk-n{text-decoration:underline;text-underline-offset:3px}
.bk-day{flex-direction:column;gap:1px;line-height:1.1}
.bk-day small{font-size:11px;letter-spacing:0.02em;color:var(--clay);text-decoration:none;white-space:nowrap}
.bk-day.sel small{color:var(--cream)}
.bk-day.full{cursor:pointer;color:var(--ink-mute);background:var(--cream-soft);border-color:var(--shell)}
.bk-day.full small{color:var(--ink-mute)}
.bk-day.full:focus-visible{outline:2px solid var(--clay);outline-offset:1px}
.bk-day.extra{border-color:var(--clay)}
.bk-day.extra.sel{border-color:var(--ink)}

/* Extra Sunday 16:00, shown while 17:30 is full: a line on the card, a frame above the calendar */
.bk-card .bk-cnote{font-family:var(--serif);font-size:15px;line-height:1.45;color:var(--ink);background:var(--cream-soft);border-left:3px solid var(--clay);padding:8px 10px}
.bk-extras{display:grid;gap:12px;margin:0 0 20px;max-width:760px}
.bk-extras[hidden]{display:none}
.bk-extra{padding:18px 20px 20px;background:var(--paper);border:1px solid var(--shell);border-left:4px solid var(--clay)}
.bk-extra-head{font-family:var(--serif);font-size:clamp(20px,2vw,24px);line-height:1.2;color:var(--ink);margin:0 0 6px}
.bk-extra-text{font-family:var(--serif);font-size:16.5px;line-height:1.55;color:var(--ink-soft);margin:0 0 14px}
.bk button.bk-extra-btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-block;background:var(--ink);color:var(--cream);padding:12px 22px;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;transition:background 300ms}
.bk button.bk-extra-btn:hover{background:#000}
.bk button.bk-extra-btn:focus-visible{outline:2px solid var(--clay);outline-offset:3px}

.bk-info{font-family:var(--serif);font-size:17px;line-height:1.55;color:var(--ink-soft);margin:14px 0 0}
.bk-info[hidden]{display:none}
.bk-info a{color:var(--ink);border-bottom:1px solid var(--ink-faint);padding-bottom:2px}

/* Times */
.bk-times-wrap{margin:28px 0 0}
.bk-times-wrap[hidden]{display:none}
.bk-date{font-family:var(--serif);font-size:20px;color:var(--ink);margin:0 0 12px}
.bk-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px;max-width:620px}
.bk-time{all:unset;box-sizing:border-box;cursor:pointer;text-align:center;padding:12px 0;font-family:var(--sans);font-size:14px;letter-spacing:0.04em;color:var(--ink);background:var(--paper);border:1px solid var(--shell)}
.bk-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.2}
.bk-time small{font-size:11px;letter-spacing:0.02em;color:var(--clay);white-space:nowrap}
.bk-time[aria-pressed="true"] small{color:var(--cream)}
.bk-time:hover{border-color:var(--ink)}
.bk-time:focus-visible{outline:2px solid var(--clay);outline-offset:1px}
.bk-time[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.bk-tz{font-family:var(--sans);font-size:12px;letter-spacing:0.02em;color:var(--ink-mute);margin:12px 0 0}

/* Picked sessions (3-Day Journey) */
.bk-picks{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid var(--ink-faint);max-width:460px;counter-reset:pick}
.bk-picks[hidden]{display:none}
.bk-picks li{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--ink-faint);font-family:var(--serif);font-size:18px;counter-increment:pick}
.bk-picks li::before{content:counter(pick);font-family:var(--sans);font-size:11px;color:var(--ink-mute);width:28px}
.bk-picks li span{flex:1}
.bk-picks button{all:unset;cursor:pointer;font-family:var(--sans);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-mute);padding:6px 0 6px 12px}
.bk-picks button:hover{color:var(--clay)}

/* Form */
.bk-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px 28px;max-width:760px}
.bk-field{display:flex;flex-direction:column;gap:6px}
.bk-field[hidden]{display:none}
.bk-field.bk-wide{grid-column:1 / -1}
.bk-field>span{font-family:var(--sans);font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:var(--ink-mute)}
.bk-field>span i{font-style:normal;letter-spacing:0.08em;text-transform:none}
.bk-field input,.bk-field select,.bk-field textarea{font:inherit;font-family:var(--serif);font-size:18px;color:var(--ink);background:var(--paper);border:0;border-bottom:1px solid var(--ink-faint);border-radius:0;padding:10px 12px;width:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none}
.bk-field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-mute) 50%),linear-gradient(135deg,var(--ink-mute) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.bk-field input:focus,.bk-field select:focus,.bk-field textarea:focus{outline:none;border-bottom-color:var(--ink)}
.bk-field input[aria-invalid="true"]{border-bottom-color:var(--clay)}
.bk-hint{font-family:var(--sans);font-style:normal;font-size:12px;color:var(--ink-mute)}
.bk-err{font-family:var(--sans);font-style:normal;font-size:12.5px;color:#9a4f2c;min-height:0}
.bk-err:empty{display:none}
.bk-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Summary */
.bk-summary{margin:36px 0 0;padding:26px 0 0;border-top:1px solid var(--ink-faint);max-width:760px}
.bk-sum-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;font-family:var(--serif);font-size:clamp(20px,2vw,24px);color:var(--ink)}
.bk-price{font-weight:300;white-space:nowrap}
.bk-sum-when{font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--ink-soft);margin:6px 0 0;white-space:pre-line}
.bk-request{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--ink);margin:18px 0 0}
.bk-pay{font-family:var(--sans);font-size:12.5px;color:var(--ink-mute);margin:6px 0 24px}
.bk button.btn-ink{all:unset;box-sizing:border-box;cursor:pointer;display:inline-block;background:var(--ink);color:var(--cream);padding:17px 32px;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;transition:background 300ms}
.bk button.btn-ink:hover{background:#000}
.bk button.btn-ink:focus-visible,.bk a.btn-ink:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.bk button.btn-ink:disabled{opacity:.5;cursor:progress}
.bk-form-err{display:block;margin:14px 0 0;font-size:14px}
.bk-assure{font-family:var(--sans);font-size:13px;line-height:1.7;color:var(--ink-soft);margin:14px 0 0;max-width:46ch}
.bk-assure a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--ink-faint)}
.bk-assure a:hover{color:var(--clay);border-bottom-color:var(--clay)}

/* Done */
.bk-ref-label{font-family:var(--sans);font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:var(--ink-mute);margin:26px 0 4px}
.bk-ref{font-family:var(--mono);font-size:clamp(28px,4vw,40px);letter-spacing:0.08em;color:var(--ink);margin:0}
.bk a.bk-wa{margin-top:24px;padding:20px 36px;font-size:13px}
.bk .bk-done>[hidden]{display:none}

/* Optional card payment on the done screen and on /book/?pay=<ref> */
.bk-paybox{margin:36px 0 0;padding:22px 22px 20px;background:var(--paper);border:1px solid var(--shell);border-left:4px solid var(--clay);max-width:620px}
.bk-paybox[hidden],.bk .bk-paybox [hidden]{display:none}
.bk-paybox.paid{border-left-color:#3F4a33}
.bk-paybox .grouplabel{margin-bottom:10px}
.bk-pay-head{font-family:var(--serif);font-size:clamp(20px,2vw,24px);line-height:1.2;color:var(--ink);margin:0 0 6px}
.bk-pay-text{font-family:var(--serif);font-size:16.5px;line-height:1.55;color:var(--ink-soft);margin:0 0 16px}
.bk-pay-text:empty{display:none}
.bk-payrow{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}
.bk .bk-paybox button.btn-ink{display:inline-flex;align-items:center;gap:10px}
.bk-brands{display:inline-flex;gap:6px}
.bk-brands i{font-family:var(--sans);font-style:normal;font-size:10px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--ink-faint);padding:5px 8px;white-space:nowrap}
.bk-trust{list-style:none;margin:20px 0 0;padding:16px 0 0;border-top:1px solid var(--shell);display:grid;gap:9px}
.bk-trust li{font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--ink-mute);padding-left:20px;position:relative}
.bk-trust li::before{content:"";position:absolute;left:2px;top:5px;width:9px;height:5px;border-left:1.5px solid #3F4a33;border-bottom:1.5px solid #3F4a33;transform:rotate(-45deg)}
.bk-trust b{font-weight:500;color:var(--ink)}
.bk-paybox .bk-pay{margin:14px 0 0}
.bk-test{border-top:1px dashed var(--ink-faint);padding-top:12px}
.bk-test code{font-family:var(--mono);font-size:12px}

@media (max-width:560px){
  .bk-card{padding:18px}
  .bk-paybox{padding:18px 16px}
  .bk a.bk-wa,.bk button.btn-ink{display:block;width:100%;text-align:center}
}

/* Inside the overlay iframe: no site chrome, tighter top. */
html.embed .nav,html.embed .nav-scrim,html.embed .footer,html.embed .fullsite-end,html.embed .crumb{display:none}
html.embed .pagehead{padding-top:28px}
html.embed .pagehead h1{font-size:clamp(30px,4vw,44px)}
html.embed .bk{padding-top:28px}

/* English / Thai switch under the lede (audit 4.4). */
.bk-langs{font-family:var(--sans);font-size:12px;letter-spacing:0.14em;color:var(--ink-mute);margin:18px 0 0}
.bk-langs a{color:var(--ink-mute);text-decoration:none;border-bottom:1px solid transparent;padding:6px 0}
.bk-langs a:hover{color:var(--ink)}
.bk-langs a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--ink)}
/* Thai has no capitals; the wide uppercase tracking of labels reads badly in Thai script. */
html[lang="th"] .bk .grouplabel,html[lang="th"] .bk-card .bk-meta,html[lang="th"] .bk-tag{letter-spacing:0.04em}
