/*
Theme Name: Herringbone
Theme URI: https://herringbone.com/
Author: TNT
Description: Block theme for Herringbone — cream and forest-green bands, light Raleway headlines with one italic terracotta word, notched buttons. Built from the approved Home, About, Team, Portfolio, Pillars, Labs and Individual Post designs.
Version: 1.0.0
Requires at least: 7.0
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: herringbone
*/

/* ---------- Tokens (mapped to theme.json presets) ---------- */
:root{
  --green-900:var(--wp--preset--color--primary,#112b1d);
  --green-800:var(--wp--preset--color--secondary,#1a3a2a);
  --terra:var(--wp--preset--color--accent,#bd785c);
  --terra-text:var(--wp--preset--color--accent-text,#9a5236);
  --terra-hover:var(--wp--preset--color--accent-hover,#7e4530);
  --cream:var(--wp--preset--color--cream,#eee9d8);
  --cream-2:var(--wp--preset--color--cream-2,#efe8d5);
  --ink:var(--wp--preset--color--ink,#2a2620);
  --white:var(--wp--preset--color--white,#ffffff);
  --rule:var(--wp--preset--color--rule,#c6c1b3);
  --line-dark:#2c4a3a;
  --font:var(--wp--preset--font-family--raleway,Raleway,'Nunito Sans','Helvetica Neue',Arial,sans-serif);
  --gutter:clamp(20px,5vw,64px);
  --header-h:88px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:115%;scroll-padding-top:calc(var(--header-h) + 12px)}
body{margin:0;font-family:var(--font);font-weight:400;color:var(--ink);background:var(--cream);font-size:1.0625rem;line-height:1.7;overflow-x:clip}
img,video,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4,h5,h6{font-family:var(--font);margin:0;font-weight:300;line-height:1.12}
p{margin:0 0 1em}
em.accent,h1 em,h2 em,h3 em{font-style:italic;font-weight:300}
.wp-site-blocks{padding:0}
.wp-block-image{margin:0}
.wp-block-image img{height:auto}
.site-main{display:block}
.wrap{max-width:1320px;margin-inline:auto;padding-inline:var(--gutter)}
.home .site-main .wrap{max-width:calc(1320px + 2 * var(--gutter))}
.sr-only,.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
a:focus-visible,button:focus-visible{outline:3px solid var(--terra);outline-offset:3px}

/* Eyebrow labels */
.eyebrow{display:block;font-size:0.875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0 0 1.1rem;line-height:1.5}
.eyebrow.on-cream{color:var(--terra-text)}
.eyebrow.on-dark{color:var(--cream)}
.eyebrow.on-dark::before,.eyebrow.dash::before{content:"";display:inline-block;width:22px;height:2px;background:var(--terra);vertical-align:middle;margin-right:.7rem}

/* ---------- Buttons with the corner notch ---------- */
.btn,.wp-block-button .wp-block-button__link{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 2.4rem;font-family:var(--font);font-weight:700;font-size:1rem;line-height:1.3;text-decoration:none;border:2px solid var(--terra);border-radius:0;background:transparent;color:var(--green-900);transition:background .2s,color .2s,border-color .2s}
.btn::after,.wp-block-button .wp-block-button__link::after{content:"";position:absolute;top:5px;right:5px;width:14px;height:14px;clip-path:polygon(0 0,100% 0,100% 100%);background:var(--green-900)}
.btn-ghost-dark,.wp-block-button.is-style-ghost-dark .wp-block-button__link{color:var(--green-900);background:transparent}
.btn-ghost-dark::after,.wp-block-button.is-style-ghost-dark .wp-block-button__link::after{background:var(--green-900)}
.btn-ghost-dark:hover,.btn-ghost-dark:focus-visible,.wp-block-button .wp-block-button__link:hover,.wp-block-button .wp-block-button__link:focus-visible{background:var(--green-900);color:var(--white);border-color:var(--green-900)}
.btn-ghost-dark:hover::after,.wp-block-button .wp-block-button__link:hover::after{background:var(--terra)}
.btn-solid,.wp-block-button.is-style-solid .wp-block-button__link{background:var(--terra-text);border-color:var(--terra-text);color:var(--white)}
.btn-solid::after,.wp-block-button.is-style-solid .wp-block-button__link::after,.wp-block-button.is-style-solid .wp-block-button__link:hover::after{background:var(--cream)}
.btn-solid:hover,.btn-solid:focus-visible,.wp-block-button.is-style-solid .wp-block-button__link:hover,.wp-block-button.is-style-solid .wp-block-button__link:focus-visible{background:var(--terra-hover);border-color:var(--terra-hover);color:var(--white)}
.btn-ghost-light,.wp-block-button.is-style-ghost-light .wp-block-button__link{color:var(--white);background:transparent;border-color:var(--terra)}
.btn-ghost-light::after,.wp-block-button.is-style-ghost-light .wp-block-button__link::after,.wp-block-button.is-style-ghost-light .wp-block-button__link:hover::after{background:var(--cream)}
.btn-ghost-light:hover,.btn-ghost-light:focus-visible,.wp-block-button.is-style-ghost-light .wp-block-button__link:hover,.wp-block-button.is-style-ghost-light .wp-block-button__link:focus-visible{background:var(--green-900);color:var(--white);border-color:var(--terra)}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:1.4rem}

/* ---------- Header (sticky) ---------- */
.site-header-wrap{position:sticky;top:0;z-index:100;display:block}
.admin-bar .site-header-wrap{top:32px}
@media (max-width:782px){.admin-bar .site-header-wrap{top:46px}}
@media (max-width:600px){.admin-bar .site-header-wrap{top:0}}
.site-header{background:var(--cream);position:relative;box-shadow:0 1px 0 rgba(17,43,29,.10)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;min-height:44px;width:clamp(150px,18vw,218px);flex:none}
.brand svg{width:100%;height:auto}
.nav{display:flex;align-items:center;gap:clamp(.5rem,1.6vw,1.4rem)}
.nav .wp-block-navigation{font-size:0.9375rem;font-weight:500;color:var(--green-900)}
.nav .wp-block-navigation .wp-block-navigation__container{gap:clamp(.25rem,1.2vw,1rem)}
.nav .wp-block-navigation-item__content,.nav ul a{display:inline-flex;align-items:center;min-height:44px;padding:0 .5rem;color:var(--green-900);text-decoration:none}
.nav .wp-block-navigation-item__content:hover,.nav ul a:hover{color:var(--terra-text)}
.nav .current-menu-item>.wp-block-navigation-item__content,.nav [aria-current="page"]{color:var(--terra-text);font-weight:700;box-shadow:inset 0 -2px 0 var(--terra)}
.nav-cta .wp-block-button__link,.nav .btn{padding:.7rem 2.3rem;min-height:52px}
.nav .nav-contact-mobile{display:none}
/* Mobile overlay menu */
.nav .wp-block-navigation__responsive-container-open,.nav .wp-block-navigation__responsive-container-close{color:var(--green-900);padding:8px;min-width:44px;min-height:44px;align-items:center;justify-content:center}
.nav .wp-block-navigation__responsive-container-open svg{width:30px;height:30px}
.nav .wp-block-navigation__responsive-container.is-menu-open{background:var(--cream);color:var(--green-900);padding:clamp(1.25rem,6vw,3rem)}
.nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{padding-top:3.5rem;align-items:flex-start}
.nav .is-menu-open .wp-block-navigation__container{gap:.25rem;align-items:flex-start}
.nav .is-menu-open .wp-block-navigation-item__content{font-size:1.6rem;font-weight:300;min-height:56px;padding:0}
.nav .is-menu-open .nav-contact-mobile{display:flex;margin-top:1rem}
.nav .is-menu-open .nav-contact-mobile .wp-block-navigation-item__content{font-size:1rem;font-weight:700;color:var(--white);background:var(--terra-text);padding:.75rem 2.4rem;box-shadow:none}
@media (min-width:600px) and (max-width:900px){
  .nav .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex}
  .nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){display:none}
}
@media (max-width:640px){
  :root{--header-h:76px}
  .nav-cta .wp-block-button__link,.nav .btn{padding:.6rem 1.4rem;min-height:48px}
}
@media (max-width:420px){.nav-cta{display:none}}

/* ---------- Green bands / shared devices ---------- */
.band-green{position:relative;background:var(--green-800);color:var(--white)}
.edge{position:absolute;top:0;bottom:0;left:0;width:28px;background:var(--green-900);overflow:hidden}
.edge svg{width:28px;height:100%}
.corner-emblem{position:absolute;top:18px;right:18px;width:30px;z-index:1}
.corner-emblem svg,.corner-emblem img{width:100%;height:auto}
.corner-mark{position:absolute;top:10px;right:10px;width:40px;height:auto}
.corner-mark img{width:100%;height:auto}
.frame{margin:0}
.frame img{width:100%;height:auto;object-fit:cover}

/* ---------- HOME: hero ---------- */
.hero{position:relative;min-height:clamp(560px,82vh,720px);display:flex;align-items:flex-end;color:var(--cream);overflow:hidden;background:var(--green-900)}
.hero>video,.hero .wp-block-video{position:absolute;inset:0;width:100%;height:100%;margin:0;z-index:0}
.hero video{width:100%;height:100%;object-fit:cover}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,38,32,.82) 0%,rgba(42,38,32,.62) 55%,rgba(42,38,32,.45) 100%);z-index:1}
.hero .wrap{position:relative;z-index:2;width:100%;padding-block:clamp(4rem,10vw,6rem) clamp(3.5rem,7vw,4.75rem)}
.hero h1{font-size:clamp(2.5rem,6.4vw,4.75rem);color:var(--cream);max-width:15ch;margin-bottom:1.6rem}
.hero h1 em{color:var(--terra)}
.hero p{max-width:52rem;font-size:clamp(1rem,1.5vw,1.125rem);font-weight:300;color:var(--cream)}
.hero p strong{font-weight:700;color:var(--white)}
.hero .actions{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:2.2rem}
.scroll-cue{position:absolute;right:clamp(16px,3vw,40px);top:50%;transform:translateY(-30%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--cream);text-decoration:none;min-width:44px;padding:.5rem}
.scroll-cue span{writing-mode:vertical-rl;font-size:0.875rem;letter-spacing:.2em;font-weight:600;text-transform:uppercase}

/* HOME: portfolio */
.portfolio{padding:clamp(4rem,8vw,6.5rem) 0}
.portfolio-intro{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start;margin-bottom:clamp(3rem,6vw,5rem)}
.portfolio h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--cream)}
.portfolio h2 em{color:var(--terra)}
.portfolio-intro p{font-size:1rem;color:var(--white);line-height:1.85}
.portfolio-intro p strong{font-weight:700}
.portfolio-intro .btn,.portfolio-intro .wp-block-buttons{margin-top:1rem}
.grid-co{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line-dark);background:var(--green-900)}
.co{min-height:214px;padding:2.2rem 1.25rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);gap:.35rem}
.co:nth-child(3n){border-right:0}
.co:nth-last-child(-n+3){border-bottom:0}
.co .mark{flex:1;display:flex;align-items:center;justify-content:center;gap:.7rem;color:var(--white);min-height:84px}
.co .mark img{width:min(160px,100%);height:auto}
.co .mark>.wp-block-image{width:100%;display:flex;justify-content:center}
.co .mark>.wp-block-image img{margin-inline:auto}
.co .mark .co-logo{margin:0}
.co .mark .co-logo img{width:min(210px,100%);max-height:72px;object-fit:contain;filter:brightness(0) invert(1)}
.co .wordmark{font-size:1.4rem;font-weight:500;letter-spacing:.02em;color:var(--white);line-height:1.2}
.co .wordmark.boxed{border:2px solid var(--white);padding:.55rem .9rem;font-size:1.05rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.co .icon-label{font-size:1.05rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-align:left;line-height:1.15}
.co h3{font-size:0.875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--white);line-height:1.4}
.co .status{font-size:0.875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);display:inline-flex;align-items:center;gap:.5rem;margin:0;line-height:1.5}
.co .status::before{content:"";width:7px;height:7px;background:var(--terra);transform:rotate(45deg)}

