@charset "UTF-8";
:root{--paper:#f6f6f2;--white:#fff;--ink:#293b35;--muted:#626c66;--green:#29433b;--line:#d7ddd5;--pale:#e9ede6;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1}h2{font-size:clamp(2.25rem,4vw,3.4rem);letter-spacing:-.035em}p{margin-bottom:1.25rem}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #819e66;outline-offset:6px}button{cursor:pointer}.section-wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;left:12px;top:-100px;background:white;padding:12px;z-index:99}.skip-link:focus{top:12px}.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.header-inner{width:min(1360px,calc(100% - 64px));min-height:100px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;text-decoration:none;gap:12px;font:1.85rem/1.15 var(--serif);letter-spacing:-.04em}.brand img{width:78px;height:68px;object-fit:contain}.brand-sub{display:block;font:10px/1.6 var(--sans);letter-spacing:.19em;margin-top:5px}.site-header nav{display:flex;gap:34px;align-items:center}.site-header nav>a:not(.button){text-decoration:none;font-size:.9rem;position:relative}.site-header nav>a:not(.button):hover{text-decoration:underline;text-underline-offset:6px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 24px;background:var(--green);color:white;text-decoration:none;font-weight:500;font-size:.94rem;border:1px solid var(--green);border-radius:2px;transition:background .2s,transform .2s}.button:hover{background:#3d594b;transform:translateY(-1px)}.button-small{min-height:44px;padding:8px 23px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding-block:56px 64px;align-items:center}.eyebrow{font-size:.73rem;font-weight:600;letter-spacing:.17em;line-height:1.6;margin-bottom:28px}.eyebrow:before{content:'';display:inline-block;width:28px;height:1px;background:currentColor;vertical-align:middle;margin-right:12px}.hero h1{font-size:clamp(3.1rem,5.3vw,5rem);letter-spacing:-.055em;line-height:1.08;margin-bottom:26px}.hero h1 em{color:#587062;font-weight:400}.hero-description{max-width:425px;color:var(--muted);font-size:1.1rem;line-height:1.7;margin-bottom:30px}.hero-actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap}.text-link{font-size:.94rem;text-underline-offset:6px;text-decoration-thickness:1px}.text-link:hover{color:#627b53}.hero-location{display:flex;gap:10px;align-items:center;margin-top:46px;color:var(--muted);font-size:.8rem}.location-icon{font-size:1.5rem;color:var(--green)}.hero-visual{height:580px;position:relative;overflow:hidden;background:var(--pale);border-radius:2px}.client-strip{border-block:1px solid var(--line)}.client-strip>.section-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:25px}.client-strip p{margin:0;font-size:.9rem;color:var(--muted)}.client-strip .section-wrap>div{display:flex;gap:35px;font:1.14rem var(--serif)}.client-strip span+span{border-left:1px solid #bdc8bc;padding-left:35px}
@media(min-width:1600px){.hero{padding-top:75px;padding-bottom:75px}.hero-visual{height:630px}}
@media(max-width:1050px){.section-wrap{width:calc(100% - 64px)}.hero{gap:35px}.hero-visual{height:535px}.site-header nav{gap:22px}.hero h1{font-size:3.7rem}.client-strip .section-wrap>div{gap:18px}.client-strip span+span{padding-left:18px}}
@media(max-width:760px){html{scroll-padding-top:90px}.section-wrap{width:calc(100% - 40px)}.header-inner{width:calc(100% - 32px);min-height:82px;gap:12px}.brand{font-size:1.55rem;gap:4px}.brand img{width:60px;height:58px}.brand-sub{font-size:9px}.menu-toggle{display:flex;gap:14px;align-items:center;background:none;border:1px solid var(--line);border-radius:2px;padding:7px 12px;font-size:.85rem;min-height:42px}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:25px 24px;border-bottom:1px solid var(--line);align-items:stretch;gap:18px}.site-header nav.is-open{display:flex;flex-direction:column}.site-header nav>a:not(.button){padding:4px 0}.hero{grid-template-columns:1fr;gap:34px;padding-block:38px 36px}.hero h1{font-size:clamp(3rem,10vw,4.5rem)}.eyebrow{font-size:.66rem;margin-bottom:20px;letter-spacing:.12em}.hero-description{font-size:1rem;max-width:480px}.hero-location{margin-top:26px;font-size:.75rem}.hero-visual{height:400px}.client-strip>.section-wrap{flex-direction:column;align-items:flex-start;gap:14px;padding-block:22px}.client-strip .section-wrap>div{font-size:1rem;flex-wrap:wrap;gap:12px}.client-strip span+span{padding-left:12px}}
.section-space{padding-block:104px}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:46px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:440px;margin:0 0 4px;color:var(--muted)}.section-heading .eyebrow{margin-bottom:22px}.service-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{padding:38px 40px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:stretch;background:#fafaf7}.service-label{font-size:.75rem;letter-spacing:.1em;color:var(--muted);margin-bottom:26px}.service-card h3{font-size:2rem;line-height:1.2;letter-spacing:-.025em;margin-bottom:20px}.service-card>p{color:var(--muted);max-width:450px;margin-bottom:28px}.service-card details{margin-top:auto}.service-card summary{font-size:.88rem;padding-top:16px;border-top:1px solid var(--line);min-height:44px}.expand{display:block;width:27px;height:27px;border:1px solid #b6c3b6;border-radius:50%;position:relative;flex:none;margin-left:18px}.expand:before,.expand:after{content:'';position:absolute;width:9px;height:1px;background:var(--green);left:8px;top:12px}.expand:after{transform:rotate(90deg)}details[open]>summary .expand:after{transform:rotate(0)}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px}summary::-webkit-details-marker{display:none}summary:hover{color:#57735c}.service-detail{padding-top:12px}.service-detail ul{padding-left:20px;font-size:.93rem;color:var(--muted);margin-block:8px 24px}.service-detail li{padding-bottom:5px}.service-note{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:30px}.service-note p{margin:0;font-size:.9rem;color:var(--muted)}.about{background:var(--green);color:var(--paper);padding-block:88px}.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.about h2{font-size:clamp(2.5rem,4vw,3.7rem);line-height:1.18;margin-bottom:34px}.about h2 em{color:#c5d0bd}.about-copy{padding-top:4px}.about-copy>p{color:#d9e0d7;font-size:.98rem}.about-copy>.lead{font:1.75rem/1.4 var(--serif);color:var(--paper);margin-bottom:24px}.button-light{background:var(--paper);border-color:var(--paper);color:var(--green)}.button-light:hover{background:#dce4d5}.about-principles{display:grid;grid-template-columns:1fr 1fr;gap:25px;border-top:1px solid #597063;padding-top:26px;margin-top:30px}.about-principles h3{font:1.15rem/1.4 var(--serif);margin-bottom:8px}.about-principles p{font-size:.88rem;color:#c9d4c9;margin:0}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.faq-grid details{border-bottom:1px solid var(--line)}.faq-grid summary{padding:23px 0;font:1.3rem/1.4 var(--serif)}.faq-grid details p{color:var(--muted);font-size:.94rem;line-height:1.75;padding-right:28px;margin:0 0 26px}.contact{display:grid;grid-template-columns:1fr 1fr;background:var(--pale)}.contact-photo{position:relative;min-height:620px;overflow:hidden}.contact-photo img{width:100%;height:100%;position:absolute;object-position:48% center;filter:saturate(.55)}.contact-photo:after{position:absolute;content:'';inset:50% 0 0;background:linear-gradient(transparent,rgba(22,36,29,.72))}.contact-photo>span{position:absolute;bottom:32px;left:40px;right:25px;font-size:.7rem;letter-spacing:.13em;color:white;z-index:1}.contact-copy{padding:64px clamp(32px,5vw,90px)}.contact-copy h2{font-size:clamp(2.4rem,3.5vw,3.2rem);line-height:1.15}.contact-copy>p:not(.eyebrow){color:var(--muted)}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-block:28px 40px}.contact-phone{font:1.85rem/1.3 var(--serif);text-decoration:none}.contact-phone:hover{text-decoration:underline}.contact-email{font-size:1rem;text-underline-offset:5px;overflow-wrap:anywhere}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid #c3cebf;padding-top:28px}.contact-bottom h3{font:.8rem/1.4 var(--sans);font-weight:bold;letter-spacing:.03em;margin-bottom:12px}.contact-bottom p{font-size:.86rem;color:var(--muted);margin:0;line-height:1.8}.site-footer{padding-block:45px 28px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:35px}.footer-brand{margin-left:-18px}.footer-top>p{font-size:.88rem;color:var(--muted);margin:0}.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-bottom p,.registered-address{font-size:.75rem;color:var(--muted);margin-bottom:10px}.footer-bottom a{text-underline-offset:3px}.registered-address{font-size:.75rem;line-height:1.6}.review-section{background:#edf0e9;padding-block:74px;text-align:center}.review-section .eyebrow{margin-bottom:25px}.review-section blockquote{font:clamp(1.8rem,3vw,2.7rem)/1.4 var(--serif);letter-spacing:-.02em;max-width:920px;margin:0 auto 26px}.review-credit{font-size:.86rem;margin-bottom:15px}.review-credit strong{font-weight:600}.review-stars{letter-spacing:5px;color:#4a6250;margin-bottom:14px;font-size:1rem}
@media(max-width:1050px){.service-card{padding:30px}.about-inner{gap:45px}.contact-copy{padding:48px 32px}.contact-bottom{grid-template-columns:1fr}.contact-photo{min-height:680px}}
@media(max-width:760px){.section-space{padding-block:60px}.section-heading{grid-template-columns:1fr;gap:22px;margin-bottom:30px}.section-heading>p{max-width:none}.section-heading .eyebrow{margin-bottom:18px}.service-grid{grid-template-columns:1fr}.service-card{padding:28px 24px}.service-card h3{font-size:1.8rem}.service-label{margin-bottom:18px}.service-note{align-items:flex-start;flex-direction:column;gap:10px}.about{padding-block:56px}.about-inner{grid-template-columns:1fr;gap:40px}.about h2{font-size:2.7rem}.about-copy>.lead{font-size:1.6rem}.about-principles{gap:20px}.faq-grid{grid-template-columns:1fr;gap:0}.faq-grid summary{font-size:1.22rem}.faq-grid details p{padding-right:0}.contact{grid-template-columns:1fr}.contact-photo{min-height:320px;order:2}.contact-photo img{object-position:center 55%}.contact-copy{padding:48px 24px}.contact-copy h2{font-size:2.6rem}.contact-links{margin-bottom:32px}.contact-bottom{grid-template-columns:1fr 1fr;gap:20px}.contact-email{font-size:.93rem}.contact-photo>span{left:24px;bottom:24px}.footer-top{flex-wrap:wrap;gap:24px;padding-bottom:28px}.footer-top>p{display:none}.footer-bottom{display:block}.footer-brand{margin-left:-12px;font-size:1.35rem}.footer-brand img{width:58px;height:52px}.footer-top>.text-link{font-size:.8rem}.review-section{padding-block:55px}.review-section blockquote{font-size:1.9rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* All review slides share one grid cell, reserving the tallest quote's space. */
.review-slides{display:grid;max-width:960px;margin:0 auto}
.review-slide{grid-area:1/1;margin:0;visibility:hidden;opacity:0;transition:opacity .35s ease;display:flex;flex-direction:column;align-items:center}
.review-slide.is-current{visibility:visible;opacity:1}
.review-slide blockquote{margin-bottom:24px}
.review-slide .review-credit{margin-top:auto;margin-bottom:10px}
.review-credit span{display:block;margin-top:3px;color:var(--muted);font-size:.78rem;letter-spacing:.03em}
.review-source{font-size:.8rem;color:var(--muted)}
.review-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin:28px auto 0}
.review-controls[hidden]{display:none}
.review-arrow{width:46px;height:46px;display:inline-grid;place-items:center;background:transparent;color:var(--green);border:1px solid #a7b5a6;border-radius:50%;font-size:1.35rem;line-height:1;transition:background .2s}
.review-arrow:hover{background:#dbe3d6}
.review-position{font-size:.8rem;color:var(--muted);min-width:40px;font-variant-numeric:tabular-nums}
.review-play{background:transparent;color:var(--muted);border:0;border-left:1px solid #bdc8b9;padding:8px 0 8px 18px;min-height:44px;min-width:64px;text-align:left;font-size:.78rem;text-decoration:underline;text-underline-offset:4px}
.review-actions{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:16px;margin-top:28px}
.review-action{width:17rem;max-width:100%;text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.review-section blockquote{font-size:clamp(1.35rem,5.6vw,1.9rem)}.review-controls{gap:14px}.review-stars{margin-bottom:18px}}

/* Contact links use the same restrained colours as the rest of the site. */
.contact-social{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.contact-action{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:9px 14px;border:1px solid #a8b9a3;border-radius:2px;font-size:.83rem;text-decoration:none;transition:background .2s}
.contact-action:hover{background:#dbe3d6}
.contact-action svg{width:20px;height:20px;flex:none}
.contact-directions{display:inline-block;margin-top:12px;font-size:.8rem;line-height:1.7}
@media(max-width:400px){.contact-bottom{grid-template-columns:1fr}.contact-social{gap:10px}.contact-action{padding-inline:12px}}

/* Original owner-supplied portraits for all seven people. */
.team-group-title{font-family:var(--sans);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin:0 0 20px}
.team-directors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:44px}
.team-card{min-width:0}
.team-portrait{position:relative;display:grid;place-items:center;aspect-ratio:1;background:#e5eae1;color:#667961;overflow:hidden;border:1px solid #dce2d7}
.team-portrait span{font:clamp(2.7rem,4vw,3.6rem)/1 var(--serif);letter-spacing:-.04em}
.team-portrait img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.team-person h4{font:400 1.4rem/1.25 var(--serif);letter-spacing:-.02em;margin:19px 0 0}
.team-person p{font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin:8px 0 0}
.team-director{display:grid;grid-template-columns:164px minmax(0,1fr);align-items:center;background:#fafaf7;border:1px solid var(--line)}
.team-director .team-portrait{border:0;aspect-ratio:1}
.team-director .team-person{padding:24px}
.team-director h4{font-size:1.7rem;margin:0}
.team-members{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
@media(min-width:761px) and (max-width:1000px){
  .menu-toggle{display:flex;gap:14px;align-items:center;background:none;border:1px solid var(--line);border-radius:2px;padding:7px 12px;font-size:.85rem;min-height:42px}
  .site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:25px 32px;border-bottom:1px solid var(--line);align-items:stretch;gap:18px}
  .site-header nav.is-open{display:flex;flex-direction:column}
  .site-header nav>a:not(.button){padding:4px 0}
}
@media(max-width:1050px){.team-director{grid-template-columns:128px minmax(0,1fr)}.team-director .team-person{padding:20px}.team-director h4{font-size:1.45rem}.team-members{gap:18px}.team-person h4{font-size:1.2rem}}
@media(max-width:760px){.team-directors{grid-template-columns:1fr;gap:16px;margin-bottom:36px}.team-members{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.team-portrait span{font-size:2.7rem}.team-person h4{font-size:1.3rem}.team-director h4{font-size:1.5rem}.team-director .team-person{padding:20px}.team-group-title{font-size:.7rem}.team-director{grid-template-columns:112px minmax(0,1fr)}}
@media(max-width:360px){.team-director{grid-template-columns:92px minmax(0,1fr)}.team-director .team-person{padding:15px}.team-director h4{font-size:1.3rem}}

/* Transparent logo in the page's deep green, over an edge-free sage glow. */
.hero-logo-blend{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;height:auto;min-height:580px;padding-block:24px 28px;background:transparent;border:0;border-radius:0;box-shadow:none;isolation:isolate;overflow:visible;text-align:center}
.hero-logo-blend::before{content:'';position:absolute;inset:-4% -6%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,rgba(211,222,203,.58) 0%,rgba(225,233,218,.33) 36%,rgba(246,246,242,0) 70%)}
.hero-logo-art{display:block;flex:none;width:100%;max-width:500px;height:auto;overflow:visible}
.hero-logo-kicker{margin:0;color:var(--muted);font-size:.875rem;line-height:1.65;letter-spacing:.18em;text-transform:uppercase}
.hero-logo-caption{width:calc(100% - 32px);max-width:500px;border-top:1px solid var(--line);padding-top:22px}
.hero-logo-tagline{margin:0;color:var(--green);font:clamp(1.45rem,2.2vw,2rem)/1.3 var(--serif);letter-spacing:-.02em}
@media(min-width:1600px){.hero-logo-blend{min-height:630px}}
@media(max-width:1050px){.hero-logo-blend{min-height:535px}}
@media(max-width:760px){.hero-logo-blend{min-height:0;width:min(100%,540px);padding-block:20px 24px;justify-self:center}.hero-logo-blend::before{inset:-5% 0}.hero-logo-art{max-width:480px}.hero-logo-caption{padding-top:20px}.hero-logo-kicker{letter-spacing:.14em}}
