:root{
  --green:#6E9A6A;
  --green-light:#E3EBDE;
  --green-pale:#F3F7F2;
  --yellow:#FFF8E6;
  --text:#22372B;
  --muted:#5B675F;
  --grey:#E5E9E5;
  --white:#FFFFFF;
  --serif:"Libre Caslon Display",Georgia,serif;
  --sans:"DM Sans",Arial,sans-serif;
  --page:1180px;
  --gutter:clamp(20px,6vw,96px);
  --body-size:1rem;
  --body-leading:1.7;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--sans);font-size:var(--body-size);line-height:var(--body-leading);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
p,h1,h2,h3{overflow-wrap:break-word}

.header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:16px var(--gutter);background:rgba(255,255,255,.97);border-bottom:1px solid var(--grey)}
.brand{display:flex;flex-direction:column;min-width:0}
.brand-name{font-family:var(--serif);font-size:1.55rem;line-height:1.1;letter-spacing:.02em}
.brand-tag{font-size:.68rem;line-height:1.3;color:#6b756e;margin-top:3px}
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,26px);font-size:.88rem;line-height:1.2}
.nav a{padding:8px 0}
.nav a:hover{color:var(--green)}
.nav-book{padding:9px 17px!important;border:1px solid var(--green);border-radius:999px}
.menu{display:none;min-width:44px;min-height:44px;background:none;border:0;font:inherit;color:var(--text);padding:8px}

