/* ==========================================================================
   Flourishment Leadership — website
   Every colour, weight and device below is taken from the brand deck
   (round 10, August 2026) and brand/print/brand.css. Nothing invented.
   ========================================================================== */

@font-face{font-family:'BG';font-weight:300;font-style:normal;font-display:swap;src:url('fonts/bg-300.woff2') format('woff2')}
@font-face{font-family:'BG';font-weight:400;font-style:normal;font-display:swap;src:url('fonts/bg-400.woff2') format('woff2')}
@font-face{font-family:'BG';font-weight:500;font-style:normal;font-display:swap;src:url('fonts/bg-500.woff2') format('woff2')}
@font-face{font-family:'BG';font-weight:600;font-style:normal;font-display:swap;src:url('fonts/bg-600.woff2') format('woff2')}
@font-face{font-family:'SS4';font-weight:300;font-style:normal;font-display:swap;src:url('fonts/ss4-300.woff2') format('woff2')}
@font-face{font-family:'SS4';font-weight:400;font-style:normal;font-display:swap;src:url('fonts/ss4-400.woff2') format('woff2')}
@font-face{font-family:'SS4';font-weight:600;font-style:normal;font-display:swap;src:url('fonts/ss4-600.woff2') format('woff2')}
@font-face{font-family:'SS4';font-weight:400;font-style:italic;font-display:swap;src:url('fonts/ss4-italic.woff2') format('woff2')}

:root{
  --forest:#28503C;
  --bone:#F6F2E8;
  --terra:#E0A472;
  --ink:#1B241F;
  --body:#414B44;
  --muted:#6F7A71;
  --dim:#A5A08F;
  --muted-ink:#5A645C;   /* darkened label grey: #6F7A71 misses WCAG AA at label sizes */
  --rule:#DAD3C0;
  --hair:#E7E1D2;
  --lightgn:#C7D3C0;
  --paper:#FFFFFF;

  --serif:'SS4',Georgia,'Times New Roman',serif;
  --sans:'BG','Helvetica Neue',Helvetica,Arial,sans-serif;

  --wrap:1160px;
  --gutter:clamp(20px,5vw,56px);
  color-scheme:only light;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:var(--serif);
  font-size:1.0625rem;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

img,svg{max-width:100%;display:block}

a{color:var(--forest);text-decoration-thickness:1px;text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:2px solid var(--terra);outline-offset:3px;border-radius:2px}

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

/* ---------------------------------------------------------------- shell -- */

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}

/* ------------------------------------------------------------ eyebrows -- */

.eyebrow{
  font-family:var(--sans);font-weight:300;font-size:.72rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted-ink);
  margin:0 0 .9rem;
}
.eyebrow--rev{color:var(--lightgn)}

/* --------------------------------------------------------------- type --- */

h1,h2,h3,h4{text-wrap:balance;margin:0}

.display{
  font-family:var(--serif);font-weight:400;color:var(--forest);
  font-size:clamp(2.3rem,5.2vw,3.45rem);line-height:1.08;
  letter-spacing:-.005em;
}
.display--rev{color:var(--bone)}

.heading{
  font-family:var(--sans);font-weight:500;color:var(--ink);
  font-size:clamp(1.45rem,3vw,2.05rem);line-height:1.16;letter-spacing:-.01em;
}
.heading--rev{color:var(--bone)}

.statement{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.45rem,3.1vw,2.05rem);line-height:1.32;
  letter-spacing:-.005em;margin:0;
}

.lede{font-size:clamp(1.08rem,1.6vw,1.22rem);line-height:1.6;max-width:34ch}

.prose{max-width:62ch}
.prose p{margin:0 0 1.15em}
.prose p:last-child{margin-bottom:0}
.prose strong{font-weight:600;color:var(--ink)}

.label{
  font-family:var(--sans);font-weight:400;font-size:.95rem;color:var(--ink);
  letter-spacing:0;margin:0 0 .35rem;
}

.meta{font-family:var(--sans);font-weight:400;font-size:.8rem;color:var(--muted-ink);letter-spacing:.04em}

/* --------------------------------------------------------------- bars --- */

.bar{width:64px;height:2px;background:var(--terra);border:0;margin:1.5rem 0 0}
.bar--sm{width:40px;margin:0 0 .85rem}
.bar--forest{background:var(--forest)}
.bar--light{background:var(--lightgn)}

/* ------------------------------------------------------------ lockups --- */

.lockup{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none}
.lockup__mark{width:30px;flex:0 0 30px}
.lockup__name{display:block;line-height:1}
.lockup__word{
  font-family:var(--sans);font-weight:500;font-size:1.12rem;color:var(--forest);
  display:block;letter-spacing:-.01em;
}
.lockup__sub{
  font-family:var(--sans);font-weight:400;font-size:.6rem;color:var(--muted-ink);
  letter-spacing:.28em;text-transform:uppercase;display:block;margin-top:.18rem;
}
.lockup--rev .lockup__word{color:var(--bone)}
.lockup--rev .lockup__sub{color:var(--lightgn)}

/* ---------------------------------------------------------------- nav --- */

.masthead{border-bottom:1px solid var(--hair);background:var(--paper)}
.masthead__in{
  display:flex;align-items:center;justify-content:space-between;
  gap:1.25rem 2rem;flex-wrap:wrap;padding-block:1.15rem;
}
.nav{display:flex;align-items:center;gap:clamp(1.1rem,2.4vw,2rem);flex-wrap:wrap}
/* :not(.btn) matters. `.nav a` is (0,1,1) and `.btn` is (0,1,0), so without the
   exclusion the nav's ink colour wins over the button's bone and the CTA renders
   as black text on Deep Forest. */
.nav a:not(.btn){
  font-family:var(--sans);font-weight:400;font-size:.95rem;color:var(--ink);
  text-decoration:none;padding-block:.2rem;border-bottom:1px solid transparent;
}
.nav a:not(.btn):hover{border-bottom-color:var(--rule)}
.nav a:not(.btn)[aria-current="page"]{border-bottom-color:var(--forest)}

/* -------------------------------------------------------------- button -- */

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-weight:400;font-size:.95rem;
  padding:.62rem 1.15rem;background:var(--forest);color:var(--bone);
  text-decoration:none;border:1px solid var(--forest);border-radius:2px;
  transition:background .18s ease;
}
.btn:hover{background:#1F4230}
.btn--rev{background:var(--bone);color:var(--forest);border-color:var(--bone)}
.btn--rev:hover{background:#FFFFFF}
.btn--ghost{
  background:transparent;color:var(--forest);border-color:transparent;
  text-decoration:underline;text-decoration-color:var(--rule);padding-inline:.25rem;
}
.btn--ghost:hover{background:transparent;text-decoration-color:var(--forest)}

.ctas{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:2rem}

/* ------------------------------------------------------------ sections -- */

.section{padding-block:clamp(3.5rem,7vw,6rem)}
.section--bone{background:var(--bone)}
.section--forest{background:var(--forest);color:var(--lightgn)}
.section--forest .prose{color:var(--lightgn)}
.section--tight{padding-block:clamp(2.6rem,5vw,4rem)}
.section__head{margin-bottom:clamp(2rem,4vw,3rem);max-width:46ch}

/* ------------------------------------------------------------ watermark -- */

.wm{position:relative;overflow:hidden;isolation:isolate}
.wm__img{
  position:absolute;z-index:-1;width:min(46%,420px);pointer-events:none;
  user-select:none;
}
.wm__img--br{right:-7%;bottom:-26%;opacity:.07}
.wm__img--tl{left:-9%;top:-22%;opacity:.10}
.wm__img--bl{left:-11%;bottom:-30%;opacity:.08}

/* --------------------------------------------------------------- hero --- */

.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--bone)}
.hero__panel{
  padding:clamp(2.75rem,6vw,5.25rem) clamp(1.5rem,4vw,4rem);
  display:flex;flex-direction:column;justify-content:center;
  max-width:calc(var(--wrap) * .58);margin-left:auto;width:100%;
}
.hero__fig{margin:0;min-height:100%;background:var(--ink)}
.hero__fig img{width:100%;height:100%;object-fit:cover;min-height:320px}

/* right half of the hero: the deck's supporting device at full scale, forest
   ground with the mark oversized, cropped and bleeding off two edges */
.hero__mark{position:relative;overflow:hidden;background:var(--forest);min-height:340px}
.hero__mark img{position:absolute;right:-16%;top:-14%;width:118%;max-width:none;opacity:.17;pointer-events:none}

.hero__kicker{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.2rem,2.2vw,1.55rem);color:var(--body);margin:.65rem 0 0;
}

@media (max-width:820px){
  .hero{grid-template-columns:1fr}
  .hero__panel{max-width:none;order:2}
  .hero__fig,.hero__mark{order:1}
  .hero__fig img{min-height:46vw}
  .hero__mark{min-height:34vw}
}

/* --------------------------------------------------------------- grids -- */

.cols{display:grid;gap:clamp(1.75rem,3.5vw,3rem)}
.cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.cols--3{grid-template-columns:1fr}}
@media (max-width:720px){.cols--2{grid-template-columns:1fr}}

/* -------------------------------------------------------------- credo --- */

/* One column, always: the credo is a sequential argument, so the reading
   order has to be forced. Two columns let a reader go 01, 03, 05. */
.credo{list-style:none;counter-reset:c;margin:0;padding:0;display:grid;gap:clamp(1.6rem,3vw,2.3rem);max-width:60ch}
.credo li{
  counter-increment:c;display:grid;
  grid-template-columns:2.9rem minmax(0,1fr);gap:.4rem;align-items:baseline;
}
.credo li::before{
  content:counter(c,decimal-leading-zero);
  font-family:var(--sans);font-weight:400;font-size:.82rem;color:var(--muted-ink);
  letter-spacing:.08em;padding-top:.5rem;
}
.credo p{
  margin:0;font-family:var(--serif);font-weight:400;
  font-size:clamp(1.14rem,2vw,1.42rem);line-height:1.42;color:var(--ink);
  max-width:44ch;
}
.credo li:last-child p{color:var(--forest)}
@media (max-width:520px){
  .credo li{grid-template-columns:2.2rem minmax(0,1fr)}
}

/* --------------------------------------------------------------- cards -- */

.prog{
  display:block;text-decoration:none;color:inherit;
  border:1px solid var(--rule);padding:clamp(1.6rem,3vw,2.4rem);
  background:var(--paper);transition:border-color .18s ease;
  display:flex;flex-direction:column;gap:.9rem;
}
.prog:hover{border-color:var(--forest)}
.prog__title{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,2.4vw,1.7rem);
  line-height:1.2;color:var(--forest);margin:0;
}
.prog p{margin:0;font-size:1rem}
.prog__more{
  font-family:var(--sans);font-weight:400;font-size:.88rem;color:var(--forest);
  letter-spacing:.02em;margin-top:auto;
}
.prog--forest{background:var(--forest);border-color:var(--forest)}
.prog--forest .prog__title{color:var(--bone)}
.prog--forest p{color:var(--lightgn)}
.prog--forest .prog__more{color:var(--lightgn)}
.prog--forest:hover{border-color:var(--lightgn)}

/* --------------------------------------------------------------- steps -- */

.steps{display:grid;gap:clamp(2rem,4vw,3rem);margin:0;padding:0;list-style:none}
.steps > li{border-top:1px solid var(--hair);padding-top:1.4rem}

/* wide variant: heading in the left track, prose in the right */
.steps--wide > li{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.55fr);gap:clamp(1.25rem,3vw,3rem);align-items:start}
.steps--wide > li > h3{padding-top:.1rem}
@media (max-width:820px){
  .steps--wide > li{grid-template-columns:1fr;gap:.75rem}
}
.steps h3{
  font-family:var(--sans);font-weight:500;font-size:1.18rem;color:var(--ink);
  margin:0 0 .5rem;
}

/* --------------------------------------------------------------- people -- */

/* align-content:start — without it the auto rows stretch in the shorter cards
   and the slack falls between the photograph and the name, staggering the row */
.person{display:grid;gap:1.4rem;align-content:start}
.person__fig{margin:0;background:var(--bone);aspect-ratio:3/4;overflow:hidden}
.person__fig img{width:100%;height:100%;object-fit:cover}
.person__name{font-family:var(--sans);font-weight:500;font-size:1.2rem;color:var(--ink);margin:0}
.person__role{
  font-family:var(--sans);font-weight:400;font-size:.85rem;color:var(--muted-ink);
  letter-spacing:.06em;text-transform:uppercase;margin:.3rem 0 .9rem;
}
.person p{margin:0 0 .8rem;font-size:1rem}
.person p:last-child{margin-bottom:0}
.person__fig--empty{
  display:grid;place-items:center;border:1px solid var(--rule);background:var(--bone);
}
.person__fig--empty span{
  font-family:var(--sans);font-size:.75rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted-ink);text-align:center;padding:1rem;
}

/* --------------------------------------------------------------- foot --- */

.foot{background:var(--forest);color:var(--lightgn);padding-block:clamp(3rem,6vw,4.5rem)}
.foot__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem)}
@media (max-width:720px){.foot__grid{grid-template-columns:1fr}}
.foot a{color:var(--bone)}
.foot__mail{
  font-family:var(--serif);font-size:clamp(1.15rem,2.4vw,1.5rem);
  color:var(--bone);text-decoration:none;border-bottom:1px solid rgba(246,242,232,.35);
}
.foot__mail:hover{border-bottom-color:var(--bone)}
.foot__nav{display:flex;flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none}
.foot__nav a{font-family:var(--sans);font-size:.95rem;color:var(--lightgn);text-decoration:none}
.foot__nav a:hover{color:var(--bone);text-decoration:underline}
.foot__rule{border:0;border-top:1px solid rgba(199,211,192,.22);margin:clamp(2.25rem,4vw,3rem) 0 1.4rem}
.foot__base{display:flex;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;align-items:center}
.foot__base p{margin:0;font-family:var(--sans);font-size:.8rem;color:var(--lightgn);letter-spacing:.04em}

.skip{position:absolute;left:-9999px}
.skip:focus{
  left:var(--gutter);top:.5rem;z-index:10;position:absolute;background:var(--bone);
  color:var(--forest);padding:.5rem .9rem;font-family:var(--sans);font-size:.9rem;
}

/* ---------------------------------------------------- credo band (home) -- */

.credoband{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:820px){.credoband{grid-template-columns:1fr;gap:2rem}}
.credoband .statement{max-width:22ch}
.credoband .prose{max-width:42ch}

/* ------------------------------------------------------------- adviser --- */

.adviser{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(1.5rem,4vw,3rem);align-items:start}
@media (max-width:720px){.adviser{grid-template-columns:1fr}}
