/* The user's corrected reference: warm paper, botanical watercolor and gentle green. */
:root {
  --ink: #153e36;
  --green: #137760;
  --green-dark: #0e604e;
  --mint: #eef4e8;
  --bg: #fffefa;
  --line: #dfe6d9;
  --muted: #61726b;
}

.site-header { height: 104px; border-bottom: 1px solid #f0f0e7; }
.header-inner { width: min(1392px, calc(100% - 112px)); }
.header-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; min-width: 0; }
.brand { display: block; width: 320px; min-width: 0; flex: 0 1 auto; line-height: 0; }
.brand-logo { display: block; width: 100%; height: auto; }
.site-header nav { gap: 46px; font-size: 16px; font-weight: 600; flex-shrink: 0; }
.nav-cta { border-radius: 16px; padding: 14px 27px; gap: 25px; border-color: #dce4d8; }
.nav-cta .icon { width: 22px; }
.button-primary {
  background: linear-gradient(130deg, #329a71, #21855f);
  box-shadow: inset 0 -2px 0 #08644932, 0 6px 18px #487b3210;
}
.button-primary:hover { background: linear-gradient(130deg, #248662, #136d51); }
.button { border-radius: 12px; }

.hero-botanical {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: 852px; padding: 72px 0 180px;
  background: #fcfaf3;
}
.hero-botanical.has-hero-art::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background: url('/assets/images/hero-garden.webp') center bottom / cover no-repeat;
}
.hero-botanical::after {
  content: ""; position: absolute; height: 50px; left: -5%; width: 110%; bottom: -30px;
  border-radius: 50% 50% 0 0; background: #fffefa; z-index: 3; pointer-events: none;
}
.hero-botanical .hero-grid {
  width: min(1280px, calc(100% - 112px));
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: 62px; align-items: start;
}
.hero-botanical .hero-copy { padding-top: 1px; min-width: 0; }
.hero-botanical .hero-copy .eyebrow {
  font-size: 17px; font-weight: 650; gap: 16px; letter-spacing: .035em; margin: 0 0 23px;
}
.hero-copy .eyebrow > .intro-rays {
  position: relative; flex-shrink: 0; width: 21px; height: 30px; background: none;
}
.intro-rays::before, .intro-rays::after, .intro-rays i {
  position: absolute; content: ""; display: block; width: 5px; height: 18px;
  background: #167663; border-radius: 9px; top: 4px; left: 8px; transform: rotate(-42deg);
}
.intro-rays::before { left: -4px; top: 14px; height: 14px; transform: rotate(-72deg); }
.intro-rays::after { left: 18px; top: -3px; height: 18px; transform: rotate(-19deg); }
.hero-botanical h1 {
  font-family: 'UD Digi Kyokasho NP-B', 'UD デジタル 教科書体 NP-B', 'Hiragino Maru Gothic ProN', 'Yu Gothic', sans-serif;
  font-size: clamp(48px, 4.45vw, 68px); font-weight: 800; line-height: 1.43;
  letter-spacing: .025em; margin: 0 0 28px;
}
.hero-botanical h1 .accent { color: #168164; }
.hero-botanical .underline { z-index: 0; }
.hero-botanical .underline::after {
  height: 13px; bottom: 4px; left: -2%; right: -3%; opacity: .85; z-index: -1;
  border-radius: 50% 30% 40% 20%; background: #dcebc9; transform: rotate(-2deg);
}
.hero-botanical .hero-description { font-size: 21px; line-height: 1.8; letter-spacing: .015em; margin-bottom: 11px; }
.hero-botanical .hero-sub { font-size: 19px; line-height: 1.9; margin-bottom: 27px; }
.hero-botanical .hero-action > .button {
  width: 370px; min-width: 0; min-height: 78px; border-radius: 21px;
  padding: 18px 38px; font-size: 25px; justify-content: center; gap: 44px;
}
.hero-botanical .hero-action > .button .icon { width: 30px; height: 30px; }
.hero-botanical .cta-note { font-size: 14px; gap: 12px; margin: 13px 0 0 17px; }
.hero-botanical .cta-note .icon { width: 18px; height: 18px; color: #33966e; }
.hero-botanical .hero-example {
  max-width: none; width: 100%; border-radius: 31px; transform: none;
  padding: 39px 37px 29px; background: #fffffff5;
  border-color: #dce4d4; box-shadow: 0 16px 45px #49663d12;
  margin-top: 8px; position: relative; z-index: 2;
}
.hero-botanical .example-heading { gap: 16px; margin-bottom: 37px; flex-wrap: nowrap; }
.hero-botanical .example-heading .icon-box {
  display: flex; width: 62px; height: 63px; border-radius: 18px; background: #edf4e4; color: #168163;
}
.hero-botanical .example-heading .icon-box .icon { width: 29px; height: 29px; }
.hero-botanical .example-heading .eyebrow { color: #526960; font-size: 15px; margin-bottom: 7px; font-weight: 500; letter-spacing: .03em; }
.hero-botanical .example-heading h2 { font-size: 22px; font-weight: 650; }
.hero-botanical .example-heading > .tag { background: #f4f3ed; font-size: 14px; padding: 9px 12px; border-radius: 13px; color: var(--ink); }
.hero-botanical .example-price { font-size: 16px; padding: 18px 0 29px; }
.hero-botanical .example-price strong { font-size: 36px; }
.hero-botanical .example-price strong > span { font-size: 18px; margin-left: 7px; }
.hero-botanical .example-support { padding: 29px 0 32px; gap: 16px; }
.hero-botanical .example-support .round-minus { width: 38px; height: 38px; background: #edf4e3; font-size: 27px; flex-shrink: 0; }
.hero-botanical .example-support .tag { font-size: 15px; padding: 4px 11px; border-radius: 10px; }
.hero-botanical .example-support p { font-size: 14px; margin-top: 5px; color: #35584b; }
.hero-botanical .example-support > strong { font-size: 32px; }
.hero-botanical .example-support small { font-size: 16px; margin-left: 7px; }
.hero-botanical .example-net { padding: 25px 16px 23px; border-radius: 17px; background: linear-gradient(115deg, #08776b, #0e705c); }
.hero-botanical .example-net p { font-size: 16px; line-height: 1.7; }
.hero-botanical .example-net > div { gap: 8px; margin-top: 8px; }
.hero-botanical .example-net strong { font-size: 62px; letter-spacing: -.035em; font-weight: 650; line-height: 1.4; }
.hero-botanical .example-net > div > span { font-size: 19px; }
.hero-botanical .example-net > div > .example-small { font-size: 16px; }
.hero-botanical .example-footnote { font-size: 13px; line-height: 1.95; margin-top: 22px; }
.hero-artwork {
  position: absolute; width: 280px; height: 350px; bottom: -20px;
  left: calc(50% - 245px); margin: 0; z-index: 1; pointer-events: none;
}
.hero-artwork img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hero-artwork figcaption {
  position: absolute; left: -118px; top: 192px; transform: rotate(-15deg);
  font-family: 'UD Digi Kyokasho NP-R', 'UD デジタル 教科書体 NP-R', 'Yu Mincho', serif;
  font-size: 23px; line-height: 1.65; letter-spacing: .08em; color: #416c5a; text-align: center;
}
.hero-artwork figcaption::after { content: ""; display: block; width: 107px; height: 14px; border-bottom: 2px solid #5a9c71; border-radius: 50%; transform: rotate(-7deg); }
.page-home .coverage-strip { border-top: 0; border-bottom-color: #e7ecdc; background: #f7f9f0; padding: 23px 0; }
.page-home .coverage-strip .container { font-size: 14px; }
.page-home .section { padding-top: 73px; }
.page-home .qualification-card { border-radius: 20px; padding: 29px 27px 45px; box-shadow: 0 6px 22px #64774a05; }
.page-home .qualification-number { color: #a1b292; }
.page-home .section-heading h2, .page-home .trust-section h2 { letter-spacing: .035em; }
.page-home .how-section { background: #f0f5e8; border-color: #e7eddc; }
.form-card, .support-card, .course-card { border-radius: 18px; }
.page-inner .highlight-card, .page-inner .course-price { background: #f0f5e9; }

@media (max-width: 1200px) and (min-width: 761px) {
  .header-inner { width: calc(100% - 64px); }
  .brand { width: 270px; }
  .site-header nav { font-size: 14px; gap: 25px; }
  .hero-botanical { min-height: 780px; padding: 57px 0 145px; }
  .hero-botanical .hero-grid { width: calc(100% - 80px); gap: 35px; grid-template-columns: minmax(0,1.03fr) minmax(0,1fr); }
  .hero-botanical h1 { font-size: clamp(36px, 4.28vw, 50px); }
  .hero-botanical .hero-copy .eyebrow { font-size: 13px; gap: 12px; }
  .hero-botanical .hero-description { font-size: 17px; }
  .hero-botanical .hero-sub { font-size: 16px; }
  .hero-botanical .hero-action > .button { width: 300px; min-height: 67px; font-size: 21px; padding: 14px 25px; gap: 25px; }
  .hero-botanical .cta-note { font-size: 11px; gap: 8px; margin-left: 4px; }
  .hero-botanical .hero-example { padding: 29px 24px 24px; border-radius: 25px; }
  .hero-botanical .example-heading { gap: 11px; margin-bottom: 24px; }
  .hero-botanical .example-heading .icon-box { width: 45px; height: 46px; border-radius: 13px; }
  .hero-botanical .example-heading h2 { font-size: 17px; }
  .hero-botanical .example-heading .eyebrow { font-size: 11px; }
  .hero-botanical .example-heading > .tag { font-size: 11px; padding: 6px 8px; }
  .hero-botanical .example-price { font-size: 14px; padding: 15px 0 21px; }
  .hero-botanical .example-price strong { font-size: 29px; }
  .hero-botanical .example-support { padding: 22px 0; gap: 10px; }
  .hero-botanical .example-support .round-minus { width: 29px; height: 29px; font-size: 24px; }
  .hero-botanical .example-support .tag { font-size: 12px; }
  .hero-botanical .example-support > strong { font-size: 27px; }
  .hero-botanical .example-support p { font-size: 12px; }
  .hero-botanical .example-net p { font-size: 13px; }
  .hero-botanical .example-net strong { font-size: 49px; }
  .hero-botanical .example-net > div > .example-small { font-size: 12px; }
  .hero-botanical .example-footnote { font-size: 12px; }
  .hero-artwork { width: 250px; height: 313px; left: calc(50% - 215px); }
  .hero-artwork figcaption { font-size: 19px; left: -95px; top: 175px; }
}

@media (min-width: 761px) and (max-width: 940px) {
  .hero-botanical .hero-grid { gap: 22px; width: calc(100% - 48px); }
  .hero-botanical .hero-copy .eyebrow { font-size: 12px; gap: 10px; }
  .hero-botanical .example-heading .icon-box { display: none; }
  .hero-botanical .example-support { flex-wrap: wrap; }
  .hero-botanical .example-net > div { flex-wrap: wrap; gap: 5px; }
  .hero-botanical .example-net strong { font-size: 42px; }
  .hero-botanical .example-footnote br { display: none; }
  .hero-artwork { left: calc(50% - 215px); width: 215px; height: 269px; }
}

@media (max-width: 760px) {
  .site-header { height: 80px; }
  .header-inner { width: calc(100% - 32px); gap: 12px; }
  .brand { width: 180px; }
  .site-header nav { gap: 0; }
  .nav-cta { font-size: 11px; padding: 10px; gap: 7px; border-radius: 11px; }
  .nav-cta .icon { width: 15px; }
  .hero-botanical { min-height: 0; padding: 41px 0 51px; }
  .hero-botanical.has-hero-art::before { background-size: auto 100%; background-position: 53% center; opacity: .7; }
  .hero-botanical .hero-grid { width: calc(100% - 40px); grid-template-columns: 1fr; gap: 20px; }
  .hero-botanical .hero-copy { padding-top: 0; }
  .hero-botanical .hero-copy .eyebrow { font-size: 12px; letter-spacing: 0; gap: 12px; margin: 0 0 22px 5px; }
  .hero-copy .eyebrow > .intro-rays { width: 16px; height: 24px; transform: scale(.75); }
  .hero-botanical h1 { font-size: clamp(29px, 8.65vw, 49px); line-height: 1.52; letter-spacing: .015em; margin: 0 0 23px; }
  .hero-botanical .underline::after { height: 8px; bottom: 3px; }
  .hero-botanical .hero-description { font-size: 16px; line-height: 1.85; margin-bottom: 12px; }
  .hero-botanical .hero-sub { font-size: 14px; line-height: 1.9; margin-bottom: 23px; }
  .hero-botanical .hero-action { position: relative; min-height: 145px; padding-right: 99px; padding-top: 4px; }
  .hero-botanical .hero-action > .button { width: 100%; min-width: 0; min-height: 62px; border-radius: 17px; padding: 13px 15px; font-size: 18px; gap: 13px; justify-content: space-between; }
  .hero-botanical .hero-action > .button .icon { width: 23px; height: 23px; }
  .hero-botanical .cta-note { font-size: 11px; gap: 4px 7px; justify-content: flex-start; flex-wrap: wrap; margin: 12px 0 0 2px; }
  .hero-botanical .cta-note > span { display: none; }
  .hero-botanical .cta-note .icon { width: 14px; height: 14px; }
  .hero-artwork { width: 132px; height: 165px; left: auto; right: -21px; bottom: -4px; z-index: 0; }
  .hero-artwork figcaption { display: none; }
  .hero-botanical .hero-action > .button, .hero-botanical .cta-note { position: relative; z-index: 1; }
  .hero-botanical .hero-example { margin: 0; padding: 24px 20px 23px; border-radius: 24px; background: #fffffff5; }
  .hero-botanical .example-heading { gap: 10px; margin-bottom: 24px; flex-wrap: nowrap; }
  .hero-botanical .example-heading .icon-box { display: flex; width: 42px; height: 45px; border-radius: 13px; }
  .hero-botanical .example-heading .icon-box .icon { width: 23px; height: 23px; }
  .hero-botanical .example-heading .eyebrow { font-size: 11px; margin-bottom: 4px; letter-spacing: 0; }
  .hero-botanical .example-heading h2 { font-size: 16px; }
  .hero-botanical .example-heading > .tag { font-size: 11px; padding: 5px 7px; border-radius: 8px; }
  .hero-botanical .example-price { font-size: 13px; padding: 12px 0 21px; }
  .hero-botanical .example-price strong { font-size: 29px; }
  .hero-botanical .example-price strong > span { font-size: 15px; margin-left: 5px; }
  .hero-botanical .example-support { gap: 9px; padding: 23px 0; }
  .hero-botanical .example-support .round-minus { width: 27px; height: 27px; font-size: 23px; }
  .hero-botanical .example-support .tag { font-size: 12px; padding: 4px 8px; border-radius: 7px; }
  .hero-botanical .example-support p { font-size: 11px; }
  .hero-botanical .example-support > strong { font-size: 25px; }
  .hero-botanical .example-support small { font-size: 13px; margin-left: 4px; }
  .hero-botanical .example-net { padding: 22px 9px 19px; border-radius: 13px; }
  .hero-botanical .example-net p { font-size: 12px; }
  .hero-botanical .example-net strong { font-size: 49px; }
  .hero-botanical .example-net > div { gap: 5px; margin-top: 6px; }
  .hero-botanical .example-net > div > span { font-size: 16px; }
  .hero-botanical .example-net > div > .example-small { font-size: 12px; }
  .hero-botanical .example-footnote { font-size: 12px; margin-top: 18px; line-height: 1.9; }
  .hero-botanical .example-footnote br { display: none; }
  .page-home .coverage-strip { padding: 19px 0; }
  .page-home .coverage-strip .container { font-size: 12px; }
  .page-home .section { padding-top: 43px; }
  .page-home .qualification-card { padding: 23px 39px 23px 22px; border-radius: 17px; }
}

@media (max-width: 359px) {
  .header-inner { width: calc(100% - 24px); gap: 8px; }
  .brand { width: 148px; }
  .nav-cta { padding: 9px 8px; font-size: 10px; gap: 4px; }
  .hero-botanical .hero-grid { width: calc(100% - 32px); }
  .hero-botanical .hero-copy .eyebrow { font-size: 10px; }
  .hero-botanical .hero-sub { font-size: 13px; }
  .hero-botanical .hero-action { padding-right: 79px; }
  .hero-botanical .hero-action > .button { font-size: 16px; padding: 13px 12px; gap: 8px; }
  .hero-artwork { width: 114px; height: 143px; right: -20px; bottom: 9px; }
  .hero-botanical .example-heading .icon-box { display: none; }
  .hero-botanical .hero-example { padding: 23px 16px; }
  .hero-botanical .example-support { gap: 7px; }
  .hero-botanical .example-support > strong { font-size: 23px; }
  .hero-botanical .example-support .round-minus { width: 23px; height: 23px; }
  .hero-botanical .example-net strong { font-size: 43px; }
}

/* Two clear journeys, sharing the existing garden and green palette. */
.journey-choices { position: relative; z-index: 1; max-width: 430px; display: grid; gap: 10px; }
.journey-choices .button { width: 100%; justify-content: space-between; min-height: 56px; }
.journey-choices .button-large { font-size: 21px; padding: 18px 22px; }
.journey-choices p { margin: 0 0 8px; color: #506861; font-size: 14px; line-height: 1.7; }
.journey-choices .button-outline { background: #fffdf7; }
.nav-courses { font-weight: 700; font-size: 14px; padding: 12px 4px; }
.comparison-page { padding-bottom: 60px; }
.focus-qualifications { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 24px 0 40px; }
.focus-qualifications a { border: 1px solid #d3dfcf; border-radius: 24px; background: #fff; padding: 11px 17px; font-weight: 700; text-decoration: none; }
.focus-qualifications a[aria-current] { background: #116c5b; color: #fff; }
.tuition-section { scroll-margin-top: 24px; }
.tuition-filters { display: flex; align-items: end; gap: 16px; flex-wrap: wrap; margin: 24px 0; }
.tuition-filters .field { flex: 1 1 200px; min-width: 0; }
.tuition-filters .field-help { width: 100%; margin-bottom: 0; }
.tuition-summary { border-left: 4px solid #27826a; background: #f3f6ed; border-radius: 10px; padding: 20px; margin-bottom: 22px; }
.tuition-summary strong { font-size: 20px; margin-right: 18px; }
.tuition-summary p { margin-bottom: 0; }
.tuition-table-wrap { border: 1px solid #dbe3d6; border-radius: 16px; overflow: hidden; background: white; margin: 22px 0; }
.tuition-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.tuition-table caption { text-align: left; padding: 18px; font-weight: 700; background: #f5f6ef; }
.tuition-table th, .tuition-table td { padding: 20px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid #dbe3d6; overflow-wrap: anywhere; }
.tuition-table thead th { background: #edf3e8; font-size: 15px; }
.tuition-table tbody th { font-size: 17px; width: 25%; }
.tuition-table tbody th a { display: block; margin: 9px 0; }
.tuition-table td { font-size: 15px; }
.tuition-table small { display: block; font-size: 13px; line-height: 1.7; color: #506861; margin-top: 8px; font-weight: 400; }
.tuition-table p { line-height: 1.8; }
.tuition-price { display: block; font-size: 27px; white-space: nowrap; color: #116c5b; }
.tuition-table summary { padding: 10px 0; font-weight: 700; cursor: pointer; }
.tuition-table .button { font-size: 14px; padding: 12px; margin-top: 14px; white-space: normal; }
.tuition-table .provider { font-size: 15px; }
.comparison-next { margin-top: 28px; background: #f5f6ef; }
.comparison-next > a { margin: 10px 16px 0 0; }
.course-comparison-back a, .diagnose-price-path a { text-decoration: underline; text-underline-offset: 4px; }
.focus-qualifications a:focus-visible, .tuition-table summary:focus-visible, .nav-courses:focus-visible { outline: 3px solid #bb7b29; outline-offset: 3px; }
@media (max-width: 767px) {
  .site-header { height: auto; }
  .site-header .header-inner { height: auto; padding-top: 14px; }
  .site-header .header-inner { flex-wrap: wrap; gap: 10px; padding-bottom: 12px; }
  .header-actions { width: 100%; align-items: stretch; }
  .site-header nav { width: 100%; display: flex; justify-content: space-between; gap: 10px; }
  .nav-courses, .site-header .nav-cta { font-size: 13px; min-height: 44px; }
  .hero-botanical .hero-action { padding-right: 0; padding-bottom: 110px; }
  .hero-botanical .hero-artwork { right: 0; bottom: -15px; width: 125px; height: 155px; }
  .journey-choices { max-width: none; }
  .journey-choices .button-large { font-size: 19px; }
  .hero-botanical .cta-note { max-width: calc(100% - 85px); }
  .focus-qualifications { gap: 8px; margin-bottom: 26px; }
  .focus-qualifications > span { width: 100%; }
  .focus-qualifications a { font-size: 14px; padding: 11px 13px; }
  .tuition-filters { padding: 20px; }
  .tuition-filters .field, .tuition-filters .button { flex-basis: 100%; width: 100%; }
  .tuition-table, .tuition-table tbody, .tuition-table tr, .tuition-table th, .tuition-table td { display: block; width: 100%; }
  .tuition-table thead { display: none; }
  .tuition-table caption { display: block; width: 100%; }
  .tuition-table tbody th { width: 100%; background: #f3f6ed; }
  .tuition-table td::before { content: attr(data-column); display: block; font-size: 13px; font-weight: 700; color: #506861; margin-bottom: 8px; }
  .tuition-table tr + tr { border-top: 5px solid #e3eadc; }
  .tuition-table th, .tuition-table td { padding: 18px; font-size: 16px; }
  .tuition-table small { font-size: 14px; }
  .tuition-summary strong, .tuition-summary span { display: block; }
  .comparison-next .button { width: 100%; margin-right: 0; }
}