.hero{min-height:70vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(36px,6vw,90px);padding:clamp(64px,8vw,110px) var(--gutter);background:linear-gradient(115deg,var(--white) 0 65%,var(--green-pale) 65% 100%)}
.hero-copy{min-width:0;max-width:720px}
.eyebrow,.section-label,.role{font-size:.72rem;line-height:1.35;letter-spacing:.13em;text-transform:uppercase;color:#628167;font-weight:700}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,6vw,6.1rem);line-height:.98;margin:18px 0 25px;max-width:850px}
.hero-lede{font-size:1.1rem;line-height:1.75;max-width:650px;color:#536158;margin:0}
.actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:999px;padding:12px 22px;border:1px solid var(--green);font:600 .9rem var(--sans);cursor:pointer}
.primary{background:var(--green);color:#fff}.primary:hover{filter:brightness(.94)}
.ghost{background:#fff;color:var(--text)}
.hero-visual{height:min(520px,44vw);min-height:340px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-visual .orbit{width:min(430px,34vw);height:min(430px,34vw);min-width:260px;min-height:260px;border:1px solid #9ab29b;border-radius:50%;position:absolute;transform:rotate(-18deg)}
.hero-visual .inner{width:min(285px,23vw);height:min(285px,23vw);min-width:175px;min-height:175px;border-color:#bfd0c0;transform:rotate(24deg)}
.hero-visual span{position:absolute;font-family:var(--serif);font-size:1.7rem;line-height:1}
.hero-visual span:nth-of-type(1){top:24%;left:15%}.hero-visual span:nth-of-type(2){right:8%;top:47%}.hero-visual span:nth-of-type(3){bottom:18%;left:24%}
.leaf{position:absolute;width:110px;height:55px;border-top:2px solid var(--green);border-radius:100% 0}.leaf-a{top:17%;right:13%;transform:rotate(30deg)}.leaf-b{bottom:13%;right:22%;transform:rotate(-35deg)}

.statement{padding:22px var(--gutter);background:var(--yellow);font-family:var(--serif);font-size:1.55rem;line-height:1.3;text-align:center}.statement p{margin:0}
.section,.why,.booking,.contact{padding:clamp(64px,7vw,92px) var(--gutter)}
.services{padding-bottom:clamp(48px,5vw,64px)}
.section{max-width:1400px;margin:0 auto}
.section-label{margin:0}
.about-grid,.why-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(42px,8vw,110px);align-items:start;margin-top:24px}
.about h2,.why h2,.section-head h2,.how h2,.booking h2,.contact h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.35rem,4vw,4.25rem);line-height:1.06;margin:0}
.prose{max-width:640px;color:#4f5c54}.prose p{margin:0 0 22px}.prose p:last-child{margin-bottom:0}

.why{background:var(--green-pale)}
.why-grid{margin-top:24px}.why-grid>div>p{max-width:640px;color:#536158;margin:24px 0 0}
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 30px}.principles article{border-top:1px solid #b9cbb9;padding-top:18px}.principles span,.service-list span{font-size:.72rem;line-height:1.2;letter-spacing:.12em;color:#6b856d}.principles h3{margin:9px 0 3px;font-size:1.15rem;line-height:1.3}.principles p{margin:0;color:#56635a}

.section-head{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:clamp(30px,5vw,64px);align-items:end;margin-bottom:42px}
.section-head>div{min-width:0}.section-head h2{max-width:820px}.section-head>p{max-width:500px;color:#59655d;margin:0;line-height:1.7}
.service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--grey)}
.service-list article{padding:28px 25px 30px 0;border-bottom:1px solid var(--grey);min-height:185px}.service-list article:nth-child(3n+2),.service-list article:nth-child(3n+3){padding-left:25px;border-left:1px solid var(--grey)}
.service-list h3{font-size:1.2rem;line-height:1.3;margin:10px 0 8px}.service-list p{margin:0;color:#5b665f;font-size:.92rem;line-height:1.65;max-width:42ch}

.team{padding-top:clamp(38px,4vw,56px);scroll-margin-top:76px}
.team .section-head{display:block;margin-bottom:0}
.team .section-head>div{max-width:850px}
.team .section-head h2{margin-top:12px}
.team-intro-note{max-width:520px;margin:24px 0 28px auto;text-align:right;color:#59655d;line-height:1.7}
.team-category{margin:0}.team-category + .team-category{margin-top:46px}
.team-category-head{display:flex;align-items:center;gap:18px;margin:0 0 22px;padding:0}
.team-category-head::after{content:"";height:1px;background:var(--grey);flex:1}
.team-category-head .section-label{white-space:nowrap}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;width:100%}
.person{background:var(--green-pale);overflow:hidden;border:1px solid #e1e8e1;height:100%;display:flex;flex-direction:column;min-width:0}
.person img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;background:#eef3ee}
.person-info{padding:22px;display:flex;flex-direction:column;flex:1;min-width:0}
.person .role{margin:0}.person h3{font-family:var(--serif);font-size:1.8rem;line-height:1.1;font-weight:400;margin:7px 0 12px}.person p:not(.role){font-size:.9rem;line-height:1.65;color:#526057;margin:0}.person-info>a:not(.person-social){margin-top:auto;padding-top:16px}.person a{font-size:.83rem;font-weight:700;color:#557b5a;display:inline-block;line-height:1.4}.person-social{display:block;margin-top:8px}
.team-grid-single{grid-template-columns:repeat(3,minmax(0,1fr))}

.how{padding-top:clamp(64px,7vw,88px)}
.how h2{margin-top:12px;max-width:760px}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:32px}.steps article{padding:28px;background:var(--white);border:1px solid var(--grey)}.steps span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--green-light);color:#507357}.steps h3{margin:20px 0 6px;font-size:1.15rem;line-height:1.3}.steps p{margin:0;color:#5a665e;line-height:1.65;max-width:42ch}

.booking{display:grid;grid-template-columns:1fr;gap:clamp(30px,4vw,46px);background:var(--green-pale)}
.booking h2,.contact h2{margin-top:12px}.booking-copy p{color:#526057;max-width:540px}.booking-copy p:first-of-type{margin-top:24px}.booking-copy a{font-weight:700}
.booking-form{background:#fff;padding:32px;border:1px solid #dce5dc}.booking-form label{display:block;font-size:.82rem;line-height:1.4;font-weight:600;margin-bottom:16px}.booking-form input,.booking-form select,.booking-form textarea{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #cfd8d0;border-radius:8px;font:inherit;background:#fff;color:var(--text)}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{outline:2px solid #c5dbc6;border-color:var(--green)}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-note{font-size:.72rem;line-height:1.5;color:#788078;margin:13px 0 0}

.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,76px);max-width:1400px;margin:0 auto}.contact>div>p{max-width:560px}.contact-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;border-left:3px solid var(--green);padding:5px 0 5px 28px}.contact-card strong{font-family:var(--serif);font-size:2rem;font-weight:400;line-height:1.15}.contact-card span{color:#647068}.contact-card a{font-weight:700;margin-top:8px}
footer{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:30px var(--gutter);border-top:1px solid var(--grey);font-size:.75rem;color:#6c756e}footer div:first-child{display:flex;flex-direction:column}footer div:last-child{margin-left:auto;text-align:right;white-space:nowrap}footer strong{font-family:var(--serif);font-size:1.2rem;font-weight:400;color:var(--text)}

@media(max-width:1100px){
  .header{padding-left:5vw;padding-right:5vw}.nav{gap:14px}
  .hero{grid-template-columns:1fr .9fr}.hero-visual{height:430px}.hero-visual .orbit{width:360px;height:360px}.hero-visual .inner{width:240px;height:240px}
  .team-grid,.team-grid-single{gap:20px}
}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;background:var(--white);padding-top:70px}.hero-visual{height:320px}.hero-visual .orbit{width:290px;height:290px}.hero-visual .inner{width:200px;height:200px}
  .about-grid,.why-grid,.booking,.contact{grid-template-columns:1fr;gap:48px}
  .service-list{grid-template-columns:1fr 1fr}.service-list article:nth-child(3n+2),.service-list article:nth-child(3n+3){padding-left:0;border-left:0}.service-list article:nth-child(even){padding-left:25px;border-left:1px solid var(--grey)}
  .section-head{grid-template-columns:1fr;gap:18px;align-items:start}.section-head>p{max-width:650px}.team-grid,.team-grid-single{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .header{padding:13px 5vw}.nav{display:none;position:absolute;top:66px;left:0;right:0;background:#fff;padding:16px 5vw 20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--grey);box-shadow:0 10px 20px rgba(34,55,43,.05)}.nav.open{display:flex}.menu{display:block}.brand-name{font-size:1.35rem}.brand-tag{font-size:.58rem}
  .hero{padding:62px max(20px,7vw) 52px;min-height:auto}.hero h1{font-size:clamp(2.75rem,12vw,3.7rem)}.hero-lede{font-size:1rem}.actions{margin-top:28px}.actions .button{flex:1 1 180px}
  .hero-visual{height:255px;min-height:255px}.hero-visual .orbit{width:220px;height:220px;min-width:220px;min-height:220px}.hero-visual .inner{width:150px;height:150px;min-width:150px;min-height:150px}.hero-visual span{font-size:1.25rem}.hero-visual span:nth-of-type(1){left:7%}.hero-visual span:nth-of-type(2){right:2%}.hero-visual span:nth-of-type(3){left:18%}
  .statement{padding:20px max(20px,7vw);font-size:1.25rem}
  .section,.why,.booking,.contact{padding:62px max(20px,7vw)}
.services{padding-bottom:50px}
  .about-grid,.why-grid{margin-top:22px;gap:38px}.principles{gap:28px 20px}
  .section-head{gap:16px;margin-bottom:40px}.section-head h2{max-width:100%}
  .service-list,.team-grid,.team-grid-single,.steps{grid-template-columns:1fr}.service-list article,.service-list article:nth-child(even){padding-left:0;border-left:0}.service-list article{min-height:0;padding-top:25px;padding-bottom:25px}.steps{gap:16px;margin-top:34px}
  .team{padding-top:42px}.team-intro-note{margin:20px 0 34px;max-width:100%;text-align:right}.team-category + .team-category{margin-top:48px}.team-category-head{margin-bottom:18px}.person-info{padding:20px}.person h3{font-size:1.7rem}.person p:not(.role){font-size:.9rem}.team-grid-single{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}.booking-form{padding:23px}.contact-card{padding-left:22px}
  footer{padding:25px max(20px,7vw);display:flex;align-items:flex-end}footer div:last-child{margin-top:0;margin-left:auto;text-align:right}
}
@media(max-width:420px){
  .hero h1{font-size:2.7rem}.actions .button{width:100%;flex-basis:100%}.hero-visual{height:225px;min-height:225px}.hero-visual .orbit{width:195px;height:195px;min-width:195px;min-height:195px}.hero-visual .inner{width:135px;height:135px;min-width:135px;min-height:135px}.principles{grid-template-columns:1fr}.team-intro-note{text-align:right}.person-info{padding:18px}
}
@media (max-width:400px){
  footer{display:block} footer div:last-child{margin-top:12px} footer div:last-child{text-align:right}

}

/* Live booking options */
.booking-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;min-width:0;width:100%}
.booking-option{background:#fff;border:1px solid #dce5dc;padding:22px;display:flex;flex-direction:column;justify-content:space-between;min-height:190px;min-width:0;box-sizing:border-box}
.booking-role{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:700;color:#55735a;margin-bottom:10px}
.booking-option h3{font-family:var(--serif);font-weight:400;font-size:1.9rem;line-height:1.05;margin:0 0 14px;white-space:nowrap}
.booking-option p{color:#5b675f;line-height:1.5;margin:0 0 20px;max-width:34ch}
.booking-option .booking-link{align-self:flex-start}
.booking-copy a{font-weight:700}
@media (max-width:1000px){.booking-options{grid-template-columns:1fr 1fr}}
@media (max-width:680px){.booking-options{grid-template-columns:1fr}.booking-option{min-height:0;padding:22px}.booking-option h3{font-size:1.8rem}}
