:root{
  --ink:#171412;
  --ink-soft:#3A332C;
  --bronze:#9C7440;
  --gold:#C6A46B;
  --gold-deep:#9A7200;
  --blush:#ECD2B7;
  --paper:#F7F4EF;
  --paper-deep:#E9E2DC;
  --obsidian:#12100E;
  --marble-wine:#3d0f18;
  --display: "ivypresto-display-1","ivypresto-display-2",Georgia,serif;
  --text: "freight-text-pro-1","freight-text-pro-2",Georgia,serif;
  --ease: cubic-bezier(.4,0,.2,1);
  --ease-reveal: var(--ease);
  --ease-snap: var(--ease);
  --t-fast: 0.2s;
  --t-slow: 0.7s;
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --space-6: 6.5rem;
  --space-7: 10.5rem;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  font-family:var(--text);
  background:var(--paper);
  color:var(--ink);
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  cursor:default;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
h1,h2,h3{font-family:var(--display); font-weight:400; letter-spacing:-0.01em; text-wrap:balance;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1320px; margin:0 auto; padding:0 var(--space-4);}
.eyebrow{
  font-family:var(--text);
  font-size:0.8rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--bronze);
  font-weight:600;
}

/* ---------- REVEAL SYSTEM ---------- */
[data-reveal]{
  --p:0;
  opacity:var(--p);
  transform:translateY(calc((1 - var(--p)) * 36px));
  transition: opacity var(--t-slow) var(--ease-reveal), transform var(--t-slow) var(--ease-reveal);
}
[data-reveal].is-visible{ --p:1; }
[data-reveal-group] [data-reveal]:nth-child(1){transition-delay:0s;}
[data-reveal-group] [data-reveal]:nth-child(2){transition-delay:.08s;}
[data-reveal-group] [data-reveal]:nth-child(3){transition-delay:.16s;}
[data-reveal-group] [data-reveal]:nth-child(4){transition-delay:.24s;}

.reveal-media{ position:relative; overflow:hidden; background:var(--obsidian); }
.reveal-media img{
  display:block; width:100%; height:100%; object-fit:cover;
  transform:scale(1.18);
  transition: transform var(--t-slow) var(--ease-reveal);
}
.reveal-media .curtain{
  position:absolute; inset:0; background:var(--gold);
  transform-origin:left; transform:scaleX(1);
  transition:transform var(--t-slow) var(--ease-reveal);
  z-index:2;
}
.reveal-media.is-visible .curtain{ transform:scaleX(0); }
.reveal-media.is-visible img{ transform:scale(1); }

@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
  .reveal-media .curtain{ display:none; }
  .reveal-media img{ transform:none !important; transition:none !important; }
  .pillar-detail .side .lens-no{ opacity:0.14 !important; transform:none !important; transition:none !important; }
}

/* ---------- HEADING RISE ---------- */
.heading-rise{overflow:hidden;display:block;}
.heading-rise .rise-inner{display:inline-block;transform:translateY(110%);transition:transform var(--t-slow) var(--ease-reveal);will-change:transform;}
.heading-rise.is-visible .rise-inner{transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .heading-rise .rise-inner{transform:none;transition:none;}
}

/* ---------- CURSOR SPOTLIGHT (desktop only) ---------- */
.cursor-spotlight{
  position:fixed; top:0; left:0; width:420px; height:420px;
  border-radius:50%; pointer-events:none; z-index:1;
  background:radial-gradient(circle, rgba(198,164,107,0.11), rgba(198,164,107,0) 70%);
  mix-blend-mode:screen;
  transform:translate(-50%,-50%);
  opacity:0;
  transition:opacity var(--t-fast) ease;
  will-change:transform;
}
.cursor-spotlight.is-active{ opacity:1; }
@media (hover:none), (prefers-reduced-motion: reduce){ .cursor-spotlight{ display:none; } }

/* ---------- NAV ---------- */
header.site{
  position:fixed; top:0; left:0; right:0; z-index:50; padding:var(--space-3) 0;
  background:linear-gradient(180deg, rgba(18,16,14,0.7), rgba(18,16,14,0.35) 80%, transparent);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
header.site .wrap{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:0.7rem;}
.brand img{ width:30px; height:30px; opacity:0.95; }
.wordmark{ font-family:var(--display); font-size:1.6rem; color:var(--paper); letter-spacing:0.02em; }
.wordmark span{color:var(--gold);}
nav.primary{display:flex; gap:var(--space-4); align-items:center;}
nav.primary a{
  font-size:0.82rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--paper); opacity:0.85; transition:opacity var(--t-fast) ease;
}
nav.primary a:hover, nav.primary a.is-current{opacity:1; color:var(--gold);}
.magnetic{ display:inline-block; will-change:transform; transition:transform var(--t-fast) var(--ease-snap); }
nav.primary a.cta.magnetic{
  border:1px solid var(--gold); padding:0.6rem 1.2rem; border-radius:2px; opacity:1;
}

