/* ---------- Book / contact (BRIEF 5.13) ---------- */
.cta-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4.5rem;align-items:start}
.cta-copy h2{font-size:clamp(2.4rem,4.6vw,3.8rem);margin:1.3rem 0 1.2rem;color:var(--cream)}
.cta-copy p{color:var(--cream-dim);font-size:1.0625rem;max-width:46ch;margin-bottom:1rem}
.contact-list{list-style:none;margin-top:2.2rem;display:grid;gap:1.1rem}
.contact-list+.contact-list{margin-top:1.1rem}
.booking-card .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden} /* spam trap, hidden from people */
.contact-list li{display:flex;align-items:flex-start;gap:1rem;color:var(--cream-dim);font-size:1rem}
.contact-list svg{width:20px;height:20px;stroke:var(--gold-rich);flex:none;margin-top:.15rem}
.contact-list a{color:var(--cream);border-bottom:1px solid var(--line);transition:color .3s,border-color .3s}
.contact-list a{position:relative}.contact-list a::before{content:"";position:absolute;inset:-.6rem -.3rem} /* phone numbers: ~44px touch target */
.contact-list a:hover{color:var(--gold-display);border-color:var(--gold-display)}
.booking-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:2.2rem 2.4rem}
.booking-card h3{font-size:1.8rem;color:var(--cream);margin-bottom:.4rem}
.booking-card>p{color:var(--muted);font-size:.9375rem;margin-bottom:1.4rem}
.field{margin-bottom:.95rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem} /* phone and email side by side */
.cta-book{margin-top:2.2rem}
.field label{display:block;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-mist);margin-bottom:.5rem}
.field input,.field select,.field textarea{width:100%;background:var(--field-bg);border:1px solid var(--line);border-radius:3px;padding:.9rem 1rem;color:var(--cream);
  font:300 1rem/1.4 var(--sans);transition:border-color .3s} /* 16px: below this iOS zooms in on focus */
.field input::placeholder,.field textarea::placeholder{color:var(--blue-mist)}
.field textarea{resize:vertical;min-height:5.6rem;display:block}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--gold-rich);outline-offset:2px;border-color:var(--gold-rich)}
.field select option{background:var(--bg);color:var(--cream)}
.form-actions{display:grid;gap:.8rem;margin-top:1.3rem}
.form-actions .btn{width:100%;justify-content:center}
.booking-card .fine{font-size:.75rem;color:var(--muted);text-align:center;margin-top:1rem;letter-spacing:.03em;line-height:1.55}
@media(max-width:960px){ .cta-grid{grid-template-columns:1fr;gap:3rem} }
@media(max-width:640px){ .booking-card{padding:1.8rem 1.4rem} .field-row{gap:0 .7rem} .cta-book{width:100%;justify-content:center} }
@media(max-width:359px){ .field-row{grid-template-columns:1fr} } /* very narrow phones: one per line */

/* ---------- Footer (BRIEF 5.14): navy in both themes ---------- */
.site-foot{background:var(--navy-900);border-top:1px solid rgba(201,162,75,.18);padding:4rem 0 2rem;color:var(--cream)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;margin-bottom:3rem}
.foot-brand .logo{margin-bottom:1.2rem}
.foot-brand p{color:var(--muted);font-size:.9375rem;max-width:30ch}
.foot-col h2{font:500 .75rem/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:.7rem;color:var(--cream-dim);font-size:.9375rem}
.foot-col a{color:var(--cream-dim);transition:color .3s}
.foot-col a:hover{color:var(--gold-bright)}
.foot-bottom{border-top:1px solid rgba(201,162,75,.14);padding-top:1.8rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}
.foot-bottom p{color:var(--muted);font-size:.8125rem;letter-spacing:.04em}
.socials{display:flex;gap:.8rem;list-style:none}
.socials a{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--gold-bright);transition:.4s}
.socials a:hover{background:var(--gold);border-color:var(--gold);color:var(--navy-900)}
.socials svg{width:16px;height:16px;stroke:currentColor}
@media(max-width:960px){ .foot-grid{grid-template-columns:1fr 1fr} }
@media(max-width:640px){ .foot-grid{grid-template-columns:1fr;gap:2rem} .foot-bottom{flex-direction:column;align-items:flex-start} }
.field input[aria-invalid="true"]{border-color:#c0533a}
/* Touch screens: footer links get 44px tap targets (desktop spacing unchanged) */
@media(pointer:coarse),(max-width:640px){
  .foot-col li{margin-bottom:.15rem}
  .foot-col a{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:820px),(pointer:coarse){ .field label{font-size:.75rem} }

/* clinic addresses: service named above each one (Book list and footer) */
.contact-tag{display:block;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:.15rem}
.foot-clinic{margin-bottom:1rem}
.foot-clinic .foot-tag{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-bright);margin-bottom:.2rem}
