/* Unified hierarchy: SECTION > STEP > OUTPUT / NOTE */
:root{--hierarchy-gap:14px;--section-heading-gap:28px;--content-gap:18px}
.section-title-row{grid-template-columns:170px minmax(0,1fr);gap:var(--section-heading-gap);align-items:start;margin-bottom:30px}
.section-index{padding-top:0}
.section-index.horizontal{display:grid;grid-template-columns:54px minmax(0,1fr);gap:var(--hierarchy-gap);align-items:center}
.section-index.horizontal p{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;margin:0;min-height:44px}
.section-level{font-size:8px;line-height:1.2;font-weight:900;letter-spacing:.18em;color:#111111}
.section-index .section-no{display:flex;align-items:center;justify-content:center;width:54px;height:44px;padding:0 10px;border-radius:10px;background:var(--blue-soft);border:1px solid #d8e5fb;color:var(--blue);font-size:22px;font-weight:900;line-height:1;letter-spacing:-.04em}
.section-index.light-index .section-no{background:#eef4ff;border-color:#d8e5fb;color:#326da8}
.section-index.light-index .section-level{color:#111111}
.section-heading .eyebrow{margin:0 0 8px}
.section-heading h2{margin:0}
.section-heading p:last-child{margin-top:12px}

/* Hero title icon: compact blue line icon, light surface */
.hero-title-lockup{grid-template-columns:62px minmax(0,1fr)!important;gap:15px!important;align-items:center!important}
.hero-title-icon{display:grid!important;place-items:center!important;width:62px!important;height:62px!important;border-radius:18px!important;background:linear-gradient(145deg,#f8fbff,#e6f1fa)!important;border:1px solid #b9cfe2!important;box-shadow:0 8px 20px rgba(50,109,168,.10)!important;color:#326da8!important}
.hero-title-icon svg{width:34px!important;height:34px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.65!important;stroke-linecap:round!important;stroke-linejoin:round!important}

.chapter-intro{display:grid;grid-template-columns:1.12fr .88fr;gap:22px;align-items:start;margin-bottom:22px}
.reading-panel{padding:22px 24px;border:1px solid var(--line);border-radius:17px;background:#fff}
.reading-panel p{margin:0 0 13px;color:#111111}
.reading-panel p:last-child{margin-bottom:0}
.chapter-kicker{display:block;margin-bottom:8px;font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--blue)}
.learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.learning-card{padding:20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fff,#fbfdff)}
.learning-card-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding-bottom:11px;border-bottom:1px solid #edf1f6}
.learning-card-head span{font-size:9px;font-weight:900;letter-spacing:.13em;color:var(--blue)}
.learning-card h3{margin:13px 0 7px;color:var(--navy);font-size:19px}
.learning-card p{margin:0;color:#111111;font-size:14px;line-height:1.72}
.content-list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.content-list li{position:relative;padding-left:14px;color:#111111;font-size:13px;line-height:1.66}
.content-list li::before{content:"";position:absolute;left:0;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--blue)}
.content-list b{color:#111111}
.concept-note{margin-top:14px;padding:13px 14px;border-radius:11px;background:#f3f7fd;border:1px solid #e0e9f7;color:#111111;font-size:13px;line-height:1.7}
.concept-note b{color:#111111}

.card-heading .number.sub-step{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:25px;padding:0 8px;border-radius:999px;background:#eaf3fb;color:#326da8;font-size:10px;letter-spacing:.05em}
.card-heading .card-word{display:flex;align-items:center;gap:6px}
.card-heading .card-word::before{content:"STEP";font-size:8px;font-weight:900;letter-spacing:.14em;color:#111111}
.info-card .content-list{margin-top:13px;padding-top:12px;border-top:1px solid #edf1f6;color:#111111;}
.cards.three .info-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px;align-items:center}
.cards.three .info-card .card-heading{display:contents}
.cards.three .info-card .card-heading .number.sub-step{grid-column:1;grid-row:1}
.cards.three .info-card>h3{grid-column:2;grid-row:1;margin:0!important;min-width:0}
.cards.three .info-card .card-heading .card-word{grid-column:3;grid-row:1;justify-self:end}
.cards.three .info-card>p,.cards.three .info-card>.content-list{grid-column:1/-1}
.cards.three .info-card>p{margin-top:12px!important;padding-top:12px;border-top:1px solid #edf1f6}
.deliverables span{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;border-radius:6px;background:var(--blue-soft);font-size:9px;letter-spacing:.1em}
.deliverables>div>span{margin-right:8px}
.deliverables>div>strong{display:inline;margin:0;color:#111111}
.deliverables>div>p{margin-top:8px!important}
.deliverables p{font-size:13px!important;line-height:1.6!important}
.hierarchy-caption{margin:0 0 12px;font-size:10px;font-weight:850;letter-spacing:.1em;color:#111111}

.prompt-framework{margin-top:18px;padding:22px;border:1px solid #d8e3f5;border-radius:17px;background:#f7faff}
.prompt-framework h3{margin:0;color:var(--navy);font-size:20px}
.prompt-framework>p{margin:6px 0 0;color:#111111;font-size:14px}
.prompt-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}
.prompt-fields div{padding:13px;border:1px solid #dfe8f5;border-radius:12px;background:#fff}
.prompt-fields b{display:block;margin-bottom:4px;color:var(--blue);font-size:10px;letter-spacing:.1em}
.prompt-fields span{display:block;color:#4f5d75;font-size:13px;line-height:1.58}

.criteria-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:14px}
.criteria-grid div{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.criteria-grid b{display:inline;margin-right:8px;color:var(--navy);font-size:13px}
.criteria-grid>div>span{display:inline;margin:0;color:#111111;font-size:11px;line-height:1.55}
.criteria-grid .example-line{margin:9px 0 0!important;padding-top:9px!important}
.criteria-grid .example-label{display:inline!important;margin:0 8px 0 0!important;font-size:12px!important;line-height:inherit!important}

.timeline{counter-reset:course-step}
.timeline li{counter-increment:course-step;grid-template-columns:48px 82px minmax(0,1fr);gap:12px;padding:18px}
.timeline li:before{content:"03." counter(course-step);display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:25px;padding:0 6px;border-radius:999px;background:#eaf3fb;color:#111111;font-size:9px;letter-spacing:.03em}
.timeline .time{padding-top:1px}
.timeline .topic{display:block}
.timeline .topic strong{display:block;margin-bottom:4px;font-size:15px}
.timeline .topic .detail{margin:0;color:#111111;font-size:13px;line-height:1.65}
.timeline .topic ul{margin:9px 0 0;padding:0;list-style:none;display:grid;gap:4px}
.timeline .topic li{display:block;padding:0 0 0 13px;border:0;border-radius:0;background:transparent;box-shadow:none;position:relative;font-size:12px;line-height:1.58;color:#111111}
.timeline .topic li::before{content:"";position:absolute;left:0;top:.68em;width:4px;height:4px;min-width:0;padding:0;border-radius:50%;background:var(--blue)}
.checkpoint{margin:9px 0 0;padding:8px 10px;border-radius:9px;background:#f3f7fd;color:#52617a;font-size:11px;line-height:1.55}
.checkpoint b{margin-right:6px;color:var(--blue);font-size:9px;letter-spacing:.08em}

.practice-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.practice-principles article{padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.practice-principles b{display:block;color:var(--navy);font-size:13px}
.practice-principles p{margin:5px 0 0;color:#111111;font-size:12px;line-height:1.62}

.audience-content{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start}
.prep-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.prep-grid div{padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff}
.prep-grid b{display:block;color:var(--navy);font-size:12px}
.prep-grid span{display:block;margin-top:3px;color:#111111;font-size:12px;line-height:1.58}

.experience-list li>span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:#eaf3fb;font-size:10px}
.faq-list summary span{width:34px;color:#111111;font-size:10px;font-weight:900;letter-spacing:.05em}
.dark .section-heading h2{color:#111}
.dark .section-heading p:last-child{color:#111111}
.dark .hierarchy-caption{color:#111111}

@media(max-width:940px){
  .section-title-row{grid-template-columns:1fr;gap:18px;margin-bottom:26px}
  .section-index.horizontal{grid-template-columns:50px minmax(0,1fr);gap:14px;width:min(100%,240px)}
  .section-index .section-no{width:50px;height:42px;font-size:21px}
  .chapter-intro,.audience-content{grid-template-columns:1fr}
  .criteria-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  :root{--hierarchy-gap:12px}
  .section-title-row{gap:16px;margin-bottom:24px}
  .section-index.horizontal{grid-template-columns:48px minmax(0,1fr);gap:var(--hierarchy-gap)}
  .section-index .section-no{width:48px;height:40px;font-size:20px}
  .section-level{font-size:7px}
  .hero-title-lockup{grid-template-columns:52px minmax(0,1fr)!important;gap:12px!important}
  .hero-title-icon{width:52px!important;height:52px!important;border-radius:15px!important}
  .hero-title-icon svg{width:29px!important;height:29px!important}
  .learning-grid,.prompt-fields,.practice-principles,.prep-grid,.criteria-grid{grid-template-columns:1fr}
  .reading-panel,.learning-card,.prompt-framework{padding:17px}
  .cards.three .info-card{grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px}
  .cards.three .info-card>h3{font-size:18px!important}
  .cards.three .info-card .card-heading .card-word{font-size:9px}
  .timeline li{grid-template-columns:42px 1fr;gap:10px;padding:16px}
  .timeline li:before{grid-row:1;grid-column:1;min-width:36px;height:23px;font-size:8px}
  .timeline .time{grid-row:1;grid-column:2}
  .timeline .topic{grid-row:2;grid-column:1 / -1;padding-top:3px}
}