/* ---------- HERO (homepage four-world hero) ---------- */
.hero{ position:relative; min-height:100vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--obsidian); }
.hero-bg{ position:absolute; inset:0; }
.hero-bg .world{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; animation:worldCycle 28s infinite; transform:scale(1.08);
}
.hero-bg .world::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(18,16,14,0.30) 0%, rgba(18,16,14,0.55) 55%, rgba(18,16,14,0.94) 100%),
    linear-gradient(0deg, rgba(156,116,64,0.16), rgba(156,116,64,0.16));
  mix-blend-mode:multiply;
}
.world.w1{ background-image:url('brand/pillar-leadership.jpg'); animation-delay:0s; }
.world.w2{ background-image:url('brand/pillar-transformation.jpg'); animation-delay:7s; }
.world.w3{ background-image:url('brand/pillar-culture.jpg'); animation-delay:14s; }
.world.w4{ background-image:url('brand/pillar-community.jpg'); animation-delay:21s; }
@keyframes worldCycle{
  0%, 2%{opacity:0; transform:scale(1.08);}
  4%, 23%{opacity:1; transform:scale(1);}
  27%, 100%{opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .hero-bg .world{animation:none; opacity:0;}
  .hero-bg .world.w1{opacity:1; transform:scale(1);}
}

.hero-content{ position:relative; z-index:2; width:100%; padding-bottom:var(--space-6); padding-top:6rem; }
.hero-content .wrap{max-width:1320px;}
.hero-label{color:var(--gold); margin-bottom:var(--space-3);}
.hero h1{
  color:var(--paper); font-size:clamp(2.6rem, 6vw, 5.2rem); line-height:1.05;
  max-width:16ch; margin-bottom:var(--space-3);
}
.hero p.lede{ color:var(--blush); font-size:1.15rem; max-width:42ch; margin-bottom:var(--space-4); }
.hero-actions{display:flex; gap:var(--space-3); align-items:center;}
.btn{
  display:inline-block; font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:1rem 1.8rem; border-radius:2px; transition:background var(--t-fast) ease, border-color var(--t-fast) ease, color var(--t-fast) ease;
}
.btn-primary{background:var(--gold); color:var(--ink);}
.btn-primary:hover{background:var(--paper);}
.btn-ghost{border:1px solid rgba(247,244,239,0.4); color:var(--paper);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold);}

.hero-worlds-index{ position:absolute; right:var(--space-4); bottom:var(--space-6); z-index:2; display:flex; flex-direction:column; gap:0.9rem; }
.hero-worlds-index span{
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  color:rgba(247,244,239,0.45); padding-left:1rem; border-left:2px solid rgba(247,244,239,0.25);
  transition:color var(--t-fast) ease, border-color var(--t-fast) ease;
}
.hero-worlds-index span.active{ color:var(--gold); border-color:var(--gold); }

/* ---------- INNER PAGE HERO (About / Pillar detail pages) ---------- */
.page-hero,e{ position:relative; min-height:64vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--obsidian);
  color:var(--paper);
}
.page-hero .bg{ position:absolute; inset:0; background-size:cover; background-position:center; }
.page-hero .bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,16,14,0.25) 0%, rgba(18,16,14,0.55) 55%, rgba(18,16,14,0.92) 100%);
}
.page-hero-content{ position:relative; z-index:2; width:100%; padding:8rem 0 var(--space-6); }
.breadcrumb{ display:flex; align-items:center; gap:0.6rem; margin-bottom:var(--space-3); font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--blush); }
.breadcrumb a{ opacity:0.75; transition:opacity var(--t-fast) ease; }
.breadcrumb a:hover{ opacity:1; color:var(--gold); }
.breadcrumb .sep{ opacity:0.4; }
.page-hero h1{ font-size:clamp(2.4rem, 5.4vw, 4.4rem); line-height:1.08; max-width:20ch; margin-bottom:var(--space-3); }
.page-hero p.lede{ color:var(--blush); font-size:1.1rem; max-width:48ch; }

/* ---------- MARQUEE ---------- */
.marquee{ background:var(--ink); overflow:hidden; white-space:nowrap; padding:1.1rem 0; }
.marquee__track{ display:inline-block; animation:marquee 42s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee span{
  display:inline-block; padding:0 2.2rem; font-size:0.8rem; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--blush);
}
.marquee span.dot{ color:var(--gold); padding:0 0.6rem; }
@keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce){ .marquee__track{ animation:none; } }

/* ---------- OBSERVATION ---------- */
.observation{ padding:var(--space-7) 0; position:relative; }
.observation .wrap{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:var(--space-6); align-items:start; }
.observation .eyebrow{margin-bottom:var(--space-3);}
.observation blockquote{
  font-family:var(--display); font-size:clamp(1.8rem, 2.6vw, 2.6rem); line-height:1.28; color:var(--ink);
}
.observation .support p{ color:var(--ink-soft); margin-bottom:var(--space-2); max-width:46ch; }
.observation .support{padding-top:0.5rem;}

