/* ============================================================
   OPTION E — Page Components v2
   ============================================================ */

/* ---- Ledger timeline (Capital Lifecycle) ---- */
.ledger-timeline { position:relative; }
.ledger-track { display:flex; gap:0; border-top:2px solid var(--border-strong); position:relative; overflow-x:auto; scrollbar-width:none; }
.ledger-track::-webkit-scrollbar { display:none; }
.ledger-fill { position:absolute; top:-2px; left:0; height:2px; background:linear-gradient(90deg,var(--gold),var(--gold-bright)); width:0%; transition:width .6s var(--ease); }

.ledger-stop { flex:1 0 150px; padding:22px 18px 0; cursor:pointer; border-left:1px solid var(--border); position:relative; transition:background .3s var(--ease); }
.ledger-stop:first-child { border-left:none; }
.ledger-stop::before { content:''; position:absolute; top:-7px; left:18px; width:12px; height:12px; border-radius:50%; background:var(--bg); border:2px solid var(--border-strong); transition:all .3s var(--ease); }
.ledger-stop .lt-num { font-family:var(--font-mono); font-size:11px; color:var(--text-faint); display:block; margin-bottom:10px; }
.ledger-stop .lt-title { font-family:var(--font-display); font-size:16px; font-weight:600; color:var(--text-soft); transition:color .3s var(--ease); line-height:1.3; padding-bottom:22px; }
.ledger-stop:hover .lt-title { color:var(--text); }
.ledger-stop.is-active::before { background:var(--accent); border-color:var(--accent); box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent); }
.ledger-stop.is-active .lt-title { color:var(--accent); }
.ledger-stop.is-active .lt-num { color:var(--accent); }

.ledger-detail { border:1.5px solid var(--border-strong); border-top:none; padding:52px 48px; background:var(--bg-raised); display:none; }
.ledger-detail.is-active { display:block; }
.ledger-detail-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:52px; }
@media(max-width:860px){ .ledger-detail-grid{grid-template-columns:1fr;gap:28px} .ledger-detail{padding:32px 24px} }
.ledger-detail h3 { margin-bottom:14px; }
.ledger-detail .phase-output { margin-top:24px; padding-top:22px; border-top:1px dashed var(--border-strong); }
.ledger-detail .phase-output .ol { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-faint); margin-bottom:8px; }
.ledger-detail .phase-output .ov { font-family:var(--font-display); font-weight:600; color:var(--accent); font-size:19px; }
.detail-list { display:flex; flex-direction:column; gap:12px; }
.detail-list li { font-size:14.5px; color:var(--text-soft); padding-left:18px; position:relative; text-align:left; }
.detail-list li::before { content:''; position:absolute; left:0; top:8px; width:6px; height:6px; background:var(--teal); border-radius:1px; }
.detail-list-title { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-faint); margin-bottom:14px; }

@media(max-width:700px){
  .ledger-track { flex-direction:column; border-top:none; }
  .ledger-fill { display:none; }
  .ledger-stop { border-left:2px solid var(--border-strong); padding:4px 0 22px 22px; }
  .ledger-stop::before { top:2px; left:-7px; }
}

/* ---- Why Us ---- */
.why-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:0; border:1.5px solid var(--border-strong); box-shadow:var(--sh-card); }
.why-card { background:var(--bg); padding:36px 28px; border-left:1px solid var(--border); position:relative; overflow:hidden; transition:background .35s var(--ease),box-shadow .35s var(--ease); }
.why-card:first-child { border-left:none; }
.why-card::after { content:''; position:absolute; top:0; left:0; right:0; height:2.5px; background:linear-gradient(90deg,var(--gold),var(--gold-bright)); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease); }
.why-card:hover { background:var(--bg-raised); box-shadow:0 12px 40px -8px rgba(15,39,71,.20),0 2px 8px rgba(15,39,71,.06); z-index:2; }
.why-card:hover::after { transform:scaleX(1); }
.why-card .wn { font-family:var(--font-mono); font-size:11px; color:var(--accent); display:block; margin-bottom:20px; letter-spacing:.08em; }
.why-card h4 { font-size:15.5px; margin-bottom:12px; line-height:1.35; }
.why-card p { font-size:13.5px; line-height:1.62; text-align:left; }
@media(max-width:1060px){ .why-grid{grid-template-columns:repeat(3,1fr)} }
@media(max-width:620px){ .why-grid{grid-template-columns:repeat(2,1fr)} }

