/* WCI product-first components (Kaplan-style restructure, 2026-09-08).
   Namespaced .wci-* so per-page section CSS coexists untouched.
   Uses the existing palette: navy, gold, cream, charcoal; Crimson Pro / Inter. */

:root {
    --wci-p-navy: #1a3a52;
    --wci-p-slate: #3d4f5f;
    --wci-p-burgundy: #6b3944;
    --wci-p-charcoal-green: #3a4a3e;
    --wci-p-plum: #4a3a52;
    --wci-p-teal: #2d4f4f;
    --wci-p-alpine: #4f5a66;
    --wci-p-gold: #c9a961;
    --wci-p-cream: #f5f2ea;
    --wci-p-off: #fafaf8;
    --wci-p-ink: #2b2d33;
    --wci-p-grey: #4a4a4a;
    --wci-p-line: rgba(43, 45, 51, 0.12);
}

/* ---------- Generic section shell ---------- */
.wci-section {
    padding: 130px 60px;
    max-width: 1300px;
    margin: 0 auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--wci-p-ink);
}
.wci-section-full { max-width: none; padding-left: 0; padding-right: 0; }
.wci-section-full > .wci-section-inner { max-width: 1300px; margin: 0 auto; padding: 0 60px; }
.wci-section-cream { background: var(--wci-p-cream); }
.wci-section-off { background: var(--wci-p-off); }
.wci-section-navy { background: var(--wci-p-navy); color: #ffffff; }
.wci-section-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.75em;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--wci-p-gold);
    margin-bottom: 28px;
    font-weight: 500;
}
.wci-section h2, .wci-h2 {
    font-family: 'Crimson Pro', serif;
    font-size: 3.2em;
    font-weight: 300;
    line-height: 1.15;
    margin: 0 0 24px;
    color: inherit;
}
.wci-section-intro {
    font-size: 1.1em;
    line-height: 1.8;
    max-width: 820px;
    margin-bottom: 50px;
    color: inherit;
    opacity: 0.9;
}
.wci-section-navy .wci-section-intro { color: rgba(255,255,255,0.88); }

