@font-face{font-family:Inter;src:url('assets/Inter-Regular.ttf')}@font-face{font-family:Inter;src:url('assets/Inter-Medium.ttf');font-weight:500}:root{--green:#276354;--deep:#203e36;--charcoal:#222a2b;--slate:#59696d;--stone:#c8c4b9;--paper:#f3f1eb;--yellow:#d8b545}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--charcoal);font:16px/1.65 Inter,Arial,sans-serif}a{color:inherit;text-underline-offset:5px}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}h1,h2,h3,p{margin:0}p+p{margin-top:1em}h1,h2,h3{font-weight:400;line-height:1.1;letter-spacing:-.035em}h1{font-size:clamp(3rem,5.8vw,5.8rem)}h2{font-size:clamp(2.2rem,4vw,3.8rem)}h3{font-size:1.8rem;letter-spacing:-.02em}.wrap{width:min(1280px,88%);margin:auto}.header{height:112px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{font-size:25px;letter-spacing:.22em;text-decoration:none;white-space:nowrap;font-weight:500}.header nav{display:flex;gap:28px}.header nav a{font-size:14px;text-decoration:none;padding:8px 0;border-bottom:1px solid transparent}.header nav a:hover,.header nav a[aria-current]{border-color:var(--green)}.menu-toggle{display:none;background:none;border:0;color:var(--charcoal);padding:10px}.eyebrow{font-size:12px;font-weight:500;letter-spacing:.19em;line-height:1.7;text-transform:uppercase;color:var(--slate);margin-bottom:26px}.hero{position:relative;min-height:680px;height:calc(100svh - 112px);max-height:940px;color:var(--paper);display:flex;align-items:center;isolation:isolate}.hero-image,.hero-shade{position:absolute;inset:0;z-index:-1}.hero-image{background:url('assets/haytor.jpg') center 48%/cover}.hero-shade{background:linear-gradient(90deg,rgba(20,43,36,.83),rgba(32,62,54,.46))}.hero-content{padding:76px 0 90px}.hero .service-line{color:var(--paper);font-size:14px;letter-spacing:.17em;font-weight:500;margin-bottom:36px}.hero h1{max-width:1160px;line-height:1.09;letter-spacing:-.035em}.hero-bottom{border-top:2px solid var(--yellow);margin-top:52px;padding-top:30px;display:flex;gap:40px;align-items:center;justify-content:space-between}.hero-bottom p{max-width:610px;font-size:19px;line-height:1.6}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;background:var(--green);color:var(--paper);border:1px solid var(--green);padding:14px 22px;text-decoration:none;font-size:14px;white-space:nowrap}.button.light{background:var(--paper);color:var(--deep);border-color:var(--paper)}.button:hover{background:var(--deep);color:var(--paper)}.place{position:absolute;right:6%;bottom:24px;font-size:10px;letter-spacing:.2em}.mobile-break{display:none}.section{padding-top:108px;padding-bottom:108px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:64px}.section-heading h2{color:var(--green)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-bottom:46px}.services article{border-top:2px solid var(--yellow);padding-top:24px}.services h3{font-size:34px;color:var(--green);margin-bottom:22px}.services p:not(.eyebrow){max-width:340px}.text-link{display:inline-flex;align-items:center;gap:25px;text-decoration:none;border-bottom:1px solid var(--green);padding:10px 0;font-size:14px;color:var(--green);margin-top:20px}.text-link:hover{color:var(--charcoal)}.approach{background:#e8e7e0}.split{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}.approach>.split{padding-top:100px;padding-bottom:100px}.split h2{color:var(--green)}.lead{font-size:clamp(19px,2.1vw,25px);line-height:1.55;max-width:760px}.split .lead{margin-bottom:24px}.leadership{align-items:center}.leadership h2{margin-bottom:14px}.role{color:var(--slate);font-size:16px;margin-bottom:26px}.contact-band{background:var(--green);color:var(--paper);padding:86px 0}.contact-band .eyebrow{color:var(--paper)}.contact-band .wrap{position:relative}.contact-band .button{position:absolute;right:0;bottom:4px}.contact-band h2{font-size:clamp(2.5rem,5vw,4.5rem)}.footer{padding-top:58px;padding-bottom:32px}.footer-top,.footer-bottom{display:flex;justify-content:space-between;gap:24px;align-items:center}.footer-top{padding-bottom:35px;border-bottom:1px solid var(--stone)}.footer-top p{font-size:15px;color:var(--green)}.footer-bottom{padding-top:25px;font-size:11px;color:var(--slate);flex-wrap:wrap}.footer-bottom p{letter-spacing:.09em}.credits{margin-top:28px;font-size:11px;color:var(--slate)}.credits summary{width:fit-content;cursor:pointer}.credits p{max-width:980px;margin-top:12px}.page-head{padding-top:82px;padding-bottom:78px;border-bottom:2px solid var(--yellow)}.page-head h1{color:var(--green);margin-bottom:35px}.compact{padding-top:68px}.problem-row{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:42px 0 60px;border-bottom:1px solid var(--stone)}.problem-row:first-child{padding-top:0}.problem-row h2{font-size:clamp(1.9rem,3vw,2.8rem);margin-bottom:25px}.problem-row p:not(.eyebrow){max-width:710px}.scope{font-size:14px;color:var(--slate)}.wide-photo{margin:0;position:relative;height:360px;overflow:hidden}.wide-photo img{height:100%;width:100%;object-fit:cover;filter:saturate(.7)}.wide-photo:after{content:'';position:absolute;inset:0;background:rgba(32,62,54,.22)}.wide-photo figcaption{position:absolute;z-index:1;left:6%;bottom:24px;color:white;font-size:11px;letter-spacing:.15em}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:52px}.steps>div{border-top:2px solid var(--yellow);padding-top:20px}.steps span{font-size:12px;color:var(--slate)}.steps h3{color:var(--green);margin:15px 0}.editorial-note{border-left:2px solid var(--stone);padding:0 0 0 24px;margin-bottom:48px;max-width:820px;color:var(--slate);font-size:14px}.editorial-note .eyebrow{margin-bottom:12px}.case-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding:40px 0}.case-layout h2{color:var(--green);margin-bottom:24px}.case-details section{padding:0 0 24px;margin-bottom:24px;border-bottom:2px solid var(--yellow)}.case-details h3{font-size:20px;margin-bottom:12px}.article-row{border-top:2px solid var(--yellow);padding:40px 0 60px}.article-row h2{color:var(--green);margin-bottom:24px}.article-row>p:last-child{color:var(--slate)}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:10%}.contact-grid h2{color:var(--green);margin-bottom:12px}.contact-grid h3{margin-bottom:24px}.contact-email{display:block;font-size:clamp(20px,2.4vw,32px);color:var(--green);margin-top:36px;overflow-wrap:anywhere}.contact-phone{display:block;width:fit-content;margin-top:12px;font-size:22px}.skip{position:absolute;top:-100px;left:20px;z-index:20;background:var(--paper);padding:10px}.skip:focus{top:10px}@media(max-width:1000px){.header nav{gap:16px}.header{gap:20px}.wordmark{font-size:22px}.services{gap:25px}.hero-bottom p{font-size:17px}.section{padding-top:80px;padding-bottom:80px}}@media(max-width:760px){.wrap{width:88%}.header{height:86px;position:relative;z-index:5}.menu-toggle{display:block;min-height:44px}.header nav{display:none;position:absolute;top:86px;left:0;right:0;background:var(--paper);padding:16px 6% 30px;flex-direction:column;gap:0;border-bottom:1px solid var(--stone)}.header nav.open{display:flex}.header nav a{padding:12px 0}.hero{height:auto;min-height:660px}.hero-content{padding:70px 0 85px}.hero h1{font-size:clamp(38px,8.4vw,62px);line-height:1.13}.mobile-break{display:block}.hero .service-line{font-size:10px;letter-spacing:.11em;line-height:1.8}.hero-bottom{margin-top:36px;padding-top:24px;display:block}.hero-bottom p{font-size:16px}.hero-bottom .button{margin-top:28px}.place{font-size:9px}.section-heading,.services,.split,.problem-row,.case-layout,.contact-grid{grid-template-columns:1fr;gap:32px}.section-heading{margin-bottom:40px}.services{gap:40px}.services p:not(.eyebrow){max-width:none}.section,.approach>.split{padding-top:64px;padding-bottom:64px}.services h3{font-size:30px}.services .eyebrow{margin-bottom:20px}.contact-band{padding:65px 0}.contact-band .button{position:static;margin-top:32px}.footer-top{display:block}.footer-top p{margin-top:20px}.footer-bottom{display:block}.footer-bottom>*{display:block;margin:12px 0}.page-head{padding-top:52px;padding-bottom:52px}.page-head h1{font-size:clamp(38px,8vw,60px)}.page-head h1 br{display:none}.steps{grid-template-columns:1fr 1fr;gap:35px 25px}.wide-photo{height:260px}.problem-row{padding:35px 0}.problem-row>.eyebrow{margin-bottom:0}.problem-row h2 br{display:none}.contact-grid{gap:60px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Original 663 × 996 portrait stays untouched. Only its presentation is cropped.
   A high focal point keeps hair and face comfortably inside the editorial frame. */
.portrait {
  margin: 0;
  width: 100%;
  max-width: 540px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--stone);
}
.portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
  filter: grayscale(1);
}
@media (min-width: 761px) and (max-width: 1000px) {
  .portrait { aspect-ratio: 3 / 4; }
  .portrait img { object-position: 50% 18%; }
}
@media (max-width: 760px) {
  .portrait { aspect-ratio: 3 / 4; max-width: 480px; }
  .portrait img { object-position: 50% 18%; }
}

/* Keep the portrait aligned with the longer executive biography. */
.profile-biography { align-items: start; }

/* Plymouth: retain the whole composition at every viewport width.
   Small overscan covers the corners exposed by the optical level correction. */
.wide-photo.waterfront-photo {
  height: auto;
  aspect-ratio: 1884 / 1254;
}
.waterfront-photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  transform: rotate(1.5deg) scale(1.045);
  transform-origin: center;
}
.waterfront-photo figcaption {
  padding: 6px 10px;
  background: var(--deep);
}

/* Approved body-copy alignment: justify without splitting words. */
main p:not(.eyebrow):not(.role):not(.scope) {
  text-align: justify;
  text-align-last: start;
  text-justify: inter-word;
  hyphens: none;
  -webkit-hyphens: none;
  word-break: normal;
  overflow-wrap: normal;
}
.keep-word { white-space: nowrap; }
