:root{--petrol:#0f4c4c;--petrol-dark:#08393d;--sage:#7a9e7e;--earth:#b36b45;--sand:#d9c9b1;--graphite:#2e2e2e;--paper:#f7f4ee;--white:#fff;--line:rgba(46,46,46,.17);--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--graphite);font-family:"Montserrat",Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}img{display:block;max-width:100%}.arrow-icon{width:.8rem;height:.8rem;display:block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.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}.skip-link{position:fixed;z-index:99;top:10px;left:10px;padding:.6rem 1rem;background:#fff;transform:translateY(-150%)}.skip-link:focus{transform:none}
.site-header{min-height:152px;padding:.45rem clamp(1.25rem,4vw,4.5rem);display:grid;grid-template-columns:285px 1fr auto;align-items:center;gap:2rem;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:30}.brand{width:250px;display:block}.brand img{width:100%;height:auto;object-fit:contain}.site-header nav{display:flex;justify-content:center;gap:clamp(1.5rem,3vw,3.5rem)}.site-header nav a{font-size:.72rem;letter-spacing:.16em;text-decoration:none;font-weight:600;position:relative}.site-header nav a:after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:2px;background:var(--earth);transform:scaleX(0);transform-origin:left;transition:transform .25s}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform:scaleX(1)}.header-cta{background:var(--petrol);color:#fff;text-decoration:none;padding:.8rem 1rem;font-size:.76rem;font-weight:600;letter-spacing:.05em;display:inline-flex;align-items:center;gap:.65rem}.menu-toggle{display:none}
.hero{min-height:calc(100vh - 152px);max-width:var(--max);margin:auto;padding:clamp(4rem,8vw,8.5rem) clamp(1.25rem,4vw,4.5rem) 2.2rem;display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(2rem,6vw,7rem);position:relative;align-items:center}.eyebrow{margin:0 0 1.4rem;font-size:.71rem;letter-spacing:.22em;font-weight:600;color:var(--petrol)}.hero h1,.section h2,.about h2,.contact h2{font-size:clamp(2.7rem,5.4vw,5.4rem);line-height:.98;letter-spacing:-.055em;margin:0;font-weight:600;color:var(--petrol-dark)}em{font-style:normal;color:var(--earth)}.hero-lead{font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.55;max-width:600px;margin:2.1rem 0 2.5rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:3rem;min-width:200px;padding:1rem 1.15rem;text-decoration:none;border:0;font:600 .78rem/1 "Montserrat",sans-serif;letter-spacing:.06em;cursor:pointer;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--petrol);color:#fff}.hero-composition{height:min(590px,60vw);position:relative;background:var(--petrol-dark);overflow:hidden}.hero-photo{position:absolute;inset:2.5rem 2.5rem 5.4rem 30%}.reference-photo{margin:0;overflow:hidden;background:var(--graphite)}.reference-photo img{width:100%;height:100%;object-fit:cover}.shape{position:absolute;z-index:2}.shape-sage{width:31%;height:31%;left:0;bottom:0;background:var(--sage);border-radius:0 100% 0 0}.shape-earth{width:24%;height:24%;right:0;top:0;background:var(--earth);border-radius:0 0 0 100%}.hero-composition>p{position:absolute;z-index:3;left:1.4rem;top:1.5rem;width:calc(30% - 2rem);margin:0;color:#fff;font-size:.66rem;line-height:1.75;letter-spacing:.18em}.hero-index{position:absolute;left:clamp(1.25rem,4vw,4.5rem);bottom:1.5rem;margin:0;font-size:.65rem;letter-spacing:.18em;color:#626262}
.section{max-width:var(--max);margin:auto;padding:clamp(5.5rem,9vw,9rem) clamp(1.25rem,4vw,4.5rem)}.section-heading{display:grid;grid-template-columns:.32fr 1fr .72fr;align-items:start;gap:2rem;margin-bottom:4rem;scroll-margin-top:1rem}.section-heading h2{font-size:clamp(2.3rem,4vw,4rem);max-width:720px}.section-heading>p:last-child{margin:0;padding-top:.3rem}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{min-height:390px;padding:2.75rem 2rem 2rem;display:grid;grid-template-rows:auto 1fr auto;align-content:start;gap:1rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;background:#fbfaf7;transition:transform .25s,box-shadow .25s;overflow:hidden}.service-card:hover{transform:translateY(-7px);box-shadow:0 18px 45px rgba(15,76,76,.1);z-index:2}.service-card h3{font-size:clamp(1.45rem,2vw,2rem);line-height:1.15;color:var(--petrol-dark);margin:0;min-height:3.7em}.service-description{margin:0;max-width:320px;align-self:start}.card-line{width:40px;height:4px;background:var(--earth);margin-top:1rem;align-self:end}.service-card-featured{background:var(--petrol);color:#fff}.service-card-featured h3{color:#fff}.service-card-featured .card-line{background:var(--sand)}
.about{display:grid;grid-template-columns:1fr 1fr;min-height:760px;background:#fff}.about-visual{min-height:650px;position:relative;background:var(--petrol)}.about-photo{inset:0;position:absolute}.about-copy{padding:clamp(5rem,8vw,8rem) clamp(2rem,7vw,7rem);display:flex;flex-direction:column;justify-content:center}.about-copy h2{font-size:clamp(2.5rem,4vw,4.2rem);max-width:720px}.about-copy>p:not(.eyebrow){font-size:1.06rem;max-width:650px;margin:2rem 0 3rem}.progression{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.progression li{padding:1rem 0;border-bottom:1px solid var(--line);display:flex;gap:2rem;font-weight:600;color:var(--petrol)}.progression span{font-size:.65rem;letter-spacing:.12em;color:var(--earth);padding-top:.22rem}
.profile{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;align-items:center}.profile-title h2{font-size:clamp(2.3rem,4vw,4rem)}.profile-card{display:grid;grid-template-columns:160px 1fr;gap:2.5rem;border-top:1px solid var(--petrol);border-bottom:1px solid var(--line);padding:2.5rem 0}.profile-monogram{width:160px;aspect-ratio:1;background:var(--sand);color:var(--petrol);display:grid;place-items:center;font-size:2.8rem;font-weight:600;letter-spacing:-.08em;border-radius:50% 50% 0 50%}.profile-card h3{font-size:1.8rem;color:var(--petrol);margin:0}.role{color:var(--earth);font-size:.77rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin:.25rem 0 1.4rem}
.contact{background:var(--petrol-dark);color:#fff;padding:clamp(5.5rem,9vw,9rem) max(clamp(1.25rem,7vw,7rem),calc((100vw - var(--max))/2 + 4rem));display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,9vw,9rem)}.contact .eyebrow{color:var(--sand)}.contact h2{color:#fff;font-size:clamp(2.7rem,4.8vw,4.8rem)}.contact-intro{scroll-margin-top:1rem}.contact-intro>p:not(.eyebrow){max-width:580px;color:rgba(255,255,255,.75);margin:2rem 0}.button-light{background:#fff;color:var(--petrol);margin-right:1rem}.mail-link{display:block;margin-top:1.3rem;color:var(--sand);font-size:.86rem}.contact-form{display:grid;gap:1.3rem}.contact-form label{font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sand)}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;padding:.65rem 0;font:1rem/1.4 "Montserrat",sans-serif;outline:none;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--sand)}.button-earth{background:var(--earth);color:#fff;margin-top:.8rem}.form-status{min-height:1.5em;margin:0;font-size:.83rem;color:var(--sand)}
footer{background:#fff;padding:3rem clamp(1.25rem,4vw,4.5rem) 1.5rem;display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:2rem;font-size:.78rem;border-top:5px solid var(--earth)}.footer-brand img{width:230px}.footer-brand>p{display:none}.footer-label{font-size:.63rem;letter-spacing:.16em;color:var(--earth);font-weight:700}.copyright{grid-column:1/-1;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:1rem;font-size:.63rem;letter-spacing:.12em}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media (max-width:900px){.site-header{grid-template-columns:1fr auto auto}.site-header nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:2rem;display:none;flex-direction:column;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.menu-toggle{display:grid;gap:4px;background:transparent;border:0;padding:.7rem;cursor:pointer}.menu-toggle span:not(.sr-only){display:block;width:22px;height:2px;background:var(--petrol)}.hero{grid-template-columns:1fr;padding-top:4rem}.hero-composition{height:520px}.hero-index{display:none}.section-heading{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.service-card{min-height:330px}.about{grid-template-columns:1fr}.about-visual{min-height:540px}.profile{grid-template-columns:1fr}.contact{grid-template-columns:1fr}footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media (max-width:600px){.site-header{min-height:122px;padding:.35rem 1rem;gap:.5rem}.brand{width:185px}.header-cta{font-size:0;padding:.72rem}.header-cta span{font-size:1rem;margin:0}.hero{min-height:auto;padding-top:3.5rem;padding-bottom:5rem}.hero h1{font-size:clamp(2.65rem,14vw,4.2rem)}.hero-composition{height:390px}.hero-photo{inset:2rem 1.5rem 4.5rem 30%}.hero-composition>p{left:1rem;top:1.4rem;width:calc(30% - 1.4rem);font-size:.54rem;letter-spacing:.1em}.section{padding-top:5rem;padding-bottom:5rem}.about-visual{min-height:430px}.about-photo{inset:0}.profile-card{grid-template-columns:1fr}.profile-monogram{width:110px}.contact{padding:5rem 1.25rem}.button{width:100%}.button-light{margin-right:0}.contact-form{margin-top:1rem}footer{grid-template-columns:1fr}.copyright,.footer-brand{grid-column:1}.footer-brand img{width:210px}}
@media (max-width:900px){.site-header nav{background:#fff}.service-card h3{min-height:0}}
@media (max-width:600px){.header-cta{gap:0}.header-cta .arrow-icon{width:.8rem;height:.8rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.service-card{transition:none}}
