/* ==========================================================
   Book page (book.html)
   Builds on site.css tokens: --navy, --gold, --soft, --line, --mute, --serif, --sans, --sec, --gut
   ========================================================== */

/* hero: the group portrait sits a little higher so every face stays in frame */
.page-hero .ph-img img{object-position:50% 30%}

/* shared section heading */
.bk-h2{font-size:clamp(34px,4.6vw,72px);line-height:1.02}
.bk-h2 em{font-style:italic}
.bk-head{padding-bottom:clamp(30px,3.6vw,52px)}
.bk-head .bk-intro{margin-top:22px;max-width:520px;color:var(--mute);font-size:14px}

/* ---------- two paths: new + returning ---------- */
.bk-paths{padding-block:var(--sec)}
.bk-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.2vw,16px);align-items:stretch}
.bk-path{display:flex;flex-direction:column;min-width:0}
.bk-path--soft{background:var(--soft)}
.bk-ph{aspect-ratio:16/10;overflow:hidden;background:var(--soft)}
.bk-ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.bk-path:hover .bk-ph img{transform:scale(1.04)}
.bk-body{display:flex;flex-direction:column;flex:1;padding:clamp(26px,3.2vw,52px)}
.bk-body h3{margin-top:0;font-size:clamp(34px,3.6vw,56px);line-height:1.02}
.bk-body h3 em{font-style:italic;color:var(--gold-tx)}
.on-navy.bk-path h3 em{color:var(--gold)}
.bk-body p{margin-top:18px;max-width:460px;color:var(--mute);font-size:14.5px}
.bk-actions{margin-top:auto;padding-top:clamp(28px,3vw,44px);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.bk-actions .btn{min-height:48px}
.bk-path--soft .btn-gold:hover{background:var(--navy);border-color:var(--navy);color:#fff}

/* ---------- appointment details ---------- */
.bk-details{padding-bottom:var(--sec)}
.bk-details-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,7vw,120px);align-items:center}
.bk-details-img{aspect-ratio:.78;overflow:hidden;background:var(--soft)}
.bk-details-img img{width:100%;height:116%;object-fit:cover;object-position:50% 40%;will-change:transform}
.bk-lead{margin-top:26px;max-width:520px;color:var(--mute);font-size:15px}
.bk-facts{margin-top:clamp(32px,4vw,52px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.bk-facts li{padding:22px 18px 0 0}
.bk-facts li+li{padding-left:18px;border-left:1px solid var(--line)}
.bk-facts b{display:block;font-weight:400;font-size:clamp(22px,2vw,30px);line-height:1.1}
.bk-facts b em{font-style:italic;color:var(--gold-sm)}
.bk-facts span{display:block;margin-top:10px;font-size:11px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.bk-price{margin-top:clamp(32px,4vw,48px);border-top:1px solid var(--line)}
.bk-price-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.bk-price-name{font-weight:500;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.bk-price-val{white-space:nowrap;color:var(--mute);font-size:12px}
.bk-price-val b{font-weight:400;font-size:clamp(24px,2.2vw,32px);color:var(--ink);margin:0 4px}
.bk-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:22px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;border-bottom:1px solid var(--line);transition:border-color .4s var(--ease),gap .5s var(--ease-out)}
.bk-link svg{width:13px;height:13px}
.bk-link:hover{border-color:var(--gold);gap:16px}

/* ---------- Square booking embed (placeholder frame) ---------- */
.bk-square{padding-block:var(--sec)}
.bk-square-head{text-align:center;margin-bottom:clamp(30px,3.6vw,52px)}
.bk-embed{position:relative;max-width:980px;margin:0 auto;min-height:clamp(340px,40vw,480px);border:1px solid var(--line);display:grid;place-items:center;padding:clamp(36px,5vw,72px) clamp(20px,4vw,64px);text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0))}
.bk-corner{position:absolute;width:22px;height:22px;border:0 solid var(--gold)}
.bk-corner.tl{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px}
.bk-corner.tr{top:-1px;right:-1px;border-top-width:1px;border-right-width:1px}
.bk-corner.bl{bottom:-1px;left:-1px;border-bottom-width:1px;border-left-width:1px}
.bk-corner.br{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px}
.bk-embed-note{max-width:560px}
.bk-cal{width:44px;height:44px;margin:0 auto;color:var(--gold)}
.bk-embed-title{margin-top:24px;font-size:clamp(28px,3.2vw,46px);line-height:1.08}
.bk-embed-title em{color:var(--gold)}
.bk-embed-sub{margin-top:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--mute)}
.bk-embed-alt{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);font-size:14px;color:var(--mute)}
.bk-embed-alt a{color:#fff;border-bottom:1px solid rgba(201,164,108,.6);transition:color .4s var(--ease)}
.bk-embed-alt a:hover{color:var(--gold)}

/* ---------- cancellation policy ---------- */
.bk-policy{padding-block:var(--sec);scroll-margin-top:72px}
.bk-policy-grid{display:grid;grid-template-columns:1fr;gap:clamp(30px,3.6vw,52px);align-items:start}
.bk-policy-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.bk-policy-list li{display:grid;grid-template-columns:minmax(0,.42fr) 1fr;gap:clamp(18px,3vw,48px);align-items:baseline;padding:clamp(24px,2.8vw,36px) 0;border-bottom:1px solid var(--line)}
.bk-policy-list b{font-weight:400;font-size:clamp(36px,3.6vw,56px);line-height:1;white-space:nowrap}
.bk-policy-list b em{font-style:italic;color:var(--gold-tx)}
.bk-policy-list p{font-size:15.5px;line-height:1.65;max-width:560px}

/* ---------- questions CTA ---------- */
.bk-final .final-frame img{object-position:50% 30%}
.bk-final-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
#square-booking{scroll-margin-top:64px}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .bk-details-grid{grid-template-columns:1fr}
  .bk-details-img{aspect-ratio:1.2}
}
@media (max-width:768px){
  .bk-grid{grid-template-columns:1fr;gap:14px;margin:0 calc(var(--gut)*-1)}
  .bk-body{padding:26px var(--gut) 30px}
  .bk-ph{aspect-ratio:4/3}
  .bk-actions{align-items:stretch}
  .bk-actions .btn,.bk-final-actions .btn{justify-content:space-between;font-size:12.5px;letter-spacing:.06em}
  .bk-facts{grid-template-columns:1fr}
  .bk-facts li,.bk-facts li+li{padding:18px 0;border-left:0;border-bottom:1px solid var(--line)}
  .bk-facts li:last-child{border-bottom:0}
  .bk-facts span{margin-top:6px}
  .bk-price{margin-top:12px}
  .bk-price-row{flex-direction:column;align-items:flex-start;gap:4px}
  .bk-embed{min-height:0}
  .bk-policy-list li{grid-template-columns:1fr;gap:12px}
  .bk-final-actions{flex-direction:column;align-items:stretch;max-width:320px;margin:0 auto}
}
/* Square widget from Eagle Settings: let it use the full frame width */
.bk-embed--live{display:block;text-align:left}

/* online booking status under the "Where are you in your care?" heading */
.bk-status{display:block;margin-top:22px;max-width:520px;font-size:14px;line-height:1.6;color:var(--mute)}
.bk-status i{display:inline-block;vertical-align:middle;margin-right:10px;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(201,164,108,.22)}
.bk-status a{color:var(--ink);border-bottom:1px solid currentColor;white-space:nowrap}