/* ---------- Buttons ---------- */
.wci-btn, .wci-btn-ghost, .wci-btn-line {
    font-family: 'Inter', sans-serif;
    text-decoration: none;
    display: inline-block;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-size: 0.8em;
    font-weight: 600;
    transition: all 0.3s ease;
    white-space: nowrap;
}
.wci-btn {
    background: var(--wci-p-gold);
    color: #121317;
    padding: 16px 36px;
    border: 2px solid var(--wci-p-gold);
}
.wci-btn:hover { background: transparent; color: var(--wci-p-gold); }
.wci-section-navy .wci-btn:hover, .wci-sticky .wci-btn:hover { color: var(--wci-p-gold); }
.wci-btn-ghost {
    color: inherit;
    padding: 16px 36px;
    border: 2px solid currentColor;
    opacity: 0.9;
}
.wci-btn-ghost:hover { background: rgba(255,255,255,0.08); opacity: 1; }
.wci-btn-line {
    color: var(--wci-p-gold);
    padding: 6px 0;
    border-bottom: 1px solid var(--wci-p-gold);
    white-space: normal;
    line-height: 1.6;
}
.wci-btn-line:hover { color: var(--wci-p-ink); border-color: var(--wci-p-ink); }
.wci-section-navy .wci-btn-line:hover, .wci-rcard-dark .wci-btn-line:hover { color: #ffffff; border-color: #ffffff; }

/* ---------- Home hero actions ---------- */
.wci-hero-actions {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 18px;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0 0 40px;
}
.wci-hero-actions .wci-btn-ghost { color: #ffffff; }

/* ---------- Router / catalogue cards ---------- */
.wci-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.wci-cards-2 { grid-template-columns: repeat(2, 1fr); }
.wci-cards-4 { grid-template-columns: repeat(4, 1fr); }
.wci-rcard {
    background: #ffffff;
    border: 1px solid var(--wci-p-line);
    border-top: 3px solid var(--wci-p-gold);
    padding: 40px 34px 34px;
    display: flex;
    flex-direction: column;
    min-width: 0;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.wci-rcard:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,0.08); }
.wci-rcard-dark { color: #ffffff; border-color: transparent; }
.wci-rcard-dark.slate { background: var(--wci-p-slate); }
.wci-rcard-dark.navy { background: var(--wci-p-navy); }
.wci-rcard-dark.burgundy { background: var(--wci-p-burgundy); }
.wci-rcard-dark.charcoal { background: var(--wci-p-charcoal-green); }
.wci-rcard-dark.plum { background: var(--wci-p-plum); }
.wci-rcard-dark.teal { background: var(--wci-p-teal); }
.wci-rcard-dark.alpine { background: var(--wci-p-alpine); }
.wci-rcard-num {
    font-size: 0.7em;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--wci-p-gold);
    margin-bottom: 14px;
    font-weight: 600;
}
.wci-rcard-kicker {
    font-size: 0.78em;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    opacity: 0.75;
    margin-bottom: 14px;
}
.wci-rcard h3 {
    font-family: 'Crimson Pro', serif;
    font-size: 1.75em;
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 16px;
    color: inherit;
}
.wci-rcard p {
    font-size: 0.98em;
    line-height: 1.75;
    margin: 0 0 18px;
    opacity: 0.92;
}
.wci-rcard ul {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}
.wci-rcard li {
    position: relative;
    padding-left: 24px;
    font-size: 0.92em;
    line-height: 1.6;
    margin-bottom: 8px;
    opacity: 0.92;
}
.wci-rcard li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--wci-p-gold);
    font-weight: 600;
}
.wci-rcard-foot { margin-top: auto; display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.wci-rcard-flag { margin-bottom: 14px; }
.wci-cards-more { margin-top: 44px; }

/* ---------- Product page: at a glance + sticky bar ---------- */
.wci-glance-wrap {
    background: var(--wci-p-cream);
    padding: 70px 60px;
    font-family: 'Inter', sans-serif;
    color: var(--wci-p-ink);
}
.wci-glance {
    max-width: 1300px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid var(--wci-p-line);
    border-top: 4px solid var(--wci-p-gold);
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 0;
}
.wci-glance-main { padding: 50px 54px; min-width: 0; }
.wci-glance-side {
    background: var(--wci-p-navy);
    color: #ffffff;
    padding: 50px 44px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}
.wci-glance-kicker {
    font-size: 0.75em;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--wci-p-gold);
    font-weight: 600;
    margin-bottom: 14px;
}
.wci-glance h2 {
    font-family: 'Crimson Pro', serif;
    font-size: 2.4em;
    font-weight: 400;
    line-height: 1.15;
    margin: 0 0 18px;
}
.wci-glance-format {
    font-size: 0.95em;
    color: var(--wci-p-grey);
    margin-bottom: 26px;
    line-height: 1.7;
}
.wci-glance-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.wci-glance-cols h4 {
    font-family: 'Inter', sans-serif;
    font-size: 0.75em;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--wci-p-gold);
    margin: 0 0 12px;
    font-weight: 600;
}
.wci-glance-cols p { font-size: 0.95em; line-height: 1.7; margin: 0; }
.wci-glance ul { list-style: none; padding: 0; margin: 0; }
.wci-glance li { position: relative; padding-left: 24px; font-size: 0.95em; line-height: 1.6; margin-bottom: 9px; }
.wci-glance li::before { content: "\2713"; position: absolute; left: 0; color: var(--wci-p-gold); font-weight: 600; }
.wci-glance-side h4 {
    font-family: 'Crimson Pro', serif;
    font-size: 1.6em;
    font-weight: 400;
    margin: 0 0 14px;
}
.wci-glance-side p { font-size: 0.92em; line-height: 1.7; color: rgba(255,255,255,0.85); margin: 0 0 26px; }
.wci-glance-side .wci-btn { align-self: flex-start; margin-bottom: 18px; }
.wci-glance-side .wci-btn-line { align-self: flex-start; }
.wci-glance-side .wci-btn-line:hover { color: #ffffff; border-color: #ffffff; }

.wci-sticky {
    position: fixed;
    top: 116px;
    left: 0;
    right: 0;
    z-index: 900;
    background: #0b101d;
    border-bottom: 2px solid var(--wci-p-gold);
    color: #ffffff;
    font-family: 'Inter', sans-serif;
    transform: translateY(-130%);
    transition: transform 0.35s ease;
    box-shadow: 0 10px 30px rgba(0,0,0,0.35);
}
.wci-sticky-on { transform: translateY(0); }
.wci-sticky-inner {
    max-width: 1300px;
    margin: 0 auto;
    padding: 12px 40px;
    display: flex;
    align-items: center;
    gap: 28px;
}
.wci-sticky-name {
    font-family: 'Crimson Pro', serif;
    font-size: 1.35em;
    font-weight: 400;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wci-sticky-kicker {
    font-size: 0.75em;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wci-sticky .wci-btn { padding: 11px 26px; font-size: 0.72em; }
.wci-sticky .wci-btn-line { color: rgba(255,255,255,0.85); border-color: rgba(255,255,255,0.4); font-size: 0.72em; }
.wci-sticky .wci-btn-line:hover { color: var(--wci-p-gold); border-color: var(--wci-p-gold); }

/* ---------- FAQ accordion (native details) ---------- */
.wci-faq { max-width: 900px; }
.wci-faq details {
    border-bottom: 1px solid var(--wci-p-line);
    padding: 0;
}
.wci-section-navy .wci-faq details { border-color: rgba(255,255,255,0.15); }
.wci-faq summary {
    cursor: pointer;
    list-style: none;
    font-family: 'Crimson Pro', serif;
    font-size: 1.35em;
    font-weight: 400;
    padding: 24px 44px 24px 0;
    position: relative;
    line-height: 1.35;
}
.wci-faq summary::-webkit-details-marker { display: none; }
.wci-faq summary::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 22px;
    font-family: 'Inter', sans-serif;
    font-size: 1.3em;
    color: var(--wci-p-gold);
    transition: transform 0.25s ease;
}
.wci-faq details[open] summary::after { transform: rotate(45deg); }
.wci-faq-answer { padding: 0 0 28px; font-size: 0.98em; line-height: 1.8; }
.wci-faq-answer p { margin: 0 0 14px; }
.wci-faq-more { margin-top: 36px; }

/* ---------- Important information block ---------- */
.wci-info {
    border: 1px solid rgba(201, 169, 97, 0.5);
    border-left: 4px solid var(--wci-p-gold);
    background: rgba(201, 169, 97, 0.1);
    padding: 34px 40px;
    max-width: 1000px;
    font-family: 'Inter', sans-serif;
}
.wci-info h4 {
    font-family: 'Inter', sans-serif;
    font-size: 0.75em;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--wci-p-gold);
    margin: 0 0 16px;
    font-weight: 600;
}
.wci-info p { font-size: 0.92em; line-height: 1.8; margin: 0 0 12px; }
.wci-info p:last-child { margin-bottom: 0; }
.wci-info-tail { padding-top: 0; }

/* ---------- Catalogue (All Programs) ---------- */
.wci-subnav {
    position: sticky;
    top: 116px;
    z-index: 800;
    background: var(--wci-p-cream);
    border-bottom: 1px solid var(--wci-p-line);
    font-family: 'Inter', sans-serif;
}
.wci-subnav-inner {
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    gap: 2px;
    flex-wrap: nowrap;
    justify-content: safe center;
    overflow-x: auto;
    scrollbar-width: none;
}
.wci-subnav-inner::-webkit-scrollbar { display: none; }
@media (max-width: 1340px) and (min-width: 769px) {
    .wci-subnav .wci-subnav-inner a { padding: 20px 7px; letter-spacing: 1px; }
}
@media (max-width: 1120px) and (min-width: 769px) {
    .wci-subnav .wci-subnav-inner a { padding: 18px 5px; letter-spacing: 0.4px; font-size: 0.72em; }
    .wci-subnav .wci-subnav-inner { padding: 0 16px; }
}
.wci-subnav a {
    font-size: 0.78em;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--wci-p-ink);
    text-decoration: none;
    padding: 20px 14px;
    white-space: nowrap;
    border-bottom: 3px solid transparent;
    opacity: 0.8;
}
.wci-subnav a:hover { color: var(--wci-p-gold); border-color: var(--wci-p-gold); opacity: 1; }
.wci-cat-group { padding-top: 40px; scroll-margin-top: 190px; }
.wci-cat-group + .wci-cat-group { margin-top: 70px; border-top: 1px solid var(--wci-p-line); padding-top: 70px; }
.wci-cat-group h3.wci-cat-title {
    font-family: 'Crimson Pro', serif;
    font-size: 2.3em;
    font-weight: 300;
    margin: 0 0 12px;
}
.wci-cat-group .wci-cat-intro { font-size: 1.02em; line-height: 1.75; color: var(--wci-p-grey); max-width: 820px; margin-bottom: 36px; }
.wci-cat-count { font-size: 0.75em; letter-spacing: 2px; text-transform: uppercase; color: var(--wci-p-gold); margin-bottom: 10px; font-weight: 600; }