/* ---------- PILLARS ---------- */
.pillars{background:var(--paper-deep); padding:var(--space-7) 0;}
.pillars > .wrap > .section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:var(--space-5); gap:var(--space-4); }
.section-head h2{font-size:clamp(2rem, 3.4vw, 2.9rem); max-width:14ch;}
.section-head p{color:var(--ink-soft); max-width:34ch;}

.pillar-grid{display:flex; flex-direction:column; gap:1px; background:rgba(23,20,18,0.08);}
.pillar{ display:grid; grid-template-columns:1fr 1fr; background:var(--paper-deep); min-height:380px; }
.pillar:nth-child(even) .pillar-media{order:2;}
.pillar-media{ position:relative; min-height:340px; }
.pillar-copy{ padding:var(--space-5); display:flex; flex-direction:column; justify-content:center; }
.pillar-icon{ width:56px; height:56px; border-radius:50%; margin-bottom:var(--space-2); object-fit:cover; }
.pillar-copy .num{ font-family:var(--display); color:var(--gold); font-size:1rem; margin-bottom:var(--space-2); display:block; }
.pillar-copy h3{font-size:clamp(1.6rem, 2.4vw, 2.1rem); margin-bottom:var(--space-2);}
.pillar-copy p.subhead{ font-family:var(--display); font-size:1.15rem; color:var(--ink); max-width:36ch; margin-bottom:var(--space-2); }
.pillar-copy p{color:var(--ink-soft); max-width:40ch; margin-bottom:var(--space-3);}
.pillar-copy .tags{display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:var(--space-3);}
.pillar-copy .tags span{
  font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase;
  background:var(--paper); color:var(--ink-soft); border:1px solid var(--blush);
  padding:0.35rem 0.7rem; border-radius:2px;
}
.pillar-copy .link{ font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--bronze); border-bottom:1px solid var(--bronze); padding-bottom:2px; width:fit-content; }

/* ---------- CULTURE STICKY-PIN STORY ---------- */
.culture-story{
  color:var(--paper); position:relative;
  background-image:
    linear-gradient(160deg, rgba(26,14,20,0.88), rgba(18,10,14,0.93)),
    url('source-site/marble-bg.jpg');
  background-size:cover; background-position:center; background-attachment:fixed;
}
.culture-story .media{ position:relative; height:56vh; overflow:hidden; }
.culture-story .media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.culture-story .media img.media-base{ filter:brightness(0.9) saturate(1.05); }
.culture-story .media img.media-overlay{
  mix-blend-mode:screen; opacity:0.55;
  filter:brightness(2.2) contrast(1.2);
}
.culture-story .media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(18,10,14,0.5), rgba(18,10,14,0.1) 45%);
}
.culture-story .grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-5); padding:var(--space-6) var(--space-5); position:relative; }
.culture-story .grid .eyebrow{ color:var(--gold); }
.culture-story .step{ max-width:none; display:flex; flex-direction:column; }
.culture-story .step blockquote{
  font-family:var(--display); font-size:clamp(1.4rem, 1.8vw, 2rem); line-height:1.28; margin-bottom:var(--space-3);
}
.culture-story .step p{ color:var(--blush); }
@media (max-width:900px){
  .culture-story{ background-attachment:scroll; }
  .culture-story .media{ height:40vh; }
  .culture-story .grid{grid-template-columns:1fr;}
}

/* ---------- ENGAGEMENT MODELS ---------- */
.engagement{padding:var(--space-7) 0; position:relative; overflow:hidden;}
.engagement::before{
  content:""; position:absolute; top:0; right:0; width:640px; height:640px;
  background-image:url('source-site/marble-bg.jpg'); background-size:cover; background-position:center;
  opacity:0.1; mix-blend-mode:multiply; pointer-events:none;
  -webkit-mask-image:radial-gradient(circle at top right, rgba(0,0,0,0.9), transparent 70%);
  mask-image:radial-gradient(circle at top right, rgba(0,0,0,0.9), transparent 70%);
}
.engagement .wrap{ position:relative; }
.engagement-media{ height:340px; margin-bottom:var(--space-5); border-radius:2px; }
.engagement-media img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.engagement .section-head{margin-bottom:var(--space-5); max-width:640px;}
.tiers{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3);}
.tier{
  border:1px solid rgba(23,20,18,0.12); padding:var(--space-4); display:flex; flex-direction:column;
  background:var(--paper); transition:border-color var(--t-fast) ease, transform var(--t-fast) var(--ease-snap), box-shadow var(--t-fast) ease;
}
.tier:hover{border-color:var(--gold); transform:translateY(-6px); box-shadow:0 18px 40px rgba(23,20,18,0.08);}
.tier .duration{color:var(--bronze); font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:var(--space-2);}
.tier h3{font-size:1.5rem; margin-bottom:var(--space-2);}
.tier p{color:var(--ink-soft); flex-grow:1; margin-bottom:var(--space-3);}
.tier .link{font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--bronze); border-bottom:1px solid var(--bronze); padding-bottom:2px; width:fit-content;}