/* HOME: pillars */
.pillars{padding:clamp(4rem,8vw,6.5rem) 0 clamp(4rem,7vw,5.5rem);position:relative}
.pillars-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;margin-bottom:clamp(3rem,5vw,4rem)}
.pillars h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--ink);margin-bottom:1.3rem}
.pillars h2 em{color:var(--terra-text)}
.pillars-intro p strong{font-weight:700}
.pillars-intro .btn,.pillars-intro .wp-block-buttons{margin-top:.6rem}
.pillars-intro .frame img{aspect-ratio:5/4}
.pillar-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--white);border:1px solid var(--rule)}
.pcard{position:relative;padding:2rem 1.4rem 2.4rem;border-right:1px solid var(--cream-2)}
.pcard:last-child{border-right:0}
.pcard::after{content:"";position:absolute;top:8px;right:8px;width:14px;height:14px;background:var(--terra);clip-path:polygon(0 0,100% 0,100% 100%)}
.pcard svg.picon{width:44px;height:44px;margin-bottom:1.6rem}
.pcard .eyebrow{margin-bottom:.6rem}
.pcard h3{font-size:clamp(1.6rem,2.5vw,1.9rem);color:var(--ink);margin-bottom:1rem;font-weight:400}
.pcard p{font-size:0.9375rem;line-height:1.75;margin:0}
.engine{display:flex;align-items:center;gap:1.6rem;margin-top:clamp(3.5rem,6vw,5rem)}
.engine img,.engine .wp-block-image{width:58px;height:58px;flex:none}
.engine p{margin:0;font-size:clamp(1.3rem,2.5vw,1.75rem);font-weight:300;line-height:1.35}
.engine p span,.engine .engine-em{display:block;color:var(--terra-text)}

/* HOME: not a holding company */
.holding{padding:clamp(4rem,8vw,6.5rem) 0}
.holding .holding-intro{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,6vw,4.5rem);align-items:center;margin-bottom:clamp(3rem,5vw,3.5rem)}
.holding .holding-intro .frame img{aspect-ratio:1/1;object-position:center 30%}
.holding h2{font-size:clamp(2.1rem,4.1vw,3.1rem);color:var(--white);margin-bottom:1.3rem}
.holding h2 em{color:var(--terra)}
.holding .holding-intro p{color:var(--white)}
.holding .holding-intro p strong{font-weight:700}
.hcards{display:grid;grid-template-columns:repeat(3,1fr);background:var(--cream);border:1px solid var(--rule);box-shadow:0 2px 0 var(--green-900)}
.hcard{padding:2.2rem 1.9rem 2.6rem;border-right:1px solid var(--rule);color:var(--ink)}
.hcard:last-child{border-right:0}
.hcard svg{width:42px;height:42px;margin-bottom:2rem}
.hcard h3{font-size:clamp(1.6rem,2.6vw,2rem);color:var(--terra-text);margin-bottom:1rem;font-weight:400}
.hcard p{font-size:0.9375rem;line-height:1.85;margin:0 0 .8rem}
.hcard p:last-child{margin-bottom:0}