/* ---- Testimonials ---- */
.testimonial-track { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border-strong); border:1.5px solid var(--border-strong); }
@media(max-width:860px){ .testimonial-track{grid-template-columns:1fr;gap:0} }
.testimonial-card { border:none; padding:40px 34px; background:var(--bg); display:flex; flex-direction:column; height:100%; transition:background .3s var(--ease); }
.testimonial-card:hover { background:var(--bg-raised); }
.testimonial-card .quote-mark { font-family:var(--font-display); font-size:48px; color:var(--accent); line-height:1; margin-bottom:10px; opacity:.7; }
.testimonial-card blockquote { font-family:var(--font-display); font-size:17px; line-height:1.58; color:var(--text); flex:1; text-align:justify; hyphens:auto; }
.testimonial-card .attribution { margin-top:24px; padding-top:18px; border-top:1px solid var(--border); }
.testimonial-card .attribution .nm { font-weight:600; font-size:14px; color:var(--text); }
.testimonial-card .attribution .rl { font-size:12px; color:var(--text-faint); margin-top:3px; font-family:var(--font-mono); letter-spacing:.04em; }

/* ---- Insights / Resources grid ---- */
.resource-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:980px){ .resource-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .resource-grid{grid-template-columns:1fr} }
.resource-card { background:var(--bg); border:1px solid var(--border); padding:34px 30px; display:flex; flex-direction:column; height:100%; transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease); }
.resource-card:hover { background:var(--bg-raised); border-color:var(--border-strong); transform:translateY(-3px); box-shadow:var(--sh-card); }
.resource-card .rc-tag { margin-bottom:20px; }
.resource-card h4 { margin-bottom:12px; }
.resource-card p { font-size:14px; flex:1; text-align:justify; hyphens:auto; }
.resource-card .rc-meta { margin-top:20px; padding-top:16px; border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; font-family:var(--font-mono); font-size:11px; color:var(--text-faint); }
.resource-card .rc-badge { display:inline-flex; align-items:center; gap:5px; font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; padding:4px 10px; border-radius:2px; }
.rc-badge--soon { background:color-mix(in srgb,var(--gold-pale) 40%,transparent); color:var(--gold); border:1px solid var(--gold-pale); }
.rc-badge--avail { background:color-mix(in srgb,var(--teal) 12%,transparent); color:var(--teal); border:1px solid color-mix(in srgb,var(--teal) 30%,transparent); }
[data-theme="dark"] .rc-badge--soon { background:rgba(184,148,63,.12); color:var(--accent-soft); border-color:rgba(184,148,63,.25); }
[data-theme="dark"] .rc-badge--avail { background:rgba(42,99,84,.18); color:var(--teal-soft); border-color:rgba(42,99,84,.35); }

/* ---- Courses ---- */
.course-hero { background:linear-gradient(155deg,var(--navy-deep) 0%,var(--navy) 60%,var(--navy-mid) 100%); padding:96px 0 80px; position:relative; overflow:hidden; }
.course-hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold-pale),transparent); }
.course-hero .eyebrow { color:var(--gold-soft); }
.course-hero .eyebrow::before { background:var(--gold-soft); }
.course-hero h1 { color:#fff; }
.course-hero .lede { color:rgba(228,232,240,.78); }

.program-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border-strong); border:1.5px solid var(--border-strong); }
@media(max-width:860px){ .program-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:540px){ .program-grid{grid-template-columns:1fr} }
.program-card { background:var(--bg); padding:40px 34px; position:relative; overflow:hidden; transition:background .3s var(--ease); }
.program-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--gold),var(--gold-bright)); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.program-card:hover { background:var(--bg-raised); }
.program-card:hover::before { transform:scaleX(1); }
.program-card .pc-num { font-family:var(--font-mono); font-size:11px; color:var(--accent); display:block; margin-bottom:18px; }
.program-card h4 { margin-bottom:10px; }
.program-card p { font-size:14.5px; text-align:left; }
.program-card .pc-tag { margin-top:18px; }

.cohort-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
@media(max-width:700px){ .cohort-grid{grid-template-columns:1fr} }
.cohort-card { border:1px solid var(--border); padding:36px 32px; display:flex; flex-direction:column; gap:16px; position:relative; overflow:hidden; }
.cohort-card::before { content:''; position:absolute; top:0; left:0; bottom:0; width:3px; background:var(--gold); }
.cohort-card .cc-label { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-faint); }
.cohort-card h4 { margin:0; }
.cohort-card .cc-meta { display:flex; gap:20px; flex-wrap:wrap; }
.cohort-card .cc-item { font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); }
.cohort-card .cc-item strong { color:var(--text-soft); font-weight:500; }
.cohort-badge { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; padding:5px 12px; border-radius:2px; background:color-mix(in srgb,var(--gold-pale) 40%,transparent); color:var(--gold); border:1px solid var(--gold-pale); width:fit-content; }
.cohort-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--gold); flex-shrink:0; }
[data-theme="dark"] .cohort-badge { background:rgba(184,148,63,.12); color:var(--accent-soft); border-color:rgba(184,148,63,.25); }