/* ---------- ABOUT ---------- */
.about-teaser{background:var(--paper-deep); padding:var(--space-7) 0;}
.about-teaser .wrap{display:grid; grid-template-columns:0.8fr 1.2fr; gap:var(--space-6); align-items:center;}
.about-media{ aspect-ratio:4/5; border-radius:2px; }
.about-media img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.about-teaser h2{font-size:clamp(2rem,3.2vw,2.8rem); margin-bottom:var(--space-3);}
.about-teaser p{color:var(--ink-soft); max-width:52ch; margin-bottom:var(--space-2);}
.about-teaser .credentials{margin-top:var(--space-3); display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-4);}
.about-teaser .credentials div{font-size:0.85rem; color:var(--ink-soft); border-left:2px solid var(--gold); padding-left:0.7rem;}

/* ---------- EVENTS SLIDER (dynamic sliding feature) ---------- */
.events{padding:var(--space-7) 0; background:var(--paper);}
.events .section-head{margin-bottom:var(--space-5); display:flex; justify-content:space-between; align-items:flex-end;}
.events .slider-hint{ font-size:0.78rem; color:var(--ink-soft); letter-spacing:0.05em; }
.events-slider{
  display:flex; gap:var(--space-3); overflow-x:auto; scroll-snap-type:x proximity;
  padding:0.5rem var(--space-4) var(--space-3);
  cursor:grab; scrollbar-width:none;
}
.events-slider::-webkit-scrollbar{ display:none; }
.events-slider.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
.event-card{
  flex:0 0 min(360px, 82vw); scroll-snap-align:start; background:var(--paper-deep);
  border:1px solid rgba(23,20,18,0.1); padding:var(--space-4); display:flex; flex-direction:column; gap:var(--space-2);
  transition:border-color var(--t-fast) ease, box-shadow var(--t-fast) ease;
}
.event-card:hover{ border-color:var(--gold); box-shadow:0 12px 28px rgba(23,20,18,0.06); }
.event-card .date{ font-size:0.8rem; color:var(--bronze); letter-spacing:0.08em; text-transform:uppercase; }
.event-card h4{ font-family:var(--display); font-weight:400; font-size:1.5rem; }
.event-card p{ color:var(--ink-soft); font-size:0.95rem; }
.event-card .type{ font-size:0.78rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.06em; margin-top:auto; }
.slider-progress{ height:2px; background:rgba(23,20,18,0.1); margin:0 var(--space-4); position:relative; }
.slider-progress__bar{ position:absolute; top:0; left:0; height:100%; width:25%; background:var(--gold); transition:width var(--t-fast) var(--ease), left var(--t-fast) var(--ease); }

/* ---------- CONTACT / FOOTER ---------- */
.contact-cta{ background:var(--obsidian); color:var(--paper); padding:var(--space-7) 0 var(--space-5); position:relative; overflow:hidden; }
.contact-cta .marble-overlay{ position:absolute; inset:0; opacity:0.6; background-size:cover; background-position:center; mix-blend-mode:screen; }
.contact-cta .wrap{text-align:center; position:relative;}
.contact-cta h2{font-size:clamp(2.2rem,4.4vw,3.6rem); max-width:16ch; margin:0 auto var(--space-4);}
footer.site{ background:var(--obsidian); color:rgba(247,244,239,0.55); padding:var(--space-4) 0; border-top:1px solid rgba(247,244,239,0.12); }
footer.site .wrap{display:flex; justify-content:space-between; align-items:center; font-size:0.8rem;}
footer.site nav{display:flex; gap:var(--space-3);}
footer.site a:hover{color:var(--gold);}

/* ---------- ABOUT PAGE (full bio) ---------- */
.bio{ padding:var(--space-7) 0; }
.bio .wrap{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:var(--space-6); align-items:start; }
.bio-media{ position:sticky; top:7rem; aspect-ratio:4/5; border-radius:2px; }
.bio-media img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.bio-copy p{ color:var(--ink-soft); margin-bottom:var(--space-3); max-width:60ch; }
.bio-copy blockquote{
  font-family:var(--display); font-size:clamp(1.5rem,2.2vw,2rem); line-height:1.3; color:var(--ink);
  border-left:3px solid var(--gold); padding-left:var(--space-3); margin:var(--space-4) 0;
}
.bio-credentials{ margin:var(--space-4) 0; display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-3); }
.bio-credentials div{ font-size:0.85rem; color:var(--ink-soft); border-left:2px solid var(--gold); padding-left:0.7rem; }
@media (max-width:900px){
  .bio .wrap{grid-template-columns:1fr;}
  .bio-media{position:relative; top:0;}
  .bio-credentials{grid-template-columns:1fr;}
}

