/* Midnight layout: photography behind copy; motion never moves structural boxes. */
[hidden] { display:none !important; }
.midnight-hero { overflow:hidden; position:relative; isolation:isolate; display:block; }
.midnight-hero > .premium-hero-photo { position:absolute; inset:0; z-index:0; }
.midnight-hero::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(6,24,37,.4),transparent 68%); }
.midnight-hero .midnight-copy { position:relative; z-index:2; }
.premium-header .premium-brand { transform:none; flex-shrink:0; }
.premium-header .premium-brand small { display:block; font-size:.6rem; letter-spacing:.18em; line-height:1.3; margin-top:.2rem; color:var(--premium-gold); }
.premium-header .premium-contact { flex-shrink:0; }
.premium-header .premium-contact,.mobile-contact-enquire { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; }
.appointment-icon { display:block; flex-shrink:0; width:18px; height:18px; }
.appointment-label-short { display:none; }
.premium-header .premium-contact { background:var(--premium-gold); color:var(--premium-deep); border-color:var(--premium-gold); font-weight:600; }
.premium-header .premium-contact:hover { background:#ecd3a4; border-color:#ecd3a4; color:var(--premium-deep); }
.mobile-contact-bar { display:none; }
.appointment-dialog { padding:0; border:1px solid #d9d0bf; background:#fcfaf5; color:#0b2030; width:min(100%,30rem); max-width:100%; max-height:calc(100dvh - 1rem); margin:auto auto 0; border-radius:20px 20px 0 0; box-shadow:0 -16px 60px #0003; overflow:hidden; }
.appointment-dialog[open] { display:flex; flex-direction:column; }
.appointment-dialog::backdrop { background:#04131ecc; backdrop-filter:blur(5px); }
.appointment-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.1rem 1.25rem; border-bottom:1px solid #ded6c8; flex-shrink:0; }
.appointment-dialog-heading .premium-kicker { margin:0 0 .35rem; color:#795331; }
.appointment-dialog h2 { font:400 2rem/1.1 var(--ff-display); letter-spacing:-.025em; margin:0; }
.appointment-close { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; padding:0; border:1px solid #d9d0bf; border-radius:50%; background:transparent; color:#0b2030; font:400 1.8rem/1 var(--ff-body); cursor:pointer; }
.appointment-close:hover { background:#eee7da; }
.appointment-close:focus-visible { outline:2px solid #795331; outline-offset:3px; }
.appointment-dialog-body { padding:1rem 1.25rem calc(1.2rem + env(safe-area-inset-bottom,0px)); overflow-y:auto; overscroll-behavior:contain; min-height:0; }
.appointment-dialog .appointment-demo-note { padding:.7rem .85rem; font-size:.75rem; margin:0 0 1rem; }
.appointment-dialog .form-field + .form-field { margin-top:.8rem; }
.appointment-dialog .form-field label { font-size:.8rem; margin-bottom:.35rem; }
.appointment-dialog .form-field input { min-height:2.75rem; padding:.6rem .75rem; }
.appointment-dialog .form-field textarea { min-height:4rem; padding:.6rem .75rem; }
.appointment-dialog .field-help { margin:.35rem 0 0; }
.appointment-dialog .form-consent { margin:1rem 0 .4rem; }
.appointment-dialog .form-consent label { font-size:.75rem; }
.appointment-dialog .enquiry-submit { margin-top:.75rem; background:#dfc18a; color:#0b2030; border-color:#dfc18a; display:flex; align-items:center; justify-content:center; gap:.75rem; }
.appointment-dialog .enquiry-submit:hover { background:#ecd3a4; color:#0b2030; border-color:#dfc18a; }
.appointment-dialog .enquiry-privacy { font-size:.7rem; text-align:center; margin:.7rem 0 0; }
.appointment-dialog h3 { font:400 1.7rem/1.2 var(--ff-display); margin:.3rem 0 1rem; }
.appointment-dialog .whatsapp-preview { max-height:none; font-size:.8rem; line-height:1.6; margin:1rem 0; padding:.8rem; }
.appointment-open,.appointment-open body { overflow:hidden; }
.appointment-open .mobile-contact-bar { visibility:hidden; }
@media(prefers-reduced-motion:no-preference) {
  .appointment-dialog[open] { animation:appointment-enter .32s cubic-bezier(.2,.85,.25,1) both; }
  .appointment-dialog[open]::backdrop { animation:appointment-backdrop .25s ease both; }
}
@keyframes appointment-enter { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes appointment-backdrop { from { opacity:0; } to { opacity:1; } }
.direct-contact-card { margin-top:2rem; padding:1.75rem; background:#fcfaf5; border:1px solid #d9d0bf; box-shadow:0 12px 32px #0b203006; }
.direct-contact-card h3 { font-size:clamp(1.9rem,2.5vw,2.5rem); line-height:1.1; margin:.65rem 0 .9rem; }
.direct-contact-card > p { font-size:.9rem; line-height:1.7; color:#42515a; margin:0; }
.direct-contact-number { display:inline-block; font-size:1.1rem; color:var(--premium-deep); text-decoration:none; margin:1rem 0; }
.direct-contact-number:hover { text-decoration:underline; text-underline-offset:.25em; }
.direct-contact-email { display:block; width:fit-content; color:var(--premium-deep); font-size:.875rem; margin:0 0 1.2rem; text-underline-offset:.25em; overflow-wrap:anywhere; }
.beeps-location { margin-top:1.5rem; border-top:1px solid #d9d0bf; padding-top:1.25rem; }
.beeps-location h4 { font:600 .9rem/1.5 var(--ff-body); margin:0 0 .5rem; }
.beeps-location address { font-style:normal; font-size:.85rem; line-height:1.7; color:#42515a; }
.beeps-location > a { display:inline-block; margin-top:1rem; color:var(--premium-deep); font-size:.8rem; text-underline-offset:.25em; }
.appointment-demo-note { padding:1rem; background:#f0ece3; border-left:2px solid #bd9c65; color:#42515a; font-size:.8rem; line-height:1.6; margin:0 0 1.5rem; }
.direct-contact-actions { display:grid; gap:.65rem; }
.direct-contact-actions a { display:flex; align-items:center; justify-content:center; gap:.65rem; min-height:3.25rem; padding:.7rem 1rem; font-size:.875rem; font-weight:600; text-decoration:none; border:1px solid transparent; transition:background-color .2s ease; }
.direct-contact-actions img { flex-shrink:0; }
.direct-call { color:var(--premium-deep); background:var(--premium-gold); }
.direct-call:hover { background:#ecd3a4; }
.direct-whatsapp { color:#fcfaf5; background:#126451; }
.direct-whatsapp img { filter:invert(1); }
.direct-whatsapp:hover { background:#0d5141; }
.direct-contact-card .direct-contact-note { border-top:1px solid #d9d0bf; padding-top:1rem; margin-top:1.2rem; font-size:.75rem; line-height:1.6; }
#enquiry-form { scroll-margin-top:2rem; }
.premium-nav a,.premium-contact,.premium-textlink,.premium-button,.edition-switch a { transition:color .25s ease,background-color .25s ease,border-color .25s ease; }
.premium-story { transition:transform .4s cubic-bezier(.16,1,.3,1); }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .premium-story:hover { transform:translateY(-4px); }
  .premium-therapy-links h3 { transition:transform .3s cubic-bezier(.16,1,.3,1),color .3s ease; }
  .premium-therapy-links a:hover h3 { transform:translateX(4px); }
}
.enquiry-section { background:#eee7da; padding:6rem 0; scroll-margin-top:2rem; }
.enquiry-layout { display:grid; grid-template-columns:1fr 1.18fr; gap:5.5rem; align-items:start; }
.enquiry-intro { padding-top:1.7rem; }
.enquiry-intro h1,.enquiry-intro h2 { font:400 clamp(3.1rem,4.7vw,4.8rem)/1.02 var(--ff-display); letter-spacing:-.035em; margin:1.3rem 0 1.6rem; }
.enquiry-intro h1 em,.enquiry-intro h2 em { color:#795331; }
.enquiry-intro>p:not(.premium-kicker):not(.enquiry-process) { color:#42515a; max-width:26rem; font-size:1rem; line-height:1.8; }
.enquiry-recipient { margin-top:3rem; border-top:1px solid #c8b99e; padding-top:1.6rem; display:flex; flex-direction:column; align-items:start; gap:.35rem; }
.enquiry-recipient-label { font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; color:#795331; }
.enquiry-recipient strong { font-size:1.2rem; font-weight:500; }
.enquiry-recipient a { color:var(--premium-deep); text-decoration:none; font-size:1rem; }
.enquiry-recipient a:hover { text-decoration:underline; }
.enquiry-recipient p { font-size:.875rem; color:#42515a; max-width:22rem; margin:.8rem 0 0; }
.enquiry-process { display:flex; gap:.75rem; margin-top:2rem; font-size:.75rem; color:#795331; }
.enquiry-process span { color:#9f8b6a; }
.enquiry-card { background:#fcfaf5; padding:2.5rem; border:1px solid #d9d0bf; box-shadow:0 14px 45px #0b203008; }
.enquiry-card-heading { margin-bottom:1.8rem; }
.enquiry-card-heading h3 { font:400 2.4rem/1.1 var(--ff-display); margin:.7rem 0 .6rem; letter-spacing:-.025em; }
.enquiry-card-heading>p { font-size:.8rem; color:#52606a; margin:0; }
.enquiry-fields { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem 1rem; }
.form-field { min-width:0; }
.field-wide { grid-column:1/-1; }
.form-field label { display:flex; align-items:baseline; gap:.4rem; font-size:.875rem; font-weight:600; margin-bottom:.5rem; }
.field-optional { font-size:.75rem; font-weight:400; color:#667078; margin-left:auto; }
.form-field input,.form-field select,.form-field textarea { font:400 1rem/1.5 var(--ff-body); color:#0b2030; background:#fffdfa; border:1px solid #b8b3a9; border-radius:2px; padding:.8rem .9rem; width:100%; min-height:3.2rem; transition:border-color 180ms,box-shadow 180ms; }
.form-field select { appearance:auto; padding-right:1.6rem; }
.form-field textarea { resize:vertical; min-height:7rem; }
.form-field input::placeholder,.form-field textarea::placeholder { color:#73777a; opacity:1; font-size:.875rem; }
.form-field input:hover,.form-field select:hover,.form-field textarea:hover { border-color:#795331; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:#795331; outline:2px solid #795331; outline-offset:2px; box-shadow:0 0 0 5px #79533110; }
.form-field [aria-invalid="true"] { border-color:#9c342e; }
.field-help { display:flex; justify-content:space-between; gap:.7rem; font-size:.7rem; line-height:1.5; color:#52606a; margin-top:.5rem; }
#message-count { white-space:nowrap; }
.form-consent { display:flex; align-items:start; gap:.75rem; margin:1.5rem 0 .5rem; }
.form-consent input { appearance:auto; width:1.15rem; height:1.15rem; min-width:1.15rem; accent-color:#0b2030; margin:.15rem 0 0; }
.form-consent label { font-size:.8rem; line-height:1.6; cursor:pointer; }
.enquiry-submit { width:100%; cursor:pointer; background:#0b2030; color:#f7f3ea; min-height:3.4rem; margin-top:1.2rem; font-family:var(--ff-body); font-size:.9rem; border-radius:2px; }
.enquiry-submit:hover { background:#193f51; color:#fcfaf5; border-color:#193f51; }
.enquiry-submit:disabled { opacity:.55; cursor:wait; }
.enquiry-privacy { color:#52606a; font-size:.75rem; line-height:1.6; text-align:center; margin:1rem 0 0; }
.field-error { color:#9c342e; font-size:.8rem; line-height:1.45; margin:.45rem 0 0; }
.form-error-summary { border-left:3px solid #9c342e; background:#f8ece8; padding:.8rem 1rem; color:#8b2925; font-size:.875rem; margin-bottom:1.5rem; }
.message-recipient { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem; font-size:.8rem; border-block:1px solid #d9d0bf; padding:.8rem 0; }
.whatsapp-preview { font:400 .9rem/1.8 var(--ff-body); white-space:pre-wrap; overflow-wrap:anywhere; word-break:normal; margin:1.5rem 0; padding:1.2rem; color:#243d43; background:#f0ece3; border-left:2px solid #bd9c65; max-height:28rem; overflow:auto; }
.enquiry-edit { font:400 .875rem/1.5 var(--ff-body); display:block; padding:.7rem; background:none; border:0; border-bottom:1px solid #795331; color:#795331; margin:1rem auto 0; cursor:pointer; }
.enquiry-edit:hover { color:#0b2030; }
#review-title:focus { outline:0; }
.contact-page .enquiry-section { min-height:calc(100vh - 8rem); }
@media(max-width:1100px){.enquiry-layout{gap:2.5rem;grid-template-columns:1fr 1.25fr}.enquiry-card{padding:1.8rem}.enquiry-intro h1,.enquiry-intro h2{font-size:3.7rem}}
@media(max-width:850px){.enquiry-layout{grid-template-columns:1fr;gap:2.5rem}.enquiry-intro{padding-top:0}.enquiry-intro>p:not(.premium-kicker):not(.enquiry-process){max-width:34rem}.enquiry-recipient{margin-top:1.5rem}.enquiry-process{display:none}.enquiry-card{padding:2rem}.enquiry-section{padding:3.5rem 0}.enquiry-intro h1,.enquiry-intro h2{font-size:clamp(3rem,7vw,4rem)}}
@media(max-width:480px){.enquiry-fields{grid-template-columns:1fr;gap:1.2rem}.enquiry-card{padding:1.4rem}.enquiry-card-heading h3{font-size:2.1rem}.enquiry-layout{width:calc(100% - 2rem)}.enquiry-intro h1,.enquiry-intro h2{font-size:3.1rem}.field-help{flex-wrap:wrap}.enquiry-privacy{text-align:left}.enquiry-section{padding:3rem 0}.whatsapp-preview{padding:1rem}}

@media(max-width:760px) {
  .appointment-label-full { display:none; }
  .appointment-label-short { display:inline; white-space:nowrap; }
  body { padding-bottom:calc(4.5rem + env(safe-area-inset-bottom,0px)); }
  html { scroll-padding-bottom:calc(5rem + env(safe-area-inset-bottom,0px)); }
  .mobile-contact-bar { display:block; position:fixed; z-index:50; inset:auto 0 0; padding:.6rem max(1rem,env(safe-area-inset-right,0px)) calc(.7rem + env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px)); background:#fcfaf5; border-top:1px solid #d9d0bf; box-shadow:0 -6px 24px #0b20300d; }
  .mobile-contact-actions { display:grid; grid-template-columns:3rem 3.75rem 3rem minmax(0,1fr); gap:.375rem; max-width:36rem; margin-inline:auto; }
  .mobile-contact-actions a { min-height:3rem; text-decoration:none; color:var(--premium-deep); }
  .mobile-contact-icon { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem; border:1px solid #d9d0bf; border-radius:3px; }
  .mobile-contact-icon span { font-size:.625rem; line-height:1.2; }
  .mobile-contact-icon:hover { background:#eee7da; }
  .mobile-contact-enquire { display:flex; align-items:center; justify-content:center; text-align:center; line-height:1.3; padding:.6rem; border-radius:3px; background:var(--premium-gold); font-size:.8rem; font-weight:600; }
  .mobile-contact-enquire:hover { background:#ecd3a4; }
  body:has(input:not([type="checkbox"]):focus,textarea:focus,select:focus) .mobile-contact-bar { visibility:hidden; pointer-events:none; }
  .direct-contact-card { padding:1.4rem; }
  .midnight-copy { padding-top:3.5rem; }
  .midnight-copy h1 { font-size:clamp(3rem,11.5vw,5.5rem); }
  .midnight-hero::before { background:linear-gradient(90deg,rgba(6,24,37,.55),rgba(6,24,37,.12)); }
  .enquiry-layout > * { min-width:0; }
}
@media(max-width:400px) {
  .mobile-contact-bar { padding-inline:max(.75rem,env(safe-area-inset-left,0px)) max(.75rem,env(safe-area-inset-right,0px)); }
  .mobile-contact-enquire { gap:.35rem; padding-inline:.4rem; font-size:.75rem; }
  .premium-header-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:.5rem; }
  .premium-nav { grid-column:1/-1; }
  .premium-brand { font-size:1.5rem; gap:.35rem; }
  .premium-brand .wordmark__mark { width:1.5rem; height:1.5rem; }
  .premium-header .premium-brand small { font-size:.52rem; }
  .premium-contact { display:flex; align-items:center; justify-content:center; font-size:.65rem; padding:.6rem .5rem; white-space:normal; text-align:center; max-width:8.5rem; min-height:2.75rem; }
  .enquiry-intro h1,.enquiry-intro h2 { font-size:2.8rem; }
}
@media(prefers-reduced-motion:reduce) {
  .premium-story:hover,.premium-therapy-links a:hover h3 { transform:none; }
}
