.bousai-button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  border: 2px solid transparent;
  border-radius: 999px;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--bousai-transition), background-color var(--bousai-transition);
}

.bousai-button--primary {
  color: var(--bousai-color-white) !important;
  background: var(--bousai-color-orange-600);
}

.bousai-button--outline {
  color: var(--bousai-color-navy-950) !important;
  background: var(--bousai-color-white);
  border-color: var(--bousai-color-navy-900);
}

.bousai-section-heading {
  margin-bottom: var(--bousai-space-5);
  font-size: clamp(1.75rem, 3.2vw, 2.25rem);
  text-align: center;
  text-wrap: balance;
}

.bousai-section-kicker {
  margin-bottom: var(--bousai-space-3);
  color: var(--bousai-color-orange-600);
  font-size: var(--bousai-font-size-sm);
  font-weight: 900;
  letter-spacing: 0.08em;
}

.bousai-text-accent { color: var(--bousai-color-orange-600); font-weight: 900; }
.bousai-text-marker { color: var(--bousai-color-navy-950); background: linear-gradient(transparent 62%, #ffd9c2 62%); font-weight: 900; }

.bousai-hero {
  position: relative;
  overflow: hidden;
  color: var(--bousai-color-gray-950);
  background: linear-gradient(125deg, #f4fbfe 0%, #e3f3fa 58%, #cfe9f5 100%);
}
.bousai-hero::before {
  position: absolute;
  width: 38rem;
  aspect-ratio: 1;
  top: -26rem;
  left: -14rem;
  border: 1px solid rgb(22 90 145 / 12%);
  border-radius: 50%;
  content: "";
}

.bousai-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(20rem, 0.9fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

.bousai-qualification-label {
  display: inline-block;
  margin-bottom: var(--bousai-space-3);
  padding: 0.3rem 0.85rem;
  color: var(--bousai-color-navy-950);
  background: var(--bousai-color-white);
  border-radius: 999px;
  font-size: var(--bousai-font-size-sm);
  font-weight: 800;
}
.bousai-hero-primary-copy { display: grid; max-width: 100%; gap: 0.2rem; margin-bottom: var(--bousai-space-4); color: var(--bousai-color-navy-950); line-height: 1.5; }
.bousai-hero-primary-copy__line { display: flex; align-items: baseline; max-width: 100%; flex-wrap: nowrap; }
.bousai-hero-primary-copy__part { white-space: nowrap; }
.bousai-hero-primary-copy__part--context-lead { font-size: clamp(1rem, 1.39vw, 1.25rem); font-weight: 700; }
.bousai-hero-primary-copy__part--context-focus { display: flex; align-items: baseline; flex-wrap: nowrap; font-size: clamp(1.25rem, 1.8vw, 1.625rem); font-weight: 800; white-space: normal; }
.bousai-hero-primary-copy__part--question-focus { display: flex; align-items: baseline; flex-wrap: nowrap; color: var(--bousai-color-orange-600); font-size: clamp(1.625rem, 2.36vw, 2.125rem); font-weight: 900; white-space: normal; }
.bousai-hero-primary-copy__phrase { white-space: nowrap; }
.bousai-hero h1.bousai-course-name { margin-bottom: var(--bousai-space-4); color: var(--bousai-color-navy-950); font-size: clamp(2.5rem, 4.7vw, 3.6rem); line-height: 1.08; letter-spacing: 0.02em; }
.bousai-course-name__line { display: flex; align-items: baseline; white-space: nowrap; }
.bousai-course-name__line + .bousai-course-name__line { margin-top: 0.08em; }
.bousai-course-name__emphasis { color: var(--bousai-color-orange-600); font-size: 1.2em; font-weight: 900; line-height: 1; }
.bousai-hero-subcopy { margin-bottom: var(--bousai-space-4); color: var(--bousai-color-orange-600); font-size: clamp(1.05rem, 1.8vw, 1.3rem); font-weight: 800; line-height: 1.7; white-space: nowrap; }

.bousai-hero-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: var(--bousai-space-5);
  overflow: hidden;
  color: var(--bousai-color-gray-950);
  background: var(--bousai-color-white);
  border-radius: var(--bousai-radius-md);
}
.bousai-hero-facts li { display: grid; align-content: center; min-height: 5.25rem; padding: 0.75rem; border-right: 1px solid var(--bousai-color-gray-300); text-align: center; }
.bousai-hero-facts li:last-child { border-right: 0; }
.bousai-hero-facts strong { color: var(--bousai-color-navy-950); font-size: 1.15rem; }
.bousai-hero-facts span { color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-xs); line-height: 1.45; }
.bousai-hero-price { display: flex; align-items: center; justify-content: space-between; gap: var(--bousai-space-4); margin-bottom: var(--bousai-space-4); padding: var(--bousai-space-4) var(--bousai-space-5); color: var(--bousai-color-gray-950); background: var(--bousai-color-white); border-left: 0.4rem solid var(--bousai-color-orange-600); border-radius: var(--bousai-radius-md); box-shadow: 0 0.75rem 2rem rgb(0 0 0 / 12%); }
.bousai-hero-price > div { display: grid; }
.bousai-hero-price-course { color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-base); font-weight: 900; }
.bousai-hero-price-caption { color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-base); font-weight: 700; }
.bousai-hero-price p { display: flex; align-items: baseline; color: var(--bousai-color-orange-600); line-height: 1; }
.bousai-hero-price p strong { font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 900; letter-spacing: -0.03em; }
.bousai-hero-price p span { margin-left: 0.2rem; font-size: var(--bousai-font-size-lg); font-weight: 900; }
.bousai-hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bousai-space-3); margin-bottom: var(--bousai-space-5); }
.bousai-cta-card { position: relative; display: grid; min-height: 4.75rem; align-content: center; justify-items: center; margin-top: 0.75rem; padding: 1.15rem 1rem 0.7rem; color: white !important; border: 0; border-radius: 0.65rem; font-weight: 800; line-height: 1.3; text-decoration: none; cursor: pointer; transition: transform var(--bousai-transition), filter var(--bousai-transition); }
.bousai-cta-card--apply { background: #e8444f; }
.bousai-cta-card--request { background: #267fc7; }
.bousai-cta-card--line { background: #28b956; }
.bousai-cta-card small { position: absolute; top: -0.75rem; right: 0.75rem; left: 0.75rem; padding: 0.15rem 0.5rem; color: currentColor; background: white; border: 1.5px solid currentColor; border-radius: 999px; font-size: 0.7rem; font-weight: 800; text-align: center; }
.bousai-cta-card--apply small { color: #d93542; }
.bousai-cta-card--request small { color: #176db3; }
.bousai-cta-card--line small { color: #209948; }
.bousai-cta-card strong { display: flex; align-items: center; gap: 0.65rem; font-size: 1.12rem; }
.bousai-cta-card strong::after { display: grid; width: 1.15rem; aspect-ratio: 1; place-items: center; color: inherit; background: rgb(255 255 255 / 22%); border-radius: 50%; content: "›"; font-size: 1rem; line-height: 1; }
.bousai-cta-pair--apply-request .bousai-cta-card { min-height: 5rem; }
.bousai-cta-pair--apply-request .bousai-cta-card strong::after { background: white; }
.bousai-cta-pair--apply-request .bousai-cta-card--apply strong::after { color: #d93542; }
.bousai-cta-pair--apply-request .bousai-cta-card--request strong::after { color: #176db3; }
.bousai-cta-card__free { display: inline-grid; min-width: 2.7em; padding: 0.1em 0.35em; place-items: center; color: #176db3; background: white; border-radius: 0.25rem; font-size: 0.74em; line-height: 1.25; }
.bousai-price-guidance { margin: var(--bousai-space-3) 0 0; padding: 0; color: var(--bousai-color-gray-700); background: transparent; border: 0; border-radius: 0; box-shadow: none; font-size: 0.75rem; line-height: 1.65; }
.bousai-price-guidance strong { color: var(--bousai-color-navy-950); font-size: 0.8rem; }
.bousai-price-guidance ul { margin-top: 0.2rem; }
.bousai-price-guidance li { position: relative; padding-left: 0.9rem; }
.bousai-price-guidance li::before { position: absolute; left: 0; content: "・"; }
.bousai-price-guidance a { color: var(--bousai-color-navy-900); font-weight: 800; cursor: pointer; text-decoration: underline; }
.bousai-hero-intro { padding-top: var(--bousai-space-5); border-top: 1px solid rgb(22 90 145 / 22%); color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-base); line-height: 1.85; }
.bousai-hero-intro p + p { margin-top: var(--bousai-space-3); }

.bousai-hero-visual {
  --bousai-hero-fade-color: #e3f3fa;
  --bousai-hero-image-fade-left: 8%;
  --bousai-hero-image-fade-right: 12%;
  --bousai-hero-image-fade-top: 5%;
  --bousai-hero-image-fade-bottom: 13%;
  position: relative;
  display: grid;
  min-height: 0;
  aspect-ratio: 4 / 5;
  overflow: visible;
  color: var(--bousai-color-navy-950);
}
.bousai-hero-visual--sp { display: none; }
.bousai-hero-image { display: block; width: 100%; min-height: 0; height: 100%; object-fit: cover; object-position: center 45%; }
.bousai-hero-visual::after { position: absolute; z-index: 1; inset: -1px; pointer-events: none; background: linear-gradient(to right, var(--bousai-hero-fade-color) 0%, rgb(227 243 250 / 0%) var(--bousai-hero-image-fade-left), rgb(227 243 250 / 0%) calc(100% - var(--bousai-hero-image-fade-right)), var(--bousai-hero-fade-color) 100%), linear-gradient(to bottom, var(--bousai-hero-fade-color) 0%, rgb(227 243 250 / 0%) var(--bousai-hero-image-fade-top), rgb(227 243 250 / 0%) calc(100% - var(--bousai-hero-image-fade-bottom)), var(--bousai-hero-fade-color) 100%); content: ""; }
.bousai-study-badge { position: absolute; z-index: 2; right: var(--bousai-space-4); bottom: var(--bousai-space-4); display: grid; width: 7.75rem; aspect-ratio: 1; place-content: center; color: white; background: linear-gradient(145deg, #ec3e38 0 48%, #f2634d 48% 100%); clip-path: polygon(48% 0, 94% 18%, 100% 68%, 68% 100%, 14% 83%, 0 34%); filter: drop-shadow(0 0.5rem 0.6rem rgb(5 47 95 / 18%)); line-height: 1; text-align: center; }
.bousai-study-badge strong { display: flex; align-items: baseline; justify-content: center; color: var(--bousai-color-white); font-weight: 900; }
.bousai-study-badge strong b { font-size: 3.15rem; letter-spacing: -0.08em; }
.bousai-study-badge strong small { margin-left: 0.1rem; color: inherit; font-size: 0.85rem; font-weight: 900; }
.bousai-study-badge > span { margin-top: 0.15rem; color: var(--bousai-color-white); font-size: 0.72rem; font-weight: 900; }
.bousai-placeholder-label { padding: 0.25rem 0.65rem; color: white; background: var(--bousai-color-navy-900); border-radius: 999px; font-size: var(--bousai-font-size-xs); font-weight: 800; }
.bousai-hero-visual strong { font-size: var(--bousai-font-size-lg); }
.bousai-hero-visual small { color: var(--bousai-color-gray-700); }

.bousai-section-intro { max-width: var(--bousai-reading-width); margin: 0 auto var(--bousai-space-7); text-align: center; }
.bousai-section-lead { font-size: 1.0625rem; line-height: 1.9; }
.bousai-section-lead p + p { margin-top: var(--bousai-space-4); }
.bousai-need { padding-top: clamp(3rem, 5vw, 5rem); background: var(--bousai-color-background); }
.bousai-need #need-title,
.bousai-mind-trap h2.bousai-mind-title,
.bousai-first-days #first-days-title { color: var(--bousai-color-orange-600); font-size: clamp(1.75rem, 3.2vw, 2.25rem); letter-spacing: 0.02em; line-height: 1.5; }
.bousai-situation-primary-label { width: fit-content; margin: 0 auto var(--bousai-space-4); padding: 0.45rem 1rem; color: var(--bousai-color-navy-900); background: var(--bousai-color-sky-100); border: 1px solid rgb(5 47 95 / 18%); border-radius: 999px; font-size: var(--bousai-font-size-sm); font-weight: 900; }
.bousai-situation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-5); }
.bousai-situation-grid--primary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bousai-situation-card { display: grid; grid-template-rows: 1fr auto; gap: var(--bousai-space-4); padding: var(--bousai-space-6); background: white; border-top: 0.3rem solid var(--bousai-color-orange-500); border-radius: var(--bousai-radius-md); box-shadow: var(--bousai-shadow-card); transition: box-shadow 180ms ease, transform 180ms ease; }
.bousai-situation-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--bousai-space-3); }
.bousai-situation-meta span { color: var(--bousai-color-orange-600); font-size: clamp(1.05rem, 1.8vw, 1.25rem); font-weight: 900; line-height: 1.45; }
.bousai-situation-meta b { display: grid; width: 2.75rem; aspect-ratio: 1; place-items: center; color: var(--bousai-color-orange-600); background: var(--bousai-color-orange-100); border: 1px solid #ffc7a5; border-radius: 50%; font-size: var(--bousai-font-size-sm); line-height: 1; }
.bousai-situation-card h3 { margin-bottom: var(--bousai-space-4); font-size: var(--bousai-font-size-xl); }
.bousai-situation-card h3::after { display: block; width: 3rem; height: 0.22rem; margin-top: var(--bousai-space-3); background: linear-gradient(90deg, var(--bousai-color-orange-600), var(--bousai-color-orange-500)); border-radius: 999px; content: ""; }
.bousai-situation-copy > p:not(.bousai-situation-meta) { font-size: 0.975rem; line-height: 1.85; }
.bousai-situation-copy > p:not(.bousai-situation-meta) + p { margin-top: var(--bousai-space-3); }
.bousai-situation-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: center; border-radius: var(--bousai-radius-sm); }
.bousai-situation-secondary { max-width: 58rem; margin: var(--bousai-space-5) auto 0; }
.bousai-situation-card--household { grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr); grid-template-rows: 1fr; align-items: center; border-top-color: var(--bousai-color-navy-700); box-shadow: none; }
.bousai-situation-card--household .bousai-situation-meta span { color: var(--bousai-color-navy-900); }
.bousai-situation-card--household .bousai-situation-image { aspect-ratio: 16 / 9; }
.bousai-outcome-diagram { max-width: 64rem; margin: var(--bousai-space-8) auto 0; padding: var(--bousai-space-7); background: white; border: 1px solid rgb(5 47 95 / 14%); border-radius: var(--bousai-radius-md); }
.bousai-outcome-diagram__heading { max-width: 48rem; margin: 0 auto var(--bousai-space-6); text-align: center; }
.bousai-outcome-diagram__heading h3 { color: var(--bousai-color-navy-950); font-size: clamp(1.65rem, 3vw, 2.15rem); line-height: 1.5; }
.bousai-outcome-diagram__flow { display: grid; grid-template-columns: minmax(8.5rem, 0.72fr) 6.5rem minmax(0, 3fr); gap: var(--bousai-space-3); align-items: center; }
.bousai-outcome-diagram__start { display: grid; grid-template-columns: 1fr; gap: var(--bousai-space-2); align-items: center; justify-items: center; padding: var(--bousai-space-4); background: var(--bousai-color-sky-100); border-left: 0.25rem solid var(--bousai-color-navy-700); border-radius: var(--bousai-radius-sm); text-align: center; }
.bousai-outcome-diagram__start .bousai-outcome-diagram__icon { width: 3.25rem; }
.bousai-outcome-diagram__start .bousai-outcome-diagram__icon svg { width: 2.35rem; height: 2.35rem; }
.bousai-outcome-diagram__start h4 { margin-bottom: 0.2rem; color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-lg); }
.bousai-outcome-diagram__start p { color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-sm); line-height: 1.6; }
.bousai-outcome-diagram__icon { display: grid; width: 3.75rem; aspect-ratio: 1; place-items: center; color: var(--bousai-color-navy-900); background: white; border: 1px solid rgb(5 47 95 / 12%); border-radius: 50%; }
.bousai-outcome-diagram__icon svg { width: 2.75rem; height: 2.75rem; }
.bousai-outcome-diagram__icon-accent { color: var(--bousai-color-orange-600); }
.bousai-outcome-diagram__transition { display: grid; gap: var(--bousai-space-2); justify-items: center; color: var(--bousai-color-orange-600); }
.bousai-outcome-diagram__transition span { color: var(--bousai-color-navy-700); font-size: var(--bousai-font-size-xs); font-weight: 900; white-space: nowrap; }
.bousai-outcome-diagram__transition svg { width: 100%; height: 1.5rem; }
.bousai-outcome-diagram__skills { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #f8fbfd; border: 1px solid rgb(5 47 95 / 12%); border-radius: var(--bousai-radius-sm); }
.bousai-outcome-diagram__skills li { position: relative; display: grid; grid-template-columns: 3.75rem minmax(0, 1fr); gap: var(--bousai-space-3); align-items: center; min-width: 0; padding: var(--bousai-space-5) var(--bousai-space-4); }
.bousai-outcome-diagram__skills li + li { border-left: 1px solid rgb(5 47 95 / 14%); }
.bousai-outcome-diagram__skills li:not(:last-child)::after { position: absolute; z-index: 1; top: 50%; right: -0.8rem; display: grid; width: 1.6rem; aspect-ratio: 1; place-items: center; color: var(--bousai-color-orange-600); background: white; border: 1px solid rgb(214 81 16 / 25%); border-radius: 50%; content: "→"; font-size: 0.9rem; font-weight: 900; transform: translateY(-50%); }
.bousai-outcome-diagram__number { margin-bottom: 0.15rem; color: var(--bousai-color-orange-600); font-size: var(--bousai-font-size-xs); font-weight: 900; }
.bousai-outcome-diagram__skills h4 { margin-bottom: var(--bousai-space-1); color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-lg); }
.bousai-outcome-diagram__skills li > div > p:last-child { color: var(--bousai-color-gray-700); font-size: 0.8125rem; line-height: 1.65; }
.bousai-section-transition { display: flex; align-items: center; justify-content: center; gap: var(--bousai-space-4); max-width: 50rem; margin: var(--bousai-space-6) auto 0; color: var(--bousai-color-navy-950); font-size: 1.0625rem; font-weight: 700; line-height: 1.7; text-align: center; }
.bousai-section-transition::before,
.bousai-section-transition::after { width: 2.5rem; height: 1px; flex: 0 0 auto; background: rgb(5 47 95 / 24%); content: ""; }
.bousai-section-transition > span { min-width: 0; }
.bousai-section-transition strong { color: var(--bousai-color-orange-600); font-weight: 900; }
.bousai-section-transition + .bousai-outcome-diagram,
.bousai-section-transition + .bousai-support-block { margin-top: var(--bousai-space-5); }
.bousai-conclusion { max-width: 48rem; margin: var(--bousai-space-7) auto 0; padding: var(--bousai-space-6); color: var(--bousai-color-navy-950); background: radial-gradient(circle at 92% 15%, rgb(255 255 255 / 75%), transparent 22%), var(--bousai-color-orange-100); border-left: 0.35rem solid var(--bousai-color-orange-600); font-size: var(--bousai-font-size-lg); font-weight: 700; text-align: center; }
.bousai-conclusion p + p { margin-top: var(--bousai-space-3); }

.bousai-core-learning .bousai-block-heading { margin-bottom: var(--bousai-space-6); }
.bousai-perspective-detail-list { display: grid; gap: var(--bousai-space-5); max-width: 68rem; margin-inline: auto; }
.bousai-perspective-detail { padding: var(--bousai-space-6); background: rgb(255 255 255 / 88%); border: 1px solid rgb(5 47 95 / 14%); border-top: 0.3rem solid var(--bousai-color-orange-600); border-radius: var(--bousai-radius-md); box-shadow: 0 0.65rem 1.5rem rgb(15 42 68 / 8%); }
.bousai-perspective-detail-heading { margin-bottom: var(--bousai-space-5); text-align: center; }
.bousai-perspective-detail-label { display: flex; align-items: center; justify-content: center; gap: var(--bousai-space-3); margin-bottom: var(--bousai-space-3); color: var(--bousai-color-navy-950); font-weight: 900; line-height: 1.6; text-align: center; }
.bousai-perspective-detail-label span { display: grid; flex: 0 0 2.35rem; width: 2.35rem; aspect-ratio: 1; place-items: center; color: white; background: var(--bousai-color-orange-600); border-radius: 50%; font-size: var(--bousai-font-size-xs); }
.bousai-perspective-detail h3 { color: var(--bousai-color-navy-950); font-size: clamp(1.35rem, 2.5vw, 1.75rem); line-height: 1.55; }
.bousai-perspective-detail-body { display: grid; grid-template-columns: 1fr; gap: var(--bousai-space-5); align-items: start; }
.bousai-perspective-detail-body > p,
.bousai-perspective-detail-lead { color: var(--bousai-color-gray-800); line-height: 1.85; }
.bousai-perspective-detail-body > p { max-width: 46rem; margin-inline: auto; text-align: left; }
.bousai-perspective-detail-lead { max-width: 46rem; margin: var(--bousai-space-3) auto 0; text-align: center; }
.bousai-inner-voice { width: min(100%, 28rem); margin-inline: auto; padding: var(--bousai-space-4); background: #fff9f3; border: 1px solid rgb(214 81 16 / 12%); border-radius: var(--bousai-radius-sm); }
.bousai-inner-voice-title { margin-bottom: var(--bousai-space-3); color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-sm); font-weight: 900; line-height: 1.65; }
.bousai-inner-voice-list { display: grid; gap: var(--bousai-space-3); }
.bousai-inner-voice-list li { position: relative; padding: 0.8rem 1rem 0.8rem 2.65rem; color: var(--bousai-color-navy-950); background: white; border: 1px solid rgb(5 47 95 / 11%); border-radius: 0.7rem; font-size: var(--bousai-font-size-sm); font-weight: 700; line-height: 1.65; }
.bousai-inner-voice-list li::before { position: absolute; top: 0.45rem; left: 0.85rem; color: var(--bousai-color-orange-600); content: "“"; font-family: Georgia, serif; font-size: 1.75rem; font-weight: 900; line-height: 1; }
.bousai-inner-voice-list li::after { position: absolute; bottom: -0.42rem; left: 1.15rem; width: 0.75rem; height: 0.75rem; background: white; border-right: 1px solid rgb(5 47 95 / 11%); border-bottom: 1px solid rgb(5 47 95 / 11%); content: ""; transform: rotate(45deg); }
.bousai-perspective-timeline-label { display: flex; width: fit-content; margin: 0 auto var(--bousai-space-4); padding: 0.45rem 1rem; color: var(--bousai-color-navy-950); background: var(--bousai-color-orange-100); border-left: 0.25rem solid var(--bousai-color-orange-600); font-size: var(--bousai-font-size-lg); font-weight: 900; line-height: 1.5; text-align: center; }
.bousai-perspective-detail--time .bousai-time-axis { margin-bottom: 0; }

.bousai-mind-trap { padding-top: clamp(3rem, 5vw, 5rem); background: var(--bousai-color-sky-100); }
.bousai-mind-trap h2.bousai-mind-title { margin-bottom: var(--bousai-space-5); }
.bousai-mind-problem { max-width: var(--bousai-reading-width); margin-inline: auto; font-size: 1.025rem; line-height: 1.9; }
.bousai-mind-turning-point { max-width: 46rem; margin: var(--bousai-space-7) auto; padding: var(--bousai-space-4) var(--bousai-space-5); color: var(--bousai-color-navy-950); background: white; border-left: 0.3rem solid var(--bousai-color-orange-500); border-radius: var(--bousai-radius-sm); text-align: left; }
.bousai-mind-turning-point h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.75; }
.bousai-mind-turning-point strong { color: var(--bousai-color-orange-600); }
.bousai-mind-learning-heading { max-width: 52rem; margin: 0 auto var(--bousai-space-7); text-align: center; }
.bousai-mind-learning-label,
.bousai-first-days-learning-label { position: relative; display: inline-flex; align-items: center; gap: 0.55rem; margin-bottom: var(--bousai-space-5); padding: 0.65rem 1.6rem; color: white; background: linear-gradient(120deg, var(--bousai-color-orange-600), var(--bousai-color-orange-500)); border: 2px solid white; border-radius: 999px; box-shadow: 0 0.45rem 1rem rgb(214 81 16 / 22%); font-size: clamp(1rem, 1.8vw, 1.2rem); font-weight: 900; letter-spacing: 0.06em; line-height: 1.3; }
.bousai-mind-learning-label::before,
.bousai-first-days-learning-label::before { color: #fff4a3; content: "✦"; font-size: 1.15em; line-height: 1; }
.bousai-mind-learning-label::after,
.bousai-first-days-learning-label::after { position: absolute; top: calc(100% - 1px); left: 50%; width: 0; height: 0; border-top: 0.6rem solid var(--bousai-color-orange-500); border-right: 0.55rem solid transparent; border-left: 0.55rem solid transparent; content: ""; transform: translateX(-50%); }
.bousai-mind-learning-heading h3 { color: var(--bousai-color-navy-950); font-size: clamp(1.45rem, 2.8vw, 2rem); line-height: 1.65; }
.bousai-mind-conclusion { max-width: 52rem; margin: var(--bousai-space-8) auto 0; padding: var(--bousai-space-6); color: var(--bousai-color-navy-950); background: radial-gradient(circle at 92% 15%, var(--bousai-color-orange-100), transparent 24%), white; border-left: 0.35rem solid var(--bousai-color-orange-600); font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.75; text-align: center; }
.bousai-mind-conclusion p + p { margin-top: var(--bousai-space-4); }
.bousai-mind-conclusion strong { color: var(--bousai-color-navy-950); font-weight: 900; }
.bousai-mind-conclusion .bousai-text-accent { color: var(--bousai-color-orange-600); }

.bousai-first-days { padding-top: clamp(3rem, 5vw, 5rem); color: var(--bousai-color-gray-950); background: var(--bousai-color-background); }
.bousai-first-days .bousai-section-heading { color: var(--bousai-color-orange-600); }
.bousai-first-days .bousai-section-kicker { color: #ffb17f; }
.bousai-time-axis { position: relative; isolation: isolate; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--bousai-space-4); margin-bottom: var(--bousai-space-7); counter-reset: time-step; }
.bousai-time-axis::before { position: absolute; z-index: 2; top: 2.58rem; right: 12.5%; left: 12.5%; height: 2px; background: rgb(214 81 16 / 30%); content: ""; pointer-events: none; }
.bousai-time-axis > li { position: relative; z-index: 1; display: flex; min-width: 0; flex-direction: column; align-items: center; padding: var(--bousai-space-5); color: var(--bousai-color-gray-950); border: 1px solid rgb(5 47 95 / 10%); border-radius: var(--bousai-radius-md); counter-increment: time-step; }
.bousai-time-axis > li:nth-child(1) { background: #fff1f1; }
.bousai-time-axis > li:nth-child(2) { background: #fff8e8; }
.bousai-time-axis > li:nth-child(3) { background: #eaf7fb; }
.bousai-time-axis > li:nth-child(4) { background: #eef7e8; }
.bousai-time-axis > li::before { position: relative; z-index: 3; display: grid; width: 2.75rem; aspect-ratio: 1; margin: 0 auto var(--bousai-space-3); place-items: center; color: white; background: var(--bousai-color-orange-600); border: 3px solid white; border-radius: 50%; box-shadow: 0 0.25rem 0.6rem rgb(15 42 68 / 16%); content: counter(time-step); font-size: var(--bousai-font-size-lg); font-weight: 900; }
.bousai-time-axis > li:not(:last-child)::after { position: absolute; z-index: 4; top: 2.35rem; right: calc(var(--bousai-space-4) * -0.7); width: 0.55rem; height: 0.55rem; border-right: 2px solid rgb(214 81 16 / 58%); border-bottom: 2px solid rgb(214 81 16 / 58%); content: ""; transform: rotate(-45deg); }
.bousai-time-label { min-height: auto; margin-bottom: var(--bousai-space-3); color: var(--bousai-color-navy-950); font-size: clamp(1.125rem, 1.5vw, 1.25rem); font-weight: 900; line-height: 1.4; text-align: center; }
.bousai-time-icon { display: grid; width: 4rem; aspect-ratio: 1; margin-bottom: var(--bousai-space-4); place-items: center; color: var(--bousai-color-navy-900); background: rgb(255 255 255 / 82%); border: 1px solid rgb(5 47 95 / 10%); border-radius: var(--bousai-radius-sm); }
.bousai-time-icon svg { width: 2.75rem; height: 2.75rem; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.bousai-time-icon-accent { color: var(--bousai-color-orange-600); stroke: currentColor; }
.bousai-time-axis > li > p:last-child { width: 100%; color: var(--bousai-color-gray-800); font-size: 1rem; font-weight: 700; line-height: 1.7; text-align: left; }
.bousai-time-axis ul { display: grid; gap: var(--bousai-space-2); margin-top: var(--bousai-space-3); }
.bousai-time-axis ul li { position: relative; padding-left: 1rem; font-size: 0.9375rem; line-height: 1.75; }
.bousai-time-axis ul li::before { position: absolute; left: 0; color: var(--bousai-color-orange-600); content: "•"; font-weight: 900; }
.bousai-time-axis ul li > strong { color: var(--bousai-color-navy-950); font-weight: 900; }
.bousai-first-days-turning-point { max-width: 46rem; margin: var(--bousai-space-7) auto; padding: var(--bousai-space-4) var(--bousai-space-5); color: var(--bousai-color-navy-950); background: white; border-left: 0.3rem solid var(--bousai-color-orange-500); border-radius: var(--bousai-radius-sm); }
.bousai-first-days-turning-point h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.75; }
.bousai-first-days-turning-point strong { color: var(--bousai-color-orange-600); }
.bousai-first-days-learning { padding-top: var(--bousai-space-7); border-top: 1px solid var(--bousai-color-gray-300); }
.bousai-first-days-learning-heading { max-width: 52rem; margin: 0 auto var(--bousai-space-7); text-align: center; }
.bousai-first-days-learning-heading h3 { margin-bottom: var(--bousai-space-4); color: var(--bousai-color-navy-950); font-size: clamp(1.45rem, 2.8vw, 2rem); line-height: 1.6; }
.bousai-first-days-learning-heading > p:last-child { font-size: 1.025rem; line-height: 1.9; }
.bousai-first-days-skill-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--bousai-space-5); }
.bousai-axis-explanation { max-width: 52rem; margin: var(--bousai-space-7) auto; padding: var(--bousai-space-4) var(--bousai-space-5); color: var(--bousai-color-navy-950); background: var(--bousai-color-orange-100); border-left: 0.3rem solid var(--bousai-color-orange-600); border-radius: var(--bousai-radius-sm); font-weight: 700; line-height: 1.85; }
.bousai-first-days-skill-card { position: relative; background: white; border-top: 0.3rem solid var(--bousai-color-navy-900); border-radius: var(--bousai-radius-md); box-shadow: var(--bousai-shadow-card); transition: box-shadow 180ms ease, transform 180ms ease; }
.bousai-first-days-skill-card > figure { display: flex; height: 100%; overflow: hidden; border-radius: inherit; flex-direction: column; }
.bousai-first-days-learning--outcome .bousai-first-days-skill-card:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: calc(var(--bousai-space-5) * -0.78); display: grid; width: 1.85rem; aspect-ratio: 1; place-items: center; color: var(--bousai-color-orange-600); background: var(--bousai-color-sky-100); border: 1px solid rgb(214 81 16 / 28%); border-radius: 50%; content: "→"; font-size: 1rem; font-weight: 900; transform: translateY(-50%); }
.bousai-first-days-image-placeholder { display: grid; aspect-ratio: 1; align-content: center; justify-items: center; gap: var(--bousai-space-2); padding: var(--bousai-space-4); color: var(--bousai-color-navy-900); background: linear-gradient(145deg, white, var(--bousai-color-sky-100)); border-bottom: 2px dashed #78aeca; text-align: center; }
.bousai-first-days-skill-media { display: grid; aspect-ratio: 3 / 2; place-items: center; background: linear-gradient(145deg, white, var(--bousai-color-sky-100)); }
.bousai-first-days-skill-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.bousai-first-days-image-placeholder span { font-weight: 900; }
.bousai-first-days-image-placeholder small { color: var(--bousai-color-gray-700); line-height: 1.55; }
.bousai-first-days-skill-card figcaption { position: relative; flex: 1; padding: var(--bousai-space-6) var(--bousai-space-5) var(--bousai-space-5); }
.bousai-first-days-skill-card figcaption > span { position: absolute; top: -1.35rem; left: var(--bousai-space-5); display: grid; width: 2.7rem; aspect-ratio: 1; place-items: center; color: white; background: var(--bousai-color-orange-600); border: 3px solid white; border-radius: 50%; box-shadow: 0 0.25rem 0.6rem rgb(15 42 68 / 18%); font-size: var(--bousai-font-size-xs); font-weight: 900; }
.bousai-first-days-skill-card h4 { margin-bottom: var(--bousai-space-3); color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-lg); line-height: 1.5; }
.bousai-first-days-skill-card figcaption p { font-size: var(--bousai-font-size-sm); line-height: 1.8; }
.bousai-core-learning-conclusion { max-width: 52rem; margin: var(--bousai-space-7) auto 0; padding: var(--bousai-space-5) var(--bousai-space-6); color: var(--bousai-color-navy-950); background: var(--bousai-color-orange-100); border-left: 0.35rem solid var(--bousai-color-orange-600); border-radius: var(--bousai-radius-sm); font-size: var(--bousai-font-size-lg); line-height: 1.8; text-align: center; }
.bousai-first-days-conclusion { max-width: 52rem; margin: var(--bousai-space-8) auto 0; padding: var(--bousai-space-6); background: radial-gradient(circle at 92% 15%, var(--bousai-color-orange-100), transparent 24%), var(--bousai-color-white); border: 1px solid var(--bousai-color-gray-300); border-left: 0.35rem solid var(--bousai-color-orange-600); border-radius: var(--bousai-radius-md); text-align: center; }
.bousai-first-days-conclusion p + p { margin-top: var(--bousai-space-4); }
.bousai-first-days-conclusion strong { color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-xl); }
.bousai-mind-conclusion,
.bousai-first-days-conclusion,
.bousai-conclusion { position: relative; overflow: hidden; box-shadow: 0 0.6rem 1.5rem rgb(15 42 68 / 8%); }
.bousai-mind-conclusion::before,
.bousai-first-days-conclusion::before,
.bousai-conclusion::before { position: absolute; top: 0.75rem; right: 0.75rem; width: 1.8rem; height: 1.8rem; border-top: 0.2rem solid var(--bousai-color-orange-500); border-right: 0.2rem solid var(--bousai-color-orange-500); content: ""; }
.bousai-mind-conclusion::after,
.bousai-first-days-conclusion::after,
.bousai-conclusion::after { position: absolute; bottom: 0.75rem; left: 0.75rem; width: 1.4rem; height: 1.4rem; border-bottom: 0.16rem solid var(--bousai-color-navy-900); border-left: 0.16rem solid var(--bousai-color-navy-900); content: ""; opacity: 0.55; }
.bousai-mind-conclusion p:last-child .bousai-text-accent,
.bousai-first-days-conclusion p:last-child .bousai-text-accent { font-size: 1.18em; }

/* Block 2 */
.bousai-section--sky { background: var(--bousai-color-sky-100); }
.bousai-block-heading { max-width: 58rem; margin: 0 auto var(--bousai-space-7); text-align: center; }
.bousai-block-heading .bousai-section-kicker { margin-bottom: var(--bousai-space-3); }
.bousai-block-heading .bousai-section-label { display: flex; width: fit-content; align-items: center; justify-content: center; margin: 0 auto 1.25rem; padding: 0.4rem 1.1rem; color: var(--bousai-color-orange-600); background: var(--bousai-color-orange-100); border: 1px solid rgb(233 86 0 / 28%); border-radius: 999px; font-size: var(--bousai-font-size-base); font-weight: 900; line-height: 1.4; letter-spacing: 0.05em; }
.bousai-about-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr); gap: var(--bousai-space-7); align-items: start; }
.bousai-about-copy > p { font-size: 1.025rem; line-height: 1.95; }
.bousai-about-copy > p + p { margin-top: var(--bousai-space-4); }
.bousai-course-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin-top: var(--bousai-space-6); background: var(--bousai-color-gray-300); border: 1px solid var(--bousai-color-gray-300); border-radius: var(--bousai-radius-md); }
.bousai-course-facts > div { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); background: white; }
.bousai-course-facts dt { padding: var(--bousai-space-4); color: var(--bousai-color-navy-950); background: #edf6fb; font-weight: 800; }
.bousai-course-facts dd { padding: var(--bousai-space-4); line-height: 1.7; }
.bousai-course-facts dd strong { color: var(--bousai-color-orange-600); font-size: var(--bousai-font-size-lg); }
.bousai-image-card { overflow: hidden; background: white; border-radius: var(--bousai-radius-md); box-shadow: var(--bousai-shadow-card); }
.bousai-image-card figcaption { padding: var(--bousai-space-5); color: var(--bousai-color-navy-950); font-weight: 800; line-height: 1.8; text-align: center; }
.bousai-image-placeholder { display: grid; aspect-ratio: 1; place-content: center; gap: var(--bousai-space-3); padding: var(--bousai-space-5); color: var(--bousai-color-navy-900); background: linear-gradient(145deg, white, #dceff7); border: 2px dashed #78aeca; text-align: center; }
.bousai-image-placeholder--landscape { aspect-ratio: 4 / 3; }
.bousai-image-placeholder span { font-weight: 900; }
.bousai-image-placeholder small { color: var(--bousai-color-gray-700); line-height: 1.65; }
.bousai-about-message { max-width: 54rem; margin: var(--bousai-space-7) auto 0; padding: var(--bousai-space-5); color: var(--bousai-color-navy-950); background: var(--bousai-color-orange-100); border-left: 0.35rem solid var(--bousai-color-orange-600); border-radius: var(--bousai-radius-sm); font-size: var(--bousai-font-size-xl); text-align: center; }
.bousai-about-message strong { color: var(--bousai-color-orange-600); }
.bousai-curriculum-heading .bousai-section-heading { margin-bottom: var(--bousai-space-3); }
.bousai-curriculum-heading-note { color: var(--bousai-color-gray-700); font-size: 1.0625rem; line-height: 1.8; }
.bousai-curriculum-month-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-5); max-width: 64rem; margin-inline: auto; }
.bousai-curriculum-month { display: flex; flex-direction: column; padding: var(--bousai-space-6); background: white; border-top: 0.35rem solid var(--bousai-color-orange-500); border-radius: var(--bousai-radius-md); box-shadow: var(--bousai-shadow-card); }
.bousai-curriculum-month-header { margin-bottom: var(--bousai-space-3); padding-bottom: var(--bousai-space-4); border-bottom: 1px solid var(--bousai-color-gray-300); text-align: center; }
.bousai-curriculum-month-header > p { display: inline-block; margin-bottom: var(--bousai-space-3); padding: 0.35rem 1rem; color: white; background: var(--bousai-color-navy-900); border-radius: 999px; font-weight: 900; }
.bousai-curriculum-month-header h3 { color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-xl); line-height: 1.55; }
.bousai-curriculum-domain-list { display: grid; flex: 1; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.bousai-curriculum-domain { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: var(--bousai-space-4); align-items: center; padding-block: var(--bousai-space-4); }
.bousai-curriculum-domain + .bousai-curriculum-domain { border-top: 1px solid var(--bousai-color-gray-300); }
.bousai-curriculum-domain-label { margin-bottom: var(--bousai-space-2); color: var(--bousai-color-orange-600); font-size: var(--bousai-font-size-sm); font-weight: 900; }
.bousai-curriculum-domain h4 { margin-bottom: var(--bousai-space-2); color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-lg); }
.bousai-curriculum-domain > div > p:last-child { color: var(--bousai-color-gray-800); line-height: 1.7; }
.bousai-curriculum-domain-icon { display: grid; width: 4rem; aspect-ratio: 1; place-items: center; color: var(--bousai-color-navy-900); background: var(--bousai-color-sky-100); border-radius: var(--bousai-radius-sm); }
.bousai-curriculum-domain-icon svg { width: 2.75rem; height: 2.75rem; }
.bousai-curriculum-domain-icon-accent { color: var(--bousai-color-orange-600); }
.bousai-curriculum-note { max-width: 64rem; margin: var(--bousai-space-5) auto 0; color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-sm); line-height: 1.7; text-align: left; }
.bousai-mid-document-cta { display: grid; max-width: 64rem; grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem); gap: var(--bousai-space-7); align-items: center; margin: var(--bousai-space-8) auto 0; padding: var(--bousai-space-6) var(--bousai-space-7); color: white; background: var(--bousai-color-navy-900); border-radius: var(--bousai-radius-md); }
.bousai-mid-document-cta > div:first-child { text-align: center; }
.bousai-mid-document-cta .bousai-section-kicker { margin-bottom: var(--bousai-space-2); color: #ffd7bd; }
.bousai-mid-document-cta h3 { margin-bottom: var(--bousai-space-3); color: white; font-size: clamp(1.35rem, 2.3vw, 1.75rem); line-height: 1.55; }
.bousai-mid-document-cta p:last-child { color: rgb(255 255 255 / 88%); line-height: 1.75; }
.bousai-mid-document-cta .bousai-cta-card { width: 100%; margin-top: 0.75rem; justify-self: center; }
.bousai-learning-story { position: relative; overflow: hidden; background: linear-gradient(180deg, #f8fcfe 0%, var(--bousai-color-sky-100) 52%, #f8fcfe 100%); }
.bousai-learning-story .bousai-section { position: relative; z-index: 1; background: transparent; }
.bousai-learning-story .bousai-curriculum { padding-top: var(--bousai-section-space); }
.bousai-learning-story .bousai-materials-support { background: #fffaf2; }
.bousai-learning-environment-block { max-width: 64rem; margin-inline: auto; }

/* Block 3 */
.bousai-qualification-copy { max-width: 48rem; margin-inline: auto; font-size: 1.025rem; line-height: 1.95; text-align: left; }

.bousai-materials-support__heading { max-width: 56rem; margin-inline: auto; }
.bousai-keep-phrase { white-space: nowrap; }
.bousai-materials-support__intro { margin-top: var(--bousai-space-4); color: var(--bousai-color-gray-800); font-size: var(--bousai-font-size-lg); line-height: 1.8; text-align: center; }
.bousai-content-label { align-self: flex-start; margin-bottom: var(--bousai-space-3); padding: 0.35rem 1rem; color: white; background: var(--bousai-color-navy-900); border-radius: 999px; font-size: var(--bousai-font-size-sm); font-weight: 900; }
.bousai-materials-flow { display: grid; max-width: 68rem; margin-inline: auto; gap: clamp(3rem, 6vw, 5rem); }
.bousai-materials-hero { display: grid; grid-template-columns: minmax(17rem, 0.8fr) minmax(0, 1.2fr); overflow: hidden; background: white; border: 1px solid var(--bousai-color-gray-300); border-radius: var(--bousai-radius-lg); box-shadow: var(--bousai-shadow-card); }
.bousai-materials-hero__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(2rem, 4vw, 3.5rem); }
.bousai-materials-hero__copy h3 { color: var(--bousai-color-navy-950); font-size: clamp(1.55rem, 2.5vw, 2.15rem); line-height: 1.5; }
.bousai-materials-media { min-width: 0; margin: 0; overflow: hidden; background: var(--bousai-color-sky-100); }
.bousai-materials-media--set { aspect-ratio: 4 / 3; }
.bousai-materials-media--spread { max-width: 56rem; aspect-ratio: 16 / 9; margin-inline: auto; border-radius: var(--bousai-radius-md); }
.bousai-materials-media--detail { aspect-ratio: 16 / 10; border-radius: var(--bousai-radius-sm); }
.bousai-materials-media--practice { aspect-ratio: 4 / 3; }
.bousai-materials-photo-placeholder { display: grid; width: 100%; height: 100%; min-height: 100%; place-items: center; color: var(--bousai-color-navy-900); background: linear-gradient(145deg, #f9fcfe, #dceff7); }
.bousai-materials-photo-placeholder span { padding: 0.4rem 0.9rem; background: rgb(255 255 255 / 88%); border: 1px solid rgb(5 47 95 / 10%); border-radius: 999px; font-size: var(--bousai-font-size-sm); font-weight: 900; }
.bousai-materials-text-step { padding: clamp(1rem, 3vw, 2rem) clamp(0rem, 2vw, 1.5rem); }
.bousai-materials-step-heading { max-width: 48rem; margin: 0 auto var(--bousai-space-6); text-align: center; }
.bousai-materials-step-label { display: inline-flex; align-items: center; gap: 0.65rem; margin-bottom: var(--bousai-space-3); color: var(--bousai-color-navy-700); font-size: var(--bousai-font-size-sm); font-weight: 900; letter-spacing: 0.03em; white-space: nowrap; }
.bousai-materials-step-label span { display: inline-flex; min-height: 2rem; align-items: center; padding-inline: 0.8rem; color: white; background: var(--bousai-color-navy-900); border-radius: 999px; }
.bousai-materials-step-heading h3,
.bousai-materials-practice h4 { margin-bottom: var(--bousai-space-3); color: var(--bousai-color-navy-950); font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.5; }
.bousai-materials-step-heading > p:last-child,
.bousai-materials-practice__copy > p:last-child { color: var(--bousai-color-gray-800); line-height: 1.85; }
.bousai-materials-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--bousai-space-6); gap: var(--bousai-space-5); }
.bousai-materials-detail { min-width: 0; }
.bousai-materials-detail > div { padding: var(--bousai-space-4) var(--bousai-space-2) 0; }
.bousai-materials-detail h4 { margin-bottom: var(--bousai-space-2); color: var(--bousai-color-navy-950); font-size: 1.2rem; line-height: 1.5; }
.bousai-materials-detail p { color: var(--bousai-color-gray-800); line-height: 1.75; }
.bousai-materials-practice-section { padding: clamp(2rem, 4vw, 3rem); background: var(--bousai-color-sky-100); border-radius: var(--bousai-radius-lg); }
.bousai-materials-practice-heading { max-width: 44rem; margin: 0 auto var(--bousai-space-6); text-align: center; }
.bousai-materials-practice-heading h3 { color: var(--bousai-color-navy-950); font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.5; }
.bousai-materials-practice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-5); }
.bousai-materials-practice { display: grid; min-width: 0; overflow: hidden; background: white; border: 1px solid var(--bousai-color-gray-300); border-radius: var(--bousai-radius-lg); }
.bousai-materials-practice__copy { padding: clamp(1.5rem, 3vw, 2.25rem); text-align: center; }
.bousai-materials-practice__copy > p:last-child { text-align: left; }
.bousai-support-block { max-width: 68rem; margin: var(--bousai-space-8) auto 0; padding: var(--bousai-space-8) var(--bousai-space-6) var(--bousai-space-6); background: rgb(255 255 255 / 62%); border-top: 1px solid rgb(5 47 95 / 18%); border-radius: var(--bousai-radius-lg); }
.bousai-support-heading { margin-bottom: var(--bousai-space-6); }
.bousai-section-heading.bousai-support-title > span { display: block; white-space: nowrap; }
.bousai-support-grid { display: grid; max-width: 46rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-4); align-items: stretch; margin-inline: auto; }
.bousai-support-card { display: flex; min-width: 0; flex-direction: column; align-items: center; padding: var(--bousai-space-5); background: white; border: 1px solid var(--bousai-color-gray-300); border-radius: var(--bousai-radius-md); text-align: center; }
.bousai-support-icon { display: grid; width: 4rem; aspect-ratio: 1; margin-bottom: var(--bousai-space-3); place-items: center; color: var(--bousai-color-navy-900); background: var(--bousai-color-sky-100); border-radius: 50%; }
.bousai-support-icon svg { width: 2.75rem; height: 2.75rem; fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.bousai-support-icon svg circle { fill: var(--bousai-color-orange-100); }
.bousai-support-card__content { display: flex; min-width: 0; height: 100%; flex-direction: column; align-items: center; }
.bousai-support-card__label { margin-bottom: var(--bousai-space-2); color: var(--bousai-color-navy-700); font-size: var(--bousai-font-size-sm); font-weight: 900; }
.bousai-support-card h4 { margin-bottom: var(--bousai-space-3); color: var(--bousai-color-navy-950); font-size: 1.25rem; line-height: 1.55; }
.bousai-support-card h4 strong { color: var(--bousai-color-orange-600); font-size: 1.3em; }
.bousai-support-card__content > p:not(.bousai-support-card__label) { color: var(--bousai-color-gray-800); font-size: 0.9375rem; line-height: 1.75; }
.bousai-support-long-heading sup { color: var(--bousai-color-orange-600); font-size: 0.65em; vertical-align: super; }
.bousai-support-long-heading strong { color: var(--bousai-color-orange-600); font-size: 1.6em; }
.bousai-support-card small { display: block; margin-top: auto; padding-top: var(--bousai-space-3); color: var(--bousai-color-gray-700); font-size: 0.75rem; font-weight: 700; line-height: 1.55; }
.bousai-support-card__content > p:not(.bousai-support-card__label),
.bousai-support-card small { width: 100%; text-align: left; }

.bousai-qualification-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bousai-space-7); align-items: center; }
.bousai-qualification-grid > div:first-child { text-align: center; }
.bousai-qualification-grid .bousai-section-heading { margin-block: var(--bousai-space-3) var(--bousai-space-5); }
.bousai-qualification-trigger { display: inline-flex; min-height: 3.5rem; align-items: center; justify-content: center; margin-top: var(--bousai-space-6); padding: var(--bousai-space-3) var(--bousai-space-6); color: var(--bousai-color-white); background: var(--bousai-color-navy-900); border: 0; border-radius: var(--bousai-radius-sm); box-shadow: 0 0.3rem 0 #063c79; font-weight: 900; transition: background var(--bousai-transition), box-shadow var(--bousai-transition), transform var(--bousai-transition); }
.bousai-qualification-trigger:hover { background: var(--bousai-color-navy-700); transform: translateY(-0.1rem); }
.bousai-qualification-trigger:active { box-shadow: 0 0.1rem 0 #063c79; transform: translateY(0.1rem); }
.bousai-qualification-facts { overflow: hidden; background: white; border-radius: var(--bousai-radius-md); box-shadow: var(--bousai-shadow-card); }
.bousai-qualification-facts > div { display: grid; grid-template-columns: 8rem minmax(0, 1fr); border-bottom: 1px solid var(--bousai-color-gray-300); }
.bousai-qualification-facts > div:last-child { border-bottom: 0; }
.bousai-qualification-facts dt { padding: var(--bousai-space-5); color: var(--bousai-color-navy-950); background: #dceff7; font-weight: 900; }
.bousai-qualification-facts dd { padding: var(--bousai-space-5); line-height: 1.7; }
.bousai-qualification-facts dd strong { color: var(--bousai-color-orange-600); font-size: var(--bousai-font-size-xl); }
.bousai-qualification-name { word-break: keep-all; }
.bousai-qualification-facts dd small { display: block; margin-top: var(--bousai-space-2); color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-xs); }
.bousai-page.is-exam-modal-open { overflow: hidden; }
.bousai-exam-modal { position: fixed; z-index: 1200; inset: 0; display: grid; place-items: center; padding: var(--bousai-space-6); background: rgb(5 47 95 / 62%); }
.bousai-exam-modal[hidden] { display: none; }
.bousai-exam-modal__dialog { width: min(100%, 42rem); max-height: min(44rem, calc(100dvh - var(--bousai-space-8))); overflow-y: auto; background: var(--bousai-color-white); border-radius: var(--bousai-radius-md); box-shadow: 0 1rem 2.5rem rgb(5 47 95 / 30%); }
.bousai-exam-modal__header { position: sticky; z-index: 1; top: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--bousai-space-4); padding: var(--bousai-space-5) var(--bousai-space-6); background: var(--bousai-color-white); border-bottom: 1px solid var(--bousai-color-gray-300); }
.bousai-exam-modal__header h2 { color: var(--bousai-color-navy-900); font-size: var(--bousai-font-size-2xl); }
.bousai-exam-modal__close { display: grid; width: 2.75rem; min-width: 2.75rem; height: 2.75rem; place-items: center; color: var(--bousai-color-navy-950); background: var(--bousai-color-sky-100); border: 0; border-radius: 50%; font-size: 2rem; line-height: 1; }
.bousai-exam-modal__close:hover { background: #cde8f4; }
.bousai-exam-modal .bousai-qualification-facts { border-radius: 0; box-shadow: none; }

.bousai-supervisor-grid { display: grid; grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.3fr); gap: var(--bousai-space-7); max-width: 58rem; margin-inline: auto; align-items: center; }
.bousai-image-placeholder--portrait { aspect-ratio: 4 / 5; }
.bousai-supervisor-figure { margin: 0; }
.bousai-supervisor-photo { position: relative; overflow: hidden; aspect-ratio: 1; background: var(--bousai-color-gray-100); border: 0.4rem solid white; border-radius: var(--bousai-radius-md); box-shadow: var(--bousai-shadow-card); }
.bousai-supervisor-photo img { position: absolute; top: -13%; left: -108%; width: 312%; max-width: none; height: auto; }
.bousai-supervisor-figure figcaption { margin-top: var(--bousai-space-3); color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-sm); font-weight: 800; text-align: center; }
.bousai-supervisor-copy { padding: var(--bousai-space-7); background: var(--bousai-color-sky-100); border-left: 0.35rem solid var(--bousai-color-orange-600); border-radius: var(--bousai-radius-md); }
.bousai-temporary-label { display: inline-block; margin-bottom: var(--bousai-space-4); padding: 0.25rem 0.75rem; color: #8c3b00; background: var(--bousai-color-yellow-100); border: 1px solid #e2bd52; border-radius: 999px; font-size: var(--bousai-font-size-xs); font-weight: 900; }
.bousai-supervisor-role { color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-sm); font-weight: 800; }
.bousai-supervisor-copy h3 { margin-block: var(--bousai-space-2) var(--bousai-space-4); font-size: var(--bousai-font-size-2xl); }
.bousai-supervisor-credentials { display: grid; gap: var(--bousai-space-2); margin-bottom: var(--bousai-space-5); padding-left: 1.2rem; }
.bousai-supervisor-credentials li { line-height: 1.7; }
.bousai-supervisor-copy > p:last-child { line-height: 1.9; }