/* ---------- PILLAR DETAIL PAGE ---------- */
.pillar-detail{ padding:var(--space-7) 0; }
.pillar-detail .wrap{ display:grid; grid-template-columns:0.55fr 1fr; gap:var(--space-6); }
.pillar-detail .service-list{ list-style:none; margin:var(--space-4) 0; }
.pillar-detail .service-list li{
  padding:var(--space-2) 0; border-bottom:1px solid rgba(23,20,18,0.1);
  font-size:1.05rem; color:var(--ink); display:flex; align-items:center; gap:0.8rem;
}
.pillar-detail .service-list li::before{ content:"–"; color:var(--gold); }
.pillar-detail .side{ position:sticky; top:7rem; align-self:start; }
.pillar-detail .side .pillar-icon{ width:64px; height:64px; }
.pillar-nav{ display:flex; flex-direction:column; gap:0.8rem; margin-top:var(--space-5); padding-top:var(--space-4); border-top:1px solid rgba(23,20,18,0.1); }
.pillar-nav a{ font-size:0.85rem; letter-spacing:0.05em; color:var(--ink-soft); transition:color var(--t-fast) ease; }
.pillar-nav a:hover{ color:var(--bronze); }
@media (max-width:900px){
  .pillar-detail .wrap{grid-template-columns:1fr;}
  .pillar-detail .side{position:relative; top:0;}
}

@media (max-width:900px){
  nav.primary{display:none;}
  .observation .wrap{grid-template-columns:1fr;}
  .section-head{flex-direction:column; align-items:flex-start !important; gap:var(--space-2);}
  .pillar{grid-template-columns:1fr;}
  .pillar:nth-child(even) .pillar-media{order:0;}
  .pillar-media{min-height:260px;}
  .tiers{grid-template-columns:1fr;}
  .about-teaser .wrap{grid-template-columns:1fr;}
  .hero-worlds-index{display:none;}
  .hero-actions{flex-wrap:wrap; justify-content:center;}
  .culture-story .grid{padding:var(--space-5) var(--space-3);}
}

/* --- Mobile navigation (added 2026-08-01). CSS only, so it survives the no-JS
   render; the checkbox sits off-screen rather than display:none so it keeps
   keyboard focus. Before this, the menu was display:none below 900px with
   nothing in its place and no page was reachable from any other. --- */
.nav-open{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.nav-btn{display:none}
@media (max-width:900px){
  .nav-btn{display:inline-flex;align-items:center;gap:10px;margin-left:auto;cursor:pointer;
    font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
    color:var(--ink);padding:11px 2px;user-select:none;background:none;border:0}
  .nav-btn i{display:block;position:relative;width:19px;height:1.6px;background:var(--ink);
    transition:background var(--t-fast) ease}
  .nav-btn i::before,.nav-btn i::after{content:"";position:absolute;left:0;width:19px;
    height:1.6px;background:var(--ink);transition:transform var(--t-fast) ease}
  .nav-btn i::before{top:-6px} .nav-btn i::after{top:6px}
  .nav-open:checked ~ .nav-btn i{background:transparent}
  .nav-open:checked ~ .nav-btn i::before{transform:translateY(6px) rotate(45deg)}
  .nav-open:checked ~ .nav-btn i::after{transform:translateY(-6px) rotate(-45deg)}
  .nav-open:focus-visible ~ .nav-btn{outline:2px solid var(--gold);outline-offset:4px;border-radius:4px}
  .nav-open:checked ~ nav.primary{background:var(--ink);padding:4px 18px 10px;margin-left:-18px;margin-right:-18px;display:flex!important;flex-direction:column;align-items:stretch;gap:0;
    width:100%;order:99;margin-top:14px;padding-top:4px;border-top:1px solid var(--rule)}
  .nav-open:checked ~ nav.primary > a,.nav-open:checked ~ nav.primary a{display:block;padding:12px 0;font-size:16px;
    border-bottom:1px solid var(--rule);text-decoration:none}
  .nav-open:checked ~ nav.primary > a:last-child{border-bottom:0}
  .nav-open:checked ~ nav.primary a.cta.magnetic{border:0;padding:12px 0;border-radius:0;text-align:left;margin-top:0;}
}
@media (prefers-reduced-motion:reduce){
  .nav-btn i,.nav-btn i::before,.nav-btn i::after{transition:none}
}

@media(max-width:560px){
  /* the word does not fit beside a logo and a CTA at 390, the icon does */
  .nav-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .nav-btn{gap:0}
}

/* ==========================================================================
   FULL-SITE BUILD-OUT (2026-08-07) , real brand assets, offerings, contact,
   events page. Appended so it overrides earlier rules where intended.
   ========================================================================== */
:root{ --rule: rgba(247,244,239,0.14); --rule-ink: rgba(23,20,18,0.12); }

/* Real logo wordmark in header/footer (cream PNG, sits on dark scrim) */
.brand .logo-img{ height:34px; width:auto; display:block; opacity:0.98; }
.brand{ gap:0; }
footer.site .brand-foot{ height:30px; width:auto; opacity:0.7; }
@media (max-width:560px){ .brand .logo-img{ height:28px; } }

/* Real wine marble in the dark closing band + culture story */
.contact-cta .marble-overlay{ opacity:0.7; mix-blend-mode:screen; }
.culture-story{
  background-image:
    linear-gradient(160deg, rgba(61,15,24,0.55), rgba(40,10,16,0.68)),
    url('brand/marble-aubergine.png') !important;
}

/* ---------- OFFERINGS (engagement.html) ---------- */
.offerings{ padding:var(--space-6) 0 var(--space-7); }
.offering-row{
  display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch;
  border-top:1px solid var(--rule-ink);
}
.offering-row:last-child{ border-bottom:1px solid var(--rule-ink); }
.offering-row .media{ position:relative; overflow:hidden; min-height:420px; }
.offering-row:nth-child(even) .media{ order:2; }
.offering-row .media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.offering-row .copy{ padding:var(--space-6) var(--space-5); display:flex; flex-direction:column; justify-content:center; }
.offering-row .num{ font-family:var(--display); color:var(--gold); font-size:0.95rem; letter-spacing:0.04em; margin-bottom:var(--space-2); }
.offering-row .dur{ font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--bronze); margin-bottom:var(--space-1); }
.offering-row h3{ font-size:clamp(1.9rem,3vw,2.6rem); margin-bottom:var(--space-2); }
.offering-row p.lede-b{ font-family:var(--display); font-size:1.2rem; color:var(--ink); max-width:40ch; margin-bottom:var(--space-3); }
.offering-row p{ color:var(--ink-soft); max-width:46ch; margin-bottom:var(--space-3); }
.offering-row .incl{ list-style:none; margin:0 0 var(--space-4); }
.offering-row .incl li{ padding:0.55rem 0; border-bottom:1px solid var(--rule-ink); font-size:0.98rem; color:var(--ink); display:flex; gap:0.7rem; }
.offering-row .incl li::before{ content:"–"; color:var(--gold); }
@media (max-width:900px){
  .offering-row{ grid-template-columns:1fr; }
  .offering-row:nth-child(even) .media{ order:0; }
  .offering-row .media{ min-height:260px; }
}

