/* ============================================================
   PROGRAMS — redesigned
   ============================================================ */
.btn-outline-ink { background:transparent; color:var(--ink); border:1.5px solid rgba(28,36,25,0.28); }
.btn-outline-ink:hover { background:rgba(28,36,25,0.05); border-color:var(--ink); }

/* ── Flagship ── */
.prog-flag { padding:clamp(64px,9vh,120px) 0; }
.prog-flag-grid { display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(32px,4vw,64px); align-items:start; }
@media(max-width:920px){ .prog-flag-grid{ grid-template-columns:1fr; gap:36px; } }

.prog-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.prog-badge { display:inline-flex; align-items:center; padding:6px 13px; border-radius:var(--r-pill);
  font-size:11px; font-weight:600; letter-spacing:0.04em; color:var(--ink-soft);
  background:rgba(28,36,25,0.05); border:1px solid var(--line); }
.prog-badge.is-flag { background:#1f3a2e; color:#fff; border-color:#1f3a2e; }

.prog-flag-text h2 { margin-top:14px; font-size:clamp(2rem,3.8vw,3.2rem); font-weight:500; letter-spacing:-0.03em; line-height:1.05; color:var(--ink); }
.prog-flag-text h2 sup { font-size:0.4em; color:var(--ink-faint); }
.prog-tagline { font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem,1.8vw,1.45rem); color:var(--sage-deep); margin:14px 0 18px; line-height:1.4; }
.prog-body { font-size:15px; line-height:1.75; color:var(--ink-soft); margin-bottom:16px; max-width:560px; }