/* HOME: verticals */
.home .verticals,.verticals.verticals-home{padding:clamp(4rem,8vw,6.5rem) 0}
.verticals-head{text-align:center;max-width:44rem;margin:0 auto clamp(2.5rem,5vw,3.5rem)}
.verticals-head h2{font-size:clamp(2.1rem,4.5vw,3.1rem);margin-bottom:1.3rem}
.verticals-head h2 em{color:var(--terra-text)}
.verticals-head p strong{font-weight:700}
.vlist{display:grid;gap:1.3rem;margin:0 auto}
.vcard{display:grid;grid-template-columns:1.33fr 1fr;background:var(--white);border:1px solid var(--rule)}
.vbody{position:relative;display:flex;flex-direction:column}
.vbody::after{content:"";position:absolute;top:6px;right:6px;width:12px;height:12px;background:var(--terra);clip-path:polygon(0 0,100% 0,100% 100%)}
.vmain{padding:1.9rem 1.6rem 1.6rem;flex:1}
.vmain .eyebrow{margin-bottom:.8rem}
.vmain h3{font-size:clamp(1.7rem,3vw,2.1rem);font-weight:400;margin-bottom:1rem}
.vmain p{font-size:0.9375rem;line-height:1.75;margin-bottom:.8rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;margin:1.2rem 0 0;padding:0;list-style:none}
.chips li{display:inline-flex;align-items:center;gap:.5rem;font-size:0.875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.chips li svg{width:30px;height:30px;flex:none}
.chips li.name{border:1px solid var(--rule);padding:.35rem .7rem;letter-spacing:.06em}
.vlink{display:flex;align-items:center;min-height:68px;padding:0 1.6rem;border-top:1px solid var(--rule);font-size:0.875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-text);text-decoration:none;margin:0}
.vlink a{color:inherit;text-decoration:none}
.vlink:hover,.vlink a:hover{color:var(--terra-hover)}
.vphoto{margin:0;min-height:260px;position:relative}
.vcard .vphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* HOME: two paths / ABOUT: why now (shared band) */
.paths{position:relative;background:var(--green-900);padding:clamp(3rem,7vw,5.5rem) 0;overflow:hidden}
.paths .pattern{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.paths div.pattern,.paths span.pattern{background-color:var(--cream);opacity:.12;-webkit-mask-image:url(assets/images/about-5.svg);mask-image:url(assets/images/about-5.svg);-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:109px 176px;mask-size:109px 176px;-webkit-mask-position:0 0;mask-position:0 0}
.paths .wrap{position:relative}
.paths-card{background:var(--white);border:12px solid var(--cream);padding:clamp(1.8rem,5vw,3.3rem);position:relative}
.paths-card .badge{position:absolute;top:clamp(1.8rem,5vw,3.3rem);right:clamp(1.8rem,5vw,3.3rem);width:34px}
.paths-card .badge svg,.paths-card .badge img{width:100%;height:auto}
.paths h2{font-size:clamp(2.1rem,4.5vw,3.1rem);margin-bottom:1.4rem;padding-right:3rem}
.paths h2 em{color:var(--terra-text)}
.paths-intro{max-width:36rem;font-weight:300}
.paths-intro strong{font-weight:700}
.path-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:2.6rem}
.path{position:relative;background:var(--green-800);color:var(--white);display:flex;flex-direction:column;border:1px solid var(--green-900)}
.path::after{content:"";position:absolute;top:6px;right:6px;width:14px;height:14px;background:var(--terra);clip-path:polygon(0 0,100% 0,100% 100%)}
.path .pbody{padding:2rem 2rem 1.8rem;flex:1}
.path h3{font-size:clamp(1.6rem,2.9vw,2rem);font-weight:400;color:var(--white);margin-bottom:1.2rem;max-width:13ch}
.path p{font-size:0.9375rem;line-height:1.8;margin:0}
.path a{display:flex;align-items:center;gap:.8rem;min-height:78px;padding:0 2rem;border-top:1px solid var(--line-dark);color:var(--cream);text-decoration:none;font-size:0.875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.path a svg{width:18px;height:18px;flex:none}
.path a:hover{background:var(--green-900)}
.path p.path-link{margin:0}
.path p.path-link a::after{content:"\2192";color:var(--terra);font-size:1.3rem;font-weight:400;letter-spacing:0;line-height:1}
.now-card{display:grid;grid-template-columns:1.1fr 1fr;background:var(--white);border:12px solid var(--cream)}
.now-body{padding:clamp(1.8rem,5vw,3.3rem)}
.now-body h2{font-size:clamp(2.1rem,4.5vw,3.1rem);margin-bottom:1.4rem;color:var(--ink)}
.now-body h2 em{color:var(--terra-text)}
.now-body p{font-size:1rem;line-height:1.8}
.now-body p.pull{font-weight:700;font-size:1.0625rem;color:var(--green-900);border-left:3px solid var(--terra);padding-left:1rem;margin:1.4rem 0}
.now-body .btn,.now-body .wp-block-buttons{margin-top:1rem}
.now-photo{position:relative;margin:0;min-height:320px}
.now-card .now-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.now-photo .plate{position:absolute;top:18px;right:18px;background:var(--cream);padding:8px;width:50px}
.now-photo .plate svg{width:100%;height:auto}
.now-card .now-photo .plate img{position:static;width:100%;height:auto;object-fit:contain}

/* ---------- ABOUT / TEAM ---------- */
.about-hero{background:var(--green-800);color:var(--cream);padding:clamp(4rem,9vw,7rem) 0 clamp(4rem,8vw,6rem)}
.about-hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.about-hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);color:var(--cream);max-width:12ch}
.about-hero h1 em{color:var(--terra)}
.about-hero p{color:var(--white);font-weight:300;font-size:clamp(1rem,1.4vw,1.0625rem);line-height:1.8}
.about-hero p strong{font-weight:700}
.opportunity{position:relative;padding:clamp(4rem,8vw,6.5rem) 0}
.opp-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3rem);align-items:start}
.opportunity h2,.holding-a h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--ink);margin-bottom:1.4rem}
.opportunity h2{font-size:clamp(2.5rem,4.6vw,3.6rem);margin-bottom:1rem}
.opportunity h2 em,.holding-a h2 em{color:var(--terra-text)}
.opportunity .lead p{font-size:clamp(1.0625rem,1.5vw,1.1875rem);line-height:1.75;font-weight:400}
.opp-gap{padding-top:.2rem}
.opp-gap .q{font-weight:700;font-size:0.9375rem;line-height:1.85;margin-bottom:1.2rem}
.ways{margin:0 0 1.4rem;padding-left:1.4rem}
.ways li{padding-left:.3rem;margin-bottom:.7rem;font-size:0.9375rem;line-height:1.85}
.opp-gap .resolve{font-size:0.9375rem;line-height:1.95;margin:0}
.what{padding:clamp(4rem,8vw,6.5rem) 0}
.what .wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,6vw,4.5rem);align-items:center}
.what .frame img,.what .wrap>.wp-block-image img{aspect-ratio:1/1;width:100%;object-fit:cover}
.what h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--white);margin-bottom:1.3rem}
.what h2 em{color:var(--terra)}
.what p{color:var(--white);font-size:1rem;line-height:1.8}
.what p strong{font-weight:700}
.infra{list-style:none;margin:.4rem 0 1.8rem;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-dark)}
.infra li{display:flex;align-items:center;gap:.8rem;padding:1rem .4rem 1rem 0;border-bottom:1px solid var(--line-dark);font-size:0.9375rem;font-weight:600;color:var(--cream);line-height:1.4}
.infra li::before{content:"";flex:none;width:8px;height:8px;background:var(--terra);transform:rotate(45deg)}
.holding-a{position:relative;padding:clamp(4rem,8vw,6.5rem) 0 0}
.holding-a .holding-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;margin-bottom:clamp(3rem,6vw,4.5rem)}
.holding-a .holding-intro p{font-size:1.0625rem;line-height:1.8}
.holding-a .holding-intro p strong{font-weight:700}
.holding-a .holding-intro .frame img{aspect-ratio:3/2;object-position:center 30%}
.diff{border-top:1px solid var(--rule)}
.diff-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,6vw,5rem);padding:clamp(2.2rem,4.5vw,3.4rem) 0;border-bottom:1px solid var(--rule)}
.diff-row .num{display:block;font-size:0.875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-text);margin-bottom:.8rem}
.diff-row h3{font-size:clamp(1.6rem,2.8vw,2.1rem);color:var(--terra-text);font-weight:300;max-width:18ch}
.diff-row p{font-size:0.9375rem;line-height:1.85}
.diff-row p:last-child{margin:0}
.holding-a .tail{height:clamp(3rem,6vw,4.5rem)}