.enroll-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border-strong); border:1.5px solid var(--border-strong); }
@media(max-width:860px){ .enroll-grid{grid-template-columns:repeat(2,1fr)} }
.enroll-card { background:var(--bg); padding:32px 26px; }
.enroll-card .ec-icon { width:32px; height:32px; color:var(--accent); margin-bottom:16px; }
.enroll-card h4 { font-size:15.5px; margin-bottom:10px; }
.enroll-card p { font-size:14px; text-align:left; }

/* ---- Contact ---- */
.contact-grid { display:grid; grid-template-columns:1fr .85fr; gap:72px; }
@media(max-width:940px){ .contact-grid{grid-template-columns:1fr;gap:48px} }
.contact-info-row { display:flex; gap:20px; padding:22px 0; border-top:1px solid var(--border); }
.contact-info-row:last-child { border-bottom:1px solid var(--border); }
.contact-info-row .ci-label { font-family:var(--font-mono); font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--text-faint); width:100px; flex-shrink:0; padding-top:2px; }
.contact-info-row .ci-value { font-size:15px; color:var(--text); text-align:left; }
.contact-info-row .ci-value a:hover { color:var(--accent); }

/* ---- Form ---- */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media(max-width:660px){ .form-grid{grid-template-columns:1fr} }
.field { display:flex; flex-direction:column; gap:9px; margin-bottom:20px; }
.field label { font-size:11.5px; font-family:var(--font-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); }
.field input,.field select,.field textarea { background:var(--bg-raised); border:1px solid var(--border-strong); border-radius:var(--r-sm); padding:13px 16px; color:var(--text); font-size:15px; transition:border-color .25s var(--ease); }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--accent); outline:none; }
.field textarea { resize:vertical; min-height:110px; }
.field-full { grid-column:1 / -1; }

/* ---- About: Value comparison ---- */
.value-list { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border-strong); border:1.5px solid var(--border-strong); margin-top:16px; }
@media(max-width:660px){ .value-list{grid-template-columns:1fr} }
.value-item { background:var(--bg); padding:30px 28px; }
.value-item .vi-num { font-family:var(--font-mono); color:var(--accent); font-size:11px; letter-spacing:.08em; }
.value-item h4 { margin:12px 0 8px; }
.value-item p { font-size:14px; text-align:left; }

/* ---- FAQ two-col layout ---- */
.faq-grid { display:grid; grid-template-columns:280px 1fr; gap:64px; }
@media(max-width:860px){ .faq-grid{grid-template-columns:1fr;gap:32px} }

/* ---- Featured (Insights hero) ---- */
.resource-featured { display:grid; grid-template-columns:1fr 1fr; border:1.5px solid var(--border-strong); margin-bottom:24px; }
@media(max-width:860px){ .resource-featured{grid-template-columns:1fr} }
.resource-featured .rf-panel { background:var(--navy); color:var(--on-dark); padding:56px 48px; display:flex; flex-direction:column; justify-content:center; }
[data-theme="dark"] .rf-panel { background:#060A10; }
.rf-panel h3 { color:#fff; margin:16px 0 14px; }
.rf-panel p { color:rgba(228,232,240,.7); text-align:justify; hyphens:auto; }
.resource-featured .rf-content { padding:56px 48px; display:flex; flex-direction:column; justify-content:center; }
@media(max-width:700px){ .rf-panel,.resource-featured .rf-content{padding:36px 28px} }

/* ---- Misc ---- */
.divider-line { height:1px; background:var(--border); margin:0; }
.dark-strip { background:var(--navy); padding:56px 0; }
[data-theme="dark"] .dark-strip { background:#060A10; }
.dark-strip p { color:rgba(228,232,240,.7); }

/* Resources newsletter section responsive */
@media(max-width:860px){
  .resources-nl-grid { grid-template-columns:1fr !important; }
}

/* FAQ two-col layout */
.faq-grid { display:grid; grid-template-columns:260px 1fr; gap:64px; }
@media(max-width:860px){ .faq-grid{grid-template-columns:1fr;gap:32px;} }

/* Services — who we work with grid responsive */
@media(max-width:860px){
  .who-grid { grid-template-columns:repeat(2,1fr) !important; }
}
@media(max-width:480px){
  .who-grid { grid-template-columns:1fr !important; }
}
