@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');:root{--navy:#27364B;--teal:#547C9A;--blue:#B8CEDD;--off:#F3F6F8;--ink:#374657}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.75 Inter,Arial,sans-serif}h1,h2,h3{font-family:Manrope,Arial,sans-serif;color:var(--navy);line-height:1.22;letter-spacing:-.025em}h1{font-size:clamp(2.4rem,5vw,3.7rem);margin:.25em 0}h2{font-size:clamp(1.8rem,3vw,2.55rem);margin:.15em 0 .7em}h3{font-size:1.15rem;margin:0 0 .55rem}p{margin:0 0 1.2rem}a{color:var(--teal)}.container{max-width:1180px;padding:0 28px;margin:auto}.site-header{background:#fff;border-bottom:1px solid #e5eef2;position:sticky;top:0;z-index:20}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px}.brand{text-decoration:none;font-family:Manrope;font-size:1.28rem;font-weight:800;color:var(--navy);line-height:1.1}.brand small{display:block;color:var(--teal);font-size:.65rem;letter-spacing:.16em;margin-top:5px}.nav{display:flex;align-items:center;gap:19px}.nav a{text-decoration:none;color:var(--navy);font-size:.86rem;font-weight:600}.nav a:hover,.nav a.active{color:var(--teal)}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;background:var(--navy);color:white!important;text-decoration:none;font-weight:700;border-radius:12px;padding:13px 22px;line-height:1.4;box-shadow:0 5px 14px #173b531a}.button:hover{background:var(--teal)}.hero{background:var(--off);padding:90px 0}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:65px}.lead{font-size:1.14rem;max-width:600px;margin:0 0 30px}.eyebrow{color:var(--teal);font-size:.78rem;letter-spacing:.15em;font-weight:800;margin:0 0 16px}.hero-photo img,.photo img{width:100%;height:100%;max-height:550px;object-fit:cover;display:block;border-radius:17px}.hero-photo{height:490px}.section{padding:90px 0}.section:nth-of-type(2n){background:#fbfdfe}.section .container>p{max-width:850px}.intro{font-size:1.13rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.split.reverse .copy{order:2}.split.reverse .photo{order:1}.photo{height:430px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:28px 0}.card{background:white;border:1px solid #dce9ef;padding:28px;border-radius:15px;box-shadow:0 8px 25px #173b5307}.card p:last-child{margin:0}.text-link{font-weight:700;text-decoration:none}.cta{padding:75px 0;background:var(--navy);color:#e3f0f5;text-align:center}.cta h2{color:white}.cta .button{background:white;color:var(--navy)!important}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:580px}th{background:var(--navy);color:white;text-align:left}td,th{padding:15px;border-bottom:1px solid #dce9ef}td:last-child{font-weight:700;color:var(--navy)}.hours div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #e6eef2;padding:6px 0}.hours dd{margin:0}.site-footer{background:#f0f6f8;padding:45px 0 100px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:25px}.footer-grid a{display:block;margin-bottom:7px}.footer-grid p{font-size:.9rem}.copyright{font-size:.75rem;margin-top:22px;color:#657d89}.mobile-book{display:none}.menu-toggle{display:none}@media(max-width:980px){.nav{gap:11px}.nav a{font-size:.76rem}.header-inner>.button{display:none}.hero-grid,.split{gap:30px}}@media(max-width:760px){.container{padding:0 20px}.header-inner{min-height:72px}.menu-toggle{display:block;border:1px solid #dce9ef;background:white;border-radius:8px;padding:8px 12px;color:var(--navy);font-weight:700}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:white;box-shadow:0 12px 20px #173b531c;padding:20px;flex-direction:column;align-items:stretch}.nav.open{display:flex}.nav a{font-size:1rem;padding:6px}.hero{padding:52px 0}.hero-grid,.split{grid-template-columns:1fr}.hero-photo{height:340px}.section{padding:54px 0}.split.reverse .copy,.split.reverse .photo{order:initial}.photo{height:330px}.cards{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.mobile-book{display:block;position:fixed;bottom:0;left:0;right:0;padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:#ffffffed;box-shadow:0 -3px 16px #173b5317;z-index:25}.mobile-book .button{display:flex}.site-footer{padding-bottom:120px}}
/* Slate Blue & Warm Neutral alternative */
body{background:#fffdfb}.hero{background:linear-gradient(110deg,#f3f6f8 65%,#ece6dd)}.hero-photo img,.photo img{border-radius:5px}.card{border:1px solid #dce3e9;border-radius:6px;box-shadow:0 12px 30px #27364b0a}.button{border-radius:12px;box-shadow:none}.section:nth-of-type(2n){background:#f8f7f4}.site-footer{background:#eaeef1}.eyebrow{letter-spacing:.21em}.cta{background:#27364b}
/* Approved family logo: uniform navy / soft blue / teal figures */
.brand-with-logo{display:inline-flex!important;align-items:center;gap:10px;text-decoration:none;white-space:nowrap;min-width:0}
.brand-with-logo img{display:block;width:70px;height:auto;flex-shrink:0}
.brand-with-logo .brand-copy{display:flex;flex-direction:column;gap:2px;line-height:1.1}
.brand-with-logo strong{font-family:Manrope,Inter,Arial,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.045em;color:#27364B;text-transform:none}
.brand-with-logo small{font-size:10px;letter-spacing:.25em;color:#547C9A;margin:0}
@media(max-width:550px){.brand-with-logo img{width:53px}.brand-with-logo strong{font-size:16px}.brand-with-logo small{font-size:9px}}

.header-inner{min-height:96px}
@media(max-width:760px){.header-inner{min-height:78px}.nav{top:78px}}

/* Brand header scale v2 */
.brand-with-logo img{width:82px!important}
.brand-with-logo strong{font-size:23px!important}
@media(max-width:550px){.brand-with-logo img{width:61px!important}.brand-with-logo strong{font-size:18px!important}}

/* Horizontal logo lockup matching the approved brand board */
.brand-horizontal{display:inline-flex;align-items:center;flex-shrink:0;line-height:1}
.brand-horizontal img{display:block;width:310px;height:auto;max-width:100%}
@media(max-width:1100px){.brand-horizontal img{width:255px}}
@media(max-width:600px){.brand-horizontal img{width:238px}}

/* Teal booking actions across all pages */
a.button, .cta a.button {background:#167D8D;color:#fff!important;border-radius:12px;}
a.button:hover, .cta a.button:hover {background:#126978;color:#fff!important;}

/* Homepage hero: seamless photo-to-copy transition, preserving other page heroes */
@media(min-width:761px){
  body:has(.hero) .hero{padding:0;overflow:hidden;background:#eaf3f7;}
  body:has(.hero) .hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;min-height:530px;align-items:center;}
  body:has(.hero) .hero-grid>div:first-child{position:relative;z-index:2;padding:65px 6% 65px 0;max-width:620px;}
  body:has(.hero) .hero-photo{position:absolute;inset:0 calc((min(1180px, 100vw - 56px) - 100vw)/2) 0 37%;height:auto;z-index:1;overflow:hidden;}
  body:has(.hero) .hero-photo img{height:100%;max-height:none;width:100%;object-fit:cover;object-position:center;border-radius:0;}
  body:has(.hero) .hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#eaf3f7 0%,#eaf3f7 8%,rgba(234,243,247,.93) 23%,rgba(234,243,247,.55) 40%,rgba(234,243,247,0) 63%);pointer-events:none;}
}
@media(max-width:760px){
  body:has(.hero) .hero{background:#eaf3f7;}
  body:has(.hero) .hero-grid{gap:0;}
  body:has(.hero) .hero-grid>div:first-child{position:relative;z-index:2;padding-bottom:24px;}
  body:has(.hero) .hero-photo{height:310px;position:relative;margin:0 -20px -52px;overflow:hidden;}
  body:has(.hero) .hero-photo img{border-radius:0;object-position:center 38%;}
  body:has(.hero) .hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#eaf3f7 0%,rgba(234,243,247,0) 36%);pointer-events:none;}
}

/* About page: authentic practitioner portrait, without the homepage image fade */
.about-hero .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,0.85fr);gap:52px;min-height:0;}
.about-hero .hero-grid>div:first-child{padding:48px 0;}
.about-hero .hero-photo{position:relative;inset:auto;height:410px;margin:0;overflow:hidden;border-radius:16px;}
.about-hero .hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 32%;border-radius:16px;}
.about-hero .hero-photo:after{display:none;}
@media(max-width:760px){
.about-hero .hero-grid{grid-template-columns:1fr;gap:16px;}
.about-hero .hero-grid>div:first-child{padding:34px 0 8px;}
.about-hero .hero-photo{height:330px;margin:0 0 20px;border-radius:14px;}
.about-hero .hero-photo img{border-radius:14px;}
}
/* About hero: blend the portrait softly into the adjacent copy, as on the homepage. */
@media(min-width:761px){
 body:has(.hero) .about-hero{background:#eaf3f7;overflow:hidden;}
 body:has(.hero) .about-hero .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;min-height:470px;}
 body:has(.hero) .about-hero .hero-grid>div:first-child{position:relative;z-index:2;padding:56px 3% 56px 0;max-width:570px;}
 body:has(.hero) .about-hero .hero-photo{position:absolute;inset:0 -28px 0 37%;height:auto;margin:0;border-radius:0;z-index:1;overflow:hidden;}
 body:has(.hero) .about-hero .hero-photo img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 32%;border-radius:0;}
 body:has(.hero) .about-hero .hero-photo:after{display:block;content:'';position:absolute;inset:0;background:linear-gradient(90deg,#eaf3f7 0%,rgba(234,243,247,.98) 13%,rgba(234,243,247,.78) 27%,rgba(234,243,247,.18) 51%,transparent 70%);pointer-events:none;}
}
@media(max-width:760px){
 body:has(.hero) .about-hero{background:#eaf3f7;}
 body:has(.hero) .about-hero .hero-photo{border-radius:0;margin:0 -20px -52px;height:350px;}
 body:has(.hero) .about-hero .hero-photo img{border-radius:0;object-position:center 30%;}
 body:has(.hero) .about-hero .hero-photo:after{display:block;content:'';position:absolute;inset:0;background:linear-gradient(180deg,#eaf3f7 0%,rgba(234,243,247,0) 30%);pointer-events:none;}
}

/* Fees page: breathing room beneath the hero booking button. */
.fees-hero .container{padding-bottom:48px;}
@media(max-width:760px){.fees-hero .container{padding-bottom:42px;}}

/* Header: clearer separation between brand, navigation (including Fees), and booking CTA. */
@media(min-width:981px){
  .site-header .header-inner{gap:24px;}
  .site-header .nav{margin-left:auto;gap:20px;}
  .site-header .header-inner>.button{margin-left:12px;flex-shrink:0;}
}
@media(min-width:761px) and (max-width:1100px){
  .site-header .header-inner{gap:16px;}
  .site-header .nav{gap:12px;}
  .site-header .brand-horizontal img{width:235px;}
}

/* Fees hero: separate the APPOINTMENTS & FEES eyebrow from the site header. */
body:has(.hero) .fees-hero{padding-top:76px;}
@media(max-width:760px){body:has(.hero) .fees-hero{padding-top:52px;}}

/* Contact visibility: booking stays primary; phone remains a discreet secondary option. */
.site-header .header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.site-header .header-phone{display:inline-flex;align-items:center;gap:6px;color:#173B53;text-decoration:none;font-size:.81rem;font-weight:700;white-space:nowrap;}
.site-header .header-phone:hover{text-decoration:underline;color:#167D8D;}
.site-header .header-phone .phone-glyph{font-size:1rem;line-height:1;}
.site-header .header-actions>.button{white-space:nowrap;}
.callback-note{font-size:.92rem;line-height:1.65;}
.phone-reassurance{padding:22px 0;background:#f3f7fa;text-align:center;}
.phone-reassurance p{margin:0;color:#27364B;font-size:.95rem;}
.phone-reassurance a{font-weight:700;color:#167D8D;}
@media(min-width:1101px) and (max-width:1360px){
 .site-header .header-inner{gap:14px;}
 .site-header .nav{gap:12px;}
 .site-header .brand-horizontal img{width:230px;}
 .site-header .header-actions{gap:8px;}
 .site-header .header-actions>.button{padding:11px 14px;font-size:.85rem;}
}
@media(min-width:761px) and (max-width:1100px){
 .site-header .header-actions{gap:0;}
 .site-header .header-phone{font-size:.75rem;}
 .site-header .header-actions>.button{display:none;}
}
@media(max-width:760px){
 .site-header .header-inner{gap:9px;}
 .site-header .header-actions{gap:8px;margin-left:auto;}
 .site-header .header-phone{width:38px;height:38px;justify-content:center;border:1px solid #d4e3ea;border-radius:10px;}
 .site-header .header-phone .phone-number{display:none;}
 .site-header .header-phone .phone-glyph{font-size:1.25rem;}
 .site-header .header-actions>.button{display:inline-flex;font-size:.75rem;padding:9px 10px;}
 .site-header .header-actions>.button span{display:none;}
 .site-header .brand-horizontal img{width:min(37vw,170px)!important;height:auto;}
 .site-header .menu-toggle{font-size:.78rem;padding:7px 4px;}
}
@media(max-width:380px){
 .site-header .header-actions>.button{font-size:.7rem;padding:8px;}
 .site-header .header-phone{width:32px;height:34px;}
 .site-header .brand-horizontal img{width:34vw!important;}
}

/* Keep desktop navigation labels aligned on a single line. */
@media(min-width:761px){
 .site-header .nav{flex-wrap:nowrap;min-width:0;}
 .site-header .nav a{white-space:nowrap;flex-shrink:0;line-height:1.35;}
}
@media(min-width:1101px){
 .site-header .header-inner{gap:12px;}
 .site-header .nav{gap:12px;}
 .site-header .nav a{font-size:.77rem;}
 .site-header .brand-horizontal img{width:225px;}
 .site-header .header-actions{gap:8px;}
 .site-header .header-actions>.button{padding:11px 13px;font-size:.82rem;}
}
@media(min-width:761px) and (max-width:1100px){
 .site-header .header-inner{gap:10px;}
 .site-header .nav{gap:9px;}
 .site-header .nav a{font-size:.74rem;}
 .site-header .brand-horizontal img{width:205px;}
}

/* Navigation refinement: more breathing room and one step larger type, kept on one baseline. */
@media(min-width:1361px){
 .site-header .nav{gap:19px;}
 .site-header .nav a{font-size:.86rem;white-space:nowrap;line-height:1.35;}
 .site-header .brand-horizontal img{width:215px;}
}
@media(min-width:1101px) and (max-width:1360px){
 .site-header .nav{gap:14px;}
 .site-header .nav a{font-size:.81rem;white-space:nowrap;line-height:1.35;}
 .site-header .brand-horizontal img{width:205px;}
}
@media(min-width:761px) and (max-width:1100px){
 .site-header .nav{gap:11px;}
 .site-header .nav a{font-size:.78rem;white-space:nowrap;line-height:1.35;}
}

/* Contact page: space above eyebrow and beneath booking CTA, before colour transition. */
body:has(.hero) .contact-hero{padding:76px 0 58px;}
@media(max-width:760px){body:has(.hero) .contact-hero{padding:52px 0 46px;}}

/* Contact hero: reliably apply generous space above heading and below CTA. */
.hero.contact-hero{padding-top:88px;padding-bottom:76px;}
@media(max-width:760px){.hero.contact-hero{padding-top:58px;padding-bottom:58px;}}
