.editorial-hero { position: relative; display: flex; min-height: 100vh; min-height: 100svh; min-height: 100dvh; align-items: center; overflow: hidden; color: var(--color-cream); background: #35483f; }
.editorial-hero__art, .editorial-hero__shade { position: absolute; inset: 0; }
.editorial-hero__art { overflow: hidden; background: linear-gradient(135deg, #31473d, #476252 55%, #3c5146); }
.editorial-hero__art::before, .editorial-hero__art::after, .editorial-hero__art i { position: absolute; content: ""; }
.editorial-hero__art::before { inset: 12% 10% 10% 34%; border: 1px solid rgb(247 245 240 / 18%); transform: skewY(-8deg); }
.editorial-hero__art::after { top: 20%; right: 15%; width: 33%; height: 62%; border: 1px solid rgb(247 245 240 / 16%); background: rgb(247 245 240 / 4%); transform: skewY(6deg); }
.editorial-hero__art i { top: 30%; right: 22%; width: 19%; height: 43%; border: 1px solid rgb(247 245 240 / 14%); transform: skewY(-2deg); }
.editorial-hero__art > span { position: absolute; top: 7.5rem; right: var(--page-gutter); z-index: 1; color: rgb(247 245 240 / 58%); font-size: .55rem; letter-spacing: .14em; }
.editorial-hero__shade { background: linear-gradient(90deg, rgb(36 55 46 / 93%), rgb(36 55 46 / 77%) 44%, rgb(36 55 46 / 14%)); }
.editorial-hero__content { position: relative; z-index: 1; padding-block: 8rem 6rem; }
.editorial-hero .eyebrow { color: rgb(247 245 240 / 72%); }
.editorial-hero__content h1 { max-width: 850px; margin: 1.25rem 0 1.4rem; font-family: var(--font-heading); font-size: clamp(4rem, 9vw, 8rem); font-weight: 600; letter-spacing: -.085em; line-height: .92; }
.editorial-hero__content h1 em, .page-cta h2 em { color: #dbe3d9; font-style: normal; }
.services-overview h2 em, .about-story__copy h2 em { color: var(--color-accent); font-style: normal; }
.editorial-hero__content > p:not(.eyebrow) { max-width: 34rem; color: rgb(247 245 240 / 78%); font-size: clamp(1rem, 1.7vw, 1.25rem); }
.editorial-hero__content .button { margin-top: 1rem; }
.editorial-hero__scroll { position: absolute; z-index: 1; right: var(--page-gutter); bottom: 2rem; color: rgb(247 245 240 / 70%); font-size: .62rem; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.editorial-hero__scroll span { padding-left: .6rem; color: #dbe3d9; }
.about-story { position: relative; overflow: hidden; background: #fff; }
.about-story::after { position: absolute; right: 0; bottom: 0; width: min(32%, 420px); height: 2rem; background: #69b840; clip-path: polygon(20% 100%, 100% 0, 100% 100%); content: ""; }
.about-story__container { position: relative; z-index: 1; }
.about-story__heading { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.about-story__heading h2, .about-story__services > h3, .about-story__approach h3 { margin: 0; font-family: var(--font-heading); font-size: clamp(1.25rem, 2vw, 1.65rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.15; }
.about-story__heading p { margin: .55rem 0 0; color: #747474; font-size: clamp(.95rem, 1.5vw, 1.15rem); font-weight: 600; }
.about-story__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2.5rem, 5vw, 5rem); }
.about-story__copy p { max-width: 43rem; margin: 0 0 1.45rem; color: #555; font-size: clamp(.9rem, 1.1vw, 1rem); font-weight: 500; line-height: 1.65; }
.about-story__copy p:last-child { margin-bottom: 0; }
.about-story__services > h3 { margin-bottom: 1rem; }
.about-story__service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.2rem; }
.about-story__service { display: flex; min-width: 0; align-items: center; gap: .6rem; color: #666; font-size: clamp(.75rem, .95vw, .9rem); font-weight: 600; line-height: 1.3; text-decoration: none; transition: color .2s ease; }
.about-story__service:hover, .about-story__service:focus-visible { color: var(--color-ink); }
.about-story__service-icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: #df262d; }
.about-story__service-icon svg { width: 25px; height: 25px; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.about-story__approach { margin-top: clamp(1.7rem, 3vw, 2.5rem); }
.about-story__approach h3 { margin-bottom: .65rem; }
.about-story__approach p { margin: 0; color: #777; font-size: clamp(.95rem, 1.5vw, 1.2rem); font-weight: 700; letter-spacing: .015em; }
.about-story__approach p span { padding-inline: .2rem; color: #69b840; }
.about-experience { position: relative; overflow: hidden; padding-block: clamp(4.5rem, 9vw, 8rem); color: var(--color-white); background: var(--color-accent); }
.about-experience::after { position: absolute; top: -40%; right: -8%; width: min(46vw, 620px); aspect-ratio: 1; border: 1px solid rgb(255 255 255 / 13%); border-radius: 50%; box-shadow: 0 0 0 42px rgb(255 255 255 / 3%), 0 0 0 84px rgb(255 255 255 / 2%); content: ""; pointer-events: none; }
.about-experience__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: clamp(2rem, 8vw, 8rem); }
.about-experience__copy .eyebrow { color: rgb(255 255 255 / 75%); }
.about-experience__copy h2 { margin: 0 0 1.2rem; font-family: var(--font-heading); font-size: clamp(2.5rem, 5vw, 4.7rem); font-weight: 600; letter-spacing: -.07em; line-height: .98; }
.about-experience__copy h2 em { color: #f2c2b5; font-style: normal; }
.about-experience__copy p { max-width: 35rem; margin: 0; color: rgb(255 255 255 / 82%); font-size: clamp(.92rem, 1.3vw, 1.05rem); line-height: 1.75; }
.about-experience__stat { display: grid; gap: .6rem; padding: .8rem 0 .8rem clamp(1.5rem, 4vw, 4rem); border-left: 1px solid rgb(255 255 255 / 38%); }
.about-experience__stat strong { font-family: var(--font-heading); font-size: clamp(5.5rem, 12vw, 10rem); font-weight: 600; letter-spacing: -.1em; line-height: .82; }
.about-experience__stat span { max-width: 12rem; color: rgb(255 255 255 / 82%); font-size: .9rem; letter-spacing: .04em; }
.about-approach { background: #eeede8; }
.about-approach .section-heading h2 em, .what-we-do .section-heading h2 em, .about-reasons .section-heading h2 em { color: var(--color-green); font-style: normal; }
.about-reasons { background: var(--color-off-white); }
.team-section { background: var(--color-warm); color: #44352d; }
.team-section .section-heading .eyebrow { color: var(--color-muted); }
.team-section .section-heading h2 em { color: #718371; font-style: normal; }
.team-section .section-heading > p { color: #665c52; }
.team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); }
.team-card { min-width: 0; }
.team-card__portrait { position: relative; aspect-ratio: 4 / 4.7; overflow: hidden; background: var(--color-warm); }
.team-card__portrait::after { position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgb(72 60 50 / 32%)); content: ""; pointer-events: none; }
.team-card__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.team-card:hover .team-card__portrait img { transform: scale(1.045); }
.team-card__number { position: absolute; right: .8rem; bottom: .65rem; z-index: 1; color: rgb(255 255 255 / 82%); font-size: .62rem; letter-spacing: .14em; }
.team-card__details { padding: 1rem .05rem 1.5rem; border-top: 1px solid var(--color-line); }
.team-card__details .eyebrow { margin-bottom: .55rem; color: #718371; font-size: .78rem; letter-spacing: .01em; text-transform: none; }
.team-card__details h3 { margin: 0; font-family: var(--font-heading); font-size: clamp(1.05rem, 1.55vw, 1.45rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.2; }
.page-cta { display: grid; min-height: calc(100vh - var(--header-height)); min-height: calc(100svh - var(--header-height)); min-height: calc(100dvh - var(--header-height)); align-items: center; padding-block: clamp(5rem, 9vw, 8rem); color: #44352d; background: #e4e9df; }
.page-cta__inner { max-width: 56rem; margin-inline: auto; text-align: center; }
.page-cta .eyebrow { color: var(--color-muted); }
.page-cta h2 { margin: 0 auto 1.25rem; font-size: clamp(3.2rem, 7vw, 6rem); line-height: .98; }
.page-cta h2 em { color: var(--color-accent); }
.page-cta .button { margin-top: 1rem; }
.page-cta--services { background: #e4e9df; }
.page-cta__inner > p:not(.eyebrow) { max-width: 34rem; margin: 0 auto; color: #665c52; }

.services-overview { position: relative; overflow: hidden; background: #eeede8; }
.services-overview::before, .services-overview::after { position: absolute; top: 50%; right: -5%; width: min(48vw, 680px); aspect-ratio: 1; border: 1px solid rgb(113 131 113 / 24%); border-radius: 50%; content: ""; pointer-events: none; transform: translateY(-50%); }
.services-overview::after { right: -1%; width: min(40vw, 560px); border-color: rgb(113 131 113 / 18%); box-shadow: 0 0 0 38px rgb(113 131 113 / 5%), 0 0 0 76px rgb(113 131 113 / 3%); }
.services-overview__inner { position: relative; z-index: 1; display: grid; grid-template-columns: .6fr 1fr 1fr; align-items: end; gap: 2rem; }
.services-overview .eyebrow { align-self: start; }
.services-overview h2 { margin: 0; font-family: var(--font-heading); font-size: clamp(2.5rem, 5vw, 4.4rem); font-weight: 600; letter-spacing: -.07em; line-height: .98; }
.services-overview h2 em { color: var(--color-green); }
.services-overview__copy { max-width: 24rem; margin: 0 0 .25rem; color: var(--color-gray); font-size: .88rem; }
.service-detail-list { padding-bottom: var(--section-spacing); background: var(--color-off-white); }
.service-feature { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); padding-block: clamp(3rem, 6vw, 6rem); border-bottom: 1px solid var(--color-line); }
.service-feature:nth-child(even) .service-feature__media { order: 2; }
.service-feature__media { min-width: 0; }
.service-feature__placeholder { position: relative; display: flex; min-height: clamp(330px, 38vw, 520px); align-items: flex-start; justify-content: space-between; overflow: hidden; padding: 1.2rem; background: #dfded8; }
.service-feature:nth-child(even) .service-feature__placeholder { background: #d8dbd3; }
.service-feature__placeholder::before, .service-feature__placeholder::after { position: absolute; content: ""; }
.service-feature__placeholder::before { inset: 14% 12% 14% 20%; border: 1px solid rgb(23 25 24 / 20%); transform: skewY(-8deg); }
.service-feature__placeholder::after { top: 22%; right: 18%; width: 38%; height: 58%; border: 1px solid rgb(23 25 24 / 14%); background: rgb(255 255 255 / 20%); }
.service-feature__placeholder img, .service-feature__media > img { width: 100%; height: clamp(330px, 38vw, 520px); object-fit: cover; }
.service-feature__image-number { position: absolute; right: 1.2rem; bottom: .4rem; font-family: var(--font-heading); font-size: 3.5rem; letter-spacing: -.08em; }
.service-feature__copy { max-width: 34rem; padding-block: 1.5rem; }
.service-feature__copy h2 { display: grid; grid-template-columns: 2.8rem 1fr; gap: .75rem; margin: 0 0 1.1rem; font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 600; letter-spacing: -.065em; line-height: 1.02; }
.service-feature__copy h2 > span { padding-top: .45rem; color: var(--color-red); font-family: var(--font-body); font-size: .72rem; font-weight: 600; letter-spacing: .1em; }
.service-feature__description, .service-feature__pending { max-width: 32rem; margin: 0 0 1.6rem; color: var(--color-gray); font-size: .9rem; line-height: 1.75; text-wrap: pretty; }
.service-feature__pending { padding-left: .9rem; border-left: 2px solid var(--color-red); font-size: .76rem; }
.service-feature__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.1rem; }
.service-feature__button { display: inline-flex; min-height: 2.9rem; align-items: center; justify-content: center; gap: .65rem; padding: .7rem 1rem; color: var(--color-white); font-size: .68rem; font-weight: 700; letter-spacing: .045em; line-height: 1.25; text-align: center; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease, transform .2s ease; }
.service-feature__button--contact { background: var(--color-accent); }
.service-feature__button--contact:hover { background: #742d25; }
.service-feature__button--projects { background: #483c32; }
.service-feature__button--projects:hover { background: #362d26; }
.service-feature__button:hover { transform: translateY(-2px); }
.service-feature__button:focus-visible { outline: 2px solid var(--color-ink); outline-offset: 3px; }

@media (max-width: 900px) {
  .editorial-hero { min-height: 100vh; min-height: 100svh; min-height: 100dvh; }
  .editorial-hero__content h1 { font-size: clamp(4.3rem, 10vw, 6.5rem); }
  .about-story__layout { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 2rem; }
  .about-experience__inner { grid-template-columns: 1.1fr .9fr; gap: 2rem; }
  .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
  .services-overview__inner { grid-template-columns: .5fr 1fr; }
  .services-overview__copy { grid-column: 2; }
  .service-feature { gap: 2rem; }
}

@media (max-width: 600px) {
  .services-overview::before { right: -58%; width: 112vw; }
  .services-overview::after { right: -48%; width: 92vw; }
  .editorial-hero { height: auto; min-height: 100vh; min-height: 100svh; min-height: 100dvh; align-items: flex-end; }
  .editorial-hero__art::before { inset: 13% 6% 22% 13%; }
  .editorial-hero__art::after { top: 20%; right: 8%; width: 43%; height: 50%; }
  .editorial-hero__art > span { top: 6rem; right: var(--page-gutter); max-width: 9rem; font-size: .48rem; text-align: right; }
  .editorial-hero__shade { background: linear-gradient(0deg, rgb(36 55 46 / 96%), rgb(36 55 46 / 76%) 48%, rgb(36 55 46 / 14%)); }
  .editorial-hero__content { padding-top: 9rem; padding-bottom: 7rem; }
  .editorial-hero__content h1 { font-size: clamp(3.5rem, 14vw, 5.2rem); }
  .editorial-hero__content > p:not(.eyebrow) { max-width: 23rem; font-size: .95rem; }
  .editorial-hero__scroll { right: var(--page-gutter); bottom: 1.5rem; left: var(--page-gutter); }
  .about-story__layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .about-story__heading { margin-bottom: 2rem; }
  .about-story__service-grid { gap: .85rem .75rem; }
  .about-story__service { align-items: flex-start; font-size: .78rem; }
  .about-story__service-icon { width: 38px; height: 38px; flex-basis: 38px; }
  .about-story__service-icon svg { width: 22px; height: 22px; }
  .about-experience__inner { grid-template-columns: 1fr; gap: 2rem; }
  .about-experience__stat { grid-template-columns: auto 1fr; align-items: end; gap: 1rem; padding: 1.5rem 0 0; border-top: 1px solid rgb(255 255 255 / 38%); border-left: 0; }
  .about-experience__stat strong { font-size: clamp(5.5rem, 22vw, 7rem); }
  .team-card__portrait { min-height: 220px; }
  .services-overview__inner { grid-template-columns: 1fr; gap: 1rem; }
  .services-overview__copy { grid-column: auto; }
  .service-feature { grid-template-columns: 1fr; gap: 1.5rem; padding-block: 2.5rem; }
  .service-feature:nth-child(even) .service-feature__media { order: 0; }
  .service-feature__placeholder, .service-feature__placeholder img, .service-feature__media > img { min-height: 280px; height: min(78vw, 370px); }
  .service-feature__copy { padding: 0; }
  .service-feature__copy h2 { grid-template-columns: 2rem 1fr; font-size: clamp(1.9rem, 9vw, 2.7rem); }
  .service-feature__actions { gap: .6rem; }
  .service-feature__button { flex: 1 1 12rem; }
  .page-cta h2 { font-size: clamp(3rem, 13vw, 4.8rem); }
}

@media (max-width: 380px) {
  .editorial-hero__content h1 { font-size: clamp(3.25rem, 13vw, 3.7rem); }
  .about-experience__stat { grid-template-columns: 1fr; gap: .75rem; }
}

.editorial-hero--about .editorial-hero__art {
  background: #d9d8d5 url("/assets/images/hero/about-hero.png") center / cover no-repeat;
}
.editorial-hero--about .editorial-hero__art::before,
.editorial-hero--about .editorial-hero__art::after,
.editorial-hero--about .editorial-hero__art > span,
.editorial-hero--about .editorial-hero__art > i { display: none; }
.editorial-hero--about .editorial-hero__shade {
  background: linear-gradient(90deg, rgb(20 29 37 / 72%), rgb(20 29 37 / 48%) 42%, rgb(20 29 37 / 5%) 78%);
}

@media (max-width: 600px) {
  .editorial-hero--about .editorial-hero__shade {
    background: linear-gradient(0deg, rgb(20 29 37 / 82%), rgb(20 29 37 / 48%) 44%, rgb(20 29 37 / 5%) 82%);
  }
}

.editorial-hero--services .editorial-hero__art {
  background: #252827 url("/assets/images/hero/services-hero.png") center / cover no-repeat;
}
.editorial-hero--services .editorial-hero__art::before,
.editorial-hero--services .editorial-hero__art::after,
.editorial-hero--services .editorial-hero__art > span,
.editorial-hero--services .editorial-hero__art > i { display: none; }
.editorial-hero--services .editorial-hero__shade {
  background: linear-gradient(90deg, rgb(15 19 21 / 42%), rgb(15 19 21 / 22%) 39%, transparent 72%);
}

@media (max-width: 600px) {
  .editorial-hero--services .editorial-hero__art { background-position: 64% center; }
  .editorial-hero--services .editorial-hero__shade {
    background: linear-gradient(0deg, rgb(15 19 21 / 76%), rgb(15 19 21 / 42%) 45%, rgb(15 19 21 / 8%) 84%);
  }
}