.prog-price { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:24px 0;
  padding:18px 24px; background:#f6f6f4; border:1px solid #e4e4e0; border-left:3px solid #1f3a2e; border-radius:16px; }
.prog-price b { font-size:2.2rem; font-weight:600; letter-spacing:-0.04em; color:#0a0a0a; line-height:1; }
.prog-price span { font-size:12.5px; color:var(--ink-soft); line-height:1.5; }
.prog-ctas { display:flex; flex-wrap:wrap; gap:14px; }

/* Flagship side — forest week timeline */
.prog-flag-side { background:linear-gradient(160deg,#244b39,#1f3a2e); border-radius:24px; padding:clamp(24px,2.4vw,34px); color:#fff;
  box-shadow:0 30px 70px rgba(31,58,46,0.3); }
.prog-weeks { position:relative; list-style:none; margin:0 0 22px; padding:0; }
.prog-weeks::before { content:''; position:absolute; left:17px; top:18px; bottom:18px; width:2px; background:rgba(255,255,255,0.16); }
.prog-week { position:relative; display:grid; grid-template-columns:36px 1fr; gap:14px; align-items:center; padding:9px 0; transition:transform 0.3s var(--ease); }
.prog-week-n { position:relative; z-index:1; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:#1f3a2e; border:2px solid rgba(255,255,255,0.25); font-size:13px; font-weight:600; color:#fff; transition:all 0.35s var(--ease); }
.prog-week-tx b { display:block; font-size:13.5px; font-weight:600; color:#fff; }
.prog-week-tx small { font-size:11.5px; color:rgba(255,255,255,0.6); line-height:1.4; max-height:0; opacity:0; overflow:hidden; transition:max-height 0.4s var(--ease), opacity 0.3s, margin 0.4s; }
.prog-week.is-active .prog-week-n { background:#dcefca; border-color:#dcefca; color:#1f3a2e; box-shadow:0 0 0 5px rgba(220,239,202,0.18); transform:scale(1.08); }
.prog-week.is-active .prog-week-tx small { max-height:40px; opacity:1; margin-top:2px; }

.prog-callout { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.16); border-radius:16px; padding:18px 20px; }
.prog-callout-k { font-size:10px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:#dcefca; }
.prog-callout-title { display:block; font-family:var(--serif); font-size:1.3rem; color:#fff; margin:6px 0 8px; }
.prog-callout p { font-size:12.5px; line-height:1.6; color:rgba(255,255,255,0.78); }

/* How it works strip */
.prog-how { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2vw,28px); margin-top:clamp(40px,6vh,72px);
  padding-top:clamp(32px,4vh,48px); border-top:1px solid var(--line); list-style:none; }
@media(max-width:760px){ .prog-how{ grid-template-columns:1fr 1fr; } }
@media(max-width:460px){ .prog-how{ grid-template-columns:1fr; } }
.prog-how-n { font-family:var(--serif); font-size:1.4rem; color:var(--sage-deep); }
.prog-how p { margin-top:8px; font-size:13.5px; color:var(--ink-soft); line-height:1.5; }

/* ── Secondary programs ── */
.prog-more { padding:clamp(64px,9vh,120px) 0; }
.prog-cards { display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,2.4vw,32px); }
@media(max-width:820px){ .prog-cards{ grid-template-columns:1fr; } }
.prog-card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:24px;
  padding:clamp(28px,3vw,40px); box-shadow:0 4px 18px rgba(28,36,25,0.05);
  transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease); }
.prog-card:hover { transform:translateY(-5px); box-shadow:0 30px 60px rgba(28,36,25,0.12); }
.prog-card-head h3 { margin:14px 0 10px; font-size:1.5rem; font-weight:500; letter-spacing:-0.02em; color:var(--ink); }
.prog-card-head h3 sup { font-size:0.4em; color:var(--ink-faint); }
.prog-card-head p { font-size:14px; line-height:1.65; color:var(--ink-soft); }
.prog-list { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 24px; flex:1; align-content:flex-start; }
.prog-list li { font-size:12.5px; font-weight:500; color:var(--sage-deep); padding:7px 13px; border-radius:var(--r-pill);
  background:rgba(138,170,124,0.12); border:1px solid rgba(138,170,124,0.28); }
.prog-card-cta { display:inline-flex; align-items:center; gap:8px; align-self:flex-start; font-size:13.5px; font-weight:600; color:var(--ink);
  padding:11px 22px; border-radius:var(--r-pill); border:1.5px solid rgba(28,36,25,0.22); transition:all 0.25s var(--ease); }
.prog-card-cta:hover { background:#1f3a2e; color:#fff; border-color:#1f3a2e; gap:12px; }

/* ── Consultation ── */
.prog-consult { padding:0 0 clamp(40px,6vh,80px); }
.prog-consult-band { display:grid; grid-template-columns:1.4fr 1fr; gap:32px; align-items:center;
  background:var(--paper); border:1px solid var(--line); border-radius:28px; padding:clamp(32px,4vw,56px); }
@media(max-width:760px){ .prog-consult-band{ grid-template-columns:1fr; gap:24px; } }
.prog-consult-band h2 { margin-top:12px; font-size:clamp(1.7rem,3vw,2.6rem); font-weight:500; letter-spacing:-0.025em; line-height:1.08; color:var(--ink); }
.prog-consult-band h2 em { font-family:var(--serif); font-style:italic; font-weight:400; color:var(--sage-deep); }
.prog-consult-band > div:first-child p { margin-top:14px; font-size:15px; color:var(--ink-soft); line-height:1.65; max-width:460px; }
.prog-consult-act { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.prog-consult-price b { font-size:2.4rem; font-weight:600; letter-spacing:-0.04em; color:var(--ink); }
.prog-consult-price span { font-size:13px; color:var(--ink-soft); margin-left:8px; }

/* ── FAQ ── */
.prog-faq { padding:clamp(56px,8vh,100px) 0; }
.prog-faq-list { max-width:780px; margin:0 auto; }
.prog-faq-item { background:var(--paper); border:1px solid var(--line); border-radius:16px; margin-bottom:12px; overflow:hidden; transition:border-color 0.25s, box-shadow 0.25s; }
.prog-faq-item[open] { border-color:rgba(138,170,124,0.5); box-shadow:0 14px 34px rgba(28,36,25,0.08); }
.prog-faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; list-style:none;
  padding:20px 24px; font-size:1.05rem; font-weight:600; color:var(--ink); }
.prog-faq-item summary::-webkit-details-marker { display:none; }
.prog-faq-ic { color:var(--sage-deep); flex-shrink:0; transition:transform 0.3s var(--ease); }
.prog-faq-item[open] .prog-faq-ic { transform:rotate(45deg); }
.prog-faq-item p { padding:0 24px 22px; font-size:14.5px; line-height:1.7; color:var(--ink-soft); }



.hero-bg-video{
  bottom-border-radius:24px;
}