:root{color-scheme:light;--paper:#f7f6f2;--ink:#1d1e1c;--muted:#666963;--line:#d9dad4;--warm:#e8e4da;--dark:#252924}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.wrap{width:min(100% - 48px,1260px);margin-inline:auto}.skip-link{position:absolute;top:-80px;left:12px;z-index:20;padding:12px 16px;background:#fff}.skip-link:focus{top:12px}:focus-visible{outline:2px solid #395a48;outline-offset:4px}
.site-header{width:min(100% - 48px,1260px);margin:auto;min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:end;gap:16px;flex:none}.brand strong{font-size:19px;line-height:.89;letter-spacing:-.065em}.brand span{font-size:9px;letter-spacing:.12em;font-weight:700;padding-bottom:2px}.site-header nav{display:flex;gap:35px;margin-left:auto}.site-header nav a{font-size:13px;font-weight:600}.site-header nav a:hover,.inline-link:hover,.service-card a:hover,.site-footer a:hover{text-decoration:underline;text-underline-offset:5px}.header-cta{background:var(--ink);color:#fff;min-height:44px;padding:14px 20px;font-size:12px;line-height:16px;font-weight:700;white-space:nowrap}.header-cta span{margin-left:17px}
.hero{min-height:670px;display:grid;grid-template-columns:1.04fr .96fr;align-items:stretch;gap:36px;padding-top:42px;padding-bottom:54px}.hero-copy{align-self:center;padding:24px 0 50px}.eyebrow{margin:0 0 25px;font-size:11px;font-weight:700;letter-spacing:.16em;line-height:1.5}.eyebrow-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#819781;margin-right:8px;vertical-align:1px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500;letter-spacing:-.067em}h1{font-size:clamp(62px,6.7vw,112px);line-height:.94;margin:0 0 28px;max-width:780px}h1 span{color:#8a8f80}.hero-intro{font-size:17px;line-height:1.55;max-width:440px;color:#4d504a;margin-bottom:30px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;min-height:54px;padding:16px 19px;font-size:13px;font-weight:700;transition:transform .18s ease,background .18s ease}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:#3c443d}.button-light{border:1px solid var(--ink);background:transparent}.button-light:hover{background:#ecece6}.button span{font-size:16px;font-weight:400}.hero-footnote{color:var(--muted);font-size:12px;margin:17px 0 0}
.hero-photos{position:relative;display:grid;grid-template-columns:1fr .82fr;gap:9px;min-height:580px;align-items:end}.hero-photo{display:block;overflow:hidden;background:#d5d4cd}.hero-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.hero-photo:hover img,.work-item:hover img{transform:scale(1.035)}.hero-photo-one{height:100%}.hero-photo-two{height:75%;align-self:end}.hero-photo-one img{object-position:50% 35%}.hero-photo-two img{object-position:50% 25%}.photo-caption{position:absolute;bottom:0;right:0;background:var(--paper);font-size:10px;font-weight:700;letter-spacing:.1em;padding:13px 0 0 15px}.photo-caption span{margin-left:18px;font-size:14px}
.section{padding-block:100px;scroll-margin-top:20px}.section-heading{max-width:720px;margin-bottom:35px}.section-heading .eyebrow{margin-bottom:19px}h2{font-size:clamp(44px,5vw,74px);line-height:1;margin-bottom:0}.section-heading>p:last-child{max-width:570px;color:var(--muted);font-size:16px;line-height:1.55;margin:20px 0 0}.services{border-top:1px solid var(--line)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service-card{min-height:300px;padding:28px 30px 30px;background:var(--warm);display:flex;flex-direction:column;align-items:flex-start}.service-card:nth-child(2){background:#e6e9e2}.service-number{font-size:11px;font-weight:700;letter-spacing:.12em}.service-card div{margin:auto 0 20px}.service-card h3{font-size:clamp(34px,3.2vw,48px);margin-bottom:11px}.service-card p{font-size:15px;line-height:1.55;color:#4d514b;max-width:430px;margin:0}.service-card a{font-size:12px;font-weight:700;margin-top:auto}.service-card a span{margin-left:20px;font-size:15px}
.work{background:#edeee9}.work-heading{max-width:none;display:flex;align-items:end;justify-content:space-between;gap:20px}.inline-link{font-size:12px;font-weight:700;white-space:nowrap;margin-bottom:6px}.inline-link span{margin-left:12px}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.work-item{display:block;min-width:0;overflow:hidden}.work-item img{width:100%;height:clamp(240px,30vw,400px);object-fit:cover;transition:transform .35s ease}.work-item span{display:flex;justify-content:space-between;gap:6px;align-items:center;font-size:11px;font-weight:700;letter-spacing:.025em;padding:12px 2px}.work-item b{font-size:16px;font-weight:400}.work-note{font-size:12px;color:var(--muted);margin:22px 0 0}.work-note a{text-decoration:underline;text-underline-offset:3px}
.locations{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-self:end}.location-card{border-top:1px solid var(--ink);min-height:230px;display:flex;flex-direction:column;padding:20px 0 0}.location-label{font-size:11px;letter-spacing:.13em;font-weight:700}.location-card strong{font-size:25px;line-height:1.3;letter-spacing:-.045em;font-weight:500;margin:35px 0 auto}.location-card>span:last-child{font-size:12px;color:var(--muted);margin-top:25px}
.booking{background:var(--dark);color:#f8f8f4}.booking-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:90px;align-items:center}.booking h2{font-size:clamp(48px,5.5vw,82px);max-width:790px}.booking-inner>div:first-child>p:last-child{font-size:16px;line-height:1.6;color:#d3d8cf;max-width:580px;margin:25px 0 0}.booking-buttons{display:flex;flex-direction:column;gap:10px}.button-cream{background:#e8e4da;color:var(--ink)}.button-cream:hover{background:#fff}.button-outline{border:1px solid #a3aa9f;color:#fff}.button-outline:hover{background:#3d443d}.secondary-contact{display:flex;justify-content:space-between;gap:14px;padding:16px 0 4px}.secondary-contact a{text-decoration:underline;text-underline-offset:4px;font-size:13px}.booking-buttons>p{font-size:11px;line-height:1.5;color:#c0c7bd;margin:8px 0 0}.site-footer{min-height:150px;padding-block:34px;display:flex;justify-content:space-between;gap:30px}.site-footer>div{display:flex;flex-direction:column;gap:10px}.site-footer strong{font-size:13px;letter-spacing:.02em}.site-footer span,.site-footer a{font-size:12px;color:var(--muted)}.site-footer>div:last-child{align-items:flex-end}.site-footer a{color:var(--ink)}.mobile-booking{display:none}
@media(max-width:1000px){.site-header nav{gap:20px}.hero{grid-template-columns:1fr 1fr;gap:20px;min-height:530px}.hero-photos{min-height:470px}.hero-copy{padding-bottom:20px}h1{font-size:clamp(55px,6vw,82px)}.locations{gap:40px}.booking-inner{gap:40px}}
@media(max-width:700px){.wrap,.site-header{width:min(100% - 32px,540px)}.site-header{min-height:66px}.brand{gap:10px}.brand strong{font-size:17px}.brand span{font-size:8px}.site-header nav{display:none}.header-cta{min-height:40px;padding:12px 13px;font-size:11px}.header-cta span{margin-left:7px}.hero{display:flex;flex-direction:column;gap:0;padding-top:32px;padding-bottom:55px;min-height:0}.hero-copy{padding:0}.eyebrow{font-size:10px;margin-bottom:16px}h1{font-size:clamp(49px,11.6vw,76px);line-height:.96;margin-bottom:20px}.hero-intro{font-size:15px;line-height:1.5;margin-bottom:23px;max-width:460px}.hero-actions{gap:8px}.button{min-height:49px;padding:13px 15px;font-size:12px;gap:15px}.hero-footnote{font-size:11px;margin:11px 0 22px}.hero-photos{height:410px;min-height:0;gap:6px}.hero-photo-two{height:80%}.photo-caption{font-size:8px;padding:9px 0 0 10px}.photo-caption span{margin-left:5px}.section{padding-block:68px}.section-heading{margin-bottom:24px}.section-heading .eyebrow{margin-bottom:15px}h2{font-size:clamp(39px,9vw,55px)}.section-heading>p:last-child{font-size:14px}.service-grid{grid-template-columns:1fr;gap:9px}.service-card{min-height:235px;padding:22px}.service-card h3{font-size:35px}.service-card p{font-size:14px}.work-heading{align-items:end}.work-heading h2{font-size:44px}.inline-link{font-size:11px}.work-grid{grid-template-columns:1fr 1fr;gap:12px}.work-item span{font-size:10px;line-height:1.3}.work-note{line-height:1.5}.locations{display:block}.location-grid{margin-top:30px;gap:14px}.location-card{min-height:175px}.location-card strong{font-size:19px;margin-top:24px}.booking-inner{display:block}.booking h2{font-size:clamp(45px,10vw,67px)}.booking-inner>div:first-child>p:last-child{font-size:14px;margin:19px 0 28px}.site-footer{padding-bottom:104px;min-height:0}.site-footer>div:last-child{gap:8px}.mobile-booking{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:1px solid #d8dad3;padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-right));gap:8px;box-shadow:0 -4px 20px #00000012}.mobile-booking a{min-height:45px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 13px;font-size:12px;font-weight:700}.mobile-booking a:nth-child(2){background:#e6e9e2;color:var(--ink)}}
@media(max-width:390px){.brand span{display:none}.hero-photos{height:340px}.location-grid{grid-template-columns:1fr;gap:20px}.location-card{min-height:135px}.location-card strong{margin:18px 0 0}.site-footer{display:block}.site-footer>div:last-child{align-items:flex-start;margin-top:22px}}
@media(max-width:700px){.work-item img{height:clamp(220px,60vw,330px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.hero{display:block;min-height:0}.hero-copy{padding:20px 0 26px}.hero-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media(max-width:700px){.hero{padding-top:32px;padding-bottom:50px}.hero-copy{padding:0 0 12px}.hero-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
.hero-gallery .work-item img{transform:translateZ(0);will-change:transform;backface-visibility:hidden}
.hero-gallery .work-item:hover img{transform:translateZ(0) scale(1.035)}
.work-grid .work-item img{transform:translateZ(0);will-change:transform;backface-visibility:hidden}
.work-grid .work-item:hover img{transform:translateZ(0) scale(1.035)}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}
.icon{display:inline-block;width:18px;height:18px;flex:none;vertical-align:middle;stroke-linecap:round;stroke-linejoin:round}
.header-cta,.inline-link,.service-card a,.secondary-contact a,.site-footer a{display:inline-flex;align-items:center;gap:10px}
.header-cta .icon,.button .icon,.mobile-booking .icon{width:19px;height:19px}
.service-card a .icon,.inline-link .icon,.secondary-contact a .icon,.site-footer a .icon{width:16px;height:16px}
.work-item .icon{width:17px;height:17px;opacity:.82}
.service-card a .icon{margin-left:10px}
.site-footer a{gap:7px}
.mobile-booking a .icon{width:19px;height:19px}
.service-card a,.inline-link,.secondary-contact a,.site-footer a{min-height:44px}
@media(min-width:1101px){.hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:42px;padding-top:36px;padding-bottom:70px}.hero-copy{padding:0}.hero h1{font-size:clamp(60px,5vw,78px)}.hero-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hero-gallery .work-item img{height:280px}}
.hero-gallery .work-item:first-child img{object-position:center top}
.hero-gallery .work-item:nth-child(3) img{object-position:center 30%}
@media(max-width:700px){.work-heading{flex-direction:column;align-items:flex-start;gap:10px}.inline-link{margin:0}}
.training-note{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:24px;align-items:start;border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.training-note .eyebrow{margin:4px 0 0}.training-note>p:last-child{font-size:16px;line-height:1.55;max-width:620px;margin:0;color:#4d514b}
@media(max-width:700px){.training-note{grid-template-columns:1fr;gap:12px;margin-top:24px;padding-top:22px}.training-note .eyebrow{margin:0}}