/* Pillars-mobile-spacing */
@media (max-width:900px){
  .page-template-template-pillars-php .offering-row + .offering-row .media{ margin-top:var(--space-5); }
}


/* Working in confidence: centred editorial interlude, Engagement page */
.working-confidence{ padding:var(--space-4) 0; }
.working-confidence .wrap{ max-width:620px; margin:0 auto; text-align:center; }
.working-confidence-rule{ border:none; border-top:1px solid var(--gold); width:64px; margin:0 auto var(--space-3); }
.working-confidence h2{ font-family:var(--display); font-size:clamp(1.9rem,3vw,2.5rem); margin-bottom:var(--space-3); }
.working-confidence p{ text-align:left; color:var(--ink-soft); max-width:46ch; margin:0 auto 0.85rem; }
.working-confidence p:last-child{ margin-bottom:0; }
/* ---------- CONTACT PAGE ---------- */
.contact-page{ padding:3.5rem 0 var(--space-7); }
@media (max-width:768px){ .contact-page{ padding:2.5rem 0 var(--space-6); } }
.contact-page .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:start; }
.contact-lead h2{ font-size:clamp(2rem,3.4vw,2.9rem); margin-bottom:var(--space-3); max-width:18ch; }
.contact-lead p{ color:var(--ink-soft); max-width:48ch; margin-bottom:var(--space-3); }
.contact-methods{ margin-top:var(--space-4); display:flex; flex-direction:column; gap:var(--space-3); }
.contact-methods .m{ border-left:2px solid var(--gold); padding-left:var(--space-3); }
.contact-methods .m .lbl{ font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--bronze); margin-bottom:0.2rem; }
.contact-methods .m a, .contact-methods .m span{ font-family:var(--display); font-size:1.25rem; color:var(--ink); }
.contact-methods .m a:hover{ color:var(--bronze); }
.contact-form{ background:var(--paper-deep); padding:var(--space-5); border:1px solid var(--rule-ink); min-width:0; }
.contact-form .fld{ margin-bottom:var(--space-3); }
.contact-form label{ display:block; font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--bronze); margin-bottom:0.5rem; }
.contact-form input, .contact-form textarea{
  width:100%; padding:0.85rem 1rem; border:1px solid var(--rule-ink); background:var(--paper);
  font-family:var(--text); font-size:1rem; color:var(--ink); border-radius:2px;
}
.contact-form input:focus, .contact-form textarea:focus{ outline:none; border-color:var(--gold); }
.contact-form textarea{ min-height:130px; resize:vertical; }
@media (max-width:480px){
  .contact-form input, .contact-form textarea{ padding:0.75rem 0.75rem; font-size:0.92rem; }
}
.contact-note{ font-size:0.8rem; color:var(--ink-soft); margin-top:var(--space-3); }
@media (max-width:900px){ .contact-page .wrap{ grid-template-columns:minmax(0,1fr); } }

