/* Online booking pages: /book, /book-*, /booking  (classes start with bk-) */
.bk-page {
  --bk-green: #1f4d2e; --bk-dark: #123128; --bk-cream: #f7f2e8; --bk-card: #fffdf8; --bk-line: #e9e1cf;
  --bk-gold: #b98b3e; --bk-rust: #b5532f; --bk-sage: #7f9a76; --bk-text: #2f2f2a; --bk-muted: #6b675d; --bk-err: #a33a2b;
  --bk-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --bk-sans: 'Montserrat', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  background: radial-gradient(1200px 500px at 50% -10%, #fbf8f1 0%, var(--bk-cream) 60%);
  color: var(--bk-text); font-family: var(--bk-sans); font-size: 15px; line-height: 1.6; padding: 40px 20px 72px;
  font-variant-numeric: lining-nums;
}
.bk-page *, .bk-page *::before, .bk-page *::after { box-sizing: border-box; }
.bk-page a { color: var(--bk-green); }
.bk-wrap { max-width: 1240px; margin: 0 auto; }
.bk-narrow { max-width: 760px; margin-left: auto; margin-right: auto; }
.bk-center { text-align: center; }
.bk-hidden { display: none !important; }
.bk-muted { color: var(--bk-muted); font-size: 14px; margin: 0 0 12px; }
.bk-ico { width: 20px; height: 20px; flex: none; vertical-align: middle; }

/* ---------- headings ---------- */
.bk-hero { text-align: left; margin: 0; }
.bk-eyebrow { font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: var(--bk-green); font-weight: 500; margin: 0 0 10px; }
.bk-h1 { font-family: var(--bk-serif); font-weight: 600; color: var(--bk-dark) !important; font-size: clamp(34px, 5vw, 56px); line-height: 1.05; margin: 0 0 6px; }
.bk-h1-sm { font-size: clamp(28px, 4vw, 40px); }
.bk-h2 { font-family: var(--bk-serif); font-weight: 600; color: var(--bk-dark) !important; font-size: 27px; line-height: 1.15; margin: 0 0 10px; text-align: center; }
.bk-h3 { font-family: var(--bk-serif); font-weight: 600; color: var(--bk-dark) !important; font-size: 24px; line-height: 1.15; margin: 0 0 6px; }
.bk-h4 { font-family: var(--bk-serif); font-weight: 600; color: var(--bk-dark) !important; font-size: 21px; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.bk-h4 .bk-ico { color: var(--bk-gold); width: 24px; height: 24px; }
.bk-lead { font-size: 17px; color: #4a4740; max-width: 640px; margin: 6px 0 0; }
.bk-divider { display: flex; align-items: center; gap: 10px; color: var(--bk-gold); margin: 10px 0 12px; }
.bk-divider span { display: block; width: 70px; height: 1px; background: var(--bk-gold); opacity: .7; }
.bk-divider .bk-ico { width: 26px; height: 26px; }
.bk-center .bk-divider, .bk-hero-center .bk-divider { justify-content: center; }
.bk-hero-center { text-align: center; }
.bk-hero-center .bk-lead { margin-left: auto; margin-right: auto; }
.bk-quote { font-family: var(--bk-serif); font-style: italic; font-size: 22px; color: var(--bk-dark); max-width: 240px; text-align: center; margin: 0; }
.bk-hero-split { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-bottom: 28px; }
.bk-crumbs { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--bk-muted); margin-bottom: 22px; flex-wrap: wrap; }
.bk-crumbs a { color: var(--bk-muted); text-decoration: none; }
.bk-crumbs a:hover { color: var(--bk-green); }
.bk-crumbs .bk-ico { width: 14px; height: 14px; }

/* ---------- cards ---------- */
.bk-card { background: var(--bk-card); border: 1px solid var(--bk-line); border-radius: 14px; box-shadow: 0 10px 30px rgba(60, 50, 20, .06); }
.bk-pad { padding: 26px 28px; }
.bk-cards { display: grid; gap: 20px; margin-bottom: 26px; }
.bk-cards-1 { grid-template-columns: minmax(0, 420px); justify-content: center; }
.bk-cards-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 860px; margin-left: auto; margin-right: auto; }
.bk-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bk-cards-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.bk-option { display: flex; flex-direction: column; overflow: hidden; }
.bk-card-media { position: relative; }
.bk-card-media img { display: block; width: 100%; height: 190px; object-fit: cover; }
.bk-flag { position: absolute; top: 14px; left: 0; background: var(--bk-dark); color: #fff; font-family: var(--bk-serif); font-size: 18px; padding: 5px 16px; border-radius: 0 6px 6px 0; }
.bk-badge { position: absolute; left: 50%; bottom: -30px; transform: translateX(-50%); width: 62px; height: 62px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; color: #fff; border: 4px solid var(--bk-card); box-shadow: 0 4px 10px rgba(0,0,0,.12); }
.bk-badge .bk-ico { width: 28px; height: 28px; }
.bk-badge-sage { background: var(--bk-sage); }
.bk-badge-gold { background: #d9a64a; }
.bk-badge-rust { background: var(--bk-rust); }
.bk-badge-green { background: var(--bk-green); }
.bk-option-body { display: flex; flex-direction: column; flex: 1; padding-top: 44px; }
.bk-option-body .bk-meta { border-top: 1px solid var(--bk-line); padding-top: 14px; margin: 4px 0 6px; }
.bk-price { font-family: var(--bk-serif); font-size: 42px; font-weight: 600; color: var(--bk-dark); text-align: center; margin: auto 0 14px; line-height: 1; padding-top: 10px; }

.bk-meta { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 9px; }
.bk-meta li { display: flex; align-items: flex-start; gap: 12px; font-size: 14.5px; }
.bk-meta .bk-ico { color: var(--bk-gold); width: 21px; height: 21px; }

/* ---------- buttons ---------- */
.bk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--bk-green); color: #fff !important;
  border: 1px solid var(--bk-green); border-radius: 10px; padding: 13px 24px; font: 500 15px/1.2 var(--bk-serif); font-size: 19px;
  text-decoration: none !important; cursor: pointer; transition: background .15s, box-shadow .15s, transform .15s; min-height: 50px; }
.bk-btn:hover { background: var(--bk-dark); box-shadow: 0 6px 16px rgba(18, 49, 40, .25); }
.bk-btn:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
.bk-btn-block { width: 100%; }
.bk-btn-lg { min-height: 58px; font-size: 21px; padding: 14px 28px; }
.bk-btn-rust { background: var(--bk-rust); border-color: var(--bk-rust); }
.bk-btn-rust:hover { background: #9a4425; }
.bk-btn-outline { background: transparent; color: var(--bk-dark) !important; border-color: var(--bk-gold); }
.bk-btn-outline:hover { background: #fbf5e8; box-shadow: none; }
.bk-btn-outline .bk-ico { color: var(--bk-gold); }
.bk-actions { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 26px; }

/* ---------- landing (Book Your Experience) ---------- */
.bk-landing .bk-option-body { padding: 42px 20px 22px; text-align: center; }
.bk-landing .bk-h2 { font-size: 25px; }
.bk-landing .bk-muted { font-size: 14.5px; }
.bk-landing .bk-btn { font-size: 17px; padding: 11px 16px; margin: 6px 0 16px; }
.bk-landing .bk-meta { text-align: left; border-top: 0; padding-top: 0; }
.bk-landing .bk-card-media img { height: 170px; }

/* ---------- features strip ---------- */
.bk-features { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--bk-card); border: 1px solid var(--bk-line); border-radius: 14px; padding: 18px 10px; }
.bk-feature { display: flex; gap: 14px; align-items: center; padding: 4px 22px; border-left: 1px solid var(--bk-line); }
.bk-feature:first-child { border-left: 0; }
.bk-feature .bk-ico { width: 32px; height: 32px; color: var(--bk-gold); }
.bk-feature strong { display: block; font-family: var(--bk-serif); font-size: 18px; font-weight: 600; color: var(--bk-dark); }
.bk-feature span { font-size: 13px; color: var(--bk-muted); }

/* ---------- progress steps ---------- */
.bk-steps { list-style: none; margin: 0 auto 26px; padding: 0; display: flex; justify-content: center; align-items: center; gap: 0; flex-wrap: wrap; }
.bk-step { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--bk-muted); }
.bk-step + .bk-step::before { content: ''; width: 46px; height: 1px; background: #cdbf9e; margin: 0 14px; }
.bk-step-dot { width: 40px; height: 40px; border-radius: 50%; border: 1px solid #c9b78f; display: flex; align-items: center; justify-content: center;
  font-family: var(--bk-serif); font-size: 19px; color: var(--bk-dark); background: var(--bk-card); }
.bk-step-done .bk-step-dot, .bk-step-current .bk-step-dot { background: var(--bk-green); border-color: var(--bk-green); color: #fff; }
.bk-step-done .bk-step-dot .bk-ico { width: 20px; height: 20px; stroke-width: 2.4; }
.bk-step-current { color: var(--bk-green); font-weight: 600; }

/* ---------- two-column layout ---------- */
.bk-layout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; align-items: start; }
.bk-main { display: grid; gap: 18px; min-width: 0; }
.bk-intro { padding: 30px 34px; background: linear-gradient(120deg, var(--bk-card), #f8f1e3); }
.bk-intro-row { display: flex; justify-content: space-between; gap: 20px; }
.bk-secure { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--bk-muted); margin: 14px 0 0; }
.bk-secure .bk-ico { color: var(--bk-gold); width: 24px; height: 24px; }
.bk-secure-top { max-width: 230px; margin: 0; }
.bk-summary { position: sticky; top: 20px; overflow: hidden; }
.bk-summary-img { display: block; width: 100%; height: 200px; object-fit: cover; }
.bk-summary-head { display: flex; gap: 12px; }
.bk-summary-head > .bk-ico { color: var(--bk-gold); width: 34px; height: 34px; margin-top: 2px; }
.bk-summary-sel { border-top: 1px solid var(--bk-line); margin-top: 16px; padding-top: 16px; }
.bk-summary .bk-btn-lg { margin-top: 18px; }

.bk-panel-title { display: flex; align-items: center; gap: 14px; font-family: var(--bk-serif); font-weight: 600; font-size: 25px; color: var(--bk-dark) !important; margin: 0 0 18px; line-height: 1.2; }
.bk-panel-title small { display: block; font-family: var(--bk-sans); font-weight: 400; font-size: 14px; color: var(--bk-muted); margin-top: 4px; }
.bk-panel-title .bk-ico { color: var(--bk-gold); width: 28px; height: 28px; }
.bk-num { width: 40px; height: 40px; border-radius: 50%; background: var(--bk-green); color: #fff; font-size: 20px; display: flex; align-items: center; justify-content: center; flex: none; }
.bk-mt { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--bk-line); }

/* format choice */
.bk-formats { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.bk-format { position: relative; display: flex; gap: 16px; align-items: flex-start; padding: 18px 44px 18px 18px; border: 1px solid var(--bk-line);
  border-radius: 12px; cursor: pointer; background: #fff; transition: border-color .15s, background .15s; }
.bk-format input { position: absolute; right: 16px; top: 18px; width: 22px; height: 22px; accent-color: var(--bk-green); }
.bk-format strong { display: block; font-family: var(--bk-serif); font-size: 21px; font-weight: 600; color: var(--bk-dark); }
.bk-format small { display: block; font-size: 14px; color: var(--bk-muted); }
.bk-format-ico { width: 52px; height: 52px; border-radius: 50%; background: #eef3ea; color: var(--bk-green); display: flex; align-items: center; justify-content: center; flex: none; }
.bk-format-ico .bk-ico { width: 26px; height: 26px; }
.bk-format:has(input:checked) { border-color: var(--bk-green); background: #f1f6ee; box-shadow: inset 0 0 0 1px var(--bk-green); }

/* date & time */
.bk-datetime { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 28px; }
.bk-time-col { border-left: 1px solid var(--bk-line); padding-left: 28px; }
.bk-panel-title-plain { font-size: 23px; }
.bk-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.bk-cal-month { font-family: var(--bk-serif); font-size: 23px; font-weight: 600; color: var(--bk-dark); }
.bk-cal-nav { background: none; border: 0; padding: 8px; cursor: pointer; color: var(--bk-dark); border-radius: 8px; }
.bk-cal-nav:hover { background: #f1ebdc; }
.bk-cal-nav:disabled { opacity: .25; cursor: default; background: none; }
.bk-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; transition: opacity .15s; }
.bk-loading { opacity: .45; pointer-events: none; }
.bk-cal-dow { text-align: center; font-size: 12.5px; color: var(--bk-muted); padding: 4px 0; }
.bk-day { aspect-ratio: 1.1; border: 1px solid var(--bk-line); background: #fff; border-radius: 8px; font: 16px var(--bk-serif); font-size: 18px; color: var(--bk-dark); cursor: pointer; padding: 0; }
.bk-day:disabled { background: #ece7dc; color: #a39d8f; border-color: transparent; cursor: default; }
.bk-day-av:hover { border-color: var(--bk-green); }
.bk-day-sel, .bk-day-sel:hover { background: var(--bk-green); color: #fff; border-color: var(--bk-green); }
.bk-cal-legend { display: flex; gap: 20px; font-size: 13px; color: var(--bk-muted); margin-top: 14px; flex-wrap: wrap; }
.bk-cal-legend i { display: inline-block; width: 14px; height: 14px; border-radius: 50%; margin-right: 7px; vertical-align: -2px; }
.bk-l-av { background: var(--bk-green); }
.bk-l-sel { border: 1.5px solid var(--bk-green); background: #fff; }
.bk-l-na { background: #d9d3c6; }
.bk-time-date { margin: 0 0 14px; }
.bk-time-date strong { display: block; font-family: var(--bk-serif); font-size: 20px; color: var(--bk-dark); }
.bk-time-date small { font-size: 13.5px; color: var(--bk-muted); }
.bk-time-date b { color: var(--bk-green); }
.bk-times { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; min-height: 60px; }
.bk-slot { border: 1px solid var(--bk-green); background: #fff; color: var(--bk-dark); border-radius: 8px; padding: 12px 6px; font: 600 15px var(--bk-sans); cursor: pointer; }
.bk-slot:hover { background: #f1f6ee; }
.bk-slot-sel, .bk-slot-sel:hover { background: var(--bk-green); color: #fff; }
.bk-note { display: flex; gap: 12px; align-items: flex-start; background: #eef3ea; border-radius: 10px; padding: 14px 16px; margin-top: 18px; font-size: 14px; }
.bk-note .bk-ico { color: var(--bk-green); width: 26px; height: 26px; }

/* forms */
.bk-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; }
.bk-field label { display: block; font-size: 15px; margin-bottom: 6px; color: var(--bk-text); }
.bk-req { color: var(--bk-err); }
.bk-input { display: flex; align-items: center; border: 1px solid #d8cfbb; border-radius: 9px; background: #fff; padding-left: 14px; }
.bk-input:focus-within { border-color: var(--bk-green); box-shadow: 0 0 0 3px rgba(31, 77, 46, .12); }
.bk-input > .bk-ico { color: #8a8478; }
.bk-input input, .bk-input textarea, .bk-input select { border: 0; outline: 0; background: transparent; font: 15px var(--bk-sans); color: var(--bk-text);
  padding: 14px 14px; width: 100%; min-width: 0; margin: 0; box-shadow: none; height: auto; }
.bk-phone select { width: auto; flex: none; border-right: 1px solid #e3dccc; padding-right: 8px; cursor: pointer; }
.bk-textarea { align-items: flex-start; padding-top: 12px; position: relative; }
.bk-textarea textarea { padding-top: 2px; resize: vertical; min-height: 110px; }
.bk-count { position: absolute; right: 12px; bottom: 8px; font-size: 12px; color: var(--bk-muted); }
.bk-check { display: flex !important; gap: 14px; align-items: flex-start; margin-top: 22px; cursor: pointer; }
.bk-check input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--bk-green); }
.bk-has-error .bk-input { border-color: var(--bk-err); }
.bk-err { color: var(--bk-err); font-size: 13.5px; margin-top: 5px; }
.bk-alert { background: #fbe9e4; color: var(--bk-err); border: 1px solid #efc6bb; border-radius: 10px; padding: 12px 16px; font-size: 14.5px; }
.bk-testbar { max-width: 1240px; margin: -16px auto 20px; background: #fff4d6; color: #7a5d12; border: 1px solid #ecd9a0; border-radius: 10px; padding: 10px 16px; font-size: 14px; text-align: center; }

/* what happens next */
.bk-next { background: #eef3ea; border-radius: 12px; padding: 18px 20px; margin-top: 18px; }
.bk-side .bk-next { background: none; padding: 0; margin: 0; }
.bk-next ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.bk-next li { display: flex; gap: 14px; font-size: 14.5px; align-items: flex-start; }
.bk-next li span { width: 28px; height: 28px; border-radius: 50%; background: var(--bk-green); color: #fff; display: flex; align-items: center; justify-content: center; flex: none; font-size: 14px; }

/* payment */
.bk-payment-element { min-height: 120px; margin-bottom: 14px; }
.bk-stripe-note { font-size: 14px; }
.bk-fine { text-align: right; font-size: 12.5px; color: var(--bk-muted); margin: 10px 0 0; }

/* confirmation */
.bk-layout-done { grid-template-columns: minmax(0, 1fr) 440px; }
.bk-side { display: grid; gap: 18px; }
.bk-tick { display: inline-flex; width: 64px; height: 64px; border-radius: 50%; background: #e3eee0; color: var(--bk-green); align-items: center; justify-content: center; vertical-align: middle; margin-left: 10px; }
.bk-tick .bk-ico { width: 34px; height: 34px; stroke-width: 2.2; }
.bk-mailnote { display: flex; gap: 18px; align-items: flex-start; margin-top: 8px; }
.bk-mailnote strong { font-family: var(--bk-serif); font-size: 21px; font-weight: 600; color: var(--bk-dark); }
.bk-round { width: 60px; height: 60px; border-radius: 50%; background: #e3eee0; color: var(--bk-green); display: flex; align-items: center; justify-content: center; flex: none; }
.bk-round .bk-ico { width: 28px; height: 28px; }
.bk-details { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; }
.bk-dl { margin: 0; display: grid; gap: 12px; }
.bk-dl > div { display: grid; grid-template-columns: 170px 1fr; gap: 10px; }
.bk-dl dt { display: flex; gap: 12px; align-items: flex-start; color: var(--bk-text); font-size: 14.5px; }
.bk-dl dt .bk-ico { color: var(--bk-gold); width: 22px; height: 22px; }
.bk-dl dd { margin: 0; font-family: var(--bk-serif); font-size: 19px; color: var(--bk-dark); line-height: 1.3; }
.bk-dl dd small { display: block; font-family: var(--bk-sans); font-size: 13px; color: var(--bk-muted); margin-top: 3px; }
.bk-pill { display: inline-flex; align-items: center; gap: 8px; background: #e3eee0; color: var(--bk-green); border-radius: 8px; padding: 4px 12px; font-size: 17px; }
.bk-pill .bk-ico { width: 18px; height: 18px; }
.bk-pill-due { background: #fff4d6; color: #7a5d12; }
.bk-details-fig { margin: 0; text-align: center; }
.bk-details-fig img { width: 100%; height: 240px; object-fit: cover; border-radius: 10px; display: block; }
.bk-details-fig figcaption { font-family: var(--bk-serif); font-style: italic; font-size: 19px; color: var(--bk-dark); padding: 14px 10px 0; }
.bk-details-fig figcaption .bk-divider { justify-content: center; margin: 8px 0 4px; }
.bk-details-fig figcaption span { font-style: normal; font-family: var(--bk-sans); font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--bk-green); }
.bk-done-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.bk-done-actions .bk-btn { font-size: 16px; justify-content: space-between; padding: 12px 14px; text-align: left; line-height: 1.2; }
.bk-support .bk-meta li { font-size: 16px; }

/* receipt */
.bk-receipt { max-width: 760px; margin: 0 auto; }
.bk-receipt-head { display: flex; gap: 14px; align-items: center; margin-bottom: 20px; }
.bk-receipt-head .bk-btn { margin-left: auto; font-size: 16px; min-height: 42px; padding: 8px 16px; }
.bk-receipt-table { width: 100%; border-collapse: collapse; margin-top: 12px; }
.bk-receipt-table th, .bk-receipt-table td { text-align: left; padding: 12px 8px; border-top: 1px solid var(--bk-line); vertical-align: top; font-size: 15px; }
.bk-receipt-table th { width: 40%; font-weight: 500; color: var(--bk-muted); }
@media print {
  body > *:not(main):not(.bk-page) { display: none !important; }
  #section-header, #section-footer, .bk-noprint, .bk-steps, header.header, footer { display: none !important; }
  .bk-page { background: #fff; padding: 0; }
  .bk-card { box-shadow: none; border: 0; }
}

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .bk-cards-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bk-layout, .bk-layout-done { grid-template-columns: minmax(0, 1fr) 360px; }
  .bk-details { grid-template-columns: 1fr; }
  .bk-details-fig { display: none; }
}
@media (max-width: 980px) {
  .bk-layout, .bk-layout-done { grid-template-columns: 1fr; }
  .bk-summary { position: static; }
  .bk-cards-3 { grid-template-columns: 1fr; max-width: 560px; margin-left: auto; margin-right: auto; }
  .bk-features { grid-template-columns: 1fr 1fr; gap: 12px 0; }
  .bk-feature:nth-child(3) { border-left: 0; }
  .bk-quote { display: none; }
  .bk-step-label { display: none; }
  .bk-step-current .bk-step-label { display: inline; }
  .bk-step + .bk-step::before { width: 22px; margin: 0 8px; }
}
@media (max-width: 760px) {
  .bk-page { padding: 24px 16px 56px; font-size: 15px; }
  .bk-cards-5, .bk-cards-2 { grid-template-columns: 1fr; max-width: 460px; margin-left: auto; margin-right: auto; }
  .bk-datetime { grid-template-columns: 1fr; }
  .bk-time-col { border-left: 0; padding-left: 0; border-top: 1px solid var(--bk-line); padding-top: 20px; }
  .bk-grid2 { grid-template-columns: 1fr; }
  .bk-intro, .bk-pad { padding: 22px 18px; }
  .bk-intro-row { flex-direction: column; }
  .bk-secure-top { max-width: none; }
  .bk-actions { flex-direction: column-reverse; }
  .bk-actions .bk-btn { width: 100%; }
  .bk-done-actions { grid-template-columns: 1fr; }
  .bk-dl > div { grid-template-columns: 1fr; gap: 2px; }
  .bk-features { grid-template-columns: 1fr; }
  .bk-feature { border-left: 0; padding: 6px 12px; }
  .bk-tick { width: 46px; height: 46px; }
  .bk-tick .bk-ico { width: 26px; height: 26px; }
  .bk-step-dot { width: 34px; height: 34px; font-size: 16px; }
  .bk-fine { text-align: left; }
}

/* landing: centred heading */
.bk-landing .bk-hero { text-align: center; margin-bottom: 34px; }
.bk-landing .bk-hero .bk-divider { justify-content: center; }
.bk-landing .bk-hero .bk-lead { margin: 6px auto 0; font-size: 19px; }
.bk-page * { font-variant-numeric: lining-nums; }
.bk-landing .bk-btn { font-size: 16px; padding: 10px 12px; gap: 8px; white-space: nowrap; }
.bk-landing .bk-btn .bk-ico { width: 16px; height: 16px; }
/* six steps on one line */
.bk-steps { flex-wrap: nowrap; }
.bk-step { font-size: 14px; gap: 8px; white-space: nowrap; }
.bk-step + .bk-step::before { width: 30px; margin: 0 10px; }
.bk-step-dot { width: 36px; height: 36px; font-size: 17px; }
@media (max-width: 1180px) { .bk-step-label { display: none; } .bk-step-current .bk-step-label { display: inline; } }

/* ===================================================== Marma Therapy flow */
.bk-left { text-align: left; }
.bk-mlayout { display: grid; grid-template-columns: 290px minmax(0, 1fr) 300px; gap: 22px; align-items: start; }
.bk-mside { background: linear-gradient(180deg, #fbf7ee, #f3ead8); border: 1px solid var(--bk-line); border-radius: 16px; padding: 28px 24px 0; overflow: hidden; display: flex; flex-direction: column; }
.bk-mside .bk-h2 { font-size: 30px; margin-bottom: 12px; }
.bk-mfeatures { list-style: none; margin: 10px 0 20px; padding: 0; display: grid; gap: 16px; }
.bk-mfeatures li { display: flex; gap: 14px; align-items: flex-start; }
.bk-mfeatures li > span { width: 40px; height: 40px; border-radius: 50%; border: 1px solid #d9c9a3; color: var(--bk-gold); display: flex; align-items: center; justify-content: center; flex: none; }
.bk-mfeatures strong { display: block; font-family: var(--bk-serif); font-size: 18px; font-weight: 600; color: var(--bk-dark); line-height: 1.2; }
.bk-mfeatures small { font-size: 13px; color: var(--bk-muted); }
.bk-mside-img { width: calc(100% + 48px); margin: auto -24px 0; height: 220px; object-fit: cover; display: block; }
.bk-mmain .bk-hero { margin-bottom: 20px; }
.bk-sessions { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.bk-session { position: relative; padding: 12px; display: flex; flex-direction: column; }
.bk-session > img { width: 100%; height: 170px; object-fit: cover; border-radius: 10px; display: block; }
.bk-session-rec { border: 1.5px solid var(--bk-gold); }
.bk-ribbon { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--bk-gold); color: #fff; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; padding: 4px 14px; border-radius: 999px; z-index: 1; }
.bk-session-body { padding: 16px 10px 6px; display: flex; flex-direction: column; flex: 1; }
.bk-tagline { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--bk-green); margin: 0 0 8px; font-weight: 600; }
.bk-session-desc { margin: 0 0 12px; color: #4a463e; padding-bottom: 12px; border-bottom: 1px solid var(--bk-line); }
.bk-checks { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; }
.bk-checks li { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; }
.bk-checks .bk-ico { color: var(--bk-gold); width: 20px; height: 20px; }
.bk-session-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.bk-price-left { margin: 0; padding: 0; text-align: left; font-size: 38px; }
.bk-session-foot .bk-btn { font-size: 17px; min-height: 46px; padding: 10px 18px; }
.bk-mbottom { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; margin-top: 20px; }
.bk-securebox { display: flex; gap: 14px; align-items: center; background: #eef3ea; border-radius: 12px; padding: 16px 18px; }
.bk-securebox .bk-ico { color: var(--bk-green); width: 28px; height: 28px; }
.bk-securebox strong { display: block; font-family: var(--bk-serif); font-size: 17px; color: var(--bk-dark); }
.bk-securebox span { font-size: 12.5px; color: var(--bk-muted); }
.bk-minifeat { list-style: none; margin: 0; padding: 12px 16px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; background: var(--bk-card); border: 1px solid var(--bk-line); border-radius: 12px; font-size: 12px; color: var(--bk-muted); }
.bk-minifeat li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.bk-minifeat .bk-ico { color: var(--bk-gold); width: 24px; height: 24px; }
.bk-mright { display: grid; gap: 16px; }
.bk-info .bk-h4 { font-size: 20px; }
.bk-more { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.bk-more .bk-ico { width: 16px; height: 16px; }
.bk-contact li { font-size: 15px; }
.bk-quote-card { padding: 26px 22px; text-align: center; background: linear-gradient(135deg, #eef3ea, #f7f2e8); }
.bk-quote-card p { font-family: var(--bk-serif); font-style: italic; font-size: 22px; color: var(--bk-dark); margin: 0 0 12px; line-height: 1.3; }
.bk-quote-card span { font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--bk-green); }

/* date step (single format) */
.bk-meta-lg li { font-size: 16px; }
.bk-secure-box { background: #f1ede2; border-radius: 10px; padding: 12px 14px; }

/* details / payment */
.bk-shieldnote { display: flex; gap: 12px; align-items: flex-start; background: #eef3ea; border-radius: 12px; padding: 14px 16px; max-width: 320px; align-self: flex-start; }
.bk-shieldnote .bk-ico { color: var(--bk-green); width: 30px; height: 30px; }
.bk-shieldnote strong { display: block; font-family: var(--bk-serif); font-size: 18px; color: var(--bk-dark); }
.bk-shieldnote span { font-size: 13px; color: var(--bk-muted); }
.bk-round-ico { width: 38px; height: 38px; border-radius: 50%; background: var(--bk-gold); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.bk-round-ico .bk-ico { color: #fff !important; width: 22px !important; height: 22px !important; }
.bk-yesno { border: 0; margin: 0; padding: 0; min-width: 0; }
.bk-yesno legend { font-size: 15px; margin-bottom: 8px; padding: 0; }
.bk-yesno > div { display: flex; gap: 26px; }
.bk-yesno label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 15px; }
.bk-yesno input { width: 20px; height: 20px; accent-color: var(--bk-green); margin: 0; }
.bk-mt-sm { margin-top: 18px; }
.bk-calm { background: linear-gradient(135deg, #eef3ea, #f7f2e8); }
.bk-sumtable { margin: 0 0 6px; display: grid; gap: 10px; }
.bk-sumtable > div { display: grid; grid-template-columns: 24px 120px 1fr; gap: 10px; align-items: start; font-size: 14.5px; }
.bk-sumtable .bk-ico { color: var(--bk-gold); width: 20px; height: 20px; }
.bk-sumtable dt { color: var(--bk-muted); }
.bk-sumtable dd { margin: 0; color: var(--bk-dark); font-family: var(--bk-serif); font-size: 17px; line-height: 1.3; }
.bk-countdown { display: grid; grid-template-columns: 26px 1fr 64px; gap: 12px; align-items: center; border-top: 1px solid var(--bk-line); margin-top: 14px; padding-top: 14px; }
.bk-countdown > .bk-ico { color: var(--bk-gold); width: 24px; height: 24px; }
.bk-countdown strong { display: block; font-family: var(--bk-serif); font-size: 18px; color: var(--bk-dark); }
.bk-countdown span { font-size: 12.5px; color: var(--bk-muted); }
.bk-ring { position: relative; width: 64px; height: 64px; }
.bk-ring svg { width: 64px; height: 64px; transform: rotate(-90deg); }
.bk-ring circle { fill: none; stroke-width: 3.5; }
.bk-ring-bg { stroke: #e3dccb; }
.bk-ring-fg { stroke: var(--bk-green); stroke-linecap: round; transition: stroke-dashoffset 1s linear; }
.bk-ring b { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 14px; color: var(--bk-dark); }
.bk-countdown-over .bk-ring b { color: var(--bk-err); }
.bk-agree { margin-top: 16px !important; }
.bk-charge { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.bk-charge .bk-ico { width: 15px; height: 15px; color: var(--bk-green); }

@media (max-width: 1180px) {
  .bk-mlayout { grid-template-columns: minmax(0, 1fr) 300px; }
  .bk-mside { display: none; }
}
@media (max-width: 980px) {
  .bk-mlayout { grid-template-columns: 1fr; }
  .bk-mbottom { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .bk-sumtable > div { grid-template-columns: 24px 1fr; }
  .bk-sumtable dd { grid-column: 2; }
  .bk-minifeat { grid-template-columns: 1fr 1fr; }
  .bk-shieldnote { max-width: none; }
  .bk-charge { justify-content: flex-start; }
}

.bk-session-foot .bk-btn { white-space: nowrap; }

/* ===================================================== confirmation page: closer to the design */
.bk-layout-done { grid-template-columns: minmax(0, 1fr) 410px; }
.bk-details { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 26px; }
.bk-dl { gap: 10px; }
.bk-dl > div { grid-template-columns: 158px minmax(0, 1fr); gap: 8px; align-items: baseline; }
.bk-dl dt { white-space: nowrap; align-items: center; }
.bk-dl dd { font-size: 17.5px; }
.bk-dl dd small a { color: var(--bk-green); text-decoration: underline; font-size: 13.5px; }
.bk-details-fig img { height: 250px; }
.bk-done-actions .bk-btn { white-space: nowrap; font-size: 15.5px; padding: 12px 16px; justify-content: space-between; gap: 10px; }
.bk-done-actions .bk-btn .bk-ico:first-child { width: 24px; height: 24px; }
.bk-side .bk-next li { position: relative; }
.bk-side .bk-next li:not(:last-child)::before { content: ''; position: absolute; left: 13.5px; top: 30px; bottom: -12px; width: 1px; background: #b9cbb3; }
.bk-side .bk-next li span { position: relative; z-index: 1; }
.bk-side > .bk-card:first-child { background: linear-gradient(180deg, #f7f9f3, var(--bk-card)); }
@media (max-width: 1180px) {
  .bk-layout-done { grid-template-columns: minmax(0, 1fr) 340px; }
  .bk-done-actions { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .bk-dl > div { grid-template-columns: 1fr; }
  .bk-dl dt { white-space: normal; }
}
.bk-dl > div { grid-template-columns: 172px minmax(0, 1fr); }
.bk-dl dt { font-size: 14px; gap: 10px; }
.bk-side .bk-btn-lg { font-size: 19px; white-space: nowrap; padding: 14px 18px; }

/* ===================================================== confirmation: design details */
.bk-layout-done .bk-dl dt { font-family: var(--bk-serif); font-size: 17px; color: var(--bk-dark); gap: 12px; }
.bk-layout-done .bk-dl dt .bk-ico { width: 26px; height: 26px; }
.bk-layout-done .bk-dl dd { font-size: 18.5px; }
.bk-layout-done .bk-dl dd small { font-family: var(--bk-serif); font-size: 15px; color: #5d594f; }
.bk-layout-done .bk-panel-title .bk-ico { width: 32px; height: 32px; }
.bk-layout-done .bk-pill { font-family: var(--bk-serif); font-size: 18px; padding: 5px 16px; }
.bk-layout-done .bk-pill .bk-ico { width: 22px; height: 22px; background: var(--bk-green); color: #fff; border-radius: 50%; padding: 4px; }
.bk-layout-done .bk-details-fig img { height: 260px; border-radius: 12px; }
.bk-gcal { position: relative; width: 26px; height: 26px; border-radius: 5px; background: #fff; border: 2px solid #4285f4; border-top: 6px solid #4285f4;
  display: inline-flex; align-items: center; justify-content: center; flex: none; box-shadow: 2px 2px 0 #34a853, -2px 2px 0 #fbbc04; }
.bk-gcal b { font: 700 11px/1 var(--bk-sans); color: #1a73e8; }
.bk-side .bk-h4 { font-size: 23px; }
.bk-side .bk-h4 .bk-ico { width: 30px; height: 30px; }
.bk-side .bk-support .bk-meta li { font-family: var(--bk-serif); font-size: 18px; }
.bk-side .bk-support .bk-meta .bk-ico { width: 24px; height: 24px; }