.bousai-pricing-course-overview { display: grid; grid-template-areas: "media title" "media note"; grid-template-columns: minmax(20rem, 0.9fr) minmax(0, 1.1fr); grid-template-rows: auto auto; column-gap: var(--bousai-space-7); align-content: center; align-items: center; max-width: 64rem; margin-inline: auto; padding: var(--bousai-space-6); background: white; border-radius: var(--bousai-radius-lg); box-shadow: var(--bousai-shadow-card); }
.bousai-pricing-course-overview figure { grid-area: media; overflow: hidden; border-radius: var(--bousai-radius-md); }
.bousai-pricing-course-overview figure img { display: block; width: 100%; height: auto; object-fit: contain; }
.bousai-page .bousai-pricing-course-label { grid-area: title; align-self: end; margin: 0 0 var(--bousai-space-5); color: var(--bousai-color-orange-600); font-size: clamp(1.5rem, 2vw, 1.75rem); font-weight: 700; line-height: 1.5; text-align: center; }
.bousai-pricing-common-note { grid-area: note; align-self: start; margin: 0; padding: var(--bousai-space-4); color: var(--bousai-color-navy-950); background: var(--bousai-color-orange-100); border-left: 0.25rem solid var(--bousai-color-orange-500); border-radius: var(--bousai-radius-sm); font-weight: 600; line-height: 1.8; text-align: left; }

