/* V4: a visual refinement of V2. Original structure, breakpoints and JS retained. */
:root {
  --forest: #17382e;
  --forest-2: #0d241c;
  --olive: #687a51;
  --ink: #24352d;
  --muted: #57635a;
  --ivory: #f8f6ee;
  --paper: #efeee4;
  --sage: #e4eadd;
  --line: rgba(23,56,46,.16);
  --line-light: rgba(248,246,238,.25);
  --section-pad: clamp(5rem, 6.7vw, 6.5rem);
  --type-display-xl: 3.6rem;
  --type-display-lg: 3.35rem;
  --type-card: 2.1rem;
  --shadow: 0 18px 44px rgba(20,43,30,.09);
}
body { line-height: 1.65; }
h1, h2 { line-height: 1.055; letter-spacing: -.035em; }
h2 { margin-bottom: 1.5rem; }
.eyebrow { font-size: .68rem; letter-spacing: .17em; gap: 1rem; margin-bottom: 1.5rem; }
.eyebrow span { flex-shrink: 0; width: 48px; opacity: .35; }
.button { min-height: 50px; font-size: .72rem; letter-spacing: .1em; gap: 1.6rem; }
.button-dark { box-shadow: 0 7px 20px rgba(16,40,32,.11); }
.button-dark:hover { background: #314d38; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--olive); outline-offset: 5px; }
.service-tab:focus-visible, .service-arrows button:focus-visible { outline: 2px solid var(--forest); outline-offset: -4px; }
.site-header { height: 100px; gap: 2rem; }
.site-header.scrolled { background: rgba(248,246,238,.96); box-shadow: 0 3px 18px rgba(20,43,30,.025); }
.desktop-nav { gap: clamp(1.35rem, 2.2vw, 2.5rem); }
.desktop-nav a, .nav-cta { font-size: .69rem; letter-spacing: .12em; }
.desktop-nav a { padding-block: .75rem; }
.nav-cta { gap: 1.3rem; }
.mobile-nav a { font-size: .75rem; letter-spacing: .09em; }

/* Keep the floating island, browser, card and orbital composition. */
.hero { background: radial-gradient(ellipse at 24% 28%, #fffdf7 0%, #f8f6ee 57%, #eeefe4 100%); }
.hero::after { background: linear-gradient(90deg, rgba(255,253,247,.3), transparent 58%); }
.hero-foliage-depth { opacity: .13; filter: saturate(.58); }
.hero-orbit { border-color: rgba(104,122,81,.19); }
.hero h1 { font-size: 3.65rem; letter-spacing: -.05em; line-height: 1.08; margin-bottom: 1.55rem; }
.hero .lede { font-size: 1.13rem; letter-spacing: -.025em; line-height: 1.6; max-width: 450px; }
.hero-card { background: rgba(252,250,243,.98); padding: 1.4rem; box-shadow: var(--shadow); }
.hero-card p { line-height: 1.5; }
.hero-card a { font-size: .62rem; letter-spacing: .1em; }
.hero-browser { box-shadow: 0 24px 54px rgba(16,40,32,.15); }
.hero-pillars { gap: 1.25rem; }
.hero-pillars b { font-size: .62rem; letter-spacing: .1em; }
.hero-pillars small { font-size: .56rem; letter-spacing: .045em; line-height: 1.6; }
.hero-side-note { font-size: .58rem; letter-spacing: .12em; right: -.5%; top: 120px; }

/* Lighter paper and soft scenery instead of yellow, hazy overlays. */
.services-soft-foliage { opacity: .055; filter: saturate(.5); }
.services-top-branch { filter: saturate(.86) contrast(.98); }
.services-orbit { border-color: rgba(23,56,46,.12); }
.services-mantra { background: rgba(248,246,238,.9); font-size: .6rem; letter-spacing: .12em; padding: .8rem; }
.services-hero { min-height: 425px; }
.services-heading h2 { line-height: 1.055; letter-spacing: -.035em; margin-top: 1.6rem; }
.services-heading > p:not(.eyebrow) { font-size: 1.08rem; line-height: 1.6; max-width: 550px; }
.service-tabs { background: rgba(248,246,238,.9); }
.service-tab { color: #63725d; padding-block: 1.1rem; }
.service-tab small { font-size: .58rem; letter-spacing: .06em; }
.service-tab span { font-size: 1rem; line-height: 1.3; }
.service-tab.active { background: #e9eedf; }
.service-slide, .envision-feature { background: #e7ebdf; border-color: var(--line); box-shadow: var(--shadow); }
.service-slide-bg, .envision-backdrop {
  background-image: linear-gradient(90deg, #faf8f1 0%, rgba(250,248,241,.98) 31%, rgba(242,243,231,.88) 44%, rgba(222,232,211,.15) 68%, rgba(12,35,26,.87) 100%), url('assets/botanical/envision-case-environment-phase1.png');
  filter: saturate(.78);
}
.service-slide-copy h3, .envision-copy h3 { font-size: 2.9rem; letter-spacing: -.035em; line-height: 1.05; margin-bottom: .85rem; }
.service-slide-copy h4, .envision-copy h4 { line-height: 1.5; }
.service-slide-copy > p:not(.eyebrow), .envision-copy > p:not(.eyebrow) { font-size: .9rem; line-height: 1.7; }
.service-proof-rail span, .envision-proof span { font-size: .58rem; letter-spacing: .07em; line-height: 1.6; }
.service-arrows button { width: 44px; height: 44px; }
.section-tail, .service-carousel-footer { letter-spacing: .1em; }

/* Same three work cards and the full-width Envision feature. */
.work::before { opacity: .5; }
.work-grid { gap: 1.5rem; }
.work-lede { font-size: 1.07rem; line-height: 1.6; }
.work-intro aside p { line-height: 1.5; }
.work-card { background: #faf9f3; border-color: var(--line); }
.work-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.work-body { padding: 1.65rem 1.6rem; }
.work-body h3 { line-height: 1.08; letter-spacing: -.025em; margin-bottom: .8rem; }
.work-body > p:not(:first-child) { font-size: 1rem; line-height: 1.55; }
.work-body > p:first-child, .work-body > a, .work-stats span { font-size: .62rem; letter-spacing: .08em; }
.work-image > small { font-size: .58rem; letter-spacing: .1em; text-shadow: 0 1px 8px rgba(0,0,0,.55); }
.work-proof { box-shadow: 0 10px 24px rgba(7,20,16,.23); }
.work-proof figcaption { font-size: .52rem; letter-spacing: .05em; }
.work-stats { padding-bottom: 1rem; margin-bottom: .25rem; }
.work-stats b { font-size: 2.1rem; line-height: 1.15; }
.work-footer { gap: 2rem; }
.work-footer p { line-height: 1.5; }

/* Philosophy, manifesto, imagery and all three cards remain. */
.values-title, .values-lede { margin-left: 0; }
.values-title { font-size: 3.3rem; line-height: 1.07; max-width: 1080px; }
.values-lede { letter-spacing: 0; line-height: 1.7; }
.values-leaf { opacity: .4; }
.values-grid { gap: 1.5rem; }
.value-card { min-height: 490px; padding: 2rem; background: #fcfaf4; }
.value-card:hover { transform: translateY(-4px); }
.value-mark { width: 66px; height: 66px; background: #e9eddf; }
.value-card h3 { font-size: 2.1rem; line-height: 1.15; letter-spacing: -.025em; }
.value-card small { font-size: .62rem; letter-spacing: .1em; line-height: 1.6; }
.value-card p { font-size: .93rem; line-height: 1.7; margin-bottom: 1.5rem; }
.value-card li { font-size: .64rem; letter-spacing: .055em; }
.manifesto blockquote { font-size: 2.1rem; line-height: 1.16; letter-spacing: -.025em; }
.manifesto-visual { background: #e9ecdf; box-shadow: none; }
.manifesto-visual span { font-size: .6rem; letter-spacing: .08em; background: rgba(248,246,238,.85); padding: .5rem .7rem; border-radius: 4px; }

/* Let the impact figures breathe on quiet paper. */
.impact-atmosphere { opacity: .095; }
.impact::after { opacity: .5; }
.impact-copy h2 { font-size: var(--type-display-xl); }
.promise { background: #faf9f2; box-shadow: 0 10px 28px rgba(16,40,32,.045); }
.promise-person span, .promise > small { font-size: .6rem; letter-spacing: .09em; }
.promise > strong { line-height: 1.18; }
.promise > p { font-size: .88rem; line-height: 1.65; }
.promise-points span { font-size: .55rem; letter-spacing: .03em; line-height: 1.6; }
.impact-stats span { font-size: .69rem; letter-spacing: .09em; line-height: 1.7; }
.impact-stats b { line-height: 1; }
.impact-feature { background-image: linear-gradient(100deg, #faf8f1 0%, rgba(250,248,241,.98) 37%, rgba(250,248,241,.12) 65%), url('assets/work-manufacturer-v2.png'); }
.impact-feature-copy h3 { font-size: 2.65rem; line-height: 1.075; letter-spacing: -.03em; }
.impact-feature-copy > p:not(.eyebrow) { font-size: .94rem; line-height: 1.7; }
.impact-feature-stats { background: rgba(16,43,31,.95); }
.impact-feature-stats span { font-size: .59rem; letter-spacing: .07em; }
.source-line { font-size: .62rem; letter-spacing: .075em; }

/* Retain the alternating timeline. Move badges clear of the headings. */
.approach-copy h2, .about-copy h2, .partnership-copy h2, .insights-heading h2 { font-size: var(--type-display-lg); }
.approach-copy > p:not(.eyebrow) { font-size: 1.12rem; line-height: 1.65; }
.approach-note small { font-size: .58rem; letter-spacing: .07em; }
.approach-note p { font-size: .95rem; line-height: 1.55; }
.process-no { top: -22px; }
.process-card { padding: 2rem 1.8rem 1.7rem; background: #fcfaf4; box-shadow: 0 12px 32px rgba(16,40,32,.065); }
.process-card h3 { font-size: 2.1rem; line-height: 1.1; margin-bottom: .65rem; }
.process-card small { font-size: .58rem; letter-spacing: .1em; }
.process-card > p { font-size: 1rem; line-height: 1.6; }
.process-output { align-items: center; gap: .8rem; }
.process-output span { font-size: .55rem; letter-spacing: .06em; }
.process-output b { font-size: .9rem; line-height: 1.4; }
.image-define { background-image: repeating-radial-gradient(ellipse at 30% 55%, transparent 0 22px, rgba(248,246,238,.17) 23px 24px), linear-gradient(135deg,#254236,#768763); }

/* Preserve the founder's layered portrait and the partnership composition. */
.about-copy .about-lede { line-height: 1.5; }
.about-principles > div { padding-block: 1rem; }
.about-principles p, .about-principles b { font-size: .75rem; line-height: 1.65; }
.about-facts span { font-size: .61rem; letter-spacing: .075em; }
.about-note { right: 4%; top: 7%; font-size: 1.4rem; line-height: 1.15; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
.owner-label { background: #17382e; }
.owner-label span { font-size: .6rem; letter-spacing: .09em; }
.about-team-card { background: #fcfaf4; box-shadow: var(--shadow); }
.about-team-card small { font-size: .58rem; letter-spacing: .1em; }
.about-team-card strong { font-size: 1.4rem; line-height: 1.22; }
.about-team-card span { font-size: .51rem; letter-spacing: .04em; }
.partnership-kicker { margin-bottom: 3rem; font-size: .6rem; letter-spacing: .12em; }
.partnership-copy .partnership-lede { line-height: 1.55; }
.partnership-visual figcaption { line-height: 1.2; }
.partnership-stamp { background: rgba(16,43,31,.75); }
.partnership-stamp span { font-size: .55rem; letter-spacing: .08em; }
.partnership-rail h3 { line-height: 1.15; letter-spacing: -.02em; }
.partnership-rail p { font-size: .85rem; line-height: 1.65; }

/* Same asymmetric journal grid; titles sized to their actual columns. */
.insights::before { color: rgba(16,40,32,.022); }
.insight-feature, .insight-compact { background: #f9f8f0; border-color: var(--line); }
.insight-copy h3 { font-size: 1.9rem; line-height: 1.18; letter-spacing: -.025em; overflow-wrap: break-word; }
.insight-compact .insight-copy { padding: 1.35rem; }
.insight-compact .insight-copy h3 { font-size: 1.35rem; line-height: 1.2; }
.insight-copy > p { font-size: .55rem; letter-spacing: .075em; line-height: 1.6; margin-bottom: .8rem; }
.insight-copy > a { font-size: .62rem; letter-spacing: .08em; }
.insight-media span, .insight-media small { font-size: .55rem; letter-spacing: .06em; }
.insight-media::after { background: linear-gradient(180deg,rgba(7,24,18,.4),transparent 36%,rgba(7,24,18,.26)); }
.insight-compact:nth-child(2) .insight-media { background: #dfe6d5; }
.insights-tail, .insights-heading > div:last-child a { font-size: .63rem; letter-spacing: .09em; }

/* Forest contact section and the original fields/actions remain in place. */
.contact-shade { background: linear-gradient(90deg,rgba(8,29,20,.97),rgba(8,29,20,.86) 47%,rgba(8,29,20,.33)), linear-gradient(0deg,rgba(8,29,20,.2),transparent); }
.contact-copy h2 { font-size: 3.8rem; line-height: 1.075; }
.contact-copy h2 em { color: #b7c88f; }
.contact-actions { gap: 1.75rem; }
.contact-actions > a:not(.button) { font-size: .68rem; letter-spacing: .075em; }
.contact-panel { right: 2rem; background: rgba(14,37,26,.94); border-color: rgba(247,243,233,.22); box-shadow: 0 22px 50px rgba(0,0,0,.19); }
.contact-panel > p { line-height: 1.6; letter-spacing: .13em; }
.contact-panel-intro { font-size: .95rem; line-height: 1.6; color: #ced8c7; }
.contact-panel label { margin-bottom: 1rem; }
.contact-panel label span { position: static; width: auto; height: auto; clip: auto; overflow: visible; display: block; margin-bottom: .4rem; font-size: .75rem; color: #e1e7d8; }
.contact-panel input, .contact-panel textarea { background: rgba(7,24,18,.3); font-size: 1rem; padding: .85rem 1rem; border-color: rgba(247,243,233,.3); }
.contact-panel > a { font-size: .67rem; letter-spacing: .075em; background: #d3ddbc; color: #153126; }
.contact-panel > a:hover { background: #e4ebd6; }
.contact-panel small { font-size: .64rem; letter-spacing: .06em; }
.contact-note { right: .2%; width: 70px; font-size: 1rem; }
.footer-brand small, .footer-grid h3 { font-size: .66rem; letter-spacing: .1em; }
.footer-grid > div:not(.footer-brand) a, .footer-grid > div:not(.footer-brand) p { line-height: 1.6; color: #d1d9cb; }
.footer-bottom { font-size: .61rem; letter-spacing: .07em; }

@media (max-width:1200px) {
  .contact-panel { right: 0; }
  .hero h1 { font-size: 3.35rem; }
  .hero-card a { font-size: .56rem; }
  .value-card { padding: 1.6rem; }
  .service-proof-rail span, .envision-proof span { font-size: .53rem; }
}
@media (min-width:761px) and (max-width:980px) {
  .hero h1 { font-size: 2.85rem; }
  .services-heading h2 { font-size: 2.8rem; }
  .service-tab span { font-size: .84rem; }
  .service-slide-copy h3, .envision-copy h3 { font-size: 3rem; }
  .service-slide-copy > p:not(.eyebrow), .envision-copy > p:not(.eyebrow) { font-size: .85rem; }
  .value-card h3 { font-size: 1.95rem; }
  .value-card { padding: 1.25rem; min-height: 550px; }
  .value-card li { font-size: .58rem; }
  .contact-copy h2 { font-size: 3.35rem; }
  .contact-actions { flex-wrap: wrap; gap: 1rem; }
  .contact-panel { padding: 1.5rem; }
}
@media (max-width:760px) {
  :root { --section-pad: 4.5rem; --type-display-xl: 2.85rem; --type-display-lg: 2.8rem; }
  .site-header { height: 82px; }
  .hero h1 { font-size: 2.75rem; letter-spacing: -.045em; }
  .hero .lede { max-width: 94%; font-size: 1.06rem; line-height: 1.65; }
  .hero-foliage-depth { opacity: .08; }
  .hero-pillars b { font-size: .57rem; letter-spacing: .065em; }
  .hero-pillars small { font-size: .51rem; letter-spacing: .01em; }
  .services-hero { min-height: 430px; }
  .services-heading h2 { font-size: var(--type-display-lg); margin-top: 1.35rem; }
  .services-heading > p:not(.eyebrow) { font-size: 1.03rem; }
  .services-top-branch { opacity: .42; }
  .services-soft-foliage { opacity: .025; }
  .service-tab span { font-size: .93rem; }
  .service-slide-bg, .envision-backdrop {
    background-image: linear-gradient(180deg,#faf8f1 0%,rgba(250,248,241,.98) 40%,rgba(238,243,225,.28) 66%,rgba(10,34,23,.9) 100%),url('assets/botanical/envision-case-environment-phase1.png');
  }
  .service-slide-copy h3, .envision-copy h3 { font-size: 2.75rem; }
  .service-slide-copy, .envision-copy { padding: 1.75rem; }
  .service-slide-copy > p:not(.eyebrow), .envision-copy > p:not(.eyebrow) { font-size: .88rem; line-height: 1.65; }
  .service-proof-rail, .envision-proof { background: rgba(11,35,24,.9); }
  .service-proof-rail span, .envision-proof span { font-size: .52rem; letter-spacing: .035em; padding-inline: .4rem; }
  .work-body { padding: 1.5rem; }
  .values-title { font-size: var(--type-display-lg); }
  .value-card { min-height: 465px; padding: 1.8rem; }
  .value-card h3 { font-size: 2.6rem; }
  .value-card small { font-size: .64rem; }
  .value-card li { font-size: .65rem; }
  .manifesto blockquote { font-size: 2.3rem; }
  .impact-stats span { font-size: .68rem; }
  .impact-feature-copy h3 { font-size: 2.9rem; }
  .impact-feature-copy > p:not(.eyebrow) { font-size: .9rem; }
  .process-no { top: 12px; }
  .process-card, .process-item.right .process-card, .process-item.left .process-card { padding: 1.65rem; }
  .process-card h3 { font-size: 2.4rem; }
  .process-card > p { font-size: .98rem; }
  .about-principles p, .about-principles b { font-size: .73rem; }
  .about-team-card { padding: 1.3rem; }
  .partnership-copy h2, .insights-heading h2 { font-size: var(--type-display-lg); }
  .partnership-copy .partnership-lede { font-size: 1.15rem; }
  .partnership-rail p { font-size: .9rem; }
  .insight-copy h3 { font-size: 2rem; }
  .insight-compact .insight-copy h3 { font-size: 1.65rem; }
  .insight-media span, .insight-media small { font-size: .52rem; }
  .contact-copy h2 { font-size: 3rem; }
  .contact-layout { padding-block: 4.5rem; }
  .contact-shade { background: linear-gradient(180deg,rgba(8,29,20,.96),rgba(8,29,20,.78)); }
  .contact-panel { padding: 1.75rem; }
  .contact-panel-intro { font-size: .94rem; }
}
@media (max-width:460px) {
  .eyebrow { font-size: .6rem; letter-spacing: .13em; }
  .eyebrow span { width: 36px; }
  .hero h1 { font-size: 2.5rem; }
  .hero-pillars { gap: .65rem; }
  .services-hero { min-height: 435px; }
  .services-heading h2 { font-size: 2.7rem; }
  .service-slide-copy .eyebrow { font-size: .56rem; }
  .service-slide-copy, .envision-copy { padding: 1.5rem; }
  .service-slide-copy h3, .envision-copy h3 { font-size: 2.8rem; }
  .service-slide-copy h4, .envision-copy h4 { font-size: .88rem; }
  .values-title { font-size: 2.8rem; }
  .value-card { padding: 1.5rem; }
  .impact-feature-copy { padding: 1.6rem; }
  .impact-feature-copy h3 { font-size: 2.45rem; }
  .process-card, .process-item.right .process-card, .process-item.left .process-card { padding: 1.5rem; }
  .process-card h3 { font-size: 2.2rem; }
  .process-card small { font-size: .52rem; }
  .process-output { align-items: flex-start; }
  .process-output b { text-align: left; }
  .insight-compact .insight-copy h3 { font-size: 1.8rem; }
  .contact-panel { padding: 1.5rem; }
}