/* TEAM */
.team-hero h1{max-width:9ch}
.leaders{position:relative;padding:clamp(3.5rem,7vw,5.5rem) 0 clamp(4rem,8vw,6rem)}
.person-list{display:grid;gap:clamp(1.25rem,2.5vw,1.75rem);margin:0 0 clamp(3.5rem,7vw,5rem)}
.person-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);background:var(--white)}
.person-card::after{content:"";position:absolute;top:0;right:0;width:18px;height:18px;background:var(--terra);clip-path:polygon(0 0,100% 0,100% 100%)}
.person-photo{margin:0;display:flex;min-height:280px;position:relative;overflow:hidden}
.person-card .person-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.initials{display:flex;flex:1;align-items:center;justify-content:center;width:100%;background:var(--green-800);color:var(--cream);font-weight:300;font-size:clamp(2.5rem,6vw,4.5rem);letter-spacing:.06em;line-height:1}
.person-body{padding:clamp(1.5rem,4vw,2.6rem) clamp(1.4rem,4vw,3rem)}
.person-body h3{font-size:clamp(1.75rem,3vw,2.3rem);color:var(--terra-text);font-weight:300;margin-bottom:.5rem}
.role{display:block;font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-900);line-height:1.5;overflow-wrap:anywhere}
.person-body .role{margin-bottom:1.1rem}
.person-body p{font-size:0.9375rem;line-height:1.85;margin:0}
.section-head{margin-bottom:clamp(1.8rem,4vw,2.6rem)}
.section-head h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--ink);max-width:20ch}
.section-head h2 em,.team-intro h2 em{color:var(--terra-text)}
.team-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,6vw,5rem);align-items:start;margin-bottom:clamp(2.5rem,5vw,3.5rem)}
.team-intro h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--ink)}
.team-intro .sub{font-size:0.9375rem;margin:.6rem 0 0}
.team-intro p{font-size:0.9375rem;line-height:1.85}
.team-grid{list-style:none;margin:0 auto;padding:0;max-width:960px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.75rem,3vw,2.75rem) clamp(1rem,2.5vw,2rem)}
.member{text-align:center}
.member .initials{aspect-ratio:1/1;font-size:clamp(2rem,5vw,3.4rem);margin-bottom:1rem}
.member img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 20%;margin-bottom:1rem}
.member h3{font-size:clamp(1.15rem,1.8vw,1.4rem);color:var(--terra-text);font-weight:400;margin-bottom:.35rem}
.member p{margin:0}
.person-photo .initials{margin:0}
.person-body p.role,.member p.role{font-size:0.875rem;line-height:1.5}

/* ---------- PORTFOLIO ---------- */
.pf-inner{max-width:1100px;margin:0 auto}
.pf-hero{background:var(--green-800);color:var(--cream);padding:clamp(4rem,9vw,7rem) 0 clamp(4.5rem,9vw,7.5rem)}
.pf-hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);color:var(--cream);max-width:11ch}
.pf-hero h1 em{color:var(--terra)}
.verticals{padding:clamp(1.5rem,4vw,3rem) 0 clamp(2rem,5vw,4rem)}
.vertical{border-bottom:1px solid var(--rule);padding:clamp(2.5rem,6vw,4.5rem) 0}
.vertical:last-child{border-bottom:0}
.vertical-grid{display:grid;grid-template-columns:1fr 1.75fr;gap:clamp(1.5rem,5vw,4rem);align-items:start}
.vertical h2{font-size:clamp(1.9rem,3vw,2.4rem);color:var(--terra-text);font-weight:300}
.company+.company{margin-top:clamp(2.5rem,5vw,3.5rem)}
.co-mark{display:flex;align-items:center;gap:.8rem;margin-bottom:1.1rem}
.co-icon{flex:none;width:48px;height:48px;border:2px solid var(--green-900);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--green-900)}
.co-icon svg{width:26px;height:26px}
.co-name{font-size:1.375rem;font-weight:600;color:var(--green-900);line-height:1.2;letter-spacing:.01em}
.co-tag{font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-text);margin:0 0 .9rem;line-height:1.5}
.company p{font-size:0.9375rem;line-height:1.85}
.company p:last-child{margin:0}
.company p.co-tag{font-size:0.875rem;line-height:1.5;margin:0 0 .9rem}

