:root{
  --cream:#f5efe2;
  --cream-deep:#efe6d2;
  --charcoal:#2b2620;
  --olive:#6b7456;
  --olive-deep:#565f44;
  --line:rgba(43,38,32,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--cream); color:var(--charcoal);
  font-family:'Work Sans', sans-serif; line-height:1.7; font-weight:400;
}
h1,h2,h3,blockquote{ font-family:'Cormorant Garamond', serif; }
.wrap{ max-width:1080px; margin:0 auto; padding:0 40px; }

nav{ position:sticky; top:0; z-index:20; background:var(--cream); border-bottom:1px solid var(--line); }
nav .wrap{ display:flex; justify-content:space-between; align-items:center; padding:26px 40px; }
.logo{ display:block; height:58px; width:auto; }
.navlinks{ display:flex; gap:38px; }
.navlinks a{ position:relative; color:var(--charcoal); text-decoration:none; font-size:0.9rem; transition:color 0.2s ease; }
.navlinks a:after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px;
  background:var(--olive-deep); transform:scaleX(0); transform-origin:left center;
  transition:transform 0.28s ease;
}
.navlinks a:hover, .navlinks a:focus-visible{ color:var(--olive-deep); }
.navlinks a:hover:after, .navlinks a:focus-visible:after{ transform:scaleX(1); }
.navlinks a.active{ color:var(--olive-deep); }
.navlinks a.active:after{ transform:scaleX(1); }
@media (prefers-reduced-motion:reduce){
  .navlinks a:after{ transition:none; }
}

