@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=DM+Sans:wght@400;500;600&display=swap');

:root { --bg:#fdfcf9; --fg:#20211e; --muted:#656964; --line:#d6d7d0; --accent:#20211e; --font-heading:'Cormorant Garamond',Georgia,serif; --font-body:'DM Sans',Arial,sans-serif; --radius-card:0; --radius-btn:0; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:var(--font-body); font-size:16px; font-weight:400; line-height:1.65; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-underline-offset:5px; }
a:hover { text-decoration-thickness:2px; }
button,input,textarea { font:inherit; }
:focus-visible { outline:2px solid #6b7658; outline-offset:5px; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--font-heading); font-weight:400; line-height:1.05; letter-spacing:-.045em; }
.skip-link { position:absolute; top:-90px; left:20px; padding:10px 20px; background:var(--fg); color:var(--bg); z-index:20; }
.skip-link:focus { top:10px; }
.minimal-header { max-width:1600px; padding:20px 5.3%; margin:auto; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.minimal-brand { font-family:var(--font-heading); font-size:44px; line-height:1; letter-spacing:-.065em; white-space:nowrap; text-decoration:none; }
.minimal-nav { display:flex; align-items:center; gap:42px; }
.minimal-nav a { margin:0; font-size:16px; letter-spacing:0; text-decoration:none; color:var(--muted); }
.minimal-nav a:hover,.minimal-nav a[aria-current=page] { color:var(--fg); text-decoration:underline; }
.minimal-button,.minimal-nav .minimal-button { display:inline-flex; align-items:center; justify-content:center; gap:20px; background:var(--fg); border:1px solid var(--fg); padding:13px 27px; color:var(--bg); text-decoration:none; font-size:16px; line-height:1.5; font-weight:400; cursor:pointer; border-radius:0; transition:background .2s; }
.minimal-button:hover,.minimal-nav .minimal-button:hover { background:#42483d; color:#fff; text-decoration:none; }
.arrow { width:18px; height:18px; flex:none; }
.minimal-button .arrow { filter:invert(1); }
.home-intro { text-align:center; padding:47px 24px 34px; }
.overline { font:400 12px/1.5 var(--font-body); text-transform:uppercase; letter-spacing:.21em; color:var(--muted); margin:0 0 17px; }
.home-intro h1 { font-size:clamp(44px,4.95vw,76px); margin:0 0 15px; }
.home-intro .subtitle { font-size:20px; color:var(--muted); margin:0; }
.panorama { max-width:400px; margin:0 auto; width:calc(100% - 68px); }
.panorama img { width:100%; height:auto; object-fit:cover; object-position:center top; }
.service-strip { max-width:1532px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr 1fr; padding:50px 22px 42px; width:calc(100% - 68px); }
.service-strip article { padding:0 36px; }
.service-strip article + article { border-left:1px solid var(--line); padding-left:76px; }
.service-strip h2 { font-size:clamp(36px,3.85vw,58px); margin:0 0 12px; white-space:nowrap; }
.service-strip h2 a { text-decoration:none; }
.service-strip h2 a:hover { text-decoration:underline; text-decoration-thickness:1px; }
.service-strip p { margin:0; font-size:19px; color:var(--muted); }
.minimal-footer { max-width:1516px; width:calc(100% - 84px); margin:0 auto; border-top:1px solid var(--line); padding:24px 10px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; font-size:15px; color:var(--muted); }
.minimal-footer a { text-decoration:none; }
.minimal-footer a:hover { text-decoration:underline; }
.footer-cta { display:inline-flex; align-items:center; gap:15px; }
.page-shell { max-width:1120px; padding:62px 36px 90px; margin:auto; }
.page-heading { max-width:760px; margin-bottom:46px; }
.page-heading h1 { font-size:clamp(48px,5vw,72px); margin-bottom:16px; }
.page-heading .subtitle { font-size:19px; color:var(--muted); max-width:590px; }
.booking-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:88px; }
.booking-main h2,.booking-aside h2,.contact-section h2 { font-size:36px; margin:0 0 22px; }
.price-list { padding:0; margin:0 0 30px; }
.price-row { display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid var(--line); padding:15px 0; }
.price-row:last-child { border-bottom:1px solid var(--line); }
.price-row dt { font-size:17px; }
.price-row dd { font-family:var(--font-heading); font-size:38px; margin:0; }
.booking-main .minimal-button { width:100%; }
.booking-note { color:var(--muted); font-size:14px; margin:17px 0; line-height:1.7; }
.booking-main .booking-note strong { color:var(--fg); font-weight:500; }
.booking-aside p { color:var(--muted); margin-bottom:20px; }
.booking-aside .address { color:var(--fg); }
.booking-days { display:block; margin-bottom:9px; }
.quiet-link { display:inline-flex; gap:12px; align-items:center; }
.details-list { margin-top:38px; }
.details-list details { border-top:1px solid var(--line); }
.details-list details:last-child { border-bottom:1px solid var(--line); }
.details-list summary { padding:15px 0; cursor:pointer; font-size:15px; }
.details-list p { font-size:14px; color:var(--muted); margin:0 0 20px; }
.contact-section { display:grid; grid-template-columns:1fr 1.1fr; gap:88px; border-top:1px solid var(--line); padding-top:46px; margin-top:74px; scroll-margin-top:36px; }
.contact-section p { color:var(--muted); }
.contact-section a { overflow-wrap:anywhere; }
.enquiry-form label { display:block; font-size:14px; margin-bottom:7px; }
.enquiry-form input,.enquiry-form textarea { width:100%; background:transparent; border:1px solid #aaaFA4; border-radius:0; padding:11px 12px; margin:0 0 18px; color:var(--fg); }
.enquiry-form textarea { min-height:104px; resize:vertical; }
.form-success { display:none; }
.form-error { color:#8a3426; font-size:14px; }
.minimal-button:disabled { opacity:.65; cursor:wait; }
.enquiry-layout { display:grid; grid-template-columns:1.2fr .9fr; gap:90px; }
.enquiry-aside { padding-top:4px; }
.enquiry-aside h2,.enquiry-success h2 { font-size:38px; margin-bottom:20px; }
.enquiry-aside p { color:var(--muted); }
.enquiry-aside a { font-size:14px; overflow-wrap:anywhere; }
.session-prices { padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.mobile-session-prices { display:none; }
.form-pair { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.preference-group { padding:0; border:0; margin:0 0 22px; min-width:0; }
.preference-group legend { padding:0; margin-bottom:9px; font-size:14px; }
.preference-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.enquiry-form .preference-choice { position:relative; margin:0; cursor:pointer; }
.enquiry-form .preference-choice input { position:absolute; opacity:0; width:1px; height:1px; margin:0; }
.preference-choice span { display:block; text-align:center; padding:12px 16px; border:1px solid #aaafa4; transition:background .15s,color .15s; }
.preference-choice input:checked + span { background:var(--fg); color:var(--bg); border-color:var(--fg); }
.preference-choice input:focus-visible + span { outline:2px solid #6b7658; outline-offset:4px; }
.preference-choice:hover span { border-color:var(--fg); }
.optional { color:var(--muted); font-size:12px; }
.enquiry-success { border-top:1px solid var(--line); padding-top:26px; }
.enquiry-success p { color:var(--muted); }
.about-layout { display:grid; grid-template-columns:.9fr 1.1fr; align-items:start; gap:90px; }
.about-photo img { width:100%; max-height:590px; object-fit:cover; object-position:top; }
.about-copy h1 { font-size:68px; margin-bottom:24px; }
.about-copy p { color:var(--muted); }
.about-copy .minimal-button { margin-top:14px; }
.about-copy details { margin-top:28px; }
.about-copy summary { cursor:pointer; }
.about-copy details p { margin-top:16px; }
.therapy-row { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; border-top:1px solid var(--line); padding:34px 0; scroll-margin-top:32px; }
.therapy-row h2 { font-size:48px; margin-bottom:12px; }
.therapy-row p { color:var(--muted); max-width:560px; }
.therapy-row .overline { font-size:11px; }
.text-link { display:inline-block; margin-top:14px; color:var(--fg); font-size:15px; text-decoration:underline; text-underline-offset:5px; }
.text-link:hover { text-decoration-thickness:2px; }
.closing-cta { border-top:1px solid var(--line); padding-top:32px; margin-top:12px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.closing-cta p { margin:0; color:var(--muted); }
.legacy-design .card { box-shadow:none; border-radius:0; }
.legacy-design .wrap { max-width:1120px; }
.legacy-design .brand { text-transform:none; }
.legacy-design .sticky-booking-cta { background:var(--fg); border-radius:0; }
.legacy-design .footer { display:none!important; }
@media(min-width:1600px) { .minimal-header { padding-left:76px; padding-right:76px; } }
@media(max-width:1100px) { .minimal-header { padding:24px 32px; } .minimal-brand { font-size:38px; } .minimal-nav { gap:28px; } .service-strip article { padding:0 18px; } .service-strip article + article { padding-left:32px; } .service-strip h2 { font-size:38px; } .service-strip p { font-size:16px; } .booking-layout,.about-layout,.contact-section { gap:48px; } }
@media(max-width:1000px) {
  .minimal-header { padding:23px 22px; gap:16px; flex-wrap:wrap; }
  .minimal-brand { font-size:36px; }
  .minimal-nav { gap:22px; margin-left:auto; }
  .minimal-nav a { font-size:14px; }
  .minimal-nav .minimal-button { padding:10px 15px; font-size:14px; gap:10px; }
  .home-intro { padding:40px 24px 30px; }
  .home-intro h1 { font-size:52px; max-width:590px; margin:0 auto 17px; }
  .home-intro .subtitle { font-size:16px; max-width:300px; margin:auto; }
  .overline { font-size:10px; letter-spacing:.16em; }
  .panorama { width:calc(100% - 40px); }
  .panorama img { height:380px; object-position:center top; }
  .service-strip { width:calc(100% - 44px); padding:14px 0 20px; grid-template-columns:1fr; }
  .service-strip article,.service-strip article + article { padding:22px 4px; border-left:0; }
  .service-strip article + article { border-top:1px solid var(--line); }
  .service-strip h2 { font-size:40px; margin-bottom:7px; }
  .service-strip p { font-size:16px; }
  .minimal-footer { width:calc(100% - 44px); padding:22px 0; align-items:flex-start; flex-direction:column; gap:12px; font-size:13px; }
  .minimal-footer .footer-cta { font-size:14px; padding:8px 0; }
  .page-shell { padding:38px 24px 54px; }
  .page-heading { margin-bottom:30px; }
  .page-heading h1 { font-size:52px; }
  .page-heading .subtitle { font-size:17px; }
  .booking-layout,.contact-section,.about-layout { grid-template-columns:1fr; gap:38px; }
  .enquiry-layout { grid-template-columns:1fr; gap:40px; }
  .mobile-session-prices { display:block; margin:0; color:var(--muted); }
  .enquiry-aside .session-prices { display:none; }
  .enquiry-aside { border-top:1px solid var(--line); padding-top:30px; }
  .booking-aside { border-top:1px solid var(--line); padding-top:30px; }
  .contact-section { margin-top:44px; padding-top:32px; }
  .about-photo img { max-height:490px; width:100%; object-fit:contain; }
  .about-copy h1 { font-size:56px; }
  .therapy-row { grid-template-columns:1fr; gap:8px; padding:26px 0; }
  .therapy-row h2 { font-size:42px; }
  .closing-cta { align-items:flex-start; flex-direction:column; }
}
@media(max-width:540px) { .minimal-header { row-gap:20px; } .minimal-brand { width:100%; } .minimal-nav { width:100%; justify-content:flex-start; gap:28px; } .minimal-nav .minimal-button { margin-left:auto; } .home-intro { padding-top:30px; } .home-intro h1 { font-size:48px; max-width:340px; } }
@media(max-width:540px) { .form-pair { grid-template-columns:1fr; gap:0; } }
@media(max-width:360px) { .minimal-nav { gap:16px; } .minimal-nav .minimal-button { font-size:13px; padding:10px; gap:8px; } .home-intro h1 { font-size:43px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