/* ---------- PILLARS ---------- */
.pl-hero{background:var(--green-800);color:var(--cream);padding:clamp(4rem,9vw,6.5rem) 0 clamp(4rem,8vw,6rem)}
.pl-hero-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.pl-hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);color:var(--cream);font-weight:300;line-height:1.12}
.pl-hero h1 em{display:block;font-style:italic;font-weight:300;color:var(--terra)}
.pl-hero-copy{padding-top:clamp(0rem,1.5vw,.6rem)}
.pl-hero-copy p{color:var(--white);font-weight:300;font-size:1.0625rem;line-height:1.8;margin:0}
.pl-hero-copy strong{font-weight:700}
.pl-band{position:relative;background:var(--green-900);padding:clamp(2.5rem,6vw,4.5rem) 0;overflow:hidden}
.pl-pattern{position:absolute;inset:0;width:100%;height:100%;max-width:none;background-color:var(--cream);opacity:.18;pointer-events:none;-webkit-mask-image:url(assets/images/about-5.svg);mask-image:url(assets/images/about-5.svg);-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:109px 176px;mask-size:109px 176px;-webkit-mask-position:0 0;mask-position:0 0}
.pl-band .wrap{position:relative}
.pl-frame{max-width:1320px;margin:0 auto;background:var(--white);border:clamp(8px,1.6vw,16px) solid var(--cream);padding:clamp(12px,2.2vw,24px)}
.pl-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2.2vw,24px)}
.pl-card{position:relative;background:var(--green-800);color:var(--white);display:flex;flex-direction:column}
.pl-card::after{content:"";position:absolute;top:6px;right:6px;width:14px;height:14px;background:var(--terra);clip-path:polygon(0 0,100% 0,100% 100%)}
.pl-body{flex:1;padding:clamp(1.5rem,3vw,2.2rem) clamp(1.4rem,3vw,2.2rem) clamp(1.4rem,2.6vw,2rem)}
.pl-icon{display:block;width:40px;height:40px;color:var(--cream);margin-bottom:1.5rem}
.pl-icon svg{width:40px;height:40px}
.pl-kicker{display:block;font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cream);margin:0 0 .6rem;line-height:1.5}
.pl-kicker::before{content:"";display:inline-block;width:18px;height:2px;background:var(--terra);vertical-align:middle;margin-right:.6rem}
.pl-card h3{font-size:clamp(1.7rem,2.6vw,2.1rem);font-weight:400;color:var(--white);margin:0 0 1rem}
.pl-card p{font-size:0.9375rem;line-height:1.85;color:var(--white);margin:0}
.pl-card p.pl-kicker{font-size:0.875rem;line-height:1.5;color:var(--cream);margin:0 0 .6rem}
.pl-link{display:flex;align-items:center;gap:.7rem;min-height:68px;padding:0 clamp(1.4rem,3vw,2.2rem);border-top:1px solid rgba(238,233,216,.22);font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cream);text-decoration:none}
.pl-link a{color:inherit;text-decoration:none}
.pl-link svg{width:18px;height:12px;color:var(--terra);transition:transform .2s}
.pl-link:hover{color:var(--white)}
.pl-link:hover svg{transform:translateX(4px)}
.pl-card p.pl-link{font-size:0.875rem;line-height:1.5;margin:0}
.pl-card p.pl-link a:not(.btn):not(.wp-block-button__link){display:inline-flex;align-items:center;gap:.7rem;min-height:44px;color:var(--cream);text-decoration:none}
.pl-card p.pl-link a::after{content:"\2192";color:var(--terra);font-size:1.2rem;font-weight:400;letter-spacing:0;line-height:1;transition:transform .2s}
.pl-card p.pl-link a:not(.btn):not(.wp-block-button__link):hover{color:var(--white)}
.pl-card p.pl-link a:hover::after{transform:translateX(4px)}

/* ---------- LABS ---------- */
.lab-hero{background:var(--green-800);color:var(--cream);padding:clamp(4rem,8vw,6.5rem) 0 clamp(3.5rem,7vw,5.5rem)}
.lab-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.lab-hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);color:var(--cream);max-width:11ch}
.lab-hero h1 em{color:var(--terra)}
.lab-hero-copy{padding-top:.4rem}
.lab-hero p{color:var(--white);font-weight:300;font-size:1rem;line-height:1.8}
.lab-hero .lead{color:var(--cream);font-weight:500;font-size:clamp(1.125rem,1.6vw,1.3rem);line-height:1.5;margin-bottom:1rem}
.lab-hero p strong{font-weight:700}
.lab-kicker,.lab-hero .lab-kicker{color:var(--terra);font-size:1.0625rem}
.lab-hero .lab-sub{color:var(--cream);font-weight:300;font-size:1rem;line-height:1.6;margin:1.6rem 0 0}
.lab-band{position:relative;background:var(--green-800);padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5.5rem);overflow:hidden}
.lab-band .pattern,.posts-dark .pattern{position:absolute;inset:0;background-color:var(--cream);opacity:.14;-webkit-mask-image:url(assets/images/about-5.svg);mask-image:url(assets/images/about-5.svg);-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:109px 176px;mask-size:109px 176px;-webkit-mask-position:0 0;mask-position:0 0;pointer-events:none}
.lab-band .wrap{position:relative}
.lab-card{background:var(--white);border:clamp(8px,1.2vw,16px) solid var(--cream);padding:clamp(1.25rem,3vw,2.5rem)}
.lab-card-head{margin-bottom:clamp(1.5rem,3vw,2.2rem)}
.lab-card h2{font-size:clamp(2rem,4vw,3rem);color:var(--ink)}
.lab-card h2 em{color:var(--terra-text)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.5rem)}
.tile{position:relative;background:var(--green-800);color:var(--white);padding:clamp(1.5rem,3vw,2.2rem)}
.tile::after{content:"";position:absolute;top:8px;right:8px;width:14px;height:14px;background:var(--terra);clip-path:polygon(0 0,100% 0,100% 100%)}
.tile-icon{width:46px;height:46px;border:1.5px solid var(--cream);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--cream);margin-bottom:1.4rem}
.tile-icon svg{width:24px;height:24px}
.tile .eyebrow{color:var(--cream);margin-bottom:.6rem}
.tile h3{font-size:clamp(1.6rem,2.4vw,2rem);color:var(--white);margin-bottom:1rem}
.tile p{font-size:0.9375rem;line-height:1.85;margin:0;color:var(--white)}
.tile-photo{position:relative;margin:0;min-height:320px;background:var(--green-900)}
.tile-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.diff-lab{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;margin-top:clamp(2.5rem,5vw,4rem);padding-top:clamp(2.5rem,5vw,4rem);border-top:2px solid var(--cream)}
.diff-lab .frame img{aspect-ratio:4/3;object-fit:cover}
.diff-lab h2{margin-bottom:1.2rem}
.diff-lab p{font-size:1rem;line-height:1.8}
.diff-lab p strong{font-weight:700}
.diff-lab .pull{font-weight:700;font-size:1.0625rem;color:var(--green-900);border-left:3px solid var(--terra);padding-left:1rem;margin:1.4rem 0 1.8rem}
.actions{display:flex;flex-wrap:wrap;gap:.9rem}
.lab-covers{position:relative;background:var(--cream);padding:clamp(4rem,8vw,6rem) 0}
.lab-corner{position:absolute;top:0;right:0;width:clamp(28px,3vw,40px)}
.lab-corner svg,.lab-corner img{width:100%;height:auto}
.lab-covers-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.lab-covers h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--ink);margin-bottom:1.6rem}
.lab-covers h2 em{color:var(--terra-text)}
.lab-list{list-style:none;margin:0;padding:0}
.lab-list li{position:relative;padding-left:1.4rem;margin-bottom:1rem;font-size:0.9375rem;line-height:1.85}
.lab-list li:last-child{margin-bottom:0}
.lab-list li::before{content:"";position:absolute;left:0;top:.75em;width:7px;height:7px;border-radius:50%;background:var(--terra)}
.lab-covers-photo{margin:0}
.lab-covers-photo img{width:100%;height:auto;aspect-ratio:1/0.95;object-fit:cover;object-position:center 40%}
.lab-diff{background:var(--green-800);color:var(--white);padding:clamp(4rem,8vw,6rem) 0}
.lab-diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.lab-diff-photo{margin:0}
.lab-diff-photo img{width:100%;height:auto;aspect-ratio:11/12;object-fit:cover}
.lab-diff h2{font-size:clamp(2.1rem,4.5vw,3.1rem);color:var(--white);margin-bottom:1.2rem}
.lab-diff h2 em{color:var(--terra)}
.lab-diff p{color:var(--white);font-size:1rem;line-height:1.8}
.lab-diff p strong{font-weight:700}
.lab-diff .lab-pull{color:var(--cream);font-size:clamp(1.125rem,1.6vw,1.3rem);line-height:1.5;margin:1.4rem 0 1.8rem}
/* Pillar pages (Systems, Intelligence, Growth): the Labs layout, no posts strip */
.lab-diff-grid.lab-diff-text{grid-template-columns:1fr 1.1fr;align-items:start}
.lab-diff-text h2{margin-bottom:0}
.lab-diff-text .actions{margin-top:1.8rem}
.lab-hero-copy .lab-list li{color:var(--white);font-weight:300;font-size:1rem;line-height:1.8}
.lab-front+.lab-front{margin-top:clamp(2rem,4vw,2.8rem);padding-top:clamp(2rem,4vw,2.8rem);border-top:1px solid var(--rule)}
.lab-covers .lab-front h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:1rem}
.lab-front p{font-size:0.9375rem;line-height:1.85}
.lab-front p:last-child{margin-bottom:0}
@media (max-width:900px){.lab-diff-grid.lab-diff-text{grid-template-columns:1fr}.lab-diff-text h2{margin-bottom:1.2rem}}
/* Pillar pages with photos: buttons under a plain paragraph; Growth's two cream sections (second one photo-left, divided by a rule) */
.lab-diff p+.actions{margin-top:1.8rem}
.lab-copy p{font-size:0.9375rem;line-height:1.85}
.lab-copy p:last-child{margin-bottom:0}
.lab-covers+.lab-covers{padding-top:0}
.lab-covers+.lab-covers .lab-covers-grid{border-top:1px solid var(--rule);padding-top:clamp(4rem,8vw,6rem)}
@media (min-width:901px){.lab-covers-grid.is-reversed{grid-template-columns:1fr 1.1fr}.lab-covers-grid.is-reversed>.lab-covers-photo{order:-1}}