.bousai-campaign-reserve { margin: var(--bousai-space-6) auto 0; padding: var(--bousai-space-5); max-width: 54rem; background: var(--bousai-color-orange-100); border: 2px solid var(--bousai-color-orange-500); border-radius: var(--bousai-radius-md); text-align: center; }
.bousai-campaign-reserve[hidden] { display: none; }

.bousai-course-tabs { max-width: 54rem; margin: var(--bousai-space-8) auto 0; }
.bousai-course-tablist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--bousai-space-2); }
.bousai-course-tab { position: relative; min-height: 4rem; padding: var(--bousai-space-3); color: var(--bousai-color-navy-950); background: white; border: 2px solid var(--bousai-color-gray-300); border-radius: var(--bousai-radius-md) var(--bousai-radius-md) 0 0; font-size: var(--bousai-font-size-lg); font-weight: 900; cursor: pointer; transition: color var(--bousai-transition), background var(--bousai-transition), border-color var(--bousai-transition); }
.bousai-course-tab:hover { border-color: var(--bousai-color-navy-700); background: var(--bousai-color-sky-100); }
.bousai-course-tab.is-selected { color: white; background: var(--bousai-color-navy-950); border-color: var(--bousai-color-navy-950); }
.bousai-course-tab.is-selected::after { position: absolute; right: 0; bottom: -2px; left: 0; height: 0.35rem; background: var(--bousai-color-orange-500); content: ""; }
.bousai-course-tab:focus-visible { z-index: 2; outline: 3px solid var(--bousai-color-orange-500); outline-offset: 3px; }

