/* Shared course catalogue and detail pages. */
.catalog { padding-block:82px; scroll-margin-top:24px; }
.catalog-heading { max-width:760px; margin-bottom:36px; }
.catalog-heading h2 { margin-bottom:18px; }
.catalog-heading p:last-child { font-size:1.1rem; color:var(--muted); max-width:660px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.catalog-card { display:flex; flex-direction:column; overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:20px; }
.catalog-card-head { min-height:145px; padding:28px; background:#e9e9e6; border-bottom:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; gap:12px; }
.catalog-card-head strong { font-size:2.25rem; letter-spacing:-.04em; line-height:1.15; }
.catalog-card-head span { font-size:.9rem; }
.catalog-card:nth-child(2) .catalog-card-head { background:var(--red); color:#fff; }
.catalog-card:nth-child(3) .catalog-card-head { background:var(--ink); color:#fff; }
.catalog-card-body { padding:28px; display:flex; flex-direction:column; flex:1; }
.catalog-card h3 { font-size:1.6rem; line-height:1.25; letter-spacing:-.025em; margin-bottom:16px; }
.catalog-card p { color:var(--muted); }
.catalog-card ul { padding-left:1.25em; margin:0 0 28px; }
.catalog-card li + li { margin-top:7px; }
.catalog-card .button { margin-top:auto; align-self:flex-start; border-radius:999px; min-width:150px; }
.catalog-helper { margin:24px 0 0; color:var(--muted); }
.catalog-helper a { color:var(--ink); font-weight:700; text-underline-offset:4px; }
.course-page { padding-bottom:80px; }
.course-page .breadcrumbs { padding-block:27px; font-size:.95rem; }
.breadcrumbs a, .text-link { text-underline-offset:4px; }
.detail-hero { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr); gap:50px; align-items:center; padding-block:35px 68px; border-bottom:1px solid var(--line); }
.detail-hero h1 { font-size:clamp(2.6rem,5vw,4.8rem); line-height:1.08; letter-spacing:-.04em; }
.detail-hero .eyebrow { font-size:.875rem; }
.detail-intro { font-size:1.15rem; max-width:700px; color:#41403e; }
.detail-facts { padding:30px; border-radius:20px; background:var(--ink); color:var(--white); }
.detail-facts h2 { font-size:1.2rem; line-height:1.4; letter-spacing:0; margin-bottom:16px; }
.detail-facts ul { padding-left:1.2em; margin:0; }
.detail-facts li + li { margin-top:14px; }
.detail-section { padding-top:64px; }
.detail-section > h2 { font-size:clamp(1.9rem,3vw,2.8rem); line-height:1.2; letter-spacing:-.025em; margin-bottom:20px; }
.detail-section > p { max-width:800px; color:var(--muted); }
.plan-grid, .learning-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.plan-card, .learning-step { background:var(--white); border:1px solid var(--line); border-radius:18px; padding:28px; min-width:0; }
.plan-card { display:flex; flex-direction:column; }
.plan-card .plan-label { font-size:.9rem; color:var(--red); font-weight:800; margin-bottom:12px; }
.plan-card h3, .learning-step h3 { font-size:1.5rem; line-height:1.3; letter-spacing:-.015em; margin-bottom:14px; }
.plan-card ul { padding-left:1.2em; margin:0 0 24px; }
.plan-card li + li { margin-top:10px; }
.plan-card .button { margin-top:auto; align-self:flex-start; border-radius:999px; }
.plan-card p, .learning-step p { color:var(--muted); }
.learning-step .step-number { display:block; font-weight:800; color:var(--red); font-size:.95rem; margin-bottom:20px; }
.learning-step p:last-child { margin-bottom:0; }
.detail-note { font-size:.95rem; line-height:1.6; color:var(--muted); margin:20px 0 0; }
.detail-callout { background:#e9e9e6; border-radius:20px; padding:34px; margin-top:48px; }
.detail-callout h2 { font-size:1.75rem; line-height:1.3; letter-spacing:-.02em; margin-bottom:14px; }
.detail-callout p { max-width:800px; }
.detail-callout .button { border-radius:999px; }
.course-series { display:flex; gap:12px; flex-wrap:wrap; margin:20px 0; }
.course-series span { background:var(--white); border:1px solid var(--line); padding:12px 26px; border-radius:999px; font-size:1.125rem; font-weight:800; }
.pace-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.pace-card { background:var(--white); padding:28px; border:1px solid var(--line); border-radius:18px; }
.pace-card h3 { font-size:1.4rem; margin-bottom:12px; }
.pace-card dl { margin:0; }
.pace-card dt { font-weight:800; margin-top:16px; }
.pace-card dd { margin:4px 0 0; color:var(--muted); }
.video-inclusions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.video-inclusions article { border:1px solid var(--line); border-radius:18px; padding:30px; background:var(--white); }
.video-inclusions h3 { font-size:1.4rem; line-height:1.3; }
.video-inclusions ul { padding-left:1.2em; margin-bottom:0; }
.video-inclusions li + li { margin-top:10px; }
.detail-bottom { margin-top:40px; }
html:lang(ja) .course-page h1, html:lang(ko) .course-page h1 { font-size:clamp(2.2rem,4.1vw,4rem); line-height:1.3; }
html:lang(ja) .course-page h2, html:lang(ko) .course-page h2 { font-size:clamp(1.6rem,2.7vw,2.5rem); line-height:1.4; }
html:lang(ja) .detail-facts h2, html:lang(ko) .detail-facts h2 { font-size:1.2rem; }
@media (max-width:960px) {
  .catalog-grid, .plan-grid { grid-template-columns:1fr; }
  .catalog-card { display:grid; grid-template-columns:minmax(150px,.6fr) minmax(0,1.4fr); }
  .catalog-card-head { border-bottom:0; border-right:1px solid var(--line); }
  .detail-hero { grid-template-columns:1fr; gap:28px; }
  .learning-steps { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .catalog { padding-block:54px; }
  .catalog-card { display:flex; }
  .catalog-card-head { min-height:122px; border-right:0; border-bottom:1px solid var(--line); }
  .catalog-card-body, .catalog-card-head, .plan-card, .learning-step, .pace-card, .video-inclusions article { padding:24px; }
  .detail-hero { padding-block:20px 40px; }
  .detail-section { padding-top:42px; }
  .pace-grid, .video-inclusions { grid-template-columns:1fr; }
  .detail-callout { padding:26px; }
  .detail-intro { font-size:1.05rem; }
}