/* Posts strip (Labs + post pages) */
.posts{padding:clamp(4rem,8vw,6rem) 0}
.posts-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.2rem 2rem;margin-bottom:clamp(1.8rem,4vw,2.6rem)}
.posts h2{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--ink)}
.posts h2 em{color:var(--terra-text)}
.posts-ctrl{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.arrow{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:2px solid var(--green-900);background:transparent;color:var(--green-900);text-decoration:none;cursor:pointer;font:inherit}
.arrow svg{width:20px;height:20px}
.arrow:hover,.arrow:focus-visible{background:var(--green-900);color:var(--white)}
.posts-ctrl .btn{margin-left:.4rem}
.post-track{list-style:none;margin:0;padding:0 0 .8rem;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3rem) / 3);gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory}
.post-track>.post,.post-track>li{scroll-snap-align:start;background:var(--white);border-top:3px solid var(--terra);padding:clamp(1.5rem,3vw,2rem);display:flex;flex-direction:column;margin:0}
.post-track time,.post-card time{display:block;font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-text);margin-bottom:.9rem}
.post-track h3,.post-card h3{font-size:clamp(1.3rem,1.8vw,1.55rem);font-weight:400;color:var(--green-900);line-height:1.3;margin-bottom:1.4rem}
.post-card h3 a{color:inherit;text-decoration:none}
.post-card h3 a:hover{color:var(--terra-text)}
.post-track>li>a,.post-track .wp-block-read-more,.post-card .wp-block-read-more{margin-top:auto;display:inline-flex;align-items:center;gap:.6rem;min-height:44px;font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-text);text-decoration:none}
.post-track li a svg{width:16px;height:16px}
.post-track>li>a:hover,.post-track .wp-block-read-more:hover{color:var(--terra-hover)}
.posts-dark{position:relative;background:var(--green-900);overflow:hidden;border-top:1px solid rgba(238,233,216,.15)}
.posts-dark .post-track{padding-bottom:0;gap:clamp(1rem,2vw,1.6rem);scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
.posts-dark .post-track::-webkit-scrollbar{display:none}
.posts-dark .wrap{position:relative}
.posts-dark .posts-kicker,.posts .posts-kicker{color:var(--terra);font-size:1.0625rem;line-height:1.4;margin:0 0 1.6rem}
.posts-dark .post-track>li{position:relative;background:var(--green-800);border:1px solid rgba(238,233,216,.2);padding:0}
.posts-dark .post-track>li::after{content:"";position:absolute;top:10px;right:10px;width:20px;height:20px;background:var(--terra);clip-path:polygon(0 0,100% 0,100% 100%)}
.posts-dark .post-track time{color:var(--cream);font-weight:500;margin:clamp(1.6rem,3vw,2.3rem) clamp(1.25rem,2.4vw,1.9rem) .9rem}
.posts-dark .post-track h3{flex:1;color:var(--white);font-weight:300;font-size:clamp(1.3rem,1.8vw,1.5rem);line-height:1.3;margin:0 clamp(1.25rem,2.4vw,1.9rem) clamp(1.6rem,3vw,2.2rem)}
.posts-dark .post-track>li>a,.posts-dark .post-track .wp-block-read-more{margin-top:0;color:var(--terra);font-size:1.0625rem;border-top:1px solid rgba(238,233,216,.2);padding:clamp(1.2rem,2.4vw,1.8rem) clamp(1.25rem,2.4vw,1.9rem);width:100%}
.posts-dark .post-track li a svg{display:none}
.posts-dark .post-track>li>a:hover,.posts-dark .post-track .wp-block-read-more:hover{color:var(--cream)}
.posts-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:clamp(1.5rem,3vw,2rem)}
.posts-arrows{display:flex;gap:.75rem}
.posts-dark .arrow{border-radius:50%;background:var(--cream);border-color:var(--cream);color:var(--green-900)}
.posts-dark .arrow:hover,.posts-dark .arrow:focus-visible{background:var(--terra);border-color:var(--terra);color:var(--green-900)}
.posts-dark .wp-block-query-no-results p{color:var(--cream)}