.bousai-course-panel { position: relative; display: grid; justify-items: center; gap: var(--bousai-space-4); min-height: 22rem; padding: var(--bousai-space-7); background: white; border: 2px solid var(--bousai-color-navy-950); border-top: 0.35rem solid var(--bousai-color-orange-500); border-radius: 0 0 var(--bousai-radius-md) var(--bousai-radius-md); box-shadow: var(--bousai-shadow-card); text-align: center; }
.bousai-course-panel[hidden] { display: none; }
.bousai-course-panel-support { padding: var(--bousai-space-3) var(--bousai-space-6); color: var(--bousai-color-navy-950); background: var(--bousai-color-sky-100); border-radius: 999px; font-weight: 800; }
.bousai-course-panel-support strong { color: var(--bousai-color-orange-600); font-size: 1.35em; }
.bousai-course-panel-price { display: flex; align-items: baseline; justify-content: center; gap: var(--bousai-space-4); color: var(--bousai-color-navy-950); }
.bousai-course-panel-price > span { padding: 0.45rem 1rem; border: 1px solid var(--bousai-color-navy-950); border-radius: var(--bousai-radius-sm); font-size: var(--bousai-font-size-sm); font-weight: 800; }
.bousai-course-panel-price p { white-space: nowrap; }
.bousai-course-panel-price p > strong { font-size: clamp(2.6rem, 5vw, 4rem); line-height: 1.15; }
.bousai-course-panel-price p > small { margin-left: 0.25rem; font-size: var(--bousai-font-size-base); font-weight: 800; }
.bousai-course-apply-button { display: flex; align-items: center; justify-content: center; gap: var(--bousai-space-3); width: min(100%, 26rem); min-height: 3.75rem; padding: var(--bousai-space-3) var(--bousai-space-6); color: white; background: #218838; border-radius: var(--bousai-radius-sm); box-shadow: 0 0.35rem 0 #145c28; font-weight: 900; text-align: center; text-decoration: none; transition: background var(--bousai-transition), box-shadow var(--bousai-transition), transform var(--bousai-transition); }
.bousai-course-panel .bousai-course-apply-button,
.bousai-course-panel .bousai-course-apply-button:visited { color: white; }
.bousai-course-apply-button::after { display: grid; width: 1.25rem; aspect-ratio: 1; place-items: center; color: #218838; background: white; border-radius: 50%; content: "›"; line-height: 1; }
.bousai-course-apply-button:hover { background: #1f7a35; transform: translateY(-0.1rem); }
.bousai-course-apply-button:focus-visible { outline: 3px solid var(--bousai-color-navy-950); outline-offset: 3px; }

/* 将来のキャンペーン時は、対象コースの申込みボタンにこのクラスだけを追加する。 */
.bousai-course-apply-button.is-campaign-target { background: #c94e00; box-shadow: 0 0.35rem 0 #963900; }
.bousai-course-apply-button.is-campaign-target::after { color: #c94e00; }
.bousai-course-apply-button.is-campaign-target:hover { background: #a94000; }

.bousai-pricing-cta-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-4); max-width: 42rem; margin: var(--bousai-space-8) auto 0; }
.bousai-pricing-sub-cta { position: relative; display: grid; grid-template-columns: 1fr auto; min-width: 0; min-height: 4.5rem; padding: 1.7rem var(--bousai-space-5) var(--bousai-space-3); align-items: center; border-radius: var(--bousai-radius-sm); font-weight: 900; text-decoration: none; transition: filter var(--bousai-transition), transform var(--bousai-transition); }
.bousai-pricing-sub-cta:hover { filter: brightness(1.04); transform: translateY(-0.1rem); }
.bousai-pricing-sub-cta:focus-visible { outline: 3px solid var(--bousai-color-orange-500); outline-offset: 4px; }
.bousai-pricing-sub-cta-label { position: absolute; z-index: 1; top: -0.55rem; right: 0.75rem; left: 0.75rem; min-height: 1.55rem; padding: 0.1rem var(--bousai-space-3); border-radius: 999px; font-size: var(--bousai-font-size-xs); line-height: 1.35; text-align: center; }
.bousai-pricing-sub-cta > strong { display: flex; min-width: 0; align-items: center; justify-content: center; gap: var(--bousai-space-2); font-size: var(--bousai-font-size-lg); white-space: nowrap; }
.bousai-pricing-sub-cta > i { display: grid; width: 1.15rem; aspect-ratio: 1; place-items: center; border-radius: 50%; }
.bousai-pricing-sub-cta > i::before { width: 0; height: 0; border-top: 0.24rem solid transparent; border-bottom: 0.24rem solid transparent; content: ""; }

.bousai-pricing-sub-cta--document { color: white; background: #2786d3; box-shadow: 0 0.4rem 0 #1769ad; }
.bousai-pricing-sub-cta--document .bousai-pricing-sub-cta-label { color: #1769ad; background: white; border: 1px solid #2786d3; }
.bousai-pricing-sub-cta--document > strong { color: white; }
.bousai-pricing-sub-cta--document > strong > span { padding: 0.1rem 0.3rem; color: #1769ad; background: white; border-radius: 0.15rem; font-size: 0.9em; }
.bousai-pricing-sub-cta--document > i { background: white; }
.bousai-pricing-sub-cta--document > i::before { margin-left: 0.1rem; border-left: 0.38rem solid #2786d3; }

.bousai-pricing-sub-cta--line { color: #28b956; background: white; border: 2px solid #28b956; box-shadow: 0 0.4rem 0 #209948; }
.bousai-pricing-sub-cta--line .bousai-pricing-sub-cta-label { color: white; background: #28b956; }
.bousai-pricing-sub-cta--line > strong > b { color: #28b956; font-weight: 900; }
.bousai-line-icon { display: grid; flex: 0 0 auto; width: 2.25rem; aspect-ratio: 1; place-items: center; color: white; background: #28b956; border-radius: 50%; font-size: 0.54rem; font-weight: 900; letter-spacing: -0.03em; }
.bousai-pricing-sub-cta--line > i { background: #28b956; }
.bousai-pricing-sub-cta--line > i::before { margin-left: 0.1rem; border-left: 0.38rem solid white; }

.bousai-course-details { background: var(--bousai-color-white); }
.bousai-course-details-lead { max-width: 44rem; margin: var(--bousai-space-4) auto 0; color: var(--bousai-color-gray-700); line-height: 1.8; text-align: center; }
.bousai-course-details-table-wrap { max-width: 64rem; margin-inline: auto; }
.bousai-course-details-table { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: center; }
.bousai-course-details-item-column { width: 40%; }
.bousai-course-details-course-column { width: 20%; }
.bousai-course-details-table th,
.bousai-course-details-table td { padding: var(--bousai-space-4); border: 1px solid #bdcbd6; }
.bousai-course-details-table thead th { padding: var(--bousai-space-4); color: var(--bousai-color-white); border: 1px solid var(--bousai-color-white); font-size: var(--bousai-font-size-lg); font-weight: 900; }
.bousai-course-details-table thead th:first-child { background: var(--bousai-color-navy-950); }
.bousai-course-details-heading--a { background: #c88700; }
.bousai-course-details-heading--b { background: #267fc7; }
.bousai-course-details-heading--c { background: #218838; }
.bousai-course-details-table tbody th { color: var(--bousai-color-navy-950); background: var(--bousai-color-sky-100); font-weight: 900; }
.bousai-course-details-table tbody td { color: var(--bousai-color-navy-950); background: var(--bousai-color-white); font-weight: 800; }
.bousai-course-details-support-row th,
.bousai-course-details-support-row td { background: #fff7d6; }
.bousai-course-details-table tbody td strong { color: var(--bousai-color-orange-600); font-size: 1.3em; }
.bousai-course-details-notes { display: grid; gap: 0.25rem; max-width: 64rem; margin: var(--bousai-space-3) auto 0; color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-xs); line-height: 1.65; text-align: left; }

.bousai-payment-methods { background: var(--bousai-color-sky-100); }
.bousai-payment-methods-lead { max-width: 44rem; margin: var(--bousai-space-4) auto 0; color: var(--bousai-color-gray-700); line-height: 1.8; text-align: center; }
.bousai-payment-methods-box { max-width: 52rem; margin-inline: auto; padding: var(--bousai-space-6); background: var(--bousai-color-white); border: 1px solid var(--bousai-color-gray-300); border-top: 0.3rem solid var(--bousai-color-orange-600); }
.bousai-payment-methods-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-3) var(--bousai-space-7); margin: 0; padding: 0; list-style: none; }
.bousai-payment-methods-list li { display: grid; min-width: 0; grid-template-columns: 1.25rem minmax(0, 1fr); gap: 0.5rem; align-items: start; color: var(--bousai-color-navy-950); font-weight: 800; line-height: 1.65; text-align: left; }
.bousai-payment-methods-list li > span { position: relative; display: block; width: 1.25rem; aspect-ratio: 1; margin-top: 0.17em; background: var(--bousai-color-orange-600); border-radius: 50%; }
.bousai-payment-methods-list li > span::before { position: absolute; top: 0.28rem; left: 0.43rem; width: 0.3rem; height: 0.52rem; border-right: 0.13rem solid var(--bousai-color-white); border-bottom: 0.13rem solid var(--bousai-color-white); content: ""; transform: rotate(45deg); }
.bousai-payment-methods-item--amazon { grid-column: 1; grid-row: 1; }
.bousai-payment-methods-item--credit { grid-column: 1; grid-row: 2; }
.bousai-payment-methods-item--cod { grid-column: 1; grid-row: 3; }
.bousai-payment-methods-item--paypay { grid-column: 2; grid-row: 1; }
.bousai-payment-methods-item--transfer { grid-column: 2; grid-row: 2 / span 2; }
.bousai-payment-methods-guide { margin-top: var(--bousai-space-5); color: var(--bousai-color-gray-700); line-height: 1.8; text-align: center; }
.bousai-payment-methods-link { display: flex; width: min(100%, 22rem); min-height: 3.5rem; margin: var(--bousai-space-4) auto 0; padding: 0.75rem 1.5rem; align-items: center; justify-content: center; background: var(--bousai-color-navy-900); border-radius: var(--bousai-radius-sm); font-weight: 900; text-align: center; text-decoration: none; transition: background-color var(--bousai-transition), transform var(--bousai-transition); }
.bousai-page .bousai-payment-methods-link,
.bousai-page .bousai-payment-methods-link:visited { color: var(--bousai-color-white); }
.bousai-payment-methods-link:hover { background: var(--bousai-color-navy-950); transform: translateY(-0.1rem); }
.bousai-payment-methods-link:focus-visible { outline: 3px solid var(--bousai-color-orange-500); outline-offset: 3px; }
.bousai-payment-contact { max-width: 52rem; margin: var(--bousai-space-6) auto 0; text-align: center; }
.bousai-payment-contact h3 { color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-lg); }
.bousai-payment-contact-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-4); margin-top: var(--bousai-space-4); }
.bousai-payment-contact-button { display: grid; min-height: 3.5rem; grid-template-columns: minmax(0, 1fr) auto; gap: var(--bousai-space-3); align-items: center; padding: 0.75rem var(--bousai-space-5); border: 2px solid #2a8ba0; border-radius: var(--bousai-radius-sm); font: inherit; font-weight: 900; text-align: center; cursor: pointer; transition: background-color var(--bousai-transition), border-color var(--bousai-transition), color var(--bousai-transition), transform var(--bousai-transition); }
.bousai-payment-contact-button span { font-size: 1.8rem; line-height: 1; }
.bousai-payment-contact-button--primary { color: var(--bousai-color-white); background: #2a8ba0; }
.bousai-payment-contact-button--outline { color: #20768a; background: var(--bousai-color-white); }
.bousai-payment-contact-button:hover { border-color: var(--bousai-color-navy-900); transform: translateY(-0.1rem); }
.bousai-payment-contact-button--primary:hover { background: var(--bousai-color-navy-900); }
.bousai-payment-contact-button--outline:hover { color: var(--bousai-color-navy-900); background: #eff9fc; }
.bousai-payment-contact-button:focus-visible { outline: 3px solid var(--bousai-color-orange-500); outline-offset: 3px; }

.bousai-page.is-course-inquiry-modal-open { overflow: hidden; }
.bousai-inquiry-modal { position: fixed; z-index: 1300; inset: 0; display: grid; place-items: center; padding: var(--bousai-space-5); background: rgb(5 47 95 / 68%); }
.bousai-inquiry-modal[hidden] { display: none; }
.bousai-inquiry-modal__dialog { width: min(100%, 46rem); max-height: calc(100dvh - var(--bousai-space-7)); overflow-y: auto; background: var(--bousai-color-white); border-radius: var(--bousai-radius-md); box-shadow: 0 1rem 2.5rem rgb(5 47 95 / 32%); }
.bousai-inquiry-modal__dialog:has([data-inquiry-panel="prospective"]:not([hidden])) { width: min(100%, 58rem); }
.bousai-inquiry-modal__header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--bousai-space-4); padding: var(--bousai-space-4) var(--bousai-space-5); background: var(--bousai-color-white); border-bottom: 1px solid var(--bousai-color-gray-300); }
.bousai-inquiry-modal__header h2 { color: var(--bousai-color-navy-900); font-size: var(--bousai-font-size-lg); }
.bousai-inquiry-modal__close { display: grid; width: 2.75rem; min-width: 2.75rem; height: 2.75rem; place-items: center; color: var(--bousai-color-navy-950); background: var(--bousai-color-sky-100); border: 0; border-radius: 50%; font-size: 2rem; line-height: 1; cursor: pointer; }
.bousai-inquiry-modal__close:hover { background: #cde8f4; }
.bousai-inquiry-modal__close:focus-visible,
.bousai-inquiry-modal__dismiss:focus-visible,
.bousai-inquiry-option a:focus-visible { outline: 3px solid var(--bousai-color-orange-500); outline-offset: 3px; }
.bousai-inquiry-modal__body { padding: var(--bousai-space-5); }
.bousai-inquiry-panel[hidden] { display: none; }
.bousai-inquiry-panel__heading { margin-bottom: var(--bousai-space-5); text-align: center; }
.bousai-inquiry-panel__heading::before { display: block; width: 5rem; height: 0.35rem; margin: 0 auto var(--bousai-space-3); background: var(--bousai-color-orange-500); border-radius: 999px; content: ""; }
.bousai-inquiry-panel__heading h3 { color: var(--bousai-color-navy-950); font-size: var(--bousai-font-size-2xl); }
.bousai-inquiry-panel__heading p { margin-top: var(--bousai-space-2); color: var(--bousai-color-gray-700); line-height: 1.65; }
.bousai-inquiry-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bousai-space-3); }
.bousai-inquiry-options--prospective { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bousai-inquiry-option { display: flex; min-width: 0; flex-direction: column; padding: var(--bousai-space-4); background: #fffaf4; border: 1px solid #eadbcf; }
.bousai-inquiry-option h4 { margin: calc(var(--bousai-space-4) * -1) calc(var(--bousai-space-4) * -1) var(--bousai-space-3); padding: var(--bousai-space-3); color: var(--bousai-color-white); background: var(--bousai-color-navy-900); font-size: var(--bousai-font-size-base); text-align: center; }
.bousai-inquiry-options--prospective .bousai-inquiry-option:nth-child(1) h4 { background: #218838; }
.bousai-inquiry-options--prospective .bousai-inquiry-option:nth-child(2) h4 { background: #267fc7; }
.bousai-inquiry-options--prospective .bousai-inquiry-option:nth-child(3) h4 { background: #3d478f; }
.bousai-inquiry-option h4 span { display: inline; font-size: 0.72em; }
.bousai-inquiry-option p { color: var(--bousai-color-gray-700); font-size: var(--bousai-font-size-sm); line-height: 1.65; text-align: left; }
.bousai-inquiry-option__hours { margin-bottom: var(--bousai-space-2); color: var(--bousai-color-orange-600) !important; font-weight: 900; }
.bousai-inquiry-option__hours small { font-size: 0.78em; }
.bousai-inquiry-option a { align-self: flex-start; margin-top: auto; padding-top: var(--bousai-space-3); color: var(--bousai-color-navy-900); font-size: var(--bousai-font-size-sm); font-weight: 900; text-decoration: underline; text-underline-offset: 0.2em; }
.bousai-inquiry-option a::before { margin-right: 0.45rem; color: var(--bousai-color-orange-600); content: "●"; font-size: 0.65em; }
.bousai-inquiry-modal__footer { position: sticky; bottom: 0; padding: 0 var(--bousai-space-5) var(--bousai-space-5); background: linear-gradient(to top, var(--bousai-color-white) 75%, rgb(255 255 255 / 0%)); }
.bousai-inquiry-modal__dismiss { display: flex; width: min(100%, 18rem); min-height: 3.25rem; margin: 0 auto; align-items: center; justify-content: center; color: var(--bousai-color-white); background: #2a8ba0; border: 0; border-radius: 999px; font: inherit; font-weight: 900; cursor: pointer; }
.bousai-inquiry-modal__dismiss:hover { background: var(--bousai-color-navy-900); }

.bousai-faq-heading-emphasis { white-space: nowrap; }
.bousai-faq-list { display: grid; gap: var(--bousai-space-3); }
.bousai-faq-list details { overflow: hidden; background: white; border: 1px solid var(--bousai-color-gray-300); border-radius: var(--bousai-radius-sm); }
.bousai-faq-list summary { position: relative; min-height: 3.5rem; padding: var(--bousai-space-4) 3.5rem var(--bousai-space-4) 4rem; color: var(--bousai-color-navy-950); cursor: pointer; font-weight: 800; list-style: none; }
.bousai-faq-list summary::-webkit-details-marker { display: none; }
.bousai-faq-list summary::before { position: absolute; top: 0.8rem; left: var(--bousai-space-4); display: grid; width: 2rem; aspect-ratio: 1; place-items: center; color: white; background: var(--bousai-color-orange-600); border-radius: 50%; content: "Q"; }
.bousai-faq-list summary::after { position: absolute; top: 50%; right: var(--bousai-space-4); color: var(--bousai-color-orange-600); content: "＋"; font-size: 1.5rem; transform: translateY(-50%); }
.bousai-faq-list details[open] summary::after { content: "−"; }
.bousai-faq-list details p { padding: var(--bousai-space-5) var(--bousai-space-5) var(--bousai-space-5) 4rem; background: var(--bousai-color-sky-100); border-top: 1px solid var(--bousai-color-gray-300); line-height: 1.9; }

.bousai-sp-fixed-cta { position: fixed; z-index: 900; bottom: 0; left: 50%; display: none; width: min(100%, 40rem); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; padding: var(--bousai-space-2) var(--bousai-space-2) calc(var(--bousai-space-2) + env(safe-area-inset-bottom)); background: white; box-shadow: 0 -0.4rem 1.2rem rgb(5 47 95 / 18%); opacity: 1; transform: translateX(-50%); transition: opacity var(--bousai-transition), transform var(--bousai-transition), visibility var(--bousai-transition); }
.bousai-sp-fixed-cta.is-hidden { visibility: hidden; pointer-events: none; opacity: 0; transform: translate(-50%, 100%); }
.bousai-sp-fixed-cta a { display: flex; min-width: 0; min-height: 3.25rem; align-items: center; justify-content: center; gap: 0.35rem; color: white; border-radius: var(--bousai-radius-sm); font-size: var(--bousai-font-size-sm); font-weight: 900; text-decoration: none; white-space: nowrap; }
.bousai-sp-fixed-cta a::after { display: grid; width: 1.15rem; aspect-ratio: 1; place-items: center; background: white; border-radius: 50%; content: "›"; font-size: 0.95rem; line-height: 1; }
.bousai-sp-fixed-cta-apply { background: #e8444f; }
.bousai-sp-fixed-cta-apply::after { color: #d93542; }
.bousai-sp-fixed-cta-request { background: #267fc7; }
.bousai-sp-fixed-cta-request::after { color: #176db3; }
.bousai-sp-fixed-cta-free { padding: 0.1em 0.3em; color: #176db3; background: white; border-radius: 0.2rem; font-size: 0.75em; line-height: 1.25; }

/* Phase 1: approved front-story sections 01-05 */
.bousai-phase1 { overflow: hidden; color: var(--bousai-color-navy-950); background: var(--bousai-color-sky-100); }
.bousai-phase1 > .bousai-container { width: min(100% - (var(--bousai-gutter) * 2), 84rem); }
.bousai-phase1-eyebrow { margin-bottom: 1rem; color: var(--bousai-color-orange-600); font-size: 1.25rem; font-weight: 900; letter-spacing: 0.08em; text-align: center; }
.bousai-phase1-heading { margin-bottom: clamp(3rem, 5vw, 5rem); color: var(--bousai-color-navy-950); font-size: clamp(2.75rem, 4.4vw, 4rem); line-height: 1.25; text-align: center; }
.bousai-phase1-heading__keep { white-space: nowrap; }
.bousai-phase1-heading__keep > span { color: var(--bousai-color-orange-600); }
.bousai-phase1-closing { position: relative; z-index: 2; width: 100%; margin-top: clamp(3.25rem, 5vw, 5rem); padding: clamp(1.75rem, 2.6vw, 2.6rem) var(--bousai-gutter); color: white; background: var(--bousai-color-navy-950); font-size: clamp(1.45rem, 2.6vw, 2.2rem); font-weight: 900; line-height: 1.5; text-align: center; }
.bousai-phase1-closing strong { color: var(--bousai-color-orange-500); }

.bousai-phase1-scenario { padding-bottom: 0; }
.bousai-phase1-scenario__heading { max-width: 88rem; margin: 0 auto clamp(3rem, 5vw, 4.5rem); text-align: center; }
.bousai-phase1-scenario__heading h2 { font-size: clamp(2.5rem, 3.7vw, 3.5rem); line-height: 1.25; }
.bousai-phase1-scenario__title-line,
.bousai-phase1-scenario__title-sp-line { display: inline; }
.bousai-phase1-scenario__title-line + .bousai-phase1-scenario__title-line { margin-left: 0.35em; }
.bousai-phase1-scenario__layout { display: grid; grid-template-columns: minmax(0, 1.48fr) minmax(22rem, 0.92fr); gap: clamp(2rem, 3.8vw, 3.5rem); align-items: stretch; }
.bousai-phase1-scenario__visual { position: relative; overflow: hidden; min-height: 0; background: var(--bousai-color-navy-950); border-radius: 0.9rem; aspect-ratio: 16 / 10; }
.bousai-phase1-scenario__visual::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgb(5 47 95 / 24%), transparent 46%); content: ""; pointer-events: none; }
.bousai-phase1-scenario__visual::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgb(5 47 95 / 30%)); content: ""; pointer-events: none; }
.bousai-phase1-scenario__visual img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }
.bousai-phase1-scenario__visual figcaption { position: absolute; z-index: 2; top: 1.35rem; left: 1.5rem; display: grid; color: white; opacity: 0.62; }
.bousai-phase1-scenario__visual figcaption span { color: var(--bousai-color-orange-500); font-size: 0.95rem; font-weight: 900; letter-spacing: 0.14em; }
.bousai-phase1-scenario__visual figcaption strong { margin-top: -0.05em; font-size: clamp(5.5rem, 10vw, 9rem); line-height: 1; }
.bousai-phase1-scenario__content { display: flex; min-width: 0; flex-direction: column; justify-content: center; }
.bousai-phase1-scenario__situation { margin-bottom: 2rem; color: var(--bousai-color-navy-900); font-size: 1.15rem; font-weight: 700; line-height: 1.9; }
.bousai-phase1-scenario__content h3 { margin-bottom: 1.75rem; color: var(--bousai-color-navy-950); font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1.35; }
.bousai-phase1-scenario__content h3 span { white-space: nowrap; }
.bousai-phase1-scenario__choices { display: grid; gap: 0.8rem; }
.bousai-phase1-scenario__choices li { position: relative; display: grid; min-height: 5.15rem; grid-template-columns: 4rem minmax(0, 1fr); align-items: center; padding: 0.75rem 1.25rem 0.75rem 1rem; background: white; border: 1px solid rgb(5 47 95 / 9%); border-radius: 0.85rem; box-shadow: 0 0.35rem 0.9rem rgb(5 47 95 / 6%); font-size: clamp(1rem, 1.55vw, 1.3rem); font-weight: 900; }
.bousai-phase1-scenario__choices li::before { position: absolute; top: 0.8rem; bottom: 0.8rem; left: 4.65rem; width: 1px; background: rgb(5 47 95 / 15%); content: ""; }
.bousai-phase1-scenario__choices span { display: grid; width: 2.75rem; aspect-ratio: 1; place-items: center; color: white; background: var(--bousai-color-navy-950); border-radius: 50%; font-size: 1rem; }

.bousai-phase1-problem { position: relative; display: grid; min-height: 44rem; align-items: center; color: white; background: var(--bousai-color-navy-950); }
.bousai-phase1-problem::before,
.bousai-phase1-problem::after { position: absolute; width: 34rem; height: 15rem; border: 0.12rem solid rgb(144 187 219 / 18%); border-radius: 50%; content: ""; pointer-events: none; }
.bousai-phase1-problem::before { top: 2rem; right: -12rem; transform: rotate(-14deg); }
.bousai-phase1-problem::after { right: 10%; bottom: -8rem; transform: rotate(12deg); }
.bousai-phase1-problem__inner { position: relative; z-index: 1; display: block; max-width: 72rem; margin-inline: auto; text-align: center; }
.bousai-phase1-problem h2 { display: grid; gap: 0.25em; color: white; font-size: clamp(4rem, 5.6vw, 5.8rem); letter-spacing: 0.02em; line-height: 1.05; }
.bousai-phase1-problem h2 > span:last-child { font-size: 0.78em; white-space: nowrap; }
.bousai-phase1-problem h2 strong { color: var(--bousai-color-orange-500); }
.bousai-phase1-problem__copy { display: grid; gap: 1rem; max-width: 54rem; margin: 3rem auto 0; }
.bousai-phase1-problem__copy p { color: white; font-size: clamp(1.1rem, 1.75vw, 1.45rem); font-weight: 700; line-height: 1.8; }
.bousai-phase1-problem__copy br { display: none; }
.bousai-phase1-problem__copy strong { color: #ffb131; }

.bousai-phase1-causes { padding-bottom: 0; }
.bousai-phase1-causes__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr); gap: 0.65rem; }
.bousai-phase1-cause { position: relative; overflow: hidden; min-width: 0; min-height: 37rem; background: white; }
.bousai-phase1-cause header { position: absolute; z-index: 3; top: 1.6rem; left: 1.75rem; }
.bousai-phase1-cause header p { display: flex; align-items: center; gap: 1rem; color: var(--bousai-color-navy-950); font-size: clamp(1.65rem, 2.5vw, 2.3rem); font-weight: 900; line-height: 1.2; }
.bousai-phase1-cause header > p > span:first-child { color: var(--bousai-color-navy-950); font-size: 2.6em; line-height: 0.9; }
.bousai-phase1-cause__heading-text > span { display: inline; }
.bousai-phase1-cause img { display: block; width: 100%; height: 37rem; object-fit: cover; object-position: center 28%; }
.bousai-phase1-cause--mind::after,
.bousai-phase1-cause--situation::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgb(255 255 255 / 96%) 0 40%, rgb(255 255 255 / 25%) 68%, transparent 85%); content: ""; pointer-events: none; }
.bousai-phase1-cause__copy { position: absolute; z-index: 3; top: 9rem; left: 1.75rem; width: min(46%, 19rem); }
.bousai-phase1-cause__copy p { color: var(--bousai-color-navy-950); font-size: 1rem; font-weight: 800; line-height: 1.75; }
.bousai-phase1-cause__copy p + p { margin-top: 1.5rem; }
.bousai-phase1-cause__voices,
.bousai-phase1-cause__factors { color: var(--bousai-color-orange-600); font-size: clamp(1.1rem, 1.6vw, 1.35rem); font-weight: 900; }
.bousai-phase1-cause__keep { display: inline-block; white-space: nowrap; }
.bousai-phase1-cause__media { position: relative; overflow: hidden; height: 37rem; background: #6a8091; }
.bousai-phase1-cause__media > img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.bousai-phase1-cause__times { position: absolute; z-index: 2; top: 50%; right: 0; left: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); color: white; font-size: 1.05rem; font-weight: 900; letter-spacing: 0.02em; text-align: center; text-shadow: 0 1px 5px rgb(5 47 95 / 90%); transform: translateY(-6.2rem); }
.bousai-phase1-cause--situation::after { background: linear-gradient(180deg, rgb(255 255 255 / 96%) 0 32%, rgb(255 255 255 / 16%) 54%, transparent 70%); }
.bousai-phase1-cause--situation .bousai-phase1-cause__copy { top: 7.5rem; width: calc(100% - 3.5rem); }
.bousai-phase1-cause--situation { display: flex; flex-direction: column; }
.bousai-phase1-cause--situation::after { display: none; }
.bousai-phase1-cause--situation header { position: static; padding: 1.6rem 1.75rem 0; }
.bousai-phase1-cause--situation .bousai-phase1-cause__media { width: 100%; height: auto; min-height: 0; margin-top: 1rem; aspect-ratio: 3 / 1; background: #6a8091; }
.bousai-phase1-cause--situation .bousai-phase1-cause__times { top: 0.85rem; transform: none; }
.bousai-phase1-cause--situation .bousai-phase1-cause__copy { position: static; width: auto; padding: 1.5rem 1.75rem 2rem; }
.bousai-phase1-cause__timeline-sp { display: none; }

.bousai-phase1-transformation { padding-bottom: 0; background: #f3f8fc; }
.bousai-phase1-transformation__heading { margin-bottom: clamp(3.25rem, 5vw, 4.5rem); text-align: left; }
.bousai-phase1-transformation__heading > p { display: inline-block; margin-bottom: 1rem; padding: 0.5rem 1.1rem; color: white; background: var(--bousai-color-navy-950); border-radius: 0.3rem; font-size: 1.1rem; font-weight: 900; }
.bousai-phase1-transformation__heading h2 { font-size: clamp(2.65rem, 4.4vw, 4rem); line-height: 1.25; }
.bousai-phase1-transformation__title-line { display: block; }
.bousai-phase1-transformation__title-sp-line { display: inline; }
.bousai-phase1-transformation__title-sp-line > span { color: var(--bousai-color-orange-600); }
.bousai-phase1-transformation__grid { display: grid; grid-template-columns: minmax(0, 1fr) 4.5rem minmax(0, 1fr); align-items: stretch; }
.bousai-phase1-transformation__panel { position: relative; overflow: hidden; min-width: 0; min-height: 36rem; background: white; }
.bousai-phase1-transformation__panel::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgb(255 255 255 / 96%) 0 27%, rgb(255 255 255 / 16%) 58%, transparent 76%); content: ""; pointer-events: none; }
.bousai-phase1-transformation__panel h3 { position: absolute; z-index: 2; top: 4.4rem; left: 1.5rem; width: calc(100% - 3rem); color: var(--bousai-color-navy-950); font-size: clamp(1.35rem, 2.2vw, 1.85rem); line-height: 1.55; }
.bousai-phase1-transformation__panel img { display: block; width: 100%; height: 36rem; object-fit: cover; object-position: center; }
.bousai-phase1-transformation__label { position: absolute; z-index: 3; top: 1.25rem; left: 1.5rem; padding: 0.5rem 1rem; color: white; background: var(--bousai-color-navy-700); font-size: 1.05rem; font-weight: 900; letter-spacing: 0.04em; }
.bousai-phase1-transformation__panel--after .bousai-phase1-transformation__label { background: var(--bousai-color-orange-600); }
.bousai-phase1-transformation__arrow { position: relative; z-index: 4; display: grid; place-items: center; }
.bousai-phase1-transformation__arrow i { position: relative; display: block; width: 4.8rem; height: 0.42rem; background: var(--bousai-color-orange-600); border-radius: 999px; }
.bousai-phase1-transformation__arrow i::after { position: absolute; top: 50%; right: -0.1rem; width: 1.15rem; height: 1.15rem; border-top: 0.32rem solid var(--bousai-color-orange-600); border-right: 0.32rem solid var(--bousai-color-orange-600); content: ""; transform: translateY(-50%) rotate(45deg); }

.bousai-phase1-flow { padding-bottom: 0; background: var(--bousai-color-sky-100); }
.bousai-phase1-flow__heading { max-width: 88rem; margin: 0 auto clamp(4rem, 6vw, 5.5rem); text-align: center; }
.bousai-phase1-flow__heading h2 { margin-bottom: 1.5rem; font-size: clamp(2.75rem, 4.15vw, 3.8rem); line-height: 1.25; white-space: nowrap; }
.bousai-phase1-flow__heading h2 .bousai-phase1-flow__accent { color: var(--bousai-color-orange-600); }
.bousai-phase1-flow__heading p { font-size: clamp(1.05rem, 1.65vw, 1.35rem); font-weight: 800; line-height: 1.8; }
.bousai-phase1-flow__heading p span,
.bousai-phase1-flow__closing span { display: inline; }
.bousai-phase1-flow__list { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.25rem; }
.bousai-phase1-flow__list::before { position: absolute; z-index: 3; top: 10.2rem; right: 1%; left: 1%; height: 0.72rem; background: var(--bousai-color-orange-600); border-radius: 999px; content: ""; }
.bousai-phase1-flow__list li { position: relative; display: flex; min-width: 0; flex-direction: column; align-items: center; text-align: center; }
.bousai-phase1-flow__list li::before { position: absolute; z-index: 3; top: 9.38rem; left: 50%; width: 2rem; aspect-ratio: 1; background: var(--bousai-color-orange-600); border: 0.3rem solid var(--bousai-color-sky-100); border-radius: 50%; content: ""; transform: translateX(-50%); }
.bousai-phase1-flow__list li:not(:last-child)::after { position: absolute; z-index: 4; top: 8.98rem; right: -0.6rem; color: var(--bousai-color-orange-600); content: "›"; font-size: 2.75rem; font-weight: 900; }
.bousai-phase1-flow__copy { position: relative; z-index: 4; width: 100%; min-height: 10.15rem; }
.bousai-phase1-flow__copy span { display: block; color: var(--bousai-color-orange-600); font-size: clamp(4.6rem, 6vw, 5.7rem); font-weight: 900; line-height: 0.88; }
.bousai-phase1-flow__copy h3 { position: relative; z-index: 1; margin-top: 0.15rem; color: var(--bousai-color-navy-950); font-size: clamp(2rem, 2.65vw, 2.4rem); font-weight: 900; line-height: 1.2; }
.bousai-phase1-flow__copy p { margin-top: 0.4rem; font-size: 1rem; font-weight: 800; }
.bousai-phase1-flow__list img { position: relative; z-index: 2; width: 82%; max-width: 100%; height: auto; margin: 1.15rem auto 0; object-fit: contain; }

/* Phase 2: approved middle-story sections 06-09 */
.bousai-phase2 { overflow: hidden; color: var(--bousai-color-navy-950); }
.bousai-phase2 > .bousai-container { width: min(100% - (var(--bousai-gutter) * 2), 84rem); }
.bousai-phase2-heading { width: 100%; margin: 0 auto clamp(3rem, 5vw, 4.5rem); text-align: center; }
.bousai-phase2-heading__label { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-bottom: 1.25rem; color: var(--bousai-color-orange-600); font-size: clamp(1.05rem, 1.7vw, 1.35rem); font-weight: 900; letter-spacing: 0.08em; }
.bousai-phase2-heading__label::before,
.bousai-phase2-heading__label::after { width: 4.5rem; height: 1px; background: currentcolor; content: ""; }
.bousai-phase2-heading h2 { color: var(--bousai-color-navy-950); font-size: clamp(2.35rem, 4vw, 3.65rem); line-height: 1.3; }
.bousai-phase2-heading h2 span { color: var(--bousai-color-orange-600); }
.bousai-phase2-heading > p:last-child { margin-top: 1rem; color: var(--bousai-color-navy-900); font-size: clamp(1rem, 1.65vw, 1.3rem); font-weight: 800; line-height: 1.75; }

.bousai-phase2-curriculum,
.bousai-learning-story .bousai-phase2-curriculum { background: var(--bousai-color-sky-100); }
.bousai-phase2-curriculum__heading { max-width: 82rem; }
.bousai-phase2-heading h2 .bousai-phase2-curriculum__title-line { display: inline; color: var(--bousai-color-navy-950); }
.bousai-phase2-heading h2 .bousai-phase2-curriculum__title-accent { color: var(--bousai-color-navy-950); }
.bousai-phase2-heading h2 .bousai-phase2-curriculum__title-accent > span { color: var(--bousai-color-orange-600); font-size: 1.25em; }
.bousai-phase2-curriculum__months { display: grid; gap: 0.75rem; }
.bousai-phase2-curriculum__month { display: grid; grid-template-columns: 14rem repeat(2, minmax(0, 1fr)); min-height: 0; overflow: hidden; background: rgb(255 255 255 / 72%); }
.bousai-phase2-curriculum__month-heading { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 2rem 1.75rem; background: #dcecf7; }
.bousai-phase2-curriculum__month--second .bousai-phase2-curriculum__month-heading { background: #fff3e4; }
.bousai-phase2-curriculum__month-heading > p { display: flex; align-items: baseline; color: var(--bousai-color-navy-950); line-height: 1; }
.bousai-phase2-curriculum__month-heading strong { font-size: 6rem; font-weight: 500; }
.bousai-phase2-curriculum__month-heading span { font-size: 1.65rem; font-weight: 900; }
.bousai-phase2-curriculum__month-heading h3 { margin-top: 1.5rem; padding-top: 1.25rem; color: var(--bousai-color-navy-950); border-top: 2px solid rgb(5 47 95 / 70%); font-size: 1.25rem; line-height: 1.7; }
.bousai-phase2-curriculum__domain { display: grid; min-width: 0; grid-template-rows: auto 1fr; background: white; }
.bousai-phase2-curriculum__domain figure { min-width: 0; min-height: 0; margin: 0; overflow: hidden; aspect-ratio: 16 / 9; }
.bousai-phase2-curriculum__domain img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.bousai-phase2-curriculum__domain-copy { display: flex; min-width: 0; flex-direction: column; justify-content: flex-start; padding: clamp(1.4rem, 2.5vw, 2.25rem); }
.bousai-phase2-curriculum__step { margin-bottom: 0.45rem; color: var(--bousai-color-orange-600); font-size: 0.8125rem; font-weight: 900; letter-spacing: 0.08em; line-height: 1.3; }
.bousai-phase2-curriculum__domain-copy h4 { color: var(--bousai-color-orange-600); font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.35; }
.bousai-phase2-curriculum__domain-copy i { width: 2.6rem; height: 2px; margin-block: 1.25rem; background: var(--bousai-color-orange-500); }
.bousai-phase2-curriculum__domain-copy > p:last-child { color: var(--bousai-color-navy-950); font-size: 1rem; font-weight: 500; line-height: 1.85; }
.bousai-phase2-curriculum__domain-copy > p:last-child strong { font-weight: 900; }
.bousai-phase2-curriculum__note { margin-top: 1.5rem; color: var(--bousai-color-gray-700); font-size: 0.875rem; line-height: 1.7; text-align: center; }

.bousai-phase2-supervisor,
.bousai-learning-story .bousai-phase2-supervisor { color: white; background: var(--bousai-color-navy-950); }
.bousai-phase2-supervisor__grid { display: grid; grid-template-areas: "figure intro" "figure details"; grid-template-columns: minmax(20rem, 0.88fr) minmax(0, 1.12fr); column-gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
.bousai-phase2-supervisor__intro { grid-area: intro; min-width: 0; }
.bousai-phase2-supervisor__figure { min-width: 0; grid-area: figure; align-self: center; margin: 0; }
.bousai-phase2-supervisor__photo { overflow: hidden; aspect-ratio: 8 / 9; background: #dce5eb; }
.bousai-phase2-supervisor__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.bousai-phase2-supervisor__details { min-width: 0; grid-area: details; }
.bousai-phase2-supervisor__label { margin-bottom: 1rem; color: var(--bousai-color-orange-500); font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 900; }
.bousai-phase2-supervisor__intro h2 { padding-bottom: 1.5rem; color: white; border-bottom: 1px solid rgb(255 255 255 / 32%); font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1.38; }
.bousai-phase2-supervisor__title-line { display: block; color: white; }
.bousai-phase2-supervisor__title-line > span { color: var(--bousai-color-orange-500); }
.bousai-phase2-supervisor__details h3 { margin-top: 1.5rem; color: white; font-size: clamp(2.15rem, 3.6vw, 3.3rem); line-height: 1.2; }
.bousai-phase2-supervisor__details h3 small { font-size: 0.58em; }
.bousai-phase2-supervisor__achievement { display: flex; align-items: baseline; gap: 0.65rem; margin-block: 0.85rem 1.25rem; color: white; font-size: clamp(1rem, 1.6vw, 1.25rem); font-weight: 800; }
.bousai-phase2-supervisor__achievement strong { color: var(--bousai-color-orange-500); font-size: clamp(2.6rem, 5vw, 4.6rem); line-height: 1; }
.bousai-phase2-supervisor__credentials { border-top: 1px solid rgb(255 255 255 / 28%); }
.bousai-phase2-supervisor__credentials li { padding-block: 0.8rem; border-bottom: 1px solid rgb(255 255 255 / 22%); color: white; font-size: 1rem; font-weight: 700; line-height: 1.65; }
.bousai-phase2-supervisor__profile { margin-top: 1.5rem; color: white; font-size: 1.0625rem; font-weight: 600; line-height: 1.85; }

.bousai-phase2-materials__heading h2 { font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.35; }
.bousai-phase2-heading h2 .bousai-phase2-materials__title-line { display: inline; color: var(--bousai-color-navy-950); }
.bousai-phase2-heading h2 .bousai-phase2-materials__title-line > span { color: var(--bousai-color-orange-600); }
.bousai-phase2-materials__lead span { display: inline; }

.bousai-phase2-materials,
.bousai-learning-story .bousai-phase2-materials { background: var(--bousai-color-sky-100); }
.bousai-phase2-materials__body { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(20rem, 1fr); align-items: stretch; margin-top: clamp(2rem, 4vw, 3.5rem); overflow: hidden; border: 2px solid white; border-radius: 1rem; box-shadow: 0 0.8rem 2rem rgb(5 47 95 / 8%); }
.bousai-phase2-materials__content { min-width: 0; padding: clamp(0.8rem, 1.4vw, 1.2rem); background: rgb(255 255 255 / 46%); }
.bousai-phase2-materials__visual { min-width: 0; margin: 0; padding: clamp(0.7rem, 1.2vw, 1rem); background: white; border-radius: 0.75rem; }
.bousai-phase2-materials__visual picture { display: block; }
.bousai-phase2-materials__visual img { display: block; width: 100%; height: auto; object-fit: contain; }
.bousai-phase2-materials__features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-top: 0.9rem; }
.bousai-phase2-materials__feature { display: grid; min-width: 0; grid-template-columns: 3.25rem minmax(0, 1fr); gap: 0.75rem; align-items: center; padding: 0.9rem; background: white; border-radius: 0.75rem; box-shadow: 0 0.35rem 1rem rgb(5 47 95 / 9%); }
.bousai-phase2-materials__feature-icon { display: grid; width: 3.25rem; aspect-ratio: 1; place-items: center; color: white; background: var(--bousai-color-orange-600); border-radius: 50%; }
.bousai-phase2-materials__feature-icon svg { width: 1.9rem; height: 1.9rem; fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; }
.bousai-phase2-materials__feature h3 { color: var(--bousai-color-orange-600); font-size: 1rem; line-height: 1.4; }
.bousai-phase2-materials__feature p { margin-top: 0.35rem; color: var(--bousai-color-navy-950); font-size: 0.875rem; font-weight: 700; line-height: 1.55; }
.bousai-phase2-materials__feature p span { display: inline-block; background: linear-gradient(transparent 62%, #ffe66b 62%); white-space: nowrap; }
.bousai-phase2-materials__steps { display: grid; align-content: center; padding: clamp(2.3rem, 3.5vw, 3.5rem) clamp(1.8rem, 3vw, 3rem); color: white; background: var(--bousai-color-navy-950); }
.bousai-phase2-materials__steps article { position: relative; display: grid; min-height: 8.5rem; grid-template-columns: 4rem minmax(0, 1fr); grid-template-rows: 1fr auto 1fr; column-gap: 1rem; row-gap: 0; }
.bousai-phase2-materials__steps article > p, .bousai-phase2-materials__steps article > div { grid-row: 2; }
.bousai-phase2-materials__steps article > p { grid-column: 1; }
.bousai-phase2-materials__steps article > div { grid-column: 2; }
.bousai-phase2-materials__steps article::after { grid-column: 1; grid-row: 1 / 4; width: 0.24rem; margin-left: 0.58rem; background: var(--bousai-color-orange-500); content: ""; }
.bousai-phase2-materials__steps article:first-child::after { grid-row: 2 / 4; }
.bousai-phase2-materials__steps article:last-child::after { grid-row: 1; margin-bottom: -0.7rem; }
.bousai-phase2-materials__steps article > p { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; padding-left: 1.55rem; color: var(--bousai-color-orange-500); }
.bousai-phase2-materials__steps article > p::before { position: absolute; top: 0; left: 0; width: 1.4rem; aspect-ratio: 1; background: var(--bousai-color-orange-500); border-radius: 50%; content: ""; }
.bousai-phase2-materials__steps article > p span { font-size: 0.85rem; font-weight: 900; letter-spacing: 0.06em; }
.bousai-phase2-materials__steps article > p strong { font-size: 2.6rem; font-weight: 500; line-height: 1; }
.bousai-phase2-materials__steps h3 { color: white; font-size: clamp(1.45rem, 2.2vw, 1.9rem); line-height: 1.35; }
.bousai-phase2-materials__steps article div > p { margin-top: 0.6rem; color: white; font-size: 1rem; font-weight: 700; line-height: 1.6; }
.bousai-phase2-materials__steps b { display: block; margin-top: 0.35rem; color: var(--bousai-color-orange-500); font-size: 1.55rem; }

.bousai-phase2-support,
.bousai-learning-story .bousai-phase2-support { padding-bottom: 0; background: var(--bousai-color-sky-100); }
.bousai-phase2-heading h2 .bousai-phase2-support__title-line { display: block; color: var(--bousai-color-navy-950); }
.bousai-phase2-heading h2 .bousai-phase2-support__title-line > span { color: var(--bousai-color-orange-600); }
.bousai-phase2-support__body { display: grid; min-height: 32rem; grid-template-columns: minmax(16rem, 0.9fr) minmax(20rem, 1.2fr) minmax(17rem, 0.95fr); margin-inline: calc(var(--bousai-gutter) * -1); overflow: hidden; }
.bousai-phase2-support__photo { display: contents; }
.bousai-phase2-support__body img { width: 100%; height: 100%; grid-column: 1 / -1; grid-row: 1; object-fit: cover; object-position: 38% center; }
.bousai-phase2-support__panel { position: relative; z-index: 2; display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(2.25rem, 4vw, 4rem); }
.bousai-phase2-support__panel--question { grid-column: 1; grid-row: 1; background: linear-gradient(90deg, rgb(255 255 255 / 98%) 0 78%, rgb(255 255 255 / 84%)); }
.bousai-phase2-support__panel--long-term { grid-column: 3; grid-row: 1; color: white; background: var(--bousai-color-navy-950); }
.bousai-phase2-support__panel h3 { position: relative; padding-bottom: 0.85rem; color: inherit; font-size: clamp(1.35rem, 2.3vw, 1.85rem); }
.bousai-phase2-support__panel h3::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: var(--bousai-color-orange-500); content: ""; }
.bousai-phase2-support__panel--question > p { margin-block: 1.5rem; }
.bousai-phase2-support__panel--question > p > span { display: block; margin-bottom: 0.7rem; color: var(--bousai-color-navy-950); font-size: 1.05rem; font-weight: 800; line-height: 1.6; }
.bousai-phase2-support__panel--question > p strong { display: block; color: var(--bousai-color-orange-600); font-size: clamp(2.5rem, 3.4vw, 3.25rem); font-weight: 700; line-height: 1.02; }
.bousai-phase2-support__panel--question > p strong { white-space: nowrap; }
.bousai-phase2-support__panel small { display: block; color: inherit; font-size: 0.9rem; font-weight: 700; line-height: 1.75; }
.bousai-phase2-support__panel--long-term > p { display: flex; flex-wrap: wrap; align-items: baseline; margin-block: 1.35rem 0.9rem; color: white; font-size: 2.25rem; font-weight: 800; line-height: 1; }
.bousai-phase2-support__panel--long-term > p em { width: 100%; margin-bottom: 0.35rem; color: white; font-size: 1rem; font-style: normal; font-weight: 800; line-height: 1.5; }
.bousai-phase2-support__panel--long-term > p strong { font-size: clamp(5.5rem, 9vw, 8rem); font-weight: 500; }
.bousai-phase2-support__panel--long-term > p span { color: var(--bousai-color-orange-500); font-size: 2.2rem; }
.bousai-phase2-support__panel h4 { color: white; font-size: 1rem; line-height: 1.7; }
.bousai-phase2-support__panel--long-term small { margin-top: 1rem; color: rgb(255 255 255 / 88%); font-size: 0.975rem; }

.bousai-qualification > .bousai-container { max-width: 84rem; }
.bousai-qualification-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); column-gap: clamp(1.5rem, 3vw, 3rem); row-gap: 1.5rem; align-items: start; color: var(--bousai-color-navy-950); }
.bousai-qualification-intro { grid-column: 1; grid-row: 1; }
.bousai-qualification-eyebrow { display: flex; justify-content: center; align-items: center; gap: 1.25rem; margin-bottom: 2rem; color: var(--bousai-color-orange-600); font-size: 1.4rem; font-weight: 800; letter-spacing: 0.12em; }
.bousai-qualification-eyebrow::before, .bousai-qualification-eyebrow::after { width: 3rem; height: 1px; background: currentcolor; content: ""; }
.bousai-qualification-title { margin: 0 0 2rem; font-size: clamp(2.4rem, 3.75vw, 3.5rem); font-weight: 800; line-height: 1.5; }
.bousai-qualification-title > span { display: block; }
.bousai-qualification-title strong { color: var(--bousai-color-orange-600); }
.bousai-qualification-guidance { display: grid; gap: 0.75rem; font-size: clamp(1rem, 1.6vw, 1.3rem); font-weight: 700; line-height: 1.6; }
.bousai-qualification-guidance strong { color: var(--bousai-color-orange-600); font-size: clamp(1.45rem, 2.25vw, 2rem); font-weight: 800; }
.bousai-qualification-artwork { grid-column: 2; grid-row: 1 / 4; align-self: center; margin: 0; }
.bousai-qualification-artwork img { display: block; width: 100%; height: auto; }
.bousai-qualification-artwork figcaption { margin-top: 0.65rem; font-size: 0.875rem; line-height: 1.6; }
.bousai-qualification-description { grid-column: 1; grid-row: 2; margin: 0; font-size: 1rem; line-height: 1.9; color: var(--bousai-color-gray-950); }
.bousai-qualification-description > span { display: inline-block; }
.bousai-qualification-layout > .bousai-qualification-trigger { grid-column: 1; grid-row: 3; justify-self: start; gap: 2rem; margin: 0; min-width: 16rem; box-shadow: none; }
.bousai-qualification-trigger svg { width: 1.4rem; height: 1.4rem; color: var(--bousai-color-orange-500); fill: none; stroke: currentcolor; stroke-width: 3; }

.bousai-course-apply-button { background: #e8444f; box-shadow: 0 0.35rem 0 #b52834; }
.bousai-course-apply-button::after { color: #d93542; }
.bousai-course-apply-button:hover { background: #d93542; }

@media (hover: hover) {
  .bousai-button:hover { transform: translateY(-2px); }
  .bousai-button--primary:hover { background: var(--bousai-color-orange-500); }
  .bousai-cta-card:hover { filter: brightness(1.06); transform: translateY(-2px); }
  .bousai-situation-card:hover,
  .bousai-first-days-skill-card:hover,
  .bousai-curriculum-month:hover { box-shadow: 0 1rem 2rem rgb(15 42 68 / 16%); transform: translateY(-0.2rem); }
}
.bousai-pricing-notice {
  width: 100%;
  max-width: 1100px;
  margin: 32px auto 0;
  padding: 28px;
  border: 1px solid var(--bousai-color-gray-300);
  border-radius: var(--bousai-radius-sm);
  background: var(--bousai-color-white);
  color: var(--bousai-color-gray-950);
  text-align: left;
}
.bousai-pricing-notice h3 { margin: 0 0 12px; color: var(--bousai-color-navy-950); font-size: 18px; font-weight: 700; line-height: 1.7; }
.bousai-pricing-notice h3 span { display: inline-block; }
.bousai-pricing-notice ul { margin: 0; padding-left: 1.3em; list-style: disc; }
.bousai-pricing-notice li { font-size: 14px; line-height: 1.85; word-break: normal; line-break: strict; overflow-wrap: break-word; }
.bousai-pricing-notice li + li { margin-top: 8px; }
.bousai-page .bousai-pricing-notice a { color: #0068a5; text-decoration: underline; text-underline-offset: 0.2em; white-space: nowrap; }
.bousai-page .bousai-pricing-notice a:hover { color: var(--bousai-color-navy-950); text-decoration-thickness: 2px; }
.bousai-page .bousai-pricing-notice a:focus-visible { outline: 2px solid #0068a5; outline-offset: 3px; }
@media (max-width: 47.999rem) {
  .bousai-pricing-notice { margin-top: 24px; padding: 18px 16px; }
  .bousai-pricing-notice h3 { font-size: 16px; }
  .bousai-pricing-notice li { font-size: 13px; }
}
