:root { --ink:#11110f; --paper:#f1eee8; --sand:#d9d1c3; --red:#a52922; --muted:#655f56; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope, Arial, sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:78px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; position:absolute; inset:0 0 auto; z-index:3; color:#fff; border-bottom:1px solid rgba(255,255,255,.22); }
.brand { font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.16em; font-weight:bold; white-space:nowrap; }.brand span { color:#c6b8a6; }
nav { display:flex; gap:30px; font-size:12px; letter-spacing:.05em; } nav a { opacity:.85; } nav a:hover { opacity:1; }
.header-cta { font-size:12px; letter-spacing:.04em; padding-bottom:4px; border-bottom:1px solid currentColor; }.header-cta span { margin-left:7px; }
.hero { min-height:760px; height:100vh; position:relative; overflow:hidden; display:flex; align-items:flex-end; color:#fff; }.hero-image { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center; }.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,10,9,.85) 0%,rgba(10,10,9,.5) 44%,rgba(10,10,9,.12) 100%),linear-gradient(0deg,rgba(10,10,9,.48),transparent 45%); }.hero-copy { position:relative; z-index:1; max-width:860px; padding:0 4vw 11vh; }.eyebrow { margin:0 0 24px; text-transform:uppercase; letter-spacing:.24em; font-size:11px; font-weight:700; }.eyebrow.dark { color:var(--red); }.hero h1,h2,h3 { font-family:'Playfair Display',Georgia,serif; font-weight:500; letter-spacing:-.04em; }.hero h1 { margin:0; font-size:clamp(58px,7.7vw,124px); line-height:.91; }.hero h1 em,h2 em { font-weight:500; }.hero-text { max-width:450px; font-size:16px; line-height:1.6; margin:34px 0; color:rgba(255,255,255,.86); }.hero-actions { display:flex; align-items:center; gap:28px; }.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:17px 24px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; transition:transform .2s,background .2s; }.button:hover { transform:translateY(-2px); }.button-light { background:#fff; color:var(--ink); }.button-red { background:var(--red); color:#fff; }.text-link { font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; }.text-link span { margin-left:8px; }.hero-caption { position:absolute; right:4vw; bottom:30px; z-index:1; text-transform:uppercase; letter-spacing:.14em; font-size:10px; opacity:.75; }
.section { padding:130px 7vw; }.intro { border-bottom:1px solid var(--sand); }.intro-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:8vw; }.intro h2,.section-heading h2,.studio h2,.contact h2,.services-link h2 { margin:0; font-size:clamp(42px,5vw,78px); line-height:.98; }.lead { font-size:19px; line-height:1.55; margin:8px 0 34px; }.arrow-link { display:inline-block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; border-bottom:1px solid var(--ink); padding-bottom:8px; }.arrow-link span { margin-left:13px; }
.approaches { padding-top:112px; }.section-heading { max-width:900px; }.section-heading h2 { max-width:850px; }.approach-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:75px; border-top:1px solid var(--ink); }.approach-card { min-height:410px; padding:28px 28px 26px; border-right:1px solid var(--ink); display:flex; flex-direction:column; }.approach-card:first-child { border-left:1px solid var(--ink); }.approach-card .number { font-family:'DM Mono',monospace; font-size:11px; }.approach-card h3 { font-size:45px; line-height:.94; margin:45px 0 18px; }.approach-card p { font-size:14px; line-height:1.6; color:var(--muted); max-width:270px; }.approach-card a { margin-top:auto; text-transform:uppercase; font-size:11px; letter-spacing:.08em; font-weight:700; }.approach-card a span { margin-left:9px; }.number-two { background:#ded8cd; }.number-three { background:var(--ink); color:#fff; }.number-three p { color:#d4cdc1; }
.studio { padding:0; display:grid; grid-template-columns:1.05fr .95fr; min-height:720px; background:var(--ink); color:#fff; }.studio-image { min-height:560px; background:linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.03)),url('/assets/nature-window-wellness.png') center/cover; filter:saturate(.65) brightness(.72); }.studio-copy { padding:11vw 8vw 7vw; }.studio-copy h2 { margin-bottom:30px; }.studio-copy > p:not(.eyebrow) { color:#d1cbc1; line-height:1.65; max-width:450px; }.studio-numbers { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:60px 0 0; border-top:1px solid #49463f; padding-top:23px; }.studio-numbers dt { font-family:'Playfair Display',serif; font-size:38px; }.studio-numbers dd { margin:4px 0 0; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#b4aea4; line-height:1.45; }
.services-link { background:#cfc5b7; padding:118px 7vw; }.services-link h2 { max-width:840px; margin-bottom:26px; }.services-link > p:not(.eyebrow) { max-width:560px; line-height:1.65; margin:0 0 34px; }.services-link .eyebrow { color:var(--red); }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:60px; }.contact-details { padding-top:38px; }.contact-line { font-family:'Playfair Display',serif; font-size:clamp(24px,3vw,40px); display:flex; justify-content:space-between; padding:15px 0; border-bottom:1px solid var(--ink); }.contact-line span { color:var(--red); font-family:Manrope,sans-serif; }.address { margin:36px 0 6px; font-size:15px; line-height:1.65; }.hours { margin:0; font-size:12px; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); }
footer { background:var(--ink); color:#fff; min-height:120px; padding:35px 4vw; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; gap:25px; } footer p { margin:0; color:#b8b2a8; font-size:11px; letter-spacing:.04em; } footer p:last-child { text-align:right; }
@media (max-width:760px) { .site-header { height:65px; padding:0 20px; }.site-header nav { display:none; }.header-cta { font-size:10px; }.hero { min-height:670px; }.hero-image { object-position:58% center; }.hero-copy { padding:0 24px 85px; }.hero h1 { font-size:57px; }.hero-text { font-size:14px; margin:25px 0; }.hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }.hero-caption { left:24px; right:auto; }.section { padding:82px 24px; }.intro-grid,.contact { grid-template-columns:1fr; gap:30px; }.intro h2,.section-heading h2,.studio h2,.contact h2,.services-link h2 { font-size:45px; }.lead { font-size:16px; }.approaches { padding-top:72px; }.approach-grid { grid-template-columns:1fr; margin-top:42px; }.approach-card { min-height:310px; border-left:1px solid var(--ink); border-bottom:1px solid var(--ink); }.approach-card h3 { font-size:42px; margin:30px 0 8px; }.studio { grid-template-columns:1fr; }.studio-image { min-height:360px; }.studio-copy { padding:76px 24px; }.studio-numbers { margin-top:38px; }.services-link { padding:82px 24px; }.contact-details { padding-top:0; }.contact-line { font-size:25px; } footer { grid-template-columns:1fr; padding:30px 24px; } footer p:last-child { text-align:left; } }

.studio-note { margin-top:40px; padding-top:24px; border-top:1px solid #49463f; font-size:12px; line-height:1.8; letter-spacing:.08em; text-transform:uppercase; }
a:focus-visible { outline:2px solid var(--red); outline-offset:6px; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }

.coaching-detail { padding-top:20px; border-top:1px solid var(--sand); } .coaching-detail > .eyebrow { margin-top:65px; } .coaching-detail h2 { font-size:clamp(42px,5vw,78px); line-height:1.05; margin:0; max-width:1050px; } .coaching-pillars { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; margin:55px 0 40px; } .coaching-pillars h3 { font-size:30px; line-height:1.15; margin:0 0 18px; } .coaching-pillars p { color:var(--muted); font-size:15px; line-height:1.7; } @media(max-width:760px) { .coaching-pillars { grid-template-columns:1fr; gap:22px; margin-top:38px; } .coaching-detail h2 { font-size:42px; } .coaching-detail > .eyebrow { margin-top:10px; } }

.studio-image { background-position:75% center; }

.hero-shade { background:linear-gradient(90deg,rgba(10,20,16,.30),rgba(10,20,16,.08) 70%),linear-gradient(0deg,rgba(10,20,16,.35),transparent 50%); }
@media(max-width:760px) { .hero-image { object-position:72% center; } .hero-shade { background:linear-gradient(90deg,rgba(10,20,16,.78),rgba(10,20,16,.22)),linear-gradient(0deg,rgba(10,20,16,.55),transparent); } }

/* Luminous petrol palette */
:root { --ink:#123f43; --paper:#f7faf7; --sand:#cedfda; --red:#09666c; --muted:#4e696a; }
.brand span { color:#95dfd3; }
.number-two { background:#dfefea; }
.services-link { background:#d8efea; }
.studio { background:#104f55; }
.studio-image { filter:none; background-image:url('/assets/nature-window-wellness.png'); }
.studio-copy > p:not(.eyebrow) { color:#e1f1ed; }
.studio-note { border-top-color:#538084; }
.hero-shade { background:linear-gradient(90deg,rgba(3,49,54,.20),transparent 72%),linear-gradient(0deg,rgba(3,49,54,.22),transparent 45%); }
footer { background:#103e44; }
footer p { color:#cae4df; }
@media(max-width:760px) { .hero-shade { background:linear-gradient(90deg,rgba(3,49,54,.73),rgba(3,49,54,.16)),linear-gradient(0deg,rgba(3,49,54,.44),transparent); } }

/* Shared NTY family: cream, editorial serif, direct service journeys. */
:root { --paper:#f7f4ef; --sand:#ddd5cb; }
body { font-family:Arial,sans-serif; }
h1,h2,h3,.hero h1,.contact-line { font-family:Georgia,serif; }
html { scroll-padding-top:90px; }
.site-header { position:sticky; top:0; height:76px; background:#103e44; padding:0 5.5%; border-bottom:1px solid #ffffff24; gap:24px; }
.brand { display:flex; align-items:center; gap:9px; letter-spacing:0; }
.brand .brand-monogram { font:bold 34px Arial,sans-serif; letter-spacing:-3px; color:#fff; }
.brand .brand-name { color:#fff; font:700 8px Arial,sans-serif; letter-spacing:1px; line-height:1.4; }
.brand small { display:block; font-size:7px; letter-spacing:2px; color:#95dfd3; }
.site-header nav { gap:24px; font-size:13px; }
.header-cta { border:1px solid #ffffff90; padding:11px 14px; white-space:nowrap; }
.menu-toggle { display:none; }
.hero { height:calc(88vh - 76px); min-height:580px; }
.hero-copy { padding:0 5.5vw 9vh; max-width:900px; }
.hero h1 { font-size:clamp(56px,6.7vw,98px); line-height:1.02; letter-spacing:-.045em; }
.hero h1 em { font-style:normal; }
.hero-text { max-width:480px; }
.section { padding:86px 5.5vw; }
.intro h2,.section-heading h2,.studio h2,.contact h2,.services-link h2,.coaching-detail h2 { font-size:clamp(38px,4.2vw,62px); line-height:1.08; }
.eyebrow { letter-spacing:.22em; }
.button { font-size:13px; text-transform:none; letter-spacing:0; padding:15px 23px; }
.button-light { background:#fff; color:#104f55; }
.approach-grid { gap:20px; border:0; margin-top:45px; }
.approach-card,.approach-card:first-child { border:1px solid var(--sand); border-radius:5px; background:#fff; min-height:350px; padding:28px; }
.approach-card.number-two { background:#e4f1ed; border-color:#c6ddd6; }
.approach-card h3 { font-size:38px; margin-top:28px; }
.approach-card p { max-width:440px; }
.approach-card a { color:var(--red); text-transform:none; font-size:14px; letter-spacing:0; padding-top:20px; }
.coaching-detail { padding-top:0; border-top:0; }
.coaching-detail > .eyebrow { margin-top:0; }
.journey { background:#104f55; color:white; }
.journey h2 { font-size:clamp(34px,4vw,52px); margin:0 0 55px; }
.journey ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; list-style:none; margin:0; padding:0; }
.journey li { border-top:1px solid #ffffff60; padding-top:32px; position:relative; }
.journey li > span { position:absolute; top:-19px; width:36px; height:36px; border:1px solid #a9dfd5; border-radius:50%; background:#104f55; display:grid; place-items:center; }
.journey h3 { font:700 16px Arial,sans-serif; letter-spacing:0; line-height:1.4; }
.journey li p { font-size:14px; line-height:1.6; color:#dfefea; }
.studio { padding:0; }
.studio-copy { padding:80px 6vw; }
.services-link { padding:86px 5.5vw; }
.footer-services { display:inline-block; margin-top:12px; font-size:12px; color:#95dfd3; }
@media(max-width:1050px) { .site-header { gap:16px; padding:0 24px; } .site-header nav { gap:14px; } .header-cta { font-size:11px; } }
@media(max-width:820px) { .site-header { height:70px; } .menu-toggle { display:block; margin-left:auto; border:0; background:transparent; color:white; font:14px Arial,sans-serif; padding:12px; cursor:pointer; } .site-header nav { display:none; position:absolute; top:70px; left:0; right:0; background:#103e44; padding:20px 24px; flex-direction:column; gap:0; box-shadow:0 12px 20px #0002; } .site-header nav.open { display:flex; } .site-header nav a { padding:13px 0; } .header-cta { padding:10px; } .hero { min-height:590px; height:calc(90svh - 70px); } .hero-copy { padding:0 24px 80px; } .hero h1 { font-size:clamp(46px,9vw,70px); } .section,.services-link { padding:65px 24px; } .studio { padding:0; } .studio-copy { padding:65px 24px; } .journey ol { grid-template-columns:1fr; gap:42px; } .coaching-detail { padding-top:0; } }
@media(max-width:400px) { .site-header { padding:0 14px; gap:7px; } .brand .brand-monogram { font-size:29px; } .header-cta { font-size:10px; padding:9px 7px; } .menu-toggle { padding:10px 5px; font-size:12px; } }

/* Ivory and petrol logo identity */
:root { --ink:#263a3a; --paper:#f5f0e7; --sand:#ddd6ca; --red:#125b60; --muted:#536866; }
.site-header { height:106px; background:#f5f0e7; color:#263a3a; border-bottom:1px solid #dcd6cc; }
.brand { flex-shrink:0; }
.logo-window { display:block; position:relative; width:135px; height:88px; overflow:hidden; }
.brand .logo-window img { position:absolute; width:197px; height:197px; max-width:none; left:-31px; top:-43px; object-fit:contain; }
.site-header .logo-window { height:92px; }
.site-header .brand .logo-window img { width:160px; height:160px; left:-12px; top:-30px; }
.site-header nav a { opacity:1; }
.site-header nav a:hover { color:#125b60; text-decoration:underline; text-underline-offset:6px; }
.header-cta { color:white; background:#125b60; border:1px solid #125b60; }
.header-cta:hover { background:#103e44; }
html { scroll-padding-top:125px; }
.hero { height:calc(88vh - 106px); }
.services-link,.number-two { background:#e5ece5; }
.studio { background:#125b60; }
footer { background:#f5f0e7; color:#263a3a; border-top:1px solid #ddd6ca; align-items:center; }
footer p { color:#536866; }
footer .footer-services { color:#125b60; }
footer .logo-window { width:180px; height:140px; }
footer .brand .logo-window img { width:245px; height:245px; left:-32px; top:-48px; }
@media(max-width:820px) { .site-header { height:90px; } .site-header .logo-window { width:105px; height:80px; } .site-header .brand .logo-window img { width:140px; height:140px; left:-17px; top:-27px; } .menu-toggle { color:#125b60; } .site-header nav { top:90px; background:#f5f0e7; } .hero { height:calc(90svh - 90px); } html { scroll-padding-top:105px; } }

.site-header .logo-window { height:100px; } .site-header .brand .logo-window img { top:-33px; } footer .logo-window { height:158px; }
@media(max-width:820px) { .site-header { height:100px; } .site-header .logo-window { height:92px; } .site-header .brand .logo-window img { top:-27px; } .site-header nav { top:100px; } .hero { height:calc(90svh - 100px); } html { scroll-padding-top:115px; } }

.team { background:var(--paper); } .team h2 { font-size:clamp(38px,4.2vw,62px); line-height:1.08; margin:0 0 44px; } .team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; max-width:1080px; margin:auto; } .team-card { background:#fff; border:1px solid var(--sand); border-radius:5px; overflow:hidden; } .team-card img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 15%; background:#fff; } .team-card h3 { margin:0; padding:19px 22px; color:var(--red); font-size:27px; border-top:1px solid #e8ede7; } @media(max-width:1050px) and (min-width:821px) { .site-header nav { gap:11px; font-size:12px; } .site-header { gap:12px; } } @media(max-width:760px) { .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } .team-card h3 { font-size:23px; padding:15px; } } @media(max-width:380px) { .team-grid { grid-template-columns:1fr; } }

/* NTY Services composition, expressed in ivory and petrol. */
.site-header { height:68px; padding:0 5.5%; background:#103e44; color:#fff; }
.site-header > .brand { display:none; }
.site-header nav { display:flex; justify-content:center; flex:1; gap:30px; }
.site-header nav a:hover { color:#e3eee7; }
.header-cta { background:transparent; border-color:#d1e1dd; color:#fff; }
.hero { display:grid; grid-template-columns:42% 58%; height:auto; min-height:470px; background:#103e44; align-items:stretch; }
.hero-logo-panel { position:relative; z-index:2; background:#f5f0e7; display:flex; align-items:center; justify-content:center; }
.hero-logo-panel img { display:block; width:100%; max-width:510px; height:auto; }
.hero-image { left:42%; width:58%; object-position:right center; }
.hero-shade { left:42%; background:linear-gradient(90deg,#103e44 0%,#103e44ee 38%,#103e44a6 72%,#103e4455); }
.hero-copy { grid-column:2; padding:65px 7vw 55px 5vw; max-width:none; align-self:center; }
.hero h1 { font-size:clamp(38px,4.1vw,64px); line-height:1.07; letter-spacing:-.035em; }
.hero-text { font-size:15px; max-width:440px; line-height:1.6; margin:25px 0; }
.hero-actions { gap:22px; flex-wrap:wrap; }
.hero-copy .eyebrow { font-size:10px; }
.hero-copy h1::after { content:''; display:block; width:46px; height:3px; background:#96c5bb; margin-top:24px; }
.section { padding:52px 5.5vw; }
.intro { padding-top:40px; padding-bottom:40px; text-align:center; }
.intro-grid { display:block; max-width:900px; margin:auto; }
.intro h2 { font-size:38px; }
.intro h2 br { display:none; }
.intro .lead { font-size:16px; max-width:730px; margin:22px auto; }
.intro .arrow-link { font-size:11px; }
.approaches .section-heading { max-width:none; text-align:center; }
.section-heading h2 { max-width:none; font-size:42px; }
.section-heading h2 br { display:none; }
.section-heading::after { content:''; display:block; width:44px; height:3px; background:#125b60; margin:23px auto 0; }
.approach-grid { margin-top:30px; gap:18px; }
.approach-card,.approach-card:first-child { min-height:290px; padding:26px 30px; border-radius:5px; background:#fff; border-color:#ddd6ca; }
.approach-card .number { color:#125b60; font:700 15px Arial,sans-serif; }
.approach-card h3 { font-size:31px; margin:18px 0 12px; }
.approach-card h3 br { display:none; }
.approach-card p { font-size:14px; margin-top:0; max-width:none; }
.coaching-detail { background:#103e44; color:#fff; padding:48px 5.5vw; }
.coaching-detail .eyebrow.dark { color:#b7d8cf; }
.coaching-detail h2 { font-size:38px; }
.coaching-detail h2 br { display:none; }
.coaching-pillars { margin:34px 0 26px; gap:28px; }
.coaching-pillars article { border-top:1px solid #ffffff55; padding-top:24px; }
.coaching-pillars h3 { font:700 16px Arial,sans-serif; letter-spacing:0; }
.coaching-pillars p { color:#dceae5; font-size:14px; }
.coaching-detail .arrow-link { border-color:#dceae5; }
.studio { padding:0; min-height:440px; background:#e6ede6; color:#263a3a; }
.studio-image { min-height:440px; }
.studio-copy { padding:60px 5vw; }
.studio h2 { font-size:40px; }
.studio-copy > p:not(.eyebrow) { color:#536866; font-size:15px; }
.studio-note { border-color:#b9cbc3; margin-top:26px; }
.team > .eyebrow,.team h2 { text-align:center; }
.team h2 { font-size:40px; margin-bottom:30px; }
.team h2 br { display:none; }
.team-grid { max-width:none; gap:18px; grid-template-columns:repeat(6,minmax(0,1fr)); }
.team-card h3 { font-size:23px; padding:15px; }
.services-link { padding:48px 5.5vw; background:#e2ebe3; }
.services-link h2 { font-size:40px; }
.services-link h2 br { display:none; }
.services-link > p:not(.eyebrow) { max-width:760px; font-size:15px; }
.contact { gap:40px; }
.contact h2 { font-size:40px; }
.contact-details { padding-top:0; }
.contact-line { font-size:28px; }
footer { padding:25px 5.5vw; min-height:100px; }
html { scroll-padding-top:85px; }
@media(max-width:1050px) { .site-header nav { gap:18px; } .team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .hero-copy { padding:45px 4vw; } }
@media(max-width:820px) { .site-header { height:76px; padding:0 20px; } .site-header > .brand { display:flex; background:#f5f0e7; } .site-header .logo-window { width:92px; height:64px; } .site-header .brand .logo-window img { width:108px; height:108px; left:-8px; top:-23px; } .menu-toggle { color:#fff; } .site-header nav { display:none; top:76px; background:#103e44; color:#fff; } .site-header nav.open { display:flex; } .hero { grid-template-columns:1fr; min-height:0; } .hero-logo-panel { min-height:260px; } .hero-logo-panel img { width:290px; } .hero-image { left:0; width:100%; top:290px; height:calc(100% - 290px); } .hero-shade { left:0; top:290px; background:linear-gradient(90deg,#103e44f2,#103e44b0); } .hero-copy { grid-column:1; padding:42px 24px 48px; } .hero h1 { font-size:clamp(38px,7vw,54px); } .hero-actions { flex-direction:column; align-items:flex-start; } .section,.services-link { padding:45px 24px; } .intro h2,.section-heading h2,.coaching-detail h2,.studio h2,.team h2,.services-link h2,.contact h2 { font-size:34px; } .coaching-pillars { grid-template-columns:1fr; gap:20px; } .studio { padding:0; grid-template-columns:1fr; } .studio-image { min-height:300px; } .studio-copy { padding:45px 24px; } .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .contact-line { font-size:24px; } html { scroll-padding-top:92px; } }

/* Black tile NTY identity and editorial service imagery. */
.site-header { background:#0b1112; border-bottom:1px solid #ffffff20; }
.hero { background:#0b1112; }
.hero-logo-panel { background:#080a0a; }
.hero-logo-panel img { width:100%; max-width:none; height:100%; object-fit:contain; }
.hero-shade { background:linear-gradient(90deg,#0b1112 0%,#0b1112ed 30%,#0b1112b3 65%,#0b111255); }
.hero-copy h1::after { background:#27858a; }
.button-light { background:#125b60; color:#fff; border:1px solid #4d9294; }
.button-light:hover { background:#1b7176; }
.header-cta { border-color:#4d9294; }
.approach-card,.approach-card:first-child { padding:0 28px 28px; overflow:hidden; }
.service-photo { display:block; width:calc(100% + 56px); max-width:none; height:245px; object-fit:cover; margin:0 -28px 24px; }
.approach-card p { margin-bottom:20px; }
.coaching-detail { background:#0d191a; }
.coaching-detail .eyebrow.dark { color:#95c6bf; }
footer { background:#0b1112; color:#fff; border-top:1px solid #ffffff20; }
footer p { color:#d2dfdb; }
footer .footer-services { color:#8dc9c3; }
footer .logo-window { width:210px; height:140px; }
footer .brand .logo-window img { position:static; width:210px; height:140px; object-fit:contain; }
@media(max-width:820px) { .site-header > .brand { background:#0b1112; } .site-header .logo-window { width:96px; height:64px; } .site-header .brand .logo-window img { position:static; width:96px; height:64px; object-fit:contain; } .site-header nav { background:#0b1112; } .hero-logo-panel { min-height:0; } .hero-logo-panel img { width:100%; height:auto; max-width:510px; } .hero-image,.hero-shade { top:0; height:100%; } .hero-shade { background:linear-gradient(90deg,#0b1112f5,#0b1112b8); } .service-photo { height:220px; } }

/* Preserve word separation when decorative line breaks are hidden. */
h1,h2,h3 { word-spacing:normal; }
.service-photo.coaching-portrait { object-fit:contain; object-position:center top; background:#fff; }
.studio-image { position:relative; }
.studio-image::after { content:"Visuel d’ambiance"; position:absolute; left:18px; bottom:16px; padding:5px 9px; color:#fff; background:#0b111299; font:11px Arial,sans-serif; letter-spacing:.03em; }

.service-photo.coaching-scene { height:auto; object-fit:contain; object-position:center; }

/* Full-height tiles and an architectural opening onto greenery. */
.hero { grid-template-columns:38% 62%; min-height:540px; }
.hero-logo-panel { overflow:hidden; }
.hero-logo-panel img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; }
.hero-image { left:38%; width:62%; object-fit:fill; object-position:center; }
.hero-shade { left:38%; background:linear-gradient(90deg,transparent 15%,#0b111244 26%,#0b111233 70%,transparent 92%); }
.hero-copy { padding:65px 13% 65px 24%; }
.hero h1 { font-size:clamp(36px,3.7vw,62px); }
.hero-actions { gap:18px; }
@media(min-width:821px) and (max-width:1100px) { .hero-copy { padding:48px 10% 48px 23%; } .hero h1 { font-size:36px; } .hero-text { font-size:14px; } .hero-actions .button { padding:14px 16px; } }
@media(max-width:820px) {
 .hero { grid-template-columns:1fr; min-height:0; }
 .hero-logo-panel { aspect-ratio:1.15; min-height:0; }
 .hero-logo-panel img { position:absolute; width:100%; height:100%; max-width:none; object-fit:cover; }
 .hero-image { left:0; top:auto; bottom:0; width:100%; height:560px; object-fit:cover; object-position:58% center; }
 .hero-shade { left:0; top:auto; bottom:0; height:560px; background:linear-gradient(90deg,#0b1112dd,#0b111299 70%,#0b111244); }
 .hero-copy { min-height:560px; padding:52px 28px; }
 .hero h1 { font-size:clamp(38px,7vw,54px); }
}

/* Matching full-frame service photographs at every screen size. */
.approach-card .service-photo { height:auto; aspect-ratio:3 / 2; object-fit:contain; object-position:center; }

/* Recessed dark doorway: soften the tile-to-garden junction. */
@media(min-width:821px) {
 .hero::after { content:""; position:absolute; z-index:3; pointer-events:none; top:0; bottom:0; left:38%; width:clamp(110px,11vw,210px); transform:translateX(-50%); background:linear-gradient(90deg,transparent 0%,#080c0d55 22%,#080c0dd9 43%,#080c0df5 50%,#080c0dc9 59%,#080c0d70 76%,transparent 100%); }
 .hero::before { content:""; position:absolute; z-index:4; pointer-events:none; top:0; bottom:0; left:calc(38% - 3px); width:9px; background:linear-gradient(90deg,#111718,#242c2b 24%,#080c0d 44%,#050808 78%,#18201f); box-shadow:5px 0 15px #0007; }
 .hero-shade { background:linear-gradient(90deg,#080c0d50 0%,#080c0d26 17%,#0b111244 26%,#0b111233 70%,transparent 92%); }
}

.massage-menu { text-align:center; background:#fff; }
.massage-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 36px; margin:36px 0 26px; text-align:left; }
.massage-option { border-bottom:1px solid var(--sand); padding:18px 0; }
.massage-option summary { cursor:pointer; font:24px Georgia,serif; color:var(--red); }
.massage-option p { line-height:1.7; color:var(--muted); margin:18px 0; }
.massage-option a { display:inline-block; color:var(--red); font-weight:bold; padding:8px 0; }
.massage-booking-note { color:var(--muted); line-height:1.6; }
.booking { text-align:center; background:#e5ece5; }
.booking .section-heading { max-width:none; }
.booking .section-heading p { line-height:1.6; }
.booking-frame { margin:30px auto 22px; max-width:1100px; background:#fff; border:1px solid #c5d6d1; border-radius:6px; overflow:hidden; }
.booking iframe { display:block; width:100%; height:780px; border:0; }
@media(max-width:760px) { .massage-options { grid-template-columns:1fr; } .booking iframe { height:720px; } .booking .arrow-link { font-size:10px; line-height:1.6; } }

.instagram-button { display:inline-flex; align-items:center; gap:10px; margin-top:22px; padding:12px 16px; border:1px solid var(--red); color:var(--red); border-radius:3px; font:700 13px Arial,sans-serif; }
.instagram-button:hover { background:var(--red); color:#fff; }
.instagram-button svg { flex-shrink:0; }
footer .instagram-button { display:flex; width:fit-content; color:#b9e1da; border-color:#4d9294; margin-top:16px; font-size:12px; }

/* Crop the foreground floor so the doorway meets the hero base. */
.hero-image { top:0; bottom:auto; height:122%; }
.massage-menu .section-heading { margin-inline:auto; }
@media(max-width:820px) { .hero-image { top:calc(100% - 560px); bottom:auto; height:683px; } }

/* Compact contact details in the footer. */
footer { grid-template-columns:auto 1fr 1fr; align-items:center; gap:24px 40px; padding:30px 5.5vw 20px; }
.footer-contact { display:flex; flex-direction:column; gap:9px; font:13px/1.5 Arial,sans-serif; color:#d2dfdb; }
.footer-contact a { width:fit-content; }
.footer-contact a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.footer-contact small { font-size:11px; color:#a8beba; }
footer .footer-copyright { grid-column:1 / -1; text-align:center; padding-top:16px; border-top:1px solid #ffffff18; }
@media(max-width:820px) { footer { grid-template-columns:1fr 1fr; gap:22px; } footer > .brand { grid-column:1 / -1; } }
@media(max-width:520px) { footer { grid-template-columns:1fr; padding:26px 24px 20px; } }

/* A distinct, understated introduction to the NTY concierge branch. */
.nty-branch { display:grid; grid-template-columns:1fr 1fr; gap:5vw; align-items:center; background:#191715; color:#f7f2ea; padding:44px 5.5vw; border-top:3px solid #8f1930; }
.nty-branch-brand { display:flex; gap:24px; align-items:center; margin-bottom:22px; }
.nty-branch-brand img { width:116px; height:auto; flex-shrink:0; }
.nty-branch .eyebrow { color:#d9b4ba; margin:0; font-size:10px; line-height:1.7; }
.nty-branch h2 { font-size:clamp(28px,2.6vw,40px); line-height:1.15; margin-bottom:18px; }
.nty-branch h2 br { display:block; }
.nty-branch-copy > p { color:#d1c8bd; line-height:1.65; font-size:14px; max-width:470px; }
.nty-branch-link { display:inline-flex; gap:22px; padding:10px 0; border-bottom:1px solid #a94454; font-size:13px; font-weight:bold; margin-top:8px; }
.nty-branch-themes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.nty-branch-themes a { display:block; border-bottom:1px solid #51403e; }
.nty-branch-themes img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.nty-branch-themes span { display:flex; justify-content:space-between; gap:6px; padding:13px 0; font:18px Georgia,serif; }
.nty-branch-themes i { font:14px Arial,sans-serif; color:#d798a2; }
.nty-branch a:hover { color:#edbac3; }
@media(max-width:820px) { .nty-branch { grid-template-columns:1fr; gap:30px; padding:36px 24px; } .nty-branch-themes { gap:12px; } .nty-branch-themes span { font-size:16px; } }

.studio-gallery { display:grid; grid-template-columns:1fr 1fr; gap:6px; background:#e6ede6; }
.studio-gallery figure { margin:0; position:relative; min-height:490px; overflow:hidden; }
.studio-gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 60%; }
.studio-gallery figcaption { position:absolute; left:12px; bottom:14px; right:12px; width:fit-content; padding:7px 10px; color:#fff; background:#0b1112b3; font:11px/1.4 Arial,sans-serif; }
@media(max-width:820px) { .studio-gallery figure { min-height:460px; } }
@media(max-width:520px) { .studio-gallery figure { min-height:330px; } .studio-gallery figcaption { left:8px; right:8px; font-size:10px; } }

.studio-unified { margin:0; position:relative; min-height:440px; overflow:hidden; }
.studio-unified img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.studio-unified figcaption { position:absolute; left:16px; bottom:16px; padding:6px 10px; background:#0b111299; color:#fff; font:11px Arial,sans-serif; }
@media(max-width:820px) { .studio-unified { min-height:0; } .studio-unified img { height:auto; } }

.booking-direct { margin-top:20px; }
@media(max-width:820px) {
 .menu-toggle { min-width:54px; min-height:44px; white-space:nowrap; }
 .header-cta { min-height:44px; display:inline-flex; align-items:center; }
 .massage-option summary { min-height:44px; padding-block:8px; }
 .nty-branch-themes span { min-height:44px; align-items:center; }
}
@media(max-width:360px) { .site-header { padding-inline:10px; gap:6px; } .site-header .logo-window,.site-header .brand .logo-window img { width:82px; } .header-cta { font-size:10px; padding-inline:7px; } }

/* Keep the tile wall and garden doorway together on mobile. */
@media(max-width:820px) {
 .hero { display:block; }
 .hero-logo-panel { width:68%; height:80vw; max-height:500px; aspect-ratio:auto; }
 .hero-logo-panel img { object-fit:cover; }
 .hero-logo-panel::after { content:""; position:absolute; top:0; bottom:0; right:0; width:38px; background:linear-gradient(90deg,transparent,#080c0de6); pointer-events:none; }
 .hero-image { top:0; left:68%; width:32%; height:80vw; max-height:500px; object-fit:cover; object-position:left top; }
 .hero-shade { top:0; bottom:auto; left:68%; width:32%; height:80vw; max-height:500px; background:linear-gradient(90deg,#080c0da6,transparent 32%); }
 .hero-copy { min-height:0; padding:38px 28px 42px; background:linear-gradient(90deg,#0b1112f5,#0b1112dd 66%,#0b11129c),url('/assets/hero-garden-door.png') right center / cover; }
 .hero h1 { font-size:clamp(35px,8vw,52px); }
 .hero-text { max-width:510px; }
}

/* A simpler mobile navigation bar. */
@media(max-width:820px) {
 .site-header > .brand { display:none; }
 .site-header { height:68px; padding:0 24px; gap:18px; justify-content:space-between; }
 .menu-toggle { margin-left:0; padding:12px 0; font-size:14px; }
 .site-header .header-cta { padding:12px 16px; font-size:12px; }
 .site-header nav { top:68px; }
 html { scroll-padding-top:84px; }
}

/* Supplied round NTY logo in the footer, on all screen sizes. */
footer .logo-window { width:180px; height:180px; border-radius:50%; }
footer .brand .logo-window img { position:static; width:180px; height:180px; object-fit:contain; border-radius:50%; }

.nty-branch-brand img { aspect-ratio:1; object-fit:contain; border-radius:50%; }

/* Concierge-style desktop navigation, with a petrol active marker. */
@media(min-width:821px){
 .site-header{height:60px;}
 .site-header nav{gap:30px;align-items:center;font:13px Arial,sans-serif;}
 .site-header nav a{padding-bottom:7px;border-bottom:2px solid transparent;font-weight:400;text-decoration:none;}
 .site-header nav a:first-child{border-bottom-color:#125b60;}
 .site-header nav a:hover{border-bottom-color:#125b60;text-decoration:none;}
}