/* ---------- EVENTS PAGE (vertical editorial list) ---------- */
.events-page{ padding:var(--space-6) 0 var(--space-7); }
.events-list{ display:flex; flex-direction:column; }
.event-row{
  display:grid; grid-template-columns:160px 1fr auto; gap:var(--space-4); align-items:baseline;
  padding:var(--space-4) 0; border-top:1px solid var(--rule-ink); transition:padding-left var(--t-fast) var(--ease-snap);
}
.event-row:last-child{ border-bottom:1px solid var(--rule-ink); }
.event-row:hover{ padding-left:var(--space-2); }
.event-row .when{ font-size:0.82rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--bronze); }
.event-row h3{ font-size:1.5rem; margin-bottom:0.4rem; }
.event-row .desc{ color:var(--ink-soft); font-size:0.98rem; max-width:52ch; }
.event-row .kind{ font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); white-space:nowrap; }
@media (max-width:760px){
  .event-row{ grid-template-columns:1fr; gap:0.4rem; }
  .event-row .kind{ margin-top:0.3rem; }
}

/* placeholder flag chip for draft content */
.placeholder-flag{
  display:inline-block; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--bronze); border:1px dashed var(--bronze); border-radius:2px; padding:0.15rem 0.5rem;
  margin-left:0.6rem; vertical-align:middle; opacity:0.8;
}

/* text wordmark in chrome (supplied PNG logo carries a baked light halo, unusable on dark) */
.brand-foot-text{ font-size:1.25rem; }

/* footer now carries wordmark + legal + nav: allow wrap, stack on mobile */
footer.site .wrap{ flex-wrap:wrap; gap:var(--space-2) var(--space-4); }
footer.site .wordmark{ flex-basis:100%; text-align:center; }
footer.site .brand-foot-text{ color:var(--paper); }
@media (max-width:700px){
  footer.site .wrap{ flex-direction:column; align-items:flex-start; gap:var(--space-2); }
  footer.site nav{ flex-direction:column; align-items:flex-start; flex-wrap:wrap; gap:var(--space-2); }
}

/* ==== QUALITY/IMPACT PASS (2026-08-07) ==== */
/* Carousel: guarantee no text clipping at any content length + trailing gap */
.event-card{ height:auto; overflow:visible; overflow-wrap:break-word; word-break:normal; }
.event-card h4{ overflow-wrap:break-word; }
.events-slider{ scroll-padding-left:var(--space-4); align-items:stretch; }
.events-slider::after{ content:""; flex:0 0 var(--space-4); }  /* trailing breathing room after last card */
.events .section-head h2{ max-width:16ch; }
.events .section-head .slider-hint{ white-space:nowrap; align-self:flex-end; }

/* Pillar detail: large editorial ghost numeral behind the side rail */
.pillar-detail .side{ position:relative; }
.pillar-detail .side > *{ position:relative; z-index:1; }
.pillar-detail .side .lens-no{
  position:absolute; top:-3.2rem; right:0; z-index:0; pointer-events:none;
  font-family:var(--display); font-size:9rem; line-height:1; color:var(--gold); opacity:0; transform:scale(0.85);
  transition: opacity var(--t-slow) var(--ease-reveal) 0.15s, transform var(--t-slow) var(--ease-reveal) 0.15s;
}
.pillar-detail .side.is-visible .lens-no{ opacity:0.14; transform:scale(1); }
.pillar-detail blockquote.pillar-quote{ border-left:2px solid var(--gold); padding-left:1.5rem; margin:2.5rem 0; }
@media (max-width:900px){
  .pillar-detail .side .lens-no{ font-size:6rem; top:-1rem; right:0; }
}

/* ==== HERO MOTION (2026-08-07): continuous slow Ken Burns ==== */
/* Homepage four-world cycle: each world now zooms slowly the WHOLE time it is
   visible (not just settling on entry), so the imagery always feels alive.
   This later @keyframes worldCycle overrides the earlier one. */
@keyframes worldCycle{
  0%   { opacity:0; transform:scale(1.06) translate(1.8%, 1.2%); }
  3%   { opacity:1; }
  23%  { opacity:1; }
  27%  { opacity:0; transform:scale(1.24) translate(-1.8%, -1.2%); }
  100% { opacity:0; transform:scale(1.24) translate(-1.8%, -1.2%); }
}
.hero-bg .world{ will-change:transform, opacity; }

/* Inner page heroes (About / pillars / engagement / events / contact): a gentle
   infinite zoom in-and-out so their single hero image breathes. */
