/* ============================================================
   PAGE BASE — shared theme for inner pages
   (Programs · Assessment · Experts · Workshops · Blog)
   White background · Switzer body · Libre Baskerville serif accents
   green-ink palette · rounded cards — matches the home redesign.
   ============================================================ */
:root {
  --serif:      'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --ink:        #1c2419;
  --ink-soft:   rgba(28,36,25,0.62);
  --ink-faint:  rgba(28,36,25,0.42);
  --line:       rgba(28,36,25,0.10);
  --paper:      #fbfaf6;
  --sage:       #8aaa7c;
  --sage-deep:  #5d7a51;
}

body { background:#ffffff; color:var(--ink); }

/* ---- Headings: Switzer, serif italic accents ---- */
.page-hero h1 em,
.section-head h2 em,
.video-banner h2 em,
.prog-cta h2 em { font-family:var(--serif); font-style:italic; font-weight:400; color:var(--sage-deep); }

.lead  { color:var(--ink-soft); }
.muted { color:var(--ink-faint); }

/* ---- Eyebrow (retheme to ink) ---- */
.eyebrow { color:var(--ink-faint); }
.eyebrow::before { background:var(--sage); }

/* ---- PAGE HERO ---- */
.page-hero {
  position:relative; overflow:hidden; isolation:isolate;
  background:#ffffff; text-align:center;
  padding:calc(var(--nav-h,66px) + clamp(64px,12vh,140px)) 0 clamp(56px,9vh,110px);
}
.page-hero::before {
  content:''; position:absolute; inset:0; z-index:-2;
  background-image:var(--page-hero-bg); background-size:cover; background-position:center;
  opacity:0.08; filter:saturate(0.9);
}
.page-hero::after {
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(255,255,255,0.4) 0%, #ffffff 78%);
}
.page-hero .container { position:relative; max-width:860px; }
.page-hero h1 {
  font-size:clamp(2.4rem,5.5vw,4.6rem); font-weight:500; line-height:1.04;
  letter-spacing:-0.03em; color:var(--ink); margin:18px 0 0;
}
.page-hero .lead { font-size:clamp(1.05rem,1.6vw,1.3rem); max-width:620px; margin:20px auto 0; }

.page-hero-orb {
  position:absolute; z-index:-1; border-radius:50%; pointer-events:none;
  filter:blur(60px); opacity:0.5;
}
.page-hero-orb.left  { width:360px; height:360px; top:-80px; left:-60px;
  background:radial-gradient(circle, rgba(138,170,124,0.32), transparent 68%); animation:pgOrb 16s ease-in-out infinite alternate; }
.page-hero-orb.right { width:300px; height:300px; bottom:-100px; right:-40px;
  background:radial-gradient(circle, rgba(93,122,81,0.22), transparent 68%); animation:pgOrb 20s ease-in-out infinite alternate-reverse; }
@keyframes pgOrb { from { transform:translate(0,0); } to { transform:translate(30px,-24px); } }
@media(prefers-reduced-motion:reduce){ .page-hero-orb{ animation:none; } }

/* ---- Video-backed hero (Assessment · Programs · Workshops · About · Contact) ---- */
.hero-bg-video { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.hero-bg-veil  { position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(18,24,16,0.58) 0%, rgba(18,24,16,0.38) 42%, rgba(18,24,16,0.66) 84%, rgba(18,24,16,0.86) 100%); }
/* soft finishing fade — blends the video edge into the page below */
.hero-bg-veil::after { content:''; position:absolute; left:0; right:0; bottom:0; height:clamp(50px,9vh,110px);
  background:linear-gradient(180deg, transparent, rgba(255,255,255,0.10) 60%, rgba(255,255,255,0.22)); pointer-events:none; }
@media(prefers-reduced-motion:reduce){ .hero-bg-video{ display:none; } }
/* Mobile: skip the heavy video download, fall back to a forest gradient */
@media(max-width:768px){
  .hero-bg-video{ display:none; }
  .page-hero.has-video, .vh-ap-hero.has-video, .vh-ct-hero.has-video{
    background:linear-gradient(155deg,#244233 0%,#1f3a2e 45%,#16291f 100%);
  }
}

/* Inset, rounded-bottom video banner (all video heroes) */
.page-hero.has-video, .vh-ap-hero.has-video, .vh-ct-hero.has-video {
  max-width:95%; margin-inline:auto; overflow:hidden;
  border-radius:0 0 clamp(24px,3vw,42px) clamp(24px,3vw,42px);
}

.page-hero.has-video { color:#fff; }
.page-hero.has-video::before, .page-hero.has-video::after { display:none; }
.page-hero.has-video .page-hero-orb { display:none; }
.page-hero.has-video h1 { color:#fff; }
.page-hero.has-video h1 em { color:#dcefca; }
.page-hero.has-video .lead { color:rgba(255,255,255,0.9); }
.page-hero.has-video .eyebrow { color:rgba(255,255,255,0.8); }
.page-hero.has-video .eyebrow::before { background:rgba(255,255,255,0.7); }
.page-hero.has-video .divider { background:#fff; }

/* ---- Closing band (bottom of inner pages) ---- */
.page-close { position:relative; overflow:hidden; text-align:center;
  padding:clamp(64px,10vh,120px) 0; background:var(--paper); border-top:1px solid var(--line); }
.page-close-orb { position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none; z-index:0; }
.page-close-orb.a { width:380px; height:380px; top:-120px; left:8%;
  background:radial-gradient(circle, rgba(138,170,124,0.30), transparent 70%); animation:pgOrb 18s ease-in-out infinite alternate; }
.page-close-orb.b { width:300px; height:300px; bottom:-120px; right:6%;
  background:radial-gradient(circle, rgba(31,58,46,0.14), transparent 70%); animation:pgOrb 22s ease-in-out infinite alternate-reverse; }
.page-close .container { position:relative; z-index:1; max-width:720px; }
.page-close-mark { display:block; font-family:var(--serif); font-size:4rem; line-height:0.5; color:rgba(31,58,46,0.18); margin-bottom:6px; }
.page-close-quote { font-family:var(--serif); font-style:italic; font-size:clamp(1.4rem,3vw,2.2rem); line-height:1.35; color:var(--ink); margin:0 0 10px; }
.page-close-quote em { color:var(--sage-deep); font-style:italic; }
.page-close-title { font-size:clamp(1.9rem,3.6vw,3rem); font-weight:500; letter-spacing:-0.025em; line-height:1.1; color:var(--ink); }
.page-close-title em { font-family:var(--serif); font-style:italic; font-weight:400; color:var(--sage-deep); }
.page-close-sub { margin:16px auto 28px; max-width:540px; color:var(--ink-soft); font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.65; }
.page-close-cite { display:block; margin-top:14px; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-faint); }

/* ---- Divider ---- */
.divider { width:56px; height:2px; border-radius:2px; background:var(--sage); margin:28px auto 0; }

/* ---- Section head ---- */
.section-head { text-align:center; max-width:720px; margin:0 auto clamp(40px,5vh,64px); }
.section-head h2 {
  font-size:clamp(1.9rem,3.6vw,3rem); font-weight:500; letter-spacing:-0.025em;
  line-height:1.1; color:var(--ink);
}
.section-head .divider { margin-top:22px; }
.section-head .lead { margin-top:16px; }

/* ---- Grid ---- */
.row { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:clamp(18px,2vw,28px); }
.col-3, .col { min-width:0; }
.col-3 > *, .col > * { height:100%; }

/* ---- Card ---- */
.card {
  background:var(--paper); border:1px solid var(--line); border-radius:22px;
  padding:clamp(24px,2.4vw,34px);
  transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease);
}
.card:hover { transform:translateY(-4px); box-shadow:0 24px 50px rgba(28,36,25,0.10); border-color:rgba(28,36,25,0.16); }
.card h3, .card h4 { color:var(--ink); }
.card p { color:var(--ink-soft); }

/* ---- Tag ---- */
.tag {
  display:inline-block; padding:5px 14px; font-size:10.5px; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; border-radius:var(--r-pill);
  background:rgba(138,170,124,0.14); color:var(--sage-deep); border:1px solid rgba(138,170,124,0.30);
}

/* ---- Buttons (primary alias + retheme) ---- */
.btn-primary { background:var(--ink); color:#fff; border-color:var(--ink); }
.btn-primary:hover { background:#11160e; border-color:#11160e; transform:translateY(-2px); }

.btn-sm { padding:9px 18px; font-size:13px; }

.pill {
  display:inline-flex; align-items:center; padding:6px 14px; border-radius:var(--r-pill);
  font-size:12px; font-weight:600; letter-spacing:0.04em;
}
.pill-muted { background:rgba(28,36,25,0.06); color:var(--ink-faint); }

/* ---- Soft section bg ---- */
.bg-soft { background:var(--paper); }

/* ---- Video banner ---- */
.video-banner {
  position:relative; overflow:hidden; isolation:isolate;
  padding:clamp(80px,12vh,160px) 0; text-align:center; color:#fff;
  border-radius:32px; margin:clamp(40px,6vh,80px) clamp(16px,4vw,48px);
}
.video-banner video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.video-banner .veil { position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(18,24,16,0.55), rgba(18,24,16,0.4)); }
.video-banner .eyebrow { color:rgba(255,255,255,0.7); }
.video-banner .eyebrow::before { background:rgba(255,255,255,0.7); }
.video-banner h2 { color:#fff; margin-top:14px; font-size:clamp(2rem,4vw,3.4rem); font-weight:500; }
.video-banner h2 em { color:rgba(255,255,255,0.9); }
.video-banner p { color:rgba(255,255,255,0.82); max-width:600px; margin:18px auto 0; }

/* ---- Program CTA card ---- */
.prog-cta { background:linear-gradient(135deg, var(--paper), #eef0ea) !important; border:1px solid var(--line); }

@media(max-width:768px) {
  .video-banner { margin:32px 14px; border-radius:24px; }
}