/* ---------- Quiet catalogue group ---------- */
.wci-cat-quiet .wci-cat-title { font-size: 1.9em; }
.wci-qcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.wci-qcard {
    border: 1px solid var(--wci-p-line);
    background: transparent;
    padding: 26px 26px 22px;
    min-width: 0;
}
.wci-qcard h3 {
    font-family: 'Crimson Pro', serif;
    font-size: 1.3em;
    font-weight: 400;
    line-height: 1.25;
    margin: 0 0 10px;
    color: var(--wci-p-ink);
}
.wci-qcard p { font-size: 0.88em; line-height: 1.7; color: var(--wci-p-grey); margin: 0 0 14px; }
.wci-qcard .wci-btn-line { font-size: 0.72em; opacity: 0.85; }

/* ---------- Comparison table ---------- */
.wci-compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--wci-p-line); background: #ffffff; }
.wci-compare { width: 100%; border-collapse: collapse; font-size: 0.92em; min-width: 900px; }
.wci-compare th, .wci-compare td { padding: 18px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--wci-p-line); line-height: 1.6; }
.wci-compare th { background: var(--wci-p-navy); color: #ffffff; font-family: 'Inter', sans-serif; font-weight: 500; font-size: 0.8em; letter-spacing: 1.5px; text-transform: uppercase; }
.wci-compare td:first-child { font-family: 'Crimson Pro', serif; font-size: 1.15em; white-space: nowrap; }
.wci-compare td:first-child a { color: var(--wci-p-ink); text-decoration: none; border-bottom: 1px solid var(--wci-p-gold); }
.wci-compare tr:nth-child(even) td { background: var(--wci-p-off); }

/* ---------- Feature block (moved Founder Track) ---------- */
.wci-feature-block { scroll-margin-top: 190px; }
.wci-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 50px; }
.wci-feature-grid > div { border-top: 2px solid var(--wci-p-gold); padding-top: 22px; min-width: 0; }
.wci-feature-grid h4 { font-family: 'Crimson Pro', serif; font-size: 1.35em; font-weight: 500; margin: 0 0 14px; }
.wci-feature-grid ul { list-style: none; padding: 0; margin: 0; }
.wci-feature-grid li { position: relative; padding-left: 20px; font-size: 0.92em; line-height: 1.6; margin-bottom: 9px; opacity: 0.9; }
.wci-feature-grid li::before { content: ""; position: absolute; left: 0; top: 11px; width: 8px; height: 1px; background: var(--wci-p-gold); }
.wci-feature-highlight {
    border-left: 3px solid var(--wci-p-gold);
    padding: 22px 30px;
    background: rgba(201, 169, 97, 0.08);
    max-width: 900px;
    margin: 30px 0;
    font-size: 1.05em;
    line-height: 1.75;
}