.page-hero .bg{ animation:heroKenBurns 20s ease-in-out infinite alternate; transform-origin:50% 50%; will-change:transform; }
@keyframes heroKenBurns{ 0%{ transform:scale(1.03) translate(1%, 0.6%); } 100%{ transform:scale(1.08) translate(-1%, -0.6%); } }

@media (prefers-reduced-motion: reduce){
  .page-hero .bg{ animation:none !important; transform:none !important; }
}

/* About: desktop-only, tighten spacing specifically between the founder-narrative paragraphs, everything else on the page unchanged (SEEN 21 Sept outstanding items) */
@media (min-width:901px){
  .bio-copy p{ margin-bottom:1rem; }
}

/* Human Intelligence: 22 Sept compositional rebuild. Explicit semantic sections in the PHP (opening, statement band, explanation, confidentiality, closing), no DOM-position selectors. Mobile-first base below is the natural stacked order; the min-width:901px block turns on the two-column grids and the dark band. (SEEN_Website_Outstanding_5.docx) */
.hi-opening-copy p{ margin-bottom:0.85rem; }
.hi-opening-copy p:last-child{ margin-bottom:0; }
.hi-opening-figure{ margin:var(--space-5) 0 0; }
.hi-opening-figure img{ width:100%; height:auto; display:block; border-radius:2px; }

.hi-statement-band{
  position:relative; background-color:var(--marble-wine);
  background-image:linear-gradient(160deg, rgba(61,15,24,0.55), rgba(40,10,16,0.68)), url('brand/marble-aubergine.png');
  background-size:cover; background-position:center;
  padding:var(--space-6) 0; margin:var(--space-6) 0;
}
.hi-statement{ font-family:var(--display); font-size:clamp(1.7rem,3.2vw,2.5rem); line-height:1.35; color:var(--paper); max-width:27ch; margin:0 auto; text-align:center; position:relative; }

.hi-explanation{ margin:var(--space-6) 0; }
.hi-explanation-left p, .hi-explanation-right p{ margin-bottom:0.85rem; }
.hi-explanation-left p:last-child, .hi-explanation-right p:last-child{ margin-bottom:0; }
.hi-explanation-right{ margin-top:var(--space-5); }

.hi-confidentiality-pair{ margin:var(--space-6) 0; }
.hi-confidentiality-figure{ margin:0 0 var(--space-4); }
.hi-confidentiality-figure img{ width:100%; height:auto; display:block; border-radius:2px; }
.hi-confidentiality-heading{ font-family:var(--display); font-size:clamp(1.9rem,3.2vw,2.6rem); line-height:1.15; color:var(--ink); margin:0 0 var(--space-3); max-width:14ch; }
.hi-confidentiality-copy p{ margin-bottom:0.85rem; }
.hi-confidentiality-copy p:last-child{ margin-bottom:0; }

.hi-closing{ margin:var(--space-6) 0 0; text-align:center; }
.hi-closing-rule{ border:none; border-top:1px solid var(--gold); width:64px; margin:0 auto var(--space-4); }
.hi-closing-quote{ font-family:var(--display); font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.35; color:var(--ink); max-width:32ch; margin:0 auto; }

@media (min-width:901px){
  .hi-opening{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:center; }
  .hi-opening-figure{ margin:0; }
  .hi-opening-figure img{ height:100%; min-height:420px; object-fit:cover; }

  .hi-statement-band{ padding:var(--space-7) 0; }
  .hi-statement{ font-size:clamp(2rem,3vw,2.6rem); max-width:22ch; }

  .hi-explanation{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:start; }
  .hi-explanation-right{ margin-top:0; }

  .hi-confidentiality-pair{ display:grid; grid-template-columns:1.35fr 1fr; gap:var(--space-6); align-items:start; }
  .hi-confidentiality-figure{ margin:0; }
  .hi-confidentiality-figure img{ width:100%; height:560px; object-fit:cover; }

  .hi-closing{ margin-top:var(--space-7); }
}

/* Speaking & Facilitation (Events template): continuous ivory editorial background, no more hero-to-white-strip-to-black-block, bespoke page-specific markup rather than the shared dark closing-cta component (SEEN 21 Sept final docx) */
.events-media-row{
  display:flex; align-items:center; gap:var(--space-6); padding:var(--space-6) 0;
}
.events-media-row > *{ flex:1 1 0; min-width:0; }

.events-media-figure{ margin:0; }
.events-media-figure img{ width:100%; height:auto; display:block; border-radius:2px; }
.events-media-copy .lede{ max-width:56ch; }
.events-media-copy h2{ margin:0 0 var(--space-2); }
.events-media-copy .eyebrow{ margin-bottom:var(--space-2); }
.events-brass-rule{ border:none; border-top:1px solid var(--gold); width:64px; margin:0 auto; }

@media (max-width:900px){
  .events-media-row, .events-media-row-reverse{ flex-direction:column; }
}