/* ---------- BLOG POST / PROSE ---------- */
.blog-post{background:var(--cream);padding:clamp(3rem,7vw,5.5rem) 0 clamp(4rem,8vw,6.5rem)}
.bp-col{max-width:48rem;margin:0 auto}
.bp-head{margin-bottom:clamp(2rem,4vw,3rem)}
.bp-head h1{font-size:clamp(2.3rem,4.8vw,3.7rem);color:var(--ink);font-weight:300;line-height:1.1;margin-bottom:clamp(1.4rem,3vw,2rem)}
.byline{display:flex;align-items:center;gap:1rem;padding-bottom:clamp(1.6rem,3vw,2.2rem);border-bottom:1px solid var(--rule)}
.byline-avatar{flex:none;width:56px;height:56px;border-radius:50%;background:var(--white);border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;overflow:hidden}
.byline-avatar svg{width:30px;height:auto}
.byline-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 25%;border-radius:50%}
.byline-text{margin:0;display:flex;flex-direction:column;gap:.15rem;line-height:1.4}
.byline-by{display:flex;flex-wrap:wrap;gap:.35em;font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-900)}
.byline-by p,.byline-by .wp-block-post-author-name{margin:0}
.byline-text time{font-size:0.875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-text)}
.prose{font-size:1rem;line-height:1.8}
.prose p{margin:0 0 1.2rem}
.prose .bp-intro{font-size:clamp(1.0625rem,1.5vw,1.1875rem);line-height:1.75}
.prose h2{font-size:clamp(2rem,3.8vw,2.9rem);color:var(--ink);font-weight:300;line-height:1.15;margin:clamp(2.6rem,5vw,3.6rem) 0 1.1rem}
.prose h2 em{color:var(--terra-text)}
.prose h3{font-size:clamp(1.5rem,2.6vw,2rem);color:var(--green-900);font-weight:300;line-height:1.2;margin:clamp(2.2rem,4vw,2.8rem) 0 .9rem}
.prose h4{font-size:clamp(1.25rem,1.9vw,1.45rem);color:var(--green-900);font-weight:500;line-height:1.3;margin:2rem 0 .8rem}
.prose h5{font-size:1.125rem;color:var(--green-900);font-weight:700;line-height:1.4;margin:1.8rem 0 .6rem}
.prose h6{font-size:0.875rem;color:var(--terra-text);font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;margin:1.8rem 0 .6rem}
.prose>:first-child{margin-top:0}
.prose .wp-block-post-content>*{max-width:none;padding-inline:0}
.prose .wp-block-post-content>:first-child{margin-top:0}
.prose .wp-block-post-content>:last-child{margin-bottom:0}
.prose a:not(.wp-block-button__link){color:var(--terra-text);font-weight:600;text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px;padding:.65rem 0}
.prose a:not(.wp-block-button__link):hover,.prose a:not(.wp-block-button__link):focus-visible{color:var(--terra-hover)}
.prose ul,.prose ol{margin:0 0 1.4rem;padding:0;list-style:none}
.prose li{position:relative;padding-left:2rem;margin-bottom:.75rem}
.prose li:last-child{margin-bottom:0}
.prose ul li::before{content:"";position:absolute;left:.35rem;top:.72em;width:8px;height:8px;background:var(--terra);transform:rotate(45deg)}
.prose ol{counter-reset:step}
.prose ol li{counter-increment:step;padding-left:2.8rem}
.prose ol li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:.1em;font-size:0.875rem;font-weight:700;letter-spacing:.08em;color:var(--terra-text)}
.bp-callout{background:var(--white);border-left:3px solid var(--terra);padding:clamp(1.2rem,3vw,1.8rem) clamp(1.2rem,3vw,2rem);margin:1.8rem 0 2rem}
.bp-callout .bp-callout-title{font-weight:700;color:var(--green-900);margin-bottom:.8rem}
.bp-callout ul{margin:0}
.bp-figure,.prose .wp-block-image{margin:clamp(2rem,4vw,2.8rem) 0}
.bp-figure img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.bp-figure figcaption,.prose figcaption{font-size:0.875rem;line-height:1.55;color:var(--ink);margin-top:.8rem;padding-left:.9rem;border-left:2px solid var(--terra);text-align:left}
/* Byline: one or two author photos, names from the post's byline field */
.byline-avatars{display:flex;flex:none;gap:0}
.byline-avatars .byline-avatar{margin:0}
.byline-avatars .byline-avatar+.byline-avatar{margin-left:-14px;box-shadow:0 0 0 3px var(--cream)}
.byline-avatar img[src$=".svg"]{object-fit:contain;padding:13px;border-radius:0}
.byline-by p.byline-name{margin:0}
/* Article furniture: stat rows, data tables, step numbers, notes */
.prose ul.bp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:1.8rem 0 2.2rem}
.prose ul.bp-stats li{background:var(--white);padding:1.1rem 1.2rem 1.2rem;margin:0;font-size:0.9375rem;line-height:1.5;color:var(--ink)}
.prose ul.bp-stats li::before{content:none}
.prose ul.bp-stats li>strong{display:block;font-size:clamp(1.8rem,3vw,2.3rem);font-weight:300;color:var(--terra-text);line-height:1.1;margin-bottom:.4rem}
.prose ul.bp-stats li>em{display:block;font-style:normal;font-size:0.875rem;color:#555555;margin-top:.3rem}
.prose .bp-chart-label{font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-text);line-height:1.5;margin:2.2rem 0 .5rem}
.prose .bp-chart-label+p{font-weight:600;color:var(--green-900)}
.prose .wp-block-table{margin:1.2rem 0 2rem;overflow-x:auto}
.prose .wp-block-table table{width:100%;border-collapse:collapse;background:var(--white);font-size:0.9375rem;line-height:1.5}
.prose .wp-block-table thead{border:0}
.prose .wp-block-table th,.prose .wp-block-table td{border:0;border-bottom:1px solid var(--rule);padding:.75rem 1rem;text-align:left;vertical-align:top}
.prose .wp-block-table thead th{background:var(--green-800);color:var(--cream);font-size:0.875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.4}
.prose .wp-block-table td em{display:block;font-style:normal;font-size:0.875rem;color:#555555}
.prose .wp-block-table figcaption{margin-top:.8rem}
.prose .bp-note{font-size:0.875rem;line-height:1.6;color:#555555;padding-left:.9rem;border-left:2px solid var(--terra)}
.prose p.bp-step-num{margin:2.6rem 0 .2rem}
.prose p.bp-step-num+h3{margin-top:0}
.prose .bp-callout>:last-child{margin-bottom:0}
.prose .bp-callout .wp-block-table{margin:.4rem 0 0}
.prose .hb-quote{margin:2rem 0}
.prose .wp-block-buttons{margin:1.4rem 0 2rem}
p a:not(.btn):not(.wp-block-button__link){color:var(--terra-text)}
p a:not(.btn):not(.wp-block-button__link):hover,p a:not(.btn):not(.wp-block-button__link):focus-visible{color:var(--terra-hover)}
.path p a,.vlink a,.pl-link a,.f-col p a{color:inherit}

/* ---------- Generic page sections (pattern catalogue) ---------- */
.page-section{padding:clamp(3.5rem,7vw,5.5rem) 0;position:relative}
.page-section.is-dark{background:var(--green-800);color:var(--white)}
.page-section .section-title{font-size:clamp(2.1rem,4.5vw,3.3rem);color:var(--ink);margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.page-section .section-title em{color:var(--terra-text)}
.page-section .prose,.page-section .narrow{max-width:48rem;margin-inline:auto}
.page-hero{background:var(--green-800);color:var(--cream);padding:clamp(4rem,9vw,7rem) 0 clamp(4rem,8vw,6rem)}
.page-hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.page-hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);color:var(--cream);max-width:14ch}
.page-hero h1 em{color:var(--terra)}
.page-hero p{color:var(--white);font-weight:300;line-height:1.8}
.page-hero .wp-block-image img{width:100%;aspect-ratio:4/3;object-fit:cover}
.faq-list{max-width:48rem;margin-inline:auto;border-top:1px solid var(--rule)}
.faq-item{border-bottom:1px solid var(--rule);padding:1.2rem 0}
.faq-item summary{cursor:pointer;font-size:clamp(1.2rem,2vw,1.45rem);font-weight:400;color:var(--green-900);list-style:none;display:flex;justify-content:space-between;gap:1rem;min-height:44px;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";flex:none;width:12px;height:12px;border-right:2px solid var(--terra);border-bottom:2px solid var(--terra);transform:rotate(45deg);transition:transform .2s}
.faq-item[open] summary::after{transform:rotate(-135deg)}
.faq-item>:not(summary){margin-top:.8rem;font-size:0.9375rem;line-height:1.85}
.hb-quote{max-width:48rem;margin:0 auto;border-left:3px solid var(--terra);padding:.4rem 0 .4rem 1.4rem}
.hb-quote p{font-size:clamp(1.3rem,2.4vw,1.75rem);font-weight:300;line-height:1.4;color:var(--green-900);margin:0 0 1rem}
.hb-quote cite{font-style:normal;font-size:0.875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-text)}
/* Loose blocks typed straight into a page stay at reading width */
.wp-block-post-content>:where(p,h2,h3,h4,h5,h6,ul,ol,blockquote,.wp-block-table,.wp-block-quote){max-width:48rem;margin-inline:auto;padding-inline:var(--gutter)}
.wp-block-post-content>:where(h2){font-size:clamp(2rem,3.8vw,2.9rem);margin-top:2.6rem;margin-bottom:1.1rem}
.wp-block-post-content>:where(:first-child:not(.wp-block-group)){margin-top:clamp(3rem,6vw,5rem)}
.wp-block-post-content>:where(:last-child:not(.wp-block-group)){margin-bottom:clamp(3rem,6vw,5rem)}

/* Index + 404 */
.posts-index{padding:clamp(3.5rem,7vw,5.5rem) 0}
.posts-index .wp-block-post-template{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.posts-index .wp-block-post-template>li{margin:0}
.post-card{position:relative;background:var(--white);border-top:3px solid var(--terra);padding:clamp(1.5rem,3vw,2rem);display:flex;flex-direction:column;height:100%}
.posts-index .wp-block-query-pagination{margin-top:2.5rem;display:flex;gap:1rem;font-weight:700;color:var(--green-900)}
.posts-index .wp-block-query-pagination a{text-decoration:none}
.archive .index-title,.search .index-title{display:none}
.pf-hero .wp-block-query-title{font-size:clamp(2.5rem,5.6vw,4.4rem);color:var(--cream);max-width:14ch}

/* ---------- Footer ---------- */
.site-footer-wrap{display:block}
.site-footer{position:relative;background:var(--white);overflow:hidden;padding:clamp(3.5rem,6vw,4.5rem) 0}
.site-footer::before{content:"";position:absolute;left:-3%;top:0;height:100%;width:min(40%,460px);background:#ececec;-webkit-mask:url(assets/images/herringbone-redesign-9.svg) left center/contain no-repeat;mask:url(assets/images/herringbone-redesign-9.svg) left center/contain no-repeat;pointer-events:none}
.footer-mark{position:absolute;left:-3%;top:0;height:100%;width:min(40%,460px);pointer-events:none}
.footer-mark svg *{fill:#ececec !important}
.footer-mark svg{width:100%;height:100%}
.footer-shape{position:absolute;left:0;top:0;height:100%;width:auto;max-width:40%;object-fit:contain;object-position:left top;filter:brightness(0) invert(.94);pointer-events:none}
.site-footer .wrap{position:relative;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:2.5rem}
.f-brand .brand{width:clamp(180px,22vw,278px);margin-bottom:1.2rem}
.social{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:-12px;color:var(--terra-text)}
.social svg{width:18px;height:18px}
.wp-block-social-links.social{width:auto;height:auto;margin:0 0 0 -12px;padding:0;gap:0}
.wp-block-social-links.social .wp-social-link{margin:0;background:none}
.wp-block-social-links.social .wp-social-link a,.wp-block-social-links.social .wp-block-social-link-anchor{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:var(--terra-text)}
.wp-block-social-links.social .wp-social-link svg{width:20px;height:20px;fill:currentColor}
.f-col h2{font-size:0.875rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--terra-text);margin:0 0 .6rem;line-height:1.4}
.f-col ul{list-style:none;margin:0 0 2.2rem;padding:0}
.f-col ul.tight{margin-bottom:.4rem}
.f-col li{margin:0}
.f-col a{display:flex;align-items:center;min-height:44px;font-size:0.9375rem;text-decoration:none;color:var(--ink)}
.f-col a:hover{color:var(--terra-text)}
.f-note{font-size:0.875rem;font-style:italic;color:#555555;max-width:20rem;line-height:1.55;margin:.3rem 0 0}
.f-legal{position:relative;border-top:1px solid #e3e3e3;margin-top:2rem;padding-top:1.3rem}
.f-legal p{font-size:0.875rem;color:#555555;margin:0}
.copyright{background:var(--green-900);color:var(--white);text-align:center;font-size:0.875rem;padding:1.1rem var(--gutter);margin:0}

/* ---------- Eyebrow guard: eyebrows are paragraphs in blocks ---------- */
body .eyebrow{font-size:0.875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;max-width:none}
body .eyebrow.on-cream{color:var(--terra-text)}
body .eyebrow.on-dark{color:var(--cream)}
body .lab-hero .lab-kicker,body .posts .posts-kicker{color:var(--terra);font-size:1.0625rem;line-height:1.4}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .pillar-cards{grid-template-columns:repeat(2,1fr)}
  .pcard:nth-child(2){border-right:0}
  .pcard:nth-child(-n+2){border-bottom:1px solid var(--cream-2)}
}
@media (max-width:900px){
  .portfolio-intro,.pillars-intro,.holding .holding-intro,.holding-a .holding-intro{grid-template-columns:1fr}
  .grid-co{grid-template-columns:repeat(2,1fr)}
  .co:nth-child(3n){border-right:1px solid var(--line-dark)}
  .co:nth-child(2n){border-right:0}
  .co:nth-last-child(-n+3){border-bottom:1px solid var(--line-dark)}
  .co:last-child{border-bottom:0}
  .hcards{grid-template-columns:1fr}
  .hcard{border-right:0;border-bottom:1px solid var(--rule)}
  .hcard:last-child{border-bottom:0}
  .vcard{grid-template-columns:1fr}
  .vphoto{order:-1;min-height:0;aspect-ratio:3/2}
  .path-grid{grid-template-columns:1fr}
  .scroll-cue{display:none}
  .about-hero .wrap,.page-hero .wrap,.opp-grid,.what .wrap,.diff-row,.team-intro,.vertical-grid,.pl-hero-grid,.lab-hero-grid,.diff-lab,.lab-covers-grid,.lab-diff-grid{grid-template-columns:1fr}
  .lab-hero-copy{padding-top:0}
  .now-card{grid-template-columns:1fr}
  .now-photo{order:-1;min-height:0;aspect-ratio:4/3}
  .post-track{grid-auto-columns:calc((100% - 1.5rem) / 2)}
  .posts-index .wp-block-post-template{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-footer .wrap{grid-template-columns:1fr 1fr}
  .f-brand{grid-column:1/-1}
}
@media (max-width:760px){.pl-cards{grid-template-columns:1fr}}
@media (max-width:640px){
  .edge{display:none}
  .grid-co{grid-template-columns:1fr}
  .co{border-right:0 !important;min-height:180px}
  .co:nth-last-child(-n+3){border-bottom:1px solid var(--line-dark)}
  .co:last-child{border-bottom:0}
  .pillar-cards{grid-template-columns:1fr}
  .pcard{border-right:0;border-bottom:1px solid var(--cream-2)}
  .pcard:last-child{border-bottom:0}
  .hero .actions .wp-block-button,.hero .actions .btn{flex:1 1 100%}
  .hero .actions .wp-block-button__link{width:100%}
  .paths-card{border-width:8px}
  .path .pbody{padding:1.6rem 1.4rem}
  .path a{padding:0 1.4rem}
  .engine{align-items:flex-start}
  .infra{grid-template-columns:1fr}
  .now-card{border-width:8px}
  .now-body .btn,.now-body .wp-block-button,.now-body .wp-block-button__link{width:100%}
  .person-card{grid-template-columns:1fr}
  .person-photo{min-height:0;aspect-ratio:4/3}
  .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .member .role{letter-spacing:.06em}
  .tiles{grid-template-columns:1fr}
  .post-track{grid-auto-columns:85%}
  .actions .btn,.actions .wp-block-button,.actions .wp-block-button__link{width:100%}
  .posts-ctrl .btn{margin-left:0}
  .posts-index .wp-block-post-template{grid-template-columns:1fr}
  .site-footer .wrap{grid-template-columns:1fr}
  .site-footer::before,.footer-mark{width:70%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .posts-dark .post-track{scroll-behavior:auto}
}