.nav-toggle{ display:none; }
.nav-toggle-label{ display:none; flex-direction:column; justify-content:center; gap:5px; width:28px; height:22px; cursor:pointer; }
.nav-toggle-label span{ display:block; height:2px; background:var(--charcoal); border-radius:1px; transition:transform 0.2s ease, opacity 0.2s ease; }
.nav-toggle:checked ~ .nav-toggle-label span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle:checked ~ .nav-toggle-label span:nth-child(2){ opacity:0; }
.nav-toggle:checked ~ .nav-toggle-label span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.hero{
  position:relative; overflow:hidden;
  min-height:calc(100vh - 110px);
  display:flex; align-items:center; justify-content:center;
  padding:80px 0;
}
.hero-media{ position:absolute; top:0; left:0; width:100%; height:100%; z-index:0; }
.hero-img{
  position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
}
.hero-video-overlay{ position:absolute; top:0; left:0; width:100%; height:100%; background:var(--cream); opacity:0.85; z-index:1; }
.hero .wrap{ max-width:900px; text-align:left; position:relative; z-index:2; }
.eyebrow{ font-size:0.85rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--olive-deep); margin-bottom:28px; font-family:'Work Sans',sans-serif; font-weight:500; }
.hero h1{
  font-size:clamp(3rem,7vw,5.6rem); font-weight:600; line-height:1.02;
  margin:0 0 34px; letter-spacing:-0.01em;
}
.hero h1 em{ font-style:italic; color:var(--olive-deep); }
.hero p.lead{ font-size:1.2rem; color:#4d463c; max-width:600px; margin:0 0 44px; }
.cta-row{ display:flex; gap:20px; justify-content:flex-start; }
.btn{ display:inline-block; padding:16px 32px; text-decoration:none; font-size:0.95rem; font-family:'Work Sans',sans-serif; border-radius:2px; }
.btn-primary{ background:var(--charcoal); color:var(--cream); }
.btn-primary:hover{ background:var(--olive-deep); }
.btn-line{ border:1px solid var(--charcoal); color:var(--charcoal); }
.btn-line:hover{ border-color:var(--olive-deep); color:var(--olive-deep); }
.hero-rule{ width:1px; height:70px; background:var(--line); margin:60px 0 0; }

.page-header{ padding:70px 0 20px; text-align:center; }
.page-header .eyebrow{ justify-content:center; display:flex; }
.page-header h1, .page-header h2{ font-size:clamp(2.4rem,5vw,3.8rem); font-weight:600; margin:0; }
.page-header p{ color:#4d463c; font-size:1.05rem; max-width:600px; margin:24px auto 0; }

section{ padding:100px 0; }
.section-head{ max-width:640px; margin:0 auto 64px; text-align:center; }
.section-head .eyebrow{ justify-content:center; display:flex; }
.section-head h2{ font-size:clamp(2rem,3.4vw,2.9rem); font-weight:600; margin:0 0 20px; }
.section-head p{ color:#4d463c; font-size:1.05rem; margin:0; }

.bio{ padding-top:70px; background:var(--cream); }
.bio-grid:after{ content:""; display:table; clear:both; }
.bio-photo{ margin:0 0 32px; }
.bio-photo img{ display:block; width:100%; height:auto; max-width:170px; margin:0 auto; aspect-ratio:1/1; object-fit:cover; border-radius:4px; }
.bio-content{ text-align:center; }
.bio-content h1{ font-size:clamp(2.2rem,5vw,3.2rem); font-weight:600; margin:0 0 24px; line-height:1.1; }
.bio-lead{ color:#4d463c; font-size:1.05rem; margin:0 0 40px; }
.bio-subhead{ font-size:1.5rem; font-weight:600; margin:0 0 20px; }
.bio-highlights{ list-style:none; margin:0; padding:0; text-align:left; max-width:520px; margin-left:auto; margin-right:auto; }
.bio-highlights li{ position:relative; padding:14px 0 14px 30px; border-bottom:1px solid var(--line); font-size:0.98rem; }
.bio-highlights li:before{ content:""; position:absolute; left:0; top:22px; width:8px; height:8px; border-radius:50%; background:var(--olive-deep); }

.positioning{ background:var(--cream-deep); }
.positioning blockquote{
  max-width:760px; margin:0 auto; text-align:center; font-size:1.9rem; font-weight:500;
  font-style:italic; color:var(--charcoal); line-height:1.4;
}
.positioning .body{ max-width:640px; margin:44px auto 0; text-align:center; }
.positioning .body p{ color:#4d463c; font-size:1.02rem; margin:0 0 16px; }

.services{ background:var(--cream); }
.service-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:50px; }
.service-card{ text-align:center; }
.service-card .mark{ width:44px; height:44px; margin:0 auto 22px; border:1px solid var(--olive-deep); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:var(--olive-deep); }
.service-card h3{ font-size:1.4rem; font-weight:600; margin:0 0 14px; }
.service-card p{ font-size:0.98rem; color:#4d463c; margin:0; }

.approach{ background:var(--olive); color:var(--cream); }
.approach .section-head h2, .approach .section-head .eyebrow{ color:var(--cream); }
.approach .section-head p{ color:rgba(245,239,226,0.8); }
.approach-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; text-align:left; counter-reset:approach; }
.approach-item{ counter-increment:approach; padding:0 32px; border-left:1px solid rgba(245,239,226,0.25); }
.approach-item:first-child{ border-left:none; padding-left:0; }
.approach-item:before{ content:counter(approach, upper-roman); display:block; font-family:'Cormorant Garamond',serif; font-size:0.95rem; color:rgba(245,239,226,0.6); letter-spacing:0.08em; margin-bottom:14px; }
.approach-item h3{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:600; margin:0 0 12px; }
.approach-item p{ font-size:0.92rem; color:rgba(245,239,226,0.78); margin:0; }

.focus{ background:var(--cream-deep); }
.focus-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.focus-list{ list-style:none; margin:0; padding:0; }
.focus-list li{ padding:20px 0; border-bottom:1px solid var(--line); font-size:1.08rem; font-family:'Cormorant Garamond',serif; }
.eng-card{ margin-bottom:24px; }
.eng-card h4{ font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:600; margin:0 0 8px; }
.eng-card p{ margin:0; font-size:0.96rem; color:#4d463c; }

.process{ background:var(--cream-deep); }
.process-flow{ display:grid; grid-template-columns:repeat(4,1fr); gap:36px; margin-top:12px; }
.process-step{ position:relative; text-align:center; padding-top:4px; }
.process-step .step-num{ width:52px; height:52px; margin:0 auto 22px; border-radius:50%; background:var(--charcoal); color:var(--cream); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:1.35rem; font-weight:600; position:relative; z-index:2; }
.process-step h3{ font-size:1.12rem; font-weight:600; margin:0 0 10px; }
.process-step p{ font-size:0.92rem; color:#4d463c; margin:0; }
.process-step:not(:last-child):after{ content:""; position:absolute; top:26px; left:calc(50% + 26px); width:calc(100% - 52px); height:1px; background:var(--olive-deep); opacity:0.5; z-index:1; }
.process-loop{ max-width:700px; margin:56px auto 0; text-align:center; padding-top:36px; border-top:1px solid var(--line); }
.process-loop .eyebrow{ justify-content:center; display:flex; }
.process-loop h4{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:600; margin:0 0 12px; }
.process-loop p{ font-size:0.96rem; color:#4d463c; margin:0; }

.engagement-process{ background:var(--cream); }
.eng-flow{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin:8px 0 40px; }
.eng-step{ position:relative; text-align:center; }
.eng-step .step-num{ width:38px; height:38px; margin:0 auto 16px; border-radius:50%; border:1px solid var(--olive-deep); color:var(--olive-deep); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:1.05rem; font-weight:600; position:relative; z-index:2; background:var(--cream); }
.eng-step h4{ font-size:1rem; font-weight:600; margin:0 0 8px; }
.eng-step p{ font-size:0.88rem; color:#4d463c; margin:0; }
.eng-step:not(:last-child):after{ content:""; position:absolute; top:19px; left:calc(50% + 19px); width:calc(100% - 38px); height:1px; background:var(--olive-deep); opacity:0.4; z-index:1; }
.engagement-process .more{ text-align:center; }
.engagement-process .more a{ color:var(--olive-deep); text-decoration:none; font-size:0.95rem; border-bottom:1px solid var(--olive-deep); padding-bottom:2px; }
.engagement-process .more a:hover{ color:var(--charcoal); border-color:var(--charcoal); }

.cta-band{ background:var(--charcoal); color:var(--cream); text-align:center; padding:120px 0; }
.cta-band .eyebrow{ color:rgba(245,239,226,0.6); justify-content:center; display:flex; }
.cta-band h1, .cta-band h2{ font-size:clamp(2.2rem,4vw,3.4rem); max-width:700px; margin:0 auto 36px; font-weight:600; }
.cta-band-page{ padding-top:160px; }
.cta-band .btn-primary{ background:var(--cream); color:var(--charcoal); }
.cta-band .btn-primary:hover{ background:#e3d9c0; }

footer{ background:var(--cream); color:#8a8271; padding:40px 0 24px; font-size:0.85rem; border-top:1px solid var(--line); }
.footer-top{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; }
footer .footer-brand{ display:flex; align-items:center; gap:14px; }
footer .footer-brand img{ display:block; height:32px; width:auto; }
.footer-links{ display:flex; gap:24px; }
.footer-links a{ color:#8a8271; text-decoration:none; }
.footer-links a:hover{ color:var(--olive-deep); }
.footer-contact{ display:flex; flex-direction:column; align-items:flex-end; gap:4px; text-align:right; }
.footer-contact a{ color:#8a8271; text-decoration:none; }
.footer-contact a:hover{ color:var(--olive-deep); }
.footer-credit{ margin-top:28px; padding-top:20px; border-top:1px solid var(--line); text-align:center; font-size:0.8rem; }
.footer-credit a{ color:#8a8271; text-decoration:underline; }
.footer-credit a:hover{ color:var(--olive-deep); }

@media (min-width:861px){
  .bio-photo{ float:left; width:190px; margin:0 40px 24px 0; }
  .bio-photo img{ max-width:100%; }
  .bio-content{ text-align:left; }
  .bio-highlights{ text-align:left; margin-left:0; margin-right:0; }
}
@media (max-width:860px){
  .service-list, .approach-grid{ grid-template-columns:1fr 1fr; }
  .approach-grid{ row-gap:32px; }
  .approach-item{ border-left:none; padding:0; }
  .approach-item:nth-child(odd){ border-right:1px solid rgba(245,239,226,0.25); padding-right:32px; }
  .approach-item:nth-child(even){ padding-left:32px; }
  .focus-grid{ grid-template-columns:1fr; }
  .wrap{ padding:0 24px; }
  .logo{ height:44px; }
  .footer-top{ flex-direction:column; align-items:center; text-align:center; }
  .footer-contact{ align-items:center; text-align:center; }
  .process-flow, .eng-flow{ grid-template-columns:1fr; gap:44px; }
  .process-step:not(:last-child):after, .eng-step:not(:last-child):after{ top:auto; left:50%; bottom:-28px; width:1px; height:28px; transform:translateX(-50%); }
  nav .wrap{ padding:20px 24px; }
  .nav-toggle-label{ display:flex; }
  .navlinks{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--cream); border-bottom:1px solid var(--line); box-shadow:0 12px 20px rgba(43,38,32,0.08); }
  .navlinks a{ padding:16px 24px; border-top:1px solid var(--line); }
  .navlinks a:after{ display:none; }
  .nav-toggle:checked ~ .navlinks{ display:flex; }
}
@media (max-width:560px){
  .service-list, .approach-grid{ grid-template-columns:1fr; }
  .approach-item, .approach-item:nth-child(odd), .approach-item:nth-child(even){ border:none; padding:0 0 28px; margin-bottom:0; border-bottom:1px solid rgba(245,239,226,0.25); }
  .approach-item:last-child{ padding-bottom:0; border-bottom:none; }
  .cta-row{ flex-direction:column; }
  .cta-row .btn{ width:100%; text-align:center; }
}
html.has-js .reveal{ opacity:0; transform:translateY(24px); transition:opacity 0.7s ease, transform 0.7s ease; }
html.has-js .reveal.is-visible{ opacity:1; transform:translateY(0); }
html.has-js .reveal-group .reveal-item{ opacity:0; transform:translateY(24px); transition:opacity 0.6s ease, transform 0.6s ease; }
html.has-js .reveal-group.is-visible .reveal-item{ opacity:1; transform:translateY(0); }
.reveal-group .reveal-item:nth-child(2){ transition-delay:0.12s; }
.reveal-group .reveal-item:nth-child(3){ transition-delay:0.24s; }
.reveal-group .reveal-item:nth-child(4){ transition-delay:0.36s; }
.reveal-group .reveal-item:nth-child(5){ transition-delay:0.48s; }

@media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }
