/* TZP Group — design system (brand: navy/gold/Lato) */
:root{
  --navy:#00205B;
  --deep-navy:#1C2441;
  --gold:#A38A66;
  --gold-text:#7A6349; /* darkened gold for text on light backgrounds — WCAG AA (5.66:1 on white); var(--gold) itself stays as-is for dark-bg text/borders/dividers, which already pass */
  --note-red:#A32A2A; /* internal "pending/placeholder" editorial notes — deliberately conspicuous, not a design error */
  --steel-blue:#6689CB;
  --slate-blue:#8095BB;
  --periwinkle:#CCD8EE;
  --light-gray:#D3D6DE;
  --cream:#DBD0C2;
  --white:#FFFFFF;
  --black:#000000;
  --text:#1a1a1a;
  --max-width:1200px;

  /* Shared family stacks; component weights and styles stay independent. */
  --font-body:'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-editorial:'Newsreader',Georgia,serif;

  /* Type scale — TZP Group Digital Type Scale (tzp-brand design system, references/design-system.md).
     Sizes in rem (base 16px) so text scales with the reader's browser/OS font-size setting.
     11px is the accessibility floor (TZP's own minimum on-screen body text size) — nothing on
     the site should go below --fs-11. */
  --fs-60:3.75rem;   /* H1 — 60px / line-height 66px (1.1) / weight 700 — main page heading */
  --fs-48:3rem;      /* H2 — 48px / line-height 53px (1.1) / weight 700 — section heading */
  --fs-36:2.25rem;   /* H3 — 36px / line-height 43px (1.2) / weight 700 — sub-section heading */
  --fs-32:2rem;      /* Display XL — 32px / line-height 38px / weight 900 — large display numbers */
  --fs-28:1.75rem;   /* H4 — 28px / line-height 34px (1.2) / weight 700 — subsection heading */
  --fs-24:1.5rem;    /* H5 / Display L — 24px / line-height 29px (1.2) / weight 600–700 — sub-heading, large display */
  --fs-20:1.25rem;   /* Display M — 20px / line-height 28px (1.4) / weight 600 — eyebrow, small display */
  --fs-18:1.125rem;  /* Body XL — 18px / line-height 27px (1.5) / weight 400 — large body text */
  --fs-16:1rem;      /* H6 / Body Default — 16px / line-height 26px (1.625) / weight 400–600 — standard body text, small heading */
  --fs-14:0.875rem;  /* Body Small — 14px / line-height 21px (1.5) / weight 400 — nav, buttons, secondary body */
  --fs-12:0.75rem;   /* Body XS — 12px / line-height 18px (1.5) / weight 400 — labels, meta */
  --fs-11:0.6875rem; /* Caption — 11px / line-height 16px (1.45) / weight 400 — captions, footnotes (accessibility floor) */
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
/* Explicit display rules must not override the HTML hidden attribute. */
[hidden]{display:none!important}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--white);
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max-width);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--font-editorial);font-weight:500;text-wrap:balance}

.concept-banner{background:var(--ink,#20241F);color:#fff;text-align:center;font-size:var(--fs-12);letter-spacing:.04em;padding:8px 12px;font-weight:700}
.utility-bar{background:var(--deep-navy);border-bottom:1px solid rgba(255,255,255,.08)}
.utility-bar .wrap{display:flex;justify-content:flex-end;gap:20px;padding:7px 24px;flex-wrap:wrap}
.utility-bar a{color:#CCD8EE;font-size:var(--fs-12);font-weight:700;letter-spacing:.04em;text-decoration:none}
.utility-bar a:hover{color:#fff}
.mobile-utility-links{display:none}

/* Header */
.site-header{border-bottom:1px solid var(--light-gray);position:sticky;top:0;background:var(--white);z-index:100}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px;flex-wrap:wrap;gap:12px}
.header-logo img{height:81px;width:auto}
.site-nav{display:flex;gap:28px;flex-wrap:wrap}
.site-nav a{font-weight:700;font-size:var(--fs-14);letter-spacing:.03em;text-transform:uppercase;color:var(--navy)}
.site-nav a:hover{color:var(--gold)}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:0;background:none;border:none;cursor:pointer}
.nav-toggle span{display:block;width:100%;height:2px;background:var(--navy);border-radius:1px}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:760px){
  .utility-bar{display:none}
  .site-header .wrap{position:relative}
  .nav-toggle{display:flex}
  .site-nav{display:none;flex-direction:column;width:100%;gap:0;order:3;border-top:1px solid var(--light-gray);margin-top:4px}
  .site-nav.open{display:flex;max-height:calc(100dvh - 130px);overflow-y:auto;overscroll-behavior:contain}
  .site-nav a{font-size:var(--fs-14);padding:14px 4px;border-bottom:1px solid var(--light-gray)}
  .mobile-utility-links{display:flex;flex-direction:column;padding:12px 0 8px;gap:0}
  .site-nav .mobile-utility-links a{font-size:var(--fs-12);text-transform:none;letter-spacing:.02em;min-height:44px;display:flex;align-items:center;padding:10px 4px;border-bottom:0}
}

/* Hero */
.hero{background:var(--navy);color:var(--white);padding:96px 0 80px}
.hero h1{font-size:var(--fs-48);font-weight:500;margin:0 0 16px;line-height:1.1}
.hero .eyebrow{font-family:var(--font-editorial);font-style:italic;color:var(--gold);font-size:var(--fs-20);margin:0 0 10px}
.hero-sub{max-width:640px;font-size:var(--fs-18);color:var(--periwinkle)}
@media (max-width:760px){.hero{padding:56px 0 48px}.hero h1{font-size:var(--fs-36)}}

/* Homepage hero — photo grid + rotating portfolio-photo device.
   Landscape framing (4:3) per Sept 25 feedback — was a tall 9:16 crop that
   over-cropped the source photos; this shows more of each image. */
.hero-photo-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
@media (max-width:860px){.hero-photo-grid{grid-template-columns:1fr}}
.hero-photo{position:relative;width:100%;max-width:480px;margin-left:auto}
.hero-photo .photo-slot{aspect-ratio:4/3;width:100%}
@media (max-width:860px){.hero-photo{max-width:420px;margin:0 auto}}
.hero-photo .rotator-card{
  position:absolute;right:-14px;bottom:-14px;background:var(--white);color:var(--navy);
  padding:14px 18px;border-radius:3px;box-shadow:0 14px 30px rgba(0,10,40,.28);
  display:flex;align-items:center;gap:12px;min-width:200px
}
.rotator-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--gold);flex-shrink:0}
.rotator-card .name{font-weight:900;font-size:var(--fs-14);font-family:var(--font-body)}
.rotator-card .yr{font-size:var(--fs-12);color:#6a7180}
.rotator-arrows{position:absolute;left:-14px;bottom:-14px;display:flex;gap:6px}
.rotator-arrows button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(10,20,50,.5);color:#fff;font-family:var(--font-body);cursor:pointer;font-size:var(--fs-16)}
.rotator-arrows button:hover{background:var(--gold);border-color:var(--gold)}
@media (max-width:600px){.rotator-arrows{display:none}}

.photo-slot{
  position:relative;overflow:hidden;border-radius:3px;
}

/* Each rotator frame fills the slot; only the active one is shown. A frame can be a
   CSS-gradient placeholder (no asset yet), a still photo, or a looping muted video —
   mixed freely within the same rotation. See data/hero_frames.json. */
.hero-frame{position:absolute;inset:0;display:flex;align-items:flex-start}
.hero-frame[hidden]{display:none}
.hero-frame.placeholder-frame{
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 2px, transparent 2px 14px),
    linear-gradient(135deg, var(--navy), var(--deep-navy) 55%, var(--gold) 145%);
}
.hero-frame.media-frame img,.hero-frame.media-frame video{width:100%;height:100%;object-fit:cover;display:block}
.photo-slot .cap{
  background:rgba(10,14,30,.72);color:#fff;font-size:var(--fs-12);letter-spacing:.04em;
  padding:9px 12px;margin:12px;border-radius:2px;font-family:var(--font-body);
  text-transform:uppercase;font-weight:700;line-height:1.4;max-width:calc(100% - 24px);
}
.photo-slot .cap b{display:block;font-size:var(--fs-11);color:var(--gold);font-weight:700;letter-spacing:.08em;margin-bottom:3px;opacity:.85}

.page-hero{background:var(--navy);color:var(--white);padding:64px 0}
.page-hero h1{font-size:var(--fs-36);font-weight:500;margin:0}
.page-hero p{color:var(--periwinkle);max-width:640px;margin-top:12px;font-family:var(--font-body)}

/* Sections */
section{padding:64px 0}
section.tight{padding:40px 0}
.section-heading{font-size:var(--fs-32);font-weight:500;color:var(--navy);margin:0 0 20px}
.section-heading.center{text-align:center}

/* Proof band — replaces a lone About-Us paragraph with four scannable numbers */
.proof-band{border-bottom:1px solid var(--light-gray)}
.proof-lead{font-family:var(--font-editorial);font-size:var(--fs-20);font-style:italic;color:var(--navy);margin-bottom:20px}
.proof-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px}
.proof-row .stat{flex:1 1 200px;padding-right:24px;border-right:1px solid var(--light-gray)}
.proof-row .stat:last-child{border-right:none}
.proof-row .stat .num{font-family:var(--font-editorial);font-size:var(--fs-48);color:var(--navy);font-weight:500;font-variant-numeric:tabular-nums}
.proof-row .stat .lbl{font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:#625D50;margin-top:6px;font-weight:700}
.proof-row .stat .lbl em{font-style:normal;color:#b7b199}
@media (max-width:760px){.proof-row .stat{border-right:none;border-bottom:1px solid var(--light-gray);padding-bottom:18px;padding-right:0}}

/* Philosophy statement — full-bleed point-of-view section */
.philosophy{background:var(--deep-navy);color:#fff}
.philosophy .eyebrow-label{color:var(--gold)}
.philosophy h2{font-size:var(--fs-36);color:#fff;max-width:820px}
.philosophy p{max-width:640px;color:#c7cfe6;font-size:var(--fs-18);margin-top:18px;font-family:var(--font-body)}

/* Testimonial */
.quote-block{display:grid;grid-template-columns:auto 1fr;gap:24px;max-width:760px}
.quote-bar{width:5px;background:var(--gold);border-radius:3px}
.quote-block blockquote{margin:0;font-family:var(--font-editorial);font-style:italic;font-size:var(--fs-24);color:var(--navy);line-height:1.45}
.quote-block blockquote a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.quote-block .attrib{margin-top:14px;font-size:var(--fs-14);color:#6a6a60;font-weight:700;font-family:var(--font-body)}
.endorsement-disclosure{font-family:var(--font-body);font-size:var(--fs-18);line-height:1.6;color:var(--navy);margin:20px 0 0}
.compliance-review-label{font-family:var(--font-body);font-size:var(--fs-14);font-weight:700;color:var(--note-red);margin:20px 0 8px}
.quote-context{font-family:var(--font-body);font-size:var(--fs-14);font-weight:700;color:var(--navy);margin:20px 0 8px}
.aum-footnote,.ceo-disclosure-footnote{font-family:var(--font-body);font-size:var(--fs-12);font-style:italic;line-height:1.6;text-align:center;color:var(--navy);margin:20px 0 0}
.aum-footnote a,.ceo-disclosure-footnote a{text-decoration:underline;text-underline-offset:3px}
.quote-block .ceo-disclosure-footnote{grid-column:1 / -1;margin-top:0}
.press-review{border-left:3px solid var(--gold);padding:0 0 0 20px;margin:24px 0 32px}
.press-editors-note{font-family:var(--font-body);font-size:var(--fs-16);color:var(--navy);line-height:1.6;margin-top:28px}
.image-disclosure,.portfolio-tile-caption .image-disclosure{font-family:var(--font-body);font-size:var(--fs-14);line-height:1.5;color:var(--navy);margin:12px 0 16px}
.quote-block .attrib span{color:var(--gold-text);font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-11);display:block;margin-bottom:3px}
.quote-carousel{max-width:760px}
.quote-carousel .quote-link{display:block;border-radius:4px}
.quote-carousel .quote-link:focus-visible{outline:2px solid var(--navy);outline-offset:8px}
.quote-company-link{display:inline-block;margin-top:16px;color:var(--gold-text);font-size:var(--fs-14);font-weight:700}
.quote-link:hover .quote-company-link{text-decoration:underline;text-underline-offset:4px}
.quote-actions{display:grid;grid-template-columns:1fr auto;gap:8px 16px;margin:20px 0 0 29px}
.quote-controls{display:contents}
.quote-actions .quote-toggle{grid-column:1;grid-row:1;justify-self:start;align-self:start}
.quote-actions .quote-pagination{grid-column:2;grid-row:1}
.quote-actions .ceo-disclosure-footnote{grid-column:2;grid-row:2;margin-top:0}
.quote-pagination{display:flex;align-items:center;gap:14px}
.quote-controls button{min-width:44px;min-height:44px;border:1px solid var(--gold);border-radius:50%;background:transparent;color:var(--navy);font:inherit;font-size:var(--fs-24);cursor:pointer}
.quote-controls .quote-toggle{border-radius:24px;padding:0 20px;font-size:var(--fs-14);font-weight:700}
.quote-controls button:hover{background:var(--cream)}
.quote-controls button:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.quote-counter{font-size:var(--fs-14);color:var(--navy);min-width:40px;text-align:center;font-variant-numeric:tabular-nums}
.rec-box{margin-top:28px;max-width:760px;background:var(--periwinkle);border-radius:3px;padding:14px 18px;font-size:var(--fs-14);color:var(--navy)}

/* Underline sector tags — a lighter alternative to boxed pills */
.tag-row{display:flex;flex-wrap:wrap;gap:0}
.tag-row .u-tag{padding:12px 24px 12px 0;margin-right:24px;border-bottom:2px solid var(--gold);font-weight:700;font-size:var(--fs-14);letter-spacing:.03em;text-transform:uppercase;color:var(--navy)}

/* Approach / Value Creation split teaser (homepage + nav concept) */
.split-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.split-card{padding:36px 30px;border-radius:3px}
.split-card.a{background:var(--navy);color:#fff}
.split-card.b{background:var(--cream);color:var(--deep-navy)}
.split-card .tag-label{font-size:var(--fs-11);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:10px;opacity:.7;font-family:var(--font-body)}
.split-card h3{font-size:var(--fs-24);margin-bottom:10px}
.split-card.a h3{color:#fff}
.split-card p{font-size:var(--fs-14);margin:0;font-family:var(--font-body)}
.split-card.a p{color:#c7cfe6}
.split-card.b p{color:#3d4442}
@media(max-width:760px){.split-cards{grid-template-columns:1fr}.split-card{padding:30px 24px}}

/* "Partnership (noun)" definition banner — Portfolio page opener */
.definition-banner{background:var(--navy);color:#fff}
.def-inner{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start}
.def-bars{display:flex;gap:4px;height:52px;flex-shrink:0}
.def-bars i{width:5px;background:var(--gold);border-radius:2px;display:block}
.def-word{font-family:var(--font-editorial);font-size:var(--fs-32)}
.def-pos{font-family:var(--font-body);font-size:var(--fs-14);color:var(--gold);text-transform:uppercase;letter-spacing:.06em;margin-left:10px}
.def-text{margin-top:8px;font-size:var(--fs-16);color:#dfe4f0;max-width:640px;font-family:var(--font-body)}
@media (max-width:600px){.def-inner{grid-template-columns:1fr}}

/* Underline-style filters (Portfolio, Team, Press pages — one shared pattern) */
.filter-underline-row{display:flex;gap:36px;flex-wrap:wrap;margin-bottom:32px}
.filter-underline{flex:1 1 180px}
/* A row with only one filter (e.g. Team's "Group") otherwise stretches to the
   full row width via flex-grow, pushing the select's arrow far from its text. */
.filter-underline-row.single .filter-underline{flex:0 1 220px}
.filter-underline .flabel{display:block;font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.08em;color:#625D50;font-weight:700;margin-bottom:6px}
.filter-underline select,.filter-underline input[type=search]{
  width:100%;font-family:var(--font-body);font-size:var(--fs-16);color:var(--navy);font-weight:700;
  border:none;border-bottom:2px solid var(--light-gray);padding:0 22px 10px 0;background:transparent;border-radius:0;
}
.filter-underline select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2300205B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center;background-size:11px 7px;
  cursor:pointer;
}
.filter-underline select:focus,.filter-underline input[type=search]:focus{outline:none;border-color:var(--gold)}
@media (max-width:600px){
  .filter-underline-row{gap:20px}
  .filter-underline{flex:1 1 100%}
}

/* Values page — tab bar linking to the four sections on this one scrolling page */
.anchor-tabs{display:flex;flex-wrap:wrap;column-gap:28px;row-gap:12px;margin-top:16px;padding-bottom:14px;border-bottom:1px solid var(--light-gray)}
.anchor-tab{padding:0 0 6px;font-size:var(--fs-14);font-weight:700;color:#625D50;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid transparent;white-space:nowrap}
.anchor-tab:hover{color:var(--navy)}
.anchor-tab.active{color:var(--navy);border-bottom-color:var(--gold)}
@media (max-width:700px){.anchor-tabs{flex-direction:column;row-gap:14px}.anchor-tab{white-space:normal}}
.about-section{scroll-margin-top:88px;padding-top:48px;border-top:1px solid var(--light-gray)}
.about-section:first-of-type{border-top:none;padding-top:40px}
.eyebrow-label{text-transform:uppercase;letter-spacing:.2em;font-weight:700;font-size:var(--fs-12);color:var(--gold-text);margin:0 0 10px}
/* Internal "pending/placeholder" notes — deliberately red so they read as an
   open item flagged for review, not a stray design mistake. Left in place
   intentionally per Jarrad's Sept 25/26 direction; not a contrast target. */
.editorial-note{color:var(--note-red)!important}
.body-text{font-size:var(--fs-18);color:var(--text)}
.bg-light{background:#F7F8FA}
.bg-cream{background:var(--cream)}

/* Two-column split: label/heading on the left, supporting copy on the right —
   used instead of a single narrow column so full-width sections don't leave
   large unused margins on either side. */
.split{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:56px;align-items:start}
.split .body-text{max-width:640px}
@media (max-width:820px){.split{grid-template-columns:1fr;gap:20px}}

/* Focus Sectors: a lightweight tag-style list, not the stat-card component
   (which is built for a number + label + description, not a bare label). */
.sector-list{display:flex;flex-wrap:wrap;gap:16px}
.sector-pill{flex:1 1 200px;background:var(--white);border-left:4px solid var(--gold);border-radius:6px;padding:18px 22px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-14)}

/* Stat / criteria cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.stat-card{background:var(--white);border:1px solid var(--light-gray);border-radius:8px;padding:28px;text-align:center}
.stat-card .stat-num{font-size:var(--fs-36);font-weight:900;color:var(--navy);display:block}
.stat-card .stat-label{color:var(--gold-text);font-weight:700;font-size:var(--fs-14);text-transform:uppercase;letter-spacing:.08em;margin-top:6px;display:block}
.stat-card .stat-desc{margin-top:10px;font-size:var(--fs-14);color:#555}

.crit-card{background:var(--deep-navy);color:var(--white);border-radius:8px;padding:28px}
.crit-card h3{margin:0 0 14px;color:var(--gold);font-size:var(--fs-18)}
.crit-row{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.crit-row:last-child{border-bottom:none}
.crit-row span{display:block;font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.55);margin-bottom:4px}
.crit-row b{display:block;color:var(--white);font-size:var(--fs-16);font-weight:700;line-height:1.35}

/* Portfolio Growth Group — Growth / Efficiency / Talent lever cards on
   Value Creation, each with a lead partner, focus areas, and one proof metric. */
.pgg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pgg-card{background:var(--deep-navy);color:var(--white);border-radius:8px;padding:28px}
.pgg-card h3{margin:0 0 4px;color:var(--gold);font-size:var(--fs-18)}
.pgg-lead{margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12)}
.pgg-lead .name{display:block;font-weight:700;color:var(--white);font-size:var(--fs-16);text-decoration:none}
.pgg-lead .name:hover{text-decoration:underline}
.pgg-lead .title{display:block;font-size:var(--fs-12);color:rgba(255,255,255,.55);margin-top:2px}
.pgg-bullets{list-style:none;margin:0 0 18px;padding:0}
.pgg-bullets li{font-size:var(--fs-14);color:rgba(255,255,255,.85);padding:4px 0 4px 16px;position:relative}
.pgg-bullets li::before{content:"";position:absolute;left:0;top:12px;width:6px;height:6px;background:var(--gold);border-radius:50%}
.pgg-metric{padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:var(--fs-14);line-height:1.5;color:rgba(255,255,255,.9)}
.pgg-metric b{color:var(--gold);font-size:var(--fs-20);display:block;margin-bottom:2px}
.pgg-metric a{color:var(--white);text-decoration:underline}
@media (max-width:900px){.pgg-grid{grid-template-columns:1fr}}

/* Focus Sectors — icon + label + one-line blurb, per sector. Replaced the
   earlier portfolio-logo version per Dan's Sept 24 call feedback. */
.sector-list{display:grid;grid-template-columns:repeat(5,1fr);gap:28px}
.sector-block{text-align:center}
.sector-icon{width:48px;height:48px;margin:0 auto 14px}
.sector-block .u-tag{display:inline-block;padding:0;border-bottom:none;margin:0 0 10px;font-weight:700;font-size:var(--fs-16);letter-spacing:.02em;color:var(--navy)}
.sector-blurb{font-size:var(--fs-14);line-height:1.5;color:#444;font-family:var(--font-body);margin:0}
@media (max-width:900px){.sector-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.sector-list{grid-template-columns:1fr}}

/* Values TZP letters — a fixed 3-up/1-up split rather than auto-fit, which
   otherwise collapses to 2 columns at in-between widths and orphans the
   third value alone on its own row. */
/* Concept B (bordered drop-cap cards) — kept on standby, not currently used
   on the page. Concept C (below) is live as of Sept 25. */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media (max-width:700px){.values-grid{grid-template-columns:1fr}}
.value-block{border-left:4px solid var(--gold);padding-left:20px}
.value-letter{font-size:var(--fs-36);font-weight:900;color:var(--navy)}
.value-name{font-size:var(--fs-20);font-weight:700;color:var(--navy);margin:4px 0 12px}
.value-block ul{margin:0;padding-left:18px;font-size:var(--fs-16);color:#333}
.value-block li{margin-bottom:6px}

/* Concept C (pull-quote manifesto) — live as of Sept 25. Magazine-style
   columns with hairline dividers; each value gets a kicker, a distilled
   pull-quote, then the supporting bullets. */
.vc-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:36px;padding-bottom:32px}
.vc-col{padding:0 30px}
.vc-col:first-child{padding-left:0}
.vc-col:last-child{padding-right:0}
.vc-col:not(:first-child){border-left:1px solid var(--light-gray)}
.vc-kicker{font-family:var(--font-body);font-weight:900;font-size:var(--fs-14);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin-bottom:14px;text-align:center}
.vc-quote{font-family:var(--font-editorial);font-style:italic;font-size:var(--fs-24);color:var(--navy);line-height:1.3;margin:0 0 22px}
.vc-col ul{margin:0;padding:0;list-style:none}
.vc-col li{font-size:var(--fs-16);color:#555;font-family:var(--font-body);padding:6px 0 6px 14px;position:relative;line-height:1.6}
.vc-col li::before{content:"\2013";position:absolute;left:0;color:var(--gold)}
@media (max-width:760px){
  .vc-grid{grid-template-columns:1fr;gap:28px}
  .vc-col{padding:0 !important;border-left:none !important;border-top:1px solid var(--light-gray);padding-top:24px !important}
  .vc-col:first-child{border-top:none;padding-top:0 !important}
}

/* Filters */
.filter-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:32px}
.filter-bar select,.filter-bar input[type=search]{
  padding:10px 14px;border:1px solid var(--light-gray);border-radius:6px;font-family:inherit;font-size:var(--fs-14);background:var(--white);
  max-width:100%;
}
.filter-bar input[type=search]{flex:1;min-width:200px}
@media (max-width:600px){
  .filter-bar{flex-direction:column}
  .filter-bar select,.filter-bar input[type=search]{width:100%;min-width:0}
}

/* Portfolio grid */
.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.portfolio-card{border:1px solid var(--light-gray);border-radius:8px;padding:24px;transition:box-shadow .15s;background:var(--white)}
.portfolio-card:hover{box-shadow:0 4px 16px rgba(0,32,91,.1)}
.portfolio-card .logo-wrap{height:64px;display:flex;align-items:center;margin-bottom:14px}
.portfolio-card .logo-wrap img{max-height:64px;max-width:200px;object-fit:contain}
.portfolio-card .logo-wrap .logo-fallback{background:var(--periwinkle);color:var(--navy);padding:8px 14px;border-radius:4px;font-size:var(--fs-14);font-weight:900}
.portfolio-card h2{font-size:var(--fs-18);margin:0 0 6px;color:var(--navy)}
.badge{display:inline-block;font-size:var(--fs-11);font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:20px;margin-bottom:8px}
.badge.current{background:var(--periwinkle);color:var(--navy)}
.badge.exited{background:var(--light-gray);color:#555}
.tag{display:inline-block;font-size:var(--fs-12);color:var(--gold-text);font-weight:700;margin-bottom:8px}
.portfolio-card p{font-size:var(--fs-14);color:#444;margin:0 0 12px}
.card-link{font-size:var(--fs-14);font-weight:700;color:var(--navy)}
.card-link:hover{color:var(--gold)}

/* Full-bleed photo tile — the Stripes.co/BRUNT-style grid card (v3 concept,
   built out as real site code per Jarrad's Oct 5 call to apply it to Assos and
   DanceOne). A company opts in by setting `tile_photo` (full-bleed square
   lifestyle photo) and, optionally, `tile_logo` (a white or white-recolored
   version of its logo — the flat-white recolor approach used for Xero's mockup
   when no true white file exists). No company has these fields live yet; the
   moment they do, this renders automatically in place of the standard card
   above, same grid, same column width. */
.portfolio-tile{border-radius:8px;overflow:hidden;transition:box-shadow .15s;background:var(--white);display:block}
.portfolio-tile:hover{box-shadow:0 4px 16px rgba(0,32,91,.14)}
.portfolio-tile-photo{position:relative;aspect-ratio:1/1;background:var(--deep-navy);overflow:hidden}
.portfolio-tile-photo > .responsive-photo{display:block;width:100%;height:100%}
.portfolio-tile-photo img{width:100%;height:100%;object-fit:cover;display:block}
/* Size the visible logo artwork, after transparent margins are cropped.
   A shared responsive box gives wide and stacked marks comparable visual weight. */
.portfolio-tile-logo-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:62%;height:30%;padding:0;z-index:2;background:radial-gradient(ellipse at center,rgba(0,0,0,.28),transparent 72%)}
.portfolio-tile-logo-wrap .portfolio-tile-logo{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;filter:brightness(0) invert(1) drop-shadow(0 1px 4px rgba(0,0,0,.2))}
.portfolio-tile-logo-wrap.logo-paper{background:none;mix-blend-mode:screen}
.portfolio-tile-logo-wrap.logo-paper .portfolio-tile-logo{filter:grayscale(1) invert(1) brightness(6) contrast(3)}
.portfolio-tile[data-name^="kindred bravely"] .portfolio-tile-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.18) 50%,transparent 75%)}
.portfolio-tile[data-name="lac group"] .portfolio-tile-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:rgba(0,0,0,.12)}
.portfolio-tile-badge{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);margin:0;background:rgba(255,255,255,.92);color:var(--navy)}
.portfolio-tile-badge.exited{background:rgba(255,255,255,.8);color:#555}
.portfolio-tile-caption{padding:16px 2px 4px}
.portfolio-tile-caption h2{font-size:var(--fs-18);margin:0 0 6px;color:var(--navy)}
.portfolio-tile-caption p{font-size:var(--fs-14);color:#444;margin:0}

.portfolio-tile[data-status="Exited"] .portfolio-tile-photo:not(.portfolio-brand-visual):before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,15,35,.04),rgba(0,15,35,.28) 52%,rgba(0,15,35,.12));z-index:1}
.portfolio-tile[data-status="Exited"] .portfolio-tile-badge{z-index:3}
.portfolio-brand-visual{position:relative;isolation:isolate;background-color:var(--brand-base,#102B49);background-image:radial-gradient(ellipse at 88% 14%,var(--brand-glow,#3E6884) 0%,transparent 55%),repeating-linear-gradient(135deg,transparent 0 44px,rgba(255,255,255,.055) 45px 46px,transparent 47px 89px)}
.portfolio-brand-visual:before{content:"";position:absolute;width:90%;aspect-ratio:1;right:-33%;top:-30%;border:1px solid rgba(255,255,255,.25);border-radius:50%;box-shadow:0 0 0 38px rgba(255,255,255,.055),0 0 0 80px rgba(255,255,255,.035);z-index:-1}
.portfolio-brand-visual:after{content:"";position:absolute;width:50%;height:28%;left:-12%;bottom:10%;border:1px solid rgba(255,255,255,.15);transform:rotate(-30deg);z-index:-1}
.brand-navy{--brand-base:#102D4D;--brand-glow:#397792}
.brand-teal{--brand-base:#163D46;--brand-glow:#4A9299}
.brand-slate{--brand-base:#293C4E;--brand-glow:#758492}
.brand-amber{--brand-base:#633920;--brand-glow:#CE8543}
.brand-azure{--brand-base:#164B68;--brand-glow:#54A9C1}
.brand-plum{--brand-base:#442D4C;--brand-glow:#8E667D}

/* Team grid */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px}
.team-card{text-align:left}
.team-card .photo{width:100%;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:var(--light-gray);margin-bottom:12px;position:relative}
.team-card .photo img{width:100%;height:100%;object-fit:cover}
.team-card .photo.placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy),var(--deep-navy));color:var(--gold);font-size:var(--fs-32);font-weight:900}
/* Baby-photo hover flip: hovering (or keyboard-focusing) a team card crossfades the adult
   headshot to that person's childhood photo. Desktop/mouse only by design — see
   data/team.json's baby_photo field, populated for the people who have one on file. */
.team-card .photo-baby{position:absolute;inset:0;opacity:0;transition:opacity .35s ease}
.team-card .photo-main{transition:opacity .35s ease}
.team-card:hover .photo-baby,.team-card:focus-visible .photo-baby{opacity:1}
.team-card:hover .photo:has(.photo-baby) .photo-main,.team-card:focus-visible .photo:has(.photo-baby) .photo-main{opacity:0}
.team-card h2{font-size:var(--fs-16);margin:0 0 2px;color:var(--navy)}
.team-card .title{font-size:var(--fs-14);color:var(--gold-text);font-weight:700}
.team-card[hidden]{display:none}
@media (max-width:600px){
  .team-grid{grid-template-columns:1fr;gap:0}
  .team-card:not([hidden]){display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--light-gray)}
  .team-card .photo{width:60px;height:60px;flex-shrink:0;border-radius:50%;margin-bottom:0}
  .team-card .photo.placeholder{font-size:var(--fs-20)}
  .team-card .info{min-width:0}
  .team-card h2{font-size:var(--fs-16);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* Bio page */
.bio-header{display:flex;gap:32px;flex-wrap:wrap;align-items:flex-start}
.bio-photo{width:200px;height:200px;border-radius:8px;overflow:hidden;background:var(--light-gray);flex-shrink:0}
.bio-photo img{width:100%;height:100%;object-fit:cover}
.bio-photo.placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy),var(--deep-navy));color:var(--gold);font-size:var(--fs-60);font-weight:900}
.bio-meta h1{font-size:var(--fs-32);color:var(--navy);margin:0 0 6px}
.bio-meta .title{font-size:var(--fs-16);color:var(--gold-text);font-weight:700;margin-bottom:10px}
.bio-meta .email{font-size:var(--fs-14)}
.linkedin-badge{margin-top:8px}
.linkedin-badge a{display:inline-flex;align-items:center}
.linkedin-badge img{display:block;height:19px;width:auto;opacity:.9;transition:opacity .15s}
.linkedin-badge a:hover img{opacity:1}
.bio-body{margin-top:32px;max-width:760px;font-size:var(--fs-16);font-family:var(--font-body)}
.bio-body p{margin-bottom:16px}

.bio-facts{margin-top:28px;max-width:420px;display:flex;flex-wrap:wrap;gap:28px;padding-top:20px;border-top:1px solid var(--light-gray)}
.bio-facts .bio-fact{flex:1 1 260px}
.bio-facts .flabel{display:block;font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.08em;color:var(--gold-text);font-weight:700;margin-bottom:6px;font-family:var(--font-body)}
.bio-facts .fval{font-size:var(--fs-14);color:#333;font-family:var(--font-body)}
.bio-facts .fval.edu-list{display:flex;flex-direction:column;gap:4px}
.bio-facts .edu-line{display:block}

.deals-list{margin-top:32px}
.deals-list ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:12px 0 0}
.deals-list li{background:var(--periwinkle);color:var(--navy);font-size:var(--fs-14);font-weight:700;padding:6px 14px;border-radius:20px}

.bio-press{margin-top:32px}

/* Optional personal publications use local brand artwork and ordinary links. */
.bio-newsletter{max-width:760px;margin-top:40px;padding:32px;background:var(--white);color:var(--navy);border:1px solid var(--light-gray);border-radius:8px;font-family:var(--font-body)}
.newsletter-kicker{font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text);margin:0 0 20px}
.bio-newsletter h2{margin:0;display:flex;align-items:center;gap:16px;max-width:440px}
.bio-newsletter h2 img{display:block;height:auto}
.bio-newsletter .newsletter-brand-icon{width:56px;flex:0 0 56px}
.bio-newsletter .newsletter-wordmark{width:calc(100% - 72px);max-width:350px;min-width:0}
.newsletter-description{font-size:var(--fs-16);line-height:1.6;color:#40434a;margin:20px 0 26px;max-width:580px}
.newsletter-edition{display:block;text-decoration:none;color:var(--navy);padding:22px 0;border-top:1px solid var(--light-gray);transition:background-color .15s}
.newsletter-edition:last-child{border-bottom:1px solid var(--light-gray)}
.newsletter-edition:hover{background:#fafbfe;color:var(--navy)}
.newsletter-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:var(--fs-12);line-height:1.6;color:var(--gold-text);margin:0 0 10px}
.newsletter-badge{border:1px solid var(--light-gray);padding:1px 7px;border-radius:20px;font-size:var(--fs-11);letter-spacing:.05em;text-transform:uppercase;color:var(--navy)}
.newsletter-edition h3{font-family:var(--font-body);font-size:var(--fs-20);line-height:1.4;font-weight:700;margin:0 0 12px;max-width:560px}
.newsletter-read{display:inline-block;font-size:var(--fs-14);line-height:1.5;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.newsletter-edition:hover .newsletter-read,.newsletter-all:hover{color:var(--gold-text)}
.newsletter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 24px;margin-top:26px}
.newsletter-all{color:var(--navy);font-weight:700;font-size:var(--fs-14)}
.bio-newsletter a:focus-visible{outline:2px solid var(--navy);outline-offset:5px}
.bio-media{padding:0;margin-top:36px;max-width:760px;font-family:var(--font-body)}
.bio-media-list{list-style:none;padding:0;margin:12px 0 0}
.bio-media-list li{padding:16px 0;border-bottom:1px solid var(--light-gray)}
.bio-media-meta{display:block;color:var(--gold-text);font-size:var(--fs-12);font-weight:700;margin-bottom:6px}
.bio-media-list a{display:block;color:var(--navy);font-size:var(--fs-16);font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.bio-media-list a:hover{color:var(--gold)}
@media(max-width:600px){
  .bio-newsletter{padding:24px}
  .newsletter-edition h3{font-size:var(--fs-18)}
  .newsletter-meta{gap:6px}
  .newsletter-actions{align-items:flex-start;flex-direction:column}
  .bio-newsletter h2{gap:12px}
  .bio-newsletter .newsletter-brand-icon{width:44px;flex-basis:44px}
  .bio-newsletter .newsletter-wordmark{width:calc(100% - 56px)}
  .bio-newsletter .btn-cta-light{font-size:var(--fs-12);padding:11px 16px;max-width:100%}
}

.bio-press-list{list-style:none;padding:0;margin:12px 0 0;max-width:600px}
.bio-press-list li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--light-gray);font-size:var(--fs-14)}
.bio-press-list a{font-weight:700;color:var(--navy)}
.bio-press-list a:hover{color:var(--gold)}
.portco-recognition-title{font-weight:700;color:var(--navy)}
.bio-press-date{color:var(--gold-text);font-size:var(--fs-12);font-weight:700;white-space:nowrap;font-family:var(--font-body)}
@media (max-width:600px){
  .portco-featured-press .bio-press-list li,.portco-recognition .bio-press-list li{flex-direction:column;gap:4px}
  .portco-featured-press .bio-press-date,.portco-recognition .bio-press-date{white-space:normal}
}

.bio-approach{margin-top:36px;max-width:760px}

.bio-personal{margin-top:36px;max-width:640px;padding-top:28px;border-top:1px solid var(--light-gray)}

/* Portfolio-page social feed placeholder — see templates/portfolio_detail.html.
   Renders only when a company has c.social_feed in data/portfolio.json (Kindred Bravely,
   Finzly today). Sample tiles stand in for a real embedded feed until a vendor is chosen. */
.social-feed-block{margin-top:32px;max-width:640px;padding-top:28px;border-top:1px solid var(--light-gray)}
.social-feed-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.social-feed-note{font-size:var(--fs-12);margin:6px 0 16px;font-family:var(--font-body)}
.social-feed-grid{display:grid;gap:10px}
.social-feed-grid.ig{grid-template-columns:repeat(3,1fr)}
.social-tile{background:var(--light-gray);border-radius:3px}
.ig-tile{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.ig-tile span{font-size:var(--fs-11);color:#8a8f9a;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-body);font-weight:700}
.social-feed-grid.li{grid-template-columns:1fr}
.li-tile{padding:14px;background:var(--white);border:1px solid var(--light-gray)}
.li-tile-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.li-avatar{width:32px;height:32px;border-radius:50%;background:var(--light-gray);flex-shrink:0}
.li-lines{display:flex;flex-direction:column;gap:5px;flex:1}
.li-lines span{display:block;height:7px;border-radius:4px;background:var(--light-gray)}
.li-lines span:first-child{width:40%}
.li-lines span:last-child{width:25%}
.li-body{display:block;height:44px;border-radius:3px;background:var(--light-gray)}
@media (max-width:500px){.social-feed-grid.ig{grid-template-columns:repeat(3,1fr);gap:6px}}
.interest-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.interest-pill{background:#F7F8FA;border:1px solid var(--light-gray);color:var(--navy);font-size:var(--fs-12);font-weight:700;padding:6px 14px;border-radius:20px;font-family:var(--font-body)}

/* Portfolio detail */
.detail-header{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.detail-logo{max-height:84px;max-width:260px;object-fit:contain}
.detail-logo[src*="advocate-original-v2.jpg"]{max-height:130px}
.detail-logo[src*="lush-decor-logo-black.webp"]{max-height:130px}
.detail-logo[src*="results-roofing-logo-color-v1.webp"]{max-height:130px}
.related-team{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px}
.related-team a{background:#F7F8FA;border:1px solid var(--light-gray);border-radius:20px;padding:8px 16px;font-size:var(--fs-14);font-weight:700;color:var(--navy)}
.related-team a:hover{background:var(--periwinkle)}

/* Board portraits use the approved full-resolution team photos. A larger,
   head-and-shoulders crop keeps faces legible. Reveal them immediately without
   moving or fading the photo, so it is crisp as soon as a name is hovered. */
.team-hover{position:relative;display:inline-flex}
.team-hover-card{position:absolute;left:calc(50% - 44px);top:calc(100% + 10px);width:88px;height:88px;border-radius:50%;overflow:hidden;border:3px solid var(--white);background:var(--white);box-shadow:0 8px 20px rgba(0,10,40,.18);opacity:0;visibility:hidden;pointer-events:none;z-index:5}
.team-hover-card img{position:absolute;left:-20%;top:0;width:140%;height:140%;max-width:none;object-fit:cover;object-position:center top;display:block}
.team-hover:hover .team-hover-card,.team-hover:focus-visible .team-hover-card{opacity:1;visibility:visible}

/* "At a glance" fact strip */
.portco-facts{display:flex;flex-wrap:wrap;gap:36px;margin-top:24px;padding:18px 0;border-top:1px solid var(--light-gray);border-bottom:1px solid var(--light-gray)}
.portco-fact{display:flex;flex-direction:column;gap:4px}
.portco-fact-label{font-size:var(--fs-11);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#625D50}
.portco-fact-value{font-size:var(--fs-16);font-weight:700;color:var(--navy);text-decoration:none}
a.portco-fact-value:hover{color:var(--gold-text);text-decoration:underline;text-decoration-color:var(--gold)}
.portco-fact-value.static{color:var(--navy)}
.portco-fact-value.team-names{display:inline-flex;flex-wrap:wrap;gap:0}
.portco-fact-value.team-names a{color:var(--navy);text-decoration:none}
.portco-fact-value.team-names a:hover{color:var(--gold-text);text-decoration:underline;text-decoration-color:var(--gold)}
/* Hero / lifestyle image */
.portco-hero{margin-top:28px;border-radius:8px;overflow:hidden;line-height:0}
.portco-hero img{width:100%;max-height:440px;object-fit:cover;display:block}
.portco-hero-expanded img{height:clamp(240px,34vw,440px)}
/* DCI's supplied hero is 900px wide; retain its native display resolution. */
.portco-hero:has(img[src*="dynamic-communities-hero-v1.jpg"]){max-width:900px;margin-left:auto;margin-right:auto}
.portco-hero:has(img[src*="results-roofing-hero-v1.webp"]){max-width:1080px;margin-left:auto;margin-right:auto}
.portco-hero-brand{height:clamp(240px,30vw,360px);display:flex;align-items:center;justify-content:center;line-height:normal}
.portco-hero-brand .portco-brand-logo{display:flex;align-items:center;justify-content:center;padding:24px 36px;width:min(65%,420px)}
.portco-hero-brand .portco-brand-logo img{width:100%;height:auto;max-height:140px;max-width:340px;object-fit:contain;filter:brightness(0) invert(1)}
.portco-hero-brand .portco-brand-logo img[src*="advocate-original-v2.jpg"]{transform:scale(1.55)}
.portco-hero-brand.brand-slate .portco-brand-logo img{max-width:250px;max-height:131px}
.portco-hero-brand .portco-brand-logo.logo-paper{mix-blend-mode:screen}
.portco-hero-brand .portco-brand-logo.logo-paper img{filter:grayscale(1) invert(1) brightness(6) contrast(3)}
@media(max-width:600px){.portco-hero-expanded img{height:240px}.portco-hero-brand .portco-brand-logo{padding:20px 24px;width:78%}.portco-facts{gap:22px 28px}}

/* Social icon row */
.portco-social{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.portco-social a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#F7F8FA;border:1px solid var(--light-gray);color:var(--navy)}
.portco-social a:hover{background:var(--navy);border-color:var(--navy);color:var(--white)}
.portco-social a.portco-social-labeled{width:auto;border-radius:24px;padding:0 14px;gap:8px;font-size:var(--fs-14)}
/* Preserve the complete product lineup in the supplied wide banner. */
.portco-hero-expanded img[src*="fragrance-group-hero-v1.webp"]{height:auto;max-height:none}

/* Press */
.press-list{list-style:none;padding:0;margin:0}
.press-item{padding:18px 0;border-bottom:1px solid var(--light-gray);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.press-item[hidden]{display:none}
.press-item .date{color:var(--gold-text);font-weight:700;font-size:var(--fs-14);min-width:100px}
.press-item .title{font-weight:700;color:var(--navy)}
.press-item .outlet{display:block;font-weight:400;font-size:var(--fs-12);color:#707070;margin-top:2px}
.press-list-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:20px}
#press-count-note{font-size:var(--fs-14);color:#707070;margin:0}
.btn-outline-navy{display:inline-block;border:1.5px solid var(--navy);color:var(--navy);font-weight:700;padding:9px 22px;border-radius:4px;font-size:var(--fs-14);text-transform:uppercase;letter-spacing:.05em;background:none;cursor:pointer;font-family:inherit}
.btn-outline-navy:hover{background:var(--navy);color:var(--white)}
.btn-outline-navy[hidden]{display:none}

/* Footer */
.site-footer{background:var(--deep-navy);color:var(--periwinkle);padding:56px 0 32px;margin-top:64px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.footer-logo img{height:81px;width:auto;margin-bottom:16px}
.site-footer h2{font-family:var(--font-body);font-weight:700;color:var(--white);font-size:var(--fs-14);text-transform:uppercase;letter-spacing:.1em;margin:0 0 14px}
.site-footer a{display:block;font-size:var(--fs-14);margin-bottom:8px;color:var(--periwinkle)}
.site-footer .footer-address{font-size:var(--fs-14)}
.site-footer a:hover{color:var(--gold)}
.footer-bottom{margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:var(--fs-12);color:var(--slate-blue);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr}}

/* CTA buttons — outline by default, fill gold on hover while keeping the border.
   -cta is for dark/navy backgrounds (white border/text); -cta-light is for
   white/cream backgrounds (navy border/text). Replaces the old .btn/.btn-outline
   (solid-gold-that-disappears-on-hover) pattern sitewide per Sept 25 feedback. */
.btn-cta{display:inline-block;background:transparent;border:1.5px solid var(--white);color:var(--white);font-weight:700;padding:11px 26px;border-radius:4px;font-size:var(--fs-14);text-transform:uppercase;letter-spacing:.05em;transition:background-color .15s ease}
.btn-cta:hover{background:var(--gold);border-color:var(--white);color:var(--white)}
.btn-cta-light{display:inline-block;background:transparent;border:1.5px solid var(--navy);color:var(--navy);font-weight:700;padding:11px 26px;border-radius:4px;font-size:var(--fs-14);text-transform:uppercase;letter-spacing:.05em;transition:background-color .15s ease}
.btn-cta-light:hover{background:var(--gold);border-color:var(--navy);color:var(--navy)}
/* Legacy aliases so any remaining .btn/.btn-outline usage still renders correctly */
.btn{display:inline-block;background:transparent;border:1.5px solid var(--navy);color:var(--navy);font-weight:700;padding:11px 26px;border-radius:4px;font-size:var(--fs-14);text-transform:uppercase;letter-spacing:.05em}
.btn:hover{background:var(--gold);border-color:var(--navy);color:var(--navy)}
.btn-outline{display:inline-block;border:1.5px solid var(--white);color:var(--white);font-weight:700;padding:11px 26px;border-radius:4px;font-size:var(--fs-14);text-transform:uppercase;letter-spacing:.05em}
.btn-outline:hover{background:var(--gold);border-color:var(--white);color:var(--white)}

.crumb{font-size:var(--fs-14);color:#707070;margin-bottom:20px}
.crumb a{color:var(--navy);font-weight:700}

/* Prev/Next pager — bottom of team bio and portfolio detail pages, so
   someone can step through the grid without returning to the list page. */
.detail-pager{display:flex;justify-content:space-between;align-items:stretch;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid #E5E5E5;flex-wrap:wrap}
.detail-pager-link{display:flex;flex-direction:column;gap:4px;text-decoration:none;max-width:280px}
.detail-pager-link.next{text-align:right;margin-left:auto}
.detail-pager-label{font-size:var(--fs-12);font-weight:700;color:var(--gold-text);text-transform:uppercase;letter-spacing:.1em}
.detail-pager-name{font-size:var(--fs-16);font-weight:700;color:var(--navy)}
.detail-pager-link:hover .detail-pager-name{text-decoration:underline}


/* Confirmed board memberships: current investments and exited investments. */
.board-representation li.board-pill{border:1px solid transparent}
.board-representation li.board-pill-exited{background:#fff;border-color:var(--gold);color:var(--navy)}
.board-pill a{color:inherit;display:block}
.board-pill a:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
.board-legend{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:var(--fs-14);line-height:1.5;color:var(--navy);margin:12px 0}
.board-legend>span{display:flex;align-items:center;gap:8px}
.board-legend-swatch{display:inline-block;flex-shrink:0;width:22px;height:12px;border-radius:20px;border:1px solid transparent}
.board-legend-current{background:var(--periwinkle)}
.board-legend-exited{background:#fff;border-color:var(--gold)}

/* Full legal text: readable sections and links without affecting other pages. */
.legal-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:36px;font-size:var(--fs-14)}
.legal-nav a,.legal-copy a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.legal-nav a:focus-visible,.legal-copy a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.legal-copy h2{font-size:var(--fs-24);line-height:1.3;color:var(--navy);margin:48px 0 20px;scroll-margin-top:24px}
.legal-copy h2:first-child{margin-top:0}
.legal-copy h3{font-family:var(--font-body);font-size:var(--fs-18);font-weight:700;line-height:1.4;color:var(--navy);margin:28px 0 12px}
.legal-copy p{line-height:1.65}
.legal-copy ul{padding-left:24px;margin:12px 0 24px}
.legal-copy li{margin-bottom:8px}


/* Keep the top signage outside the hero viewport without altering the original photo. */
.portco-hero-expanded.portco-hero-crop-top{height:clamp(240px,34vw,440px)}
.portco-hero-expanded.portco-hero-crop-top img{height:calc(clamp(240px,34vw,440px) * 1.4);max-height:none;margin-top:calc(clamp(240px,34vw,440px) * -.4);object-position:50% 100%}

.portco-hero:has(img[src*="lac-architectural-photo-v3.webp"]){width:min(100%,980px);margin-inline:auto;}

/* Interim company tiles: subtle contrast for centered white marks. */
.portfolio-tile-photo:has(.portfolio-photo[src*="/portfolio/interim-v1/"])::after{content:"";position:absolute;inset:0;pointer-events:none;background:rgba(0,15,35,.14);z-index:1}

/* October 13: centered homepage figures without an introductory caption. */
.proof-band{padding:42px 0 40px}
.proof-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-width:1000px;margin:0 auto;gap:0;text-align:center}
.proof-row .stat{min-width:0;padding:10px 24px;border-right:1px solid var(--light-gray)}
.proof-row .stat:last-child{border-right:0}
.proof-row .stat .num{line-height:1.1;margin-bottom:9px}
.board-status-group{margin-top:22px}.board-status-group h3{font-family:var(--font-body);font-size:var(--fs-14);font-weight:900;color:var(--navy);margin:0 0 10px}
.board-status-group ul{margin:0}
@media(max-width:640px){.proof-band{padding:28px 0}.proof-row{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.proof-row .stat{padding:8px}.proof-row .stat .num{font-size:var(--fs-28)}.proof-row .stat .lbl{font-size:var(--fs-11);line-height:1.45}}

/* Preserve the existing label appearance with a semantic section heading. */
.board-representation > h2.eyebrow-label{font-family:var(--font-body);font-size:var(--fs-12);font-weight:700;}

/* Accessible links and small labels on the existing dark and cream panels. */
.crit-card .card-link{color:#fff}
.crit-card .card-link:hover{color:var(--gold)}
.bg-cream .eyebrow-label{color:#69523c}