/* ---------- Testimonial teaser ---------- */
.wci-tease {
    max-width: 900px;
    border-left: 4px solid var(--wci-p-gold);
    padding: 10px 0 10px 40px;
}
.wci-tease-quote {
    font-family: 'Crimson Pro', serif;
    font-size: 1.7em;
    font-style: italic;
    line-height: 1.5;
    margin: 0 0 18px;
}
.wci-tease-attr { font-size: 0.9em; opacity: 0.8; margin-bottom: 18px; }
.wci-tease-note {
    font-size: 0.8em;
    line-height: 1.7;
    opacity: 0.75;
    padding-top: 14px;
    border-top: 1px solid rgba(201, 169, 97, 0.4);
    margin-bottom: 26px;
}

/* ---------- Contact form: long program names must not widen the grid ---------- */
.wci-contact-form .wci-field { min-width: 0; }
.wci-contact-form select { width: 100%; max-width: 100%; }

/* ---------- Inquiry note on Contact ---------- */
.wci-inquiry-note {
    display: none;
    max-width: 760px;
    margin: 0 auto 30px;
    padding: 18px 26px;
    border-left: 3px solid var(--wci-p-gold);
    background: rgba(201, 169, 97, 0.1);
    font-family: 'Inter', sans-serif;
    font-size: 0.95em;
}
.wci-inquiry-note.wci-on { display: block; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
    .wci-cards, .wci-cards-4 { grid-template-columns: repeat(2, 1fr); }
    .wci-feature-grid { grid-template-columns: repeat(2, 1fr); }
    .wci-qcards { grid-template-columns: repeat(2, 1fr); }
    .wci-glance { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .wci-section { padding: 70px 24px; }
    .wci-section-full > .wci-section-inner { padding: 0 24px; }
    .wci-section h2, .wci-h2 { font-size: 2.2em; }
    .wci-cards, .wci-cards-2, .wci-cards-4 { grid-template-columns: 1fr; gap: 20px; }
    .wci-rcard { padding: 30px 24px; }
    .wci-glance-wrap { padding: 40px 20px; }
    .wci-glance-main, .wci-glance-side { padding: 32px 26px; }
    .wci-glance-cols { grid-template-columns: 1fr; gap: 24px; }
    .wci-glance h2 { font-size: 1.9em; }
    .wci-sticky-inner { padding: 10px 16px; gap: 12px; }
    .wci-sticky-kicker { display: none; }
    .wci-sticky-name { font-size: 1.05em; flex: 1; min-width: 0; }
    .wci-sticky .wci-btn-line { display: none; }
    .wci-subnav-inner { padding: 0 16px; flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .wci-subnav-inner::-webkit-scrollbar { display: none; }
    .wci-subnav a { padding: 16px 12px; }
    .wci-feature-grid { grid-template-columns: 1fr; }
    .wci-qcards { grid-template-columns: 1fr; }
    .wci-tease { padding-left: 22px; }
    .wci-tease-quote { font-size: 1.3em; }
    .wci-btn, .wci-btn-ghost { white-space: normal; text-align: center; }
    .wci-glance-side .wci-btn { align-self: stretch; }
    .wci-hero-actions { gap: 12px; }
    .wci-hero-actions .wci-btn, .wci-hero-actions .wci-btn-ghost { padding: 14px 24px; font-size: 0.72em; }
    .wci-cat-group { scroll-margin-top: 175px; }
}

/* ---------- Fees ---------- */
.wci-rcard-price { font-family: 'Crimson Pro', serif; font-size: 1.35em; color: var(--wci-gold, #c9a961); margin: 6px 0 14px; }
.wci-rcard:not(.wci-rcard-dark) .wci-rcard-price { color: #8a6d2f; }
.wci-glance-fee { font-family: 'Crimson Pro', serif; font-size: 1.6em; margin: 0 0 12px; }
.wci-glance-fee strong { font-weight: 500; }

/* ---------- Career launchpad (home) ---------- */
.wci-launchpad { display: grid; grid-template-columns: 1fr 1.1fr; background: #0b101d; color: #fff; }
.wci-launchpad-text { padding: 110px 70px; max-width: 640px; justify-self: end; }
.wci-launchpad h2 { font-family: 'Crimson Pro', serif; font-weight: 300; font-size: 3em; line-height: 1.1; margin: 0 0 26px; }
.wci-launchpad p { color: rgba(255,255,255,0.82); line-height: 1.8; margin: 0 0 18px; font-weight: 300; }
.wci-launchpad .wci-launchpad-lede { font-family: 'Crimson Pro', serif; font-size: 1.35em; color: #fff; }
.wci-launchpad .wci-btn-line { color: #c9a961; }
.wci-launchpad-media { min-height: 460px; }
.wci-launchpad-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 900px) {
    .wci-launchpad { grid-template-columns: 1fr; }
    .wci-launchpad-text { padding: 70px 24px; justify-self: stretch; }
    .wci-launchpad h2 { font-size: 2.2em; }
    .wci-launchpad-media { min-height: 0; }
    .wci-launchpad-media img { height: auto; }
}

/* ---------- Watercolour art band ---------- */
.wci-art-band { height: 360px; overflow: hidden; background: #e9dfc4; }
.wci-art-band img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; display: block; }
@media (max-width: 700px) { .wci-art-band { height: 220px; } }

/* ---------- Schedule tracks (Physician Finance Residency) ---------- */
.wci-tracks { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 36px 0; text-align: left; }
.wci-track { border: 1px solid rgba(201,169,97,0.45); padding: 30px 32px; background: rgba(255,255,255,0.04); }
.wci-track h3 { font-family: 'Crimson Pro', serif; font-weight: 400; font-size: 1.5em; margin: 0 0 12px; }
.wci-track ul { margin: 12px 0 0; padding-left: 20px; }
.wci-track li { margin-bottom: 8px; line-height: 1.7; }
@media (max-width: 800px) { .wci-tracks { grid-template-columns: 1fr; } .wci-track { padding: 24px 20px; } }

.wci-rcard-status { font-size: 0.85em; opacity: 0.85; margin: -6px 0 14px; font-style: italic; }
