@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&display=swap');

:root {
  --paper: #f5f0e7;
  --paper-light: #fcf9f3;
  --ink: #182e31;
  --ink-soft: #526363;
  --green: #146b4d;
  --green-dark: #0e4039;
  --coral: #dd553f;
  --coral-dark: #b43e32;
  --gold: #d2a64b;
  --line: rgba(24, 46, 49, .2);
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'DM Sans', sans-serif;
  --content: 1200px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
::selection { background: var(--green); color: var(--paper-light); }
.skip-link { position: fixed; z-index: 50; top: 12px; left: 12px; transform: translateY(-150%); background: var(--paper-light); color: var(--ink); padding: 12px 16px; }
.skip-link:focus { transform: translateY(0); }
.site-header { height: 82px; padding: 0 max(5vw, calc((100vw - var(--content)) / 2)); display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 10; background: var(--paper); border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; gap: 11px; align-items: center; flex: 0 0 auto; }
.brand-mark { width: 37px; height: 37px; border: 1px solid var(--green); border-radius: 50%; display: grid; place-items: center; position: relative; color: var(--green); font: 500 25px/1 var(--serif); }
.brand-mark i { width: 7px; height: 7px; background: var(--coral); border-radius: 50%; position: absolute; top: 3px; right: 2px; border: 1px solid var(--paper); }
.brand-name { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 5px; font: 600 14px/1.1 var(--sans); letter-spacing: .04em; }
.brand-name b { font-weight: 500; letter-spacing: -.02em; }
.brand-name small { grid-column: 1 / -1; padding-top: 5px; font: 600 8px/1 var(--sans); letter-spacing: .22em; color: var(--ink-soft); }
.primary-nav { display: flex; align-items: center; gap: clamp(20px, 3vw, 43px); font-size: 12px; font-weight: 600; letter-spacing: .015em; }
.primary-nav a:not(.nav-contact) { transition: color .2s ease; }
.primary-nav a:not(.nav-contact):hover { color: var(--coral-dark); }
.nav-contact { padding: 13px 17px; border: 1px solid var(--ink); }
.nav-contact span { color: var(--coral); margin-left: 12px; }
.menu-toggle { display: none; }

.hero { min-height: min(720px, calc(100svh - 82px)); height: 660px; max-height: 760px; position: relative; color: var(--paper-light); overflow: hidden; background: var(--green-dark); }
.hero-photo, .hero-shade { position: absolute; inset: 0; }
.hero-photo { background: url('./assets/obi-hero.jpg') center 50% / cover no-repeat; animation: hero-arrive 1.1s cubic-bezier(.16, 1, .3, 1) both; }
.hero-shade { background: linear-gradient(90deg, rgba(10, 37, 36, .83) 0%, rgba(10, 37, 36, .59) 40%, rgba(10, 37, 36, .05) 78%), linear-gradient(0deg, rgba(10, 37, 36, .55), transparent 35%); }
.hero-content { position: relative; z-index: 1; width: min(var(--content), 90%); margin: 0 auto; padding-top: clamp(108px, 17vh, 168px); }
.eyebrow, .section-kicker, .section-index, .intro-label, .card-count, .image-note, .course-facts span, .side-caption, .notice-type, .form-head, .footer-navigation > span, .contact-method small { font-size: 9px; letter-spacing: .16em; font-weight: 700; }
.hero-eyebrow { display: flex; align-items: center; gap: 10px; text-transform: uppercase; }
.live-dot { height: 7px; width: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(210, 166, 75, .16); }
.hero h1 { font: 400 clamp(54px, 8vw, 105px)/.99 var(--serif); letter-spacing: -.055em; margin: 27px 0 22px; max-width: 770px; }
h1 em, h2 em { font-weight: 400; color: var(--gold); }
.hero-copy { max-width: 440px; font-size: 15px; line-height: 1.75; color: rgba(252, 249, 243, .83); }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 34px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 28px; min-height: 50px; padding: 0 19px; border: 0; font-size: 11px; font-weight: 700; letter-spacing: .02em; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-coral { background: var(--coral); color: #fffaf1; }
.button-coral:hover { background: var(--coral-dark); }
.text-link { display: inline-flex; gap: 18px; align-items: center; font-size: 11px; font-weight: 600; }
.text-link span, .arrow-link span { color: var(--coral); }
.light-link span { color: var(--gold); }
.hero-caption { position: absolute; bottom: 25px; left: 5%; right: 5%; max-width: var(--content); margin: auto; display: flex; align-items: center; gap: 18px; font-size: 8px; letter-spacing: .17em; color: rgba(255,255,255,.75); }
.caption-line { height: 1px; width: 70px; background: var(--gold); }
.hero-stamp { position: absolute; right: 7%; bottom: 15%; border: 1px solid rgba(252,249,243,.6); border-radius: 50%; width: 124px; height: 124px; display: flex; flex-direction: column; align-items: center; justify-content: center; transform: rotate(10deg); color: var(--paper-light); }
.hero-stamp > span { font: 400 26px var(--serif); }
.hero-stamp small { margin-top: 5px; text-align: center; font-size: 6px; line-height: 1.5; letter-spacing: .16em; }
.ticker { color: var(--paper-light); background: var(--green); overflow: hidden; }
.ticker-inner { min-width: max-content; height: 48px; display: flex; justify-content: space-around; align-items: center; gap: 48px; padding: 0 4vw; font: 400 18px var(--serif); }
.ticker-inner i { width: 5px; height: 5px; background: var(--gold); transform: rotate(45deg); }

.section-wrap { width: min(var(--content), 88%); margin: 0 auto; }
.intro { min-height: 470px; padding-top: 112px; padding-bottom: 108px; display: grid; grid-template-columns: 160px 1fr 150px; column-gap: 35px; }
.intro-label { display: flex; gap: 15px; align-items: flex-start; padding-top: 7px; }
.section-index { display: inline-flex; color: var(--coral-dark); }
.intro-label > span:last-child { color: var(--ink-soft); }
.intro-main { max-width: 730px; }
.intro-main .eyebrow, .course-copy .eyebrow { color: var(--green); text-transform: uppercase; }
h2 { font: 400 clamp(37px, 5vw, 62px)/1.06 var(--serif); letter-spacing: -.045em; margin: 18px 0 24px; }
h2 em { color: var(--green); }
.intro-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; margin-top: 25px; }
.intro-columns p, .course-copy > p:not(.eyebrow):not(.fine-print), .learning-top > p, .pathway-row > p, .notice p { color: var(--ink-soft); font-size: 13px; line-height: 1.85; margin: 0; }
.dark-link { margin-top: 26px; color: var(--ink); }
.intro-aside { align-self: center; border-left: 1px solid var(--line); margin-left: 5px; padding-left: 28px; }
.aside-kanji { display: block; color: var(--coral); font: 400 44px var(--serif); }
.intro-aside p { font: 400 17px/1.3 var(--serif); margin: 5px 0 18px; }
.aside-rule { width: 34px; height: 1px; display: block; background: var(--green); margin-bottom: 11px; }
.intro-aside small { color: var(--ink-soft); font-size: 8px; letter-spacing: .18em; }

.course-section { display: grid; grid-template-columns: 1fr 1fr; min-height: 610px; background: #e6e8dc; }
.course-image-wrap { min-height: 610px; position: relative; overflow: hidden; }
.course-image-wrap img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.image-note { position: absolute; left: 6%; right: 6%; bottom: 20px; display: flex; justify-content: space-between; color: white; font-size: 8px; text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.course-copy { max-width: 630px; padding: 74px clamp(32px, 7vw, 100px) 65px clamp(38px, 6vw, 84px); align-self: center; }
.section-kicker { display: flex; align-items: center; gap: 13px; color: var(--ink-soft); }
.section-kicker .section-index { color: var(--coral-dark); }
.course-copy .eyebrow { margin: 52px 0 0; }
.course-copy h2 { margin: 12px 0 20px; font-size: clamp(41px, 5vw, 58px); }
.body-large { color: var(--ink); font: 400 16px/1.65 var(--serif); margin: 0 0 14px; }
.course-facts { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 27px 0 25px; padding: 17px 0; display: flex; justify-content: space-between; gap: 10px; }
.course-facts div { display: grid; gap: 6px; }
.course-facts strong { font: 500 20px var(--serif); color: var(--green-dark); }
.course-facts span { color: var(--ink-soft); font-size: 7px; }
.button-ink { background: var(--ink); color: var(--paper-light); }
.button-ink:hover { background: var(--green); }
.fine-print { font-size: 10px; line-height: 1.5; color: var(--ink-soft); margin: 14px 0 0; max-width: 350px; }

.learning { padding-top: 115px; padding-bottom: 120px; }
.learning-top, .opportunity-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }
.learning-top h2, .opportunity-heading h2 { margin-bottom: 0; }
.learning-top > p { max-width: 300px; padding-bottom: 7px; }
.learning-grid { margin-top: 52px; display: grid; grid-template-columns: 1fr 1fr .65fr; gap: 18px; align-items: stretch; }
.learning-card { position: relative; min-height: 360px; padding: 25px 27px 28px; display: flex; flex-direction: column; }
.card-primary { background: var(--green); color: var(--paper-light); }
.card-paper { background: #e7d5bc; }
.card-count { font-size: 8px; opacity: .75; }
.card-graphic { height: 113px; display: flex; align-items: center; gap: 9px; color: rgba(245,240,231,.65); }
.card-graphic span { font: 400 88px/.9 var(--serif); color: var(--gold); }
.card-graphic i { font: normal 44px var(--serif); margin-top: 23px; }
.card-graphic b { font: 400 33px var(--serif); align-self: flex-start; margin-top: 20px; }
.test-badges { display: flex; align-items: center; gap: 8px; height: 113px; }
.test-badges span { display: grid; place-items: center; width: 78px; height: 78px; background: var(--coral); color: white; border-radius: 50%; font-size: 12px; font-weight: 700; }
.test-badges span + span { border-radius: 50%; width: 89px; height: 89px; background: var(--green-dark); font-size: 9px; }
.learning-card h3 { font: 400 25px/1.1 var(--serif); margin: 5px 0 11px; }
.learning-card p { color: inherit; opacity: .78; font-size: 11px; line-height: 1.8; margin: 0 0 20px; max-width: 390px; }
.arrow-link { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: auto; border-top: 1px solid currentColor; padding-top: 15px; font-size: 10px; font-weight: 600; }
.card-primary .arrow-link span { color: var(--gold); }
.learning-side { background: var(--coral); color: #fff5e6; padding: 28px 24px; min-height: 360px; display: flex; flex-direction: column; justify-content: space-between; }
.side-mark { font: 400 32px var(--serif); letter-spacing: .12em; }
.learning-side p { font: 400 22px/1.38 var(--serif); max-width: 230px; margin: 0; }
.side-caption { font-size: 7px; opacity: .8; }

.pathways { background: var(--green-dark); color: var(--paper-light); padding: 96px 0 60px; }
.pathways-heading { position: relative; }
.pathways-heading .section-kicker { color: rgba(245,240,231,.6); }
.pathways-heading h2 { margin: 23px 0 14px; }
.pathways-heading h2 em { color: var(--gold); }
.pathways-heading > p { color: rgba(245,240,231,.68); font-size: 12px; line-height: 1.7; max-width: 350px; margin: 0 0 57px; }
.pathway-list { width: min(var(--content), 88%); margin: 0 auto; border-top: 1px solid rgba(245,240,231,.29); }
.pathway-row { display: grid; grid-template-columns: 70px 1.05fr 1.3fr 52px; gap: 30px; align-items: center; min-height: 185px; border-bottom: 1px solid rgba(245,240,231,.29); }
.pathway-number { font: 400 32px var(--serif); color: var(--gold); }
.pathway-number span { font: 400 13px var(--sans); margin-left: 6px; }
.pathway-title .eyebrow { color: var(--gold); margin: 0 0 10px; font-size: 8px; }
.pathway-title h3 { font: 400 30px/1.05 var(--serif); margin: 0; }
.pathway-row > p { color: rgba(245,240,231,.72); max-width: 455px; font-size: 11px; }
.circle-link { width: 42px; height: 42px; border: 1px solid rgba(245,240,231,.65); display: grid; place-items: center; border-radius: 50%; font-size: 17px; transition: color .2s ease, background .2s ease, transform .2s ease; }
.circle-link:hover { background: var(--gold); color: var(--ink); transform: rotate(45deg); }

.opportunity { padding-top: 113px; padding-bottom: 118px; }
.opportunity-heading > p { max-width: 300px; color: var(--ink-soft); font-size: 12px; line-height: 1.8; margin: 0 0 3px; }
.noticeboard { display: grid; grid-template-columns: 1fr 1fr 1fr; margin-top: 46px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.notice { min-height: 250px; padding: 24px 24px 26px; display: flex; flex-direction: column; border-right: 1px solid var(--line); position: relative; }
.notice:first-child { padding-left: 0; }
.notice:last-child { border-right: 0; padding-right: 0; }
.notice-highlight { background: #e7dfce; padding-left: 24px; padding-right: 24px; }
.notice-type { color: var(--green); font-size: 8px; }
.notice-symbol { position: absolute; right: 24px; top: 20px; color: var(--coral); font: 400 22px var(--serif); }
.notice h3 { font: 400 24px/1.12 var(--serif); max-width: 250px; margin: 34px 0 12px; }
.notice p { font-size: 11px; margin-bottom: 22px; }
.notice-link { margin-top: auto; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 13px; font-size: 10px; font-weight: 600; }
.notice-link span { color: var(--coral-dark); }
.noticeboard-note { text-align: right; color: var(--ink-soft); font-size: 9px; line-height: 1.6; margin: 13px 0 0; }

.exchange-band { min-height: 540px; display: grid; grid-template-columns: 1.1fr 1fr; background: var(--coral); color: var(--paper-light); position: relative; }
.exchange-image { min-height: 540px; background: url('./assets/obi-exchange.jpg') 42% center / cover no-repeat; filter: saturate(.75); }
.exchange-content { align-self: center; padding: 68px clamp(40px, 8vw, 120px); }
.exchange-content .section-kicker { color: rgba(255,245,230,.78); }
.exchange-content .section-index { color: var(--gold); }
.exchange-kanji { font: 400 34px var(--serif); margin: 48px 0 0; color: rgba(255,245,230,.8); }
.exchange-content h2 { font-size: clamp(43px, 5vw, 61px); margin: 11px 0 18px; }
.exchange-content h2 em { color: #f2c875; }
.exchange-content > p:not(.exchange-kanji) { color: rgba(255,245,230,.86); font-size: 12px; line-height: 1.8; max-width: 390px; margin: 0 0 24px; }
.exchange-vertical { position: absolute; right: 16px; bottom: 32px; writing-mode: vertical-rl; color: rgba(255,245,230,.72); font-size: 8px; letter-spacing: .2em; }

.contact { padding-top: 122px; padding-bottom: 125px; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(50px, 9vw, 130px); align-items: start; }
.contact-intro h2 { margin: 25px 0 17px; font-size: clamp(54px, 7vw, 80px); }
.contact-intro > p { max-width: 355px; color: var(--ink-soft); font-size: 13px; line-height: 1.8; }
.contact-direct { margin-top: 36px; border-top: 1px solid var(--line); }
.contact-method { display: flex; align-items: center; gap: 14px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.method-icon { flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--green); color: white; font-size: 13px; font-weight: 700; }
.email-icon { background: var(--coral); }
.contact-method > span:nth-child(2) { display: grid; gap: 5px; }
.contact-method small { color: var(--ink-soft); font-size: 7px; }
.contact-method b { font-size: 12px; font-weight: 600; }
.method-arrow { margin-left: auto; color: var(--coral); }
.contact-form { padding: 31px clamp(22px, 4vw, 48px) 28px; border: 1px solid var(--line); background: var(--paper-light); }
.form-head { display: flex; justify-content: space-between; color: var(--green); font-size: 8px; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
.form-intro { color: var(--ink-soft); font: 400 17px var(--serif); margin: 20px 0 24px; }
.form-field { display: grid; gap: 8px; margin-bottom: 18px; }
.form-field label { font-size: 10px; font-weight: 700; }
.form-field label > span:not(.optional) { color: var(--coral-dark); }
.optional { color: var(--ink-soft); font-weight: 400; }
.form-field input, .form-field select, .form-field textarea { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(24,46,49,.35); border-radius: 0; padding: 10px 2px; color: var(--ink); outline-offset: 2px; font-size: 12px; }
.form-field select { cursor: pointer; }
.form-field textarea { resize: vertical; min-height: 72px; }
.form-field input::placeholder, .form-field textarea::placeholder { color: #89908a; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.submit-button { width: 100%; justify-content: space-between; margin-top: 3px; }
.privacy-note { display: flex; gap: 9px; margin: 13px 0 0; color: var(--ink-soft); font-size: 9px; line-height: 1.6; }
.privacy-note > span { display: inline-grid; place-items: center; flex: 0 0 14px; height: 14px; border: 1px solid var(--green); border-radius: 50%; font-size: 9px; font-weight: 700; color: var(--green); }
.form-status { min-height: 0; margin: 0; color: var(--green-dark); font-size: 11px; line-height: 1.6; }
.form-status:not(:empty) { margin-top: 10px; }
.site-footer { color: var(--paper-light); background: var(--ink); padding: 58px max(6vw, calc((100vw - var(--content)) / 2)) 0; }
.footer-top { display: grid; grid-template-columns: 1.15fr 1fr 1fr .8fr; gap: 35px; padding-bottom: 50px; }
.footer-brand .brand-mark { color: var(--gold); border-color: var(--gold); }
.footer-brand .brand-name small { color: rgba(245,240,231,.54); }
.footer-top > p { font: 400 28px/1.2 var(--serif); margin: 0; }
.footer-top > p em { color: var(--gold); }
.footer-navigation { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-navigation > span { color: var(--gold); font-size: 8px; margin-bottom: 7px; }
.footer-navigation a, .share-button { padding: 0; border: 0; background: none; color: rgba(245,240,231,.77); font-size: 10px; cursor: pointer; }
.footer-navigation a:hover, .share-button:hover { color: var(--gold); }
.footer-navigation a span, .share-button span { color: var(--coral); margin-left: 4px; }
.social-share { display: flex; flex-wrap: wrap; gap: 8px 13px; }
.share-status { color: var(--gold) !important; font-size: 9px !important; min-height: 12px; }
.footer-bottom { border-top: 1px solid rgba(245,240,231,.2); min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 15px; color: rgba(245,240,231,.6); font-size: 9px; }
.footer-bottom i { display: inline-block; vertical-align: middle; margin: 0 7px; width: 4px; height: 4px; border-radius: 50%; background: var(--coral); }
.footer-bottom a { color: var(--paper-light); }

@keyframes hero-arrive { from { transform: scale(1.035); opacity: .7; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
@media (min-width: 1500px) { .hero { height: 730px; } }
@media (max-width: 900px) {
  .site-header { padding: 0 5%; }
  .primary-nav { gap: 19px; }
  .primary-nav a { font-size: 10px; }
  .intro { grid-template-columns: 110px 1fr 110px; gap: 20px; }
  .intro-aside { padding-left: 17px; }
  .learning-grid { grid-template-columns: 1fr 1fr; }
  .learning-side { grid-column: 1 / -1; min-height: 180px; flex-direction: row; align-items: center; gap: 24px; }
  .learning-side p { max-width: 360px; }
  .pathway-row { grid-template-columns: 48px 1fr 1.2fr 40px; gap: 18px; }
  .footer-top { grid-template-columns: 1fr 1fr 1fr; }
  .footer-top > p { display: none; }
  .contact { gap: 45px; }
}
@media (max-width: 650px) {
  html { scroll-padding-top: 70px; }
  .site-header { height: 68px; padding: 0 20px; }
  .brand-mark { width: 33px; height: 33px; font-size: 22px; }
  .brand-name { font-size: 12px; }
  .brand-name small { font-size: 7px; }
  .menu-toggle { display: flex; height: 42px; width: 42px; padding: 12px 8px; border: 1px solid var(--line); background: transparent; flex-direction: column; justify-content: center; gap: 6px; cursor: pointer; }
  .menu-toggle span { display: block; height: 1px; width: 100%; background: var(--ink); transition: transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .primary-nav { display: none; position: fixed; top: 68px; left: 0; right: 0; bottom: 0; background: var(--paper); padding: 36px 26px; flex-direction: column; align-items: stretch; gap: 0; z-index: 20; }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { border-bottom: 1px solid var(--line); padding: 18px 0; font: 400 22px var(--serif); }
  .primary-nav .nav-contact { border: 0; padding: 20px 0; font: 600 12px var(--sans); }
  .hero { height: 710px; min-height: calc(100svh - 68px); max-height: 790px; }
  .hero-photo { background-position: 57% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(10,37,36,.83), rgba(10,37,36,.33)), linear-gradient(0deg, rgba(10,37,36,.63), transparent 60%); }
  .hero-content { width: 88%; padding-top: clamp(115px, 20vh, 165px); }
  .hero h1 { font-size: clamp(56px, 13.2vw, 78px); margin-top: 24px; }
  .hero-copy { max-width: 310px; font-size: 13px; }
  .hero-actions { flex-wrap: wrap; gap: 17px 23px; margin-top: 25px; }
  .button { min-height: 48px; }
  .hero-stamp { width: 90px; height: 90px; right: 7%; bottom: 15%; }
  .hero-stamp > span { font-size: 21px; }
  .hero-stamp small { font-size: 5px; }
  .hero-caption { left: 6%; right: 6%; bottom: 18px; font-size: 7px; }
  .ticker-inner { height: 42px; gap: 24px; font-size: 16px; }
  .section-wrap { width: 88%; }
  .intro { padding-top: 67px; padding-bottom: 72px; display: grid; grid-template-columns: 1fr; }
  .intro-label { margin-bottom: 28px; }
  h2 { font-size: 43px; }
  .intro-columns { grid-template-columns: 1fr; gap: 14px; }
  .intro-columns p { font-size: 12px; }
  .intro-aside { display: none; }
  .course-section { grid-template-columns: 1fr; }
  .course-image-wrap { min-height: 330px; }
  .course-copy { padding: 48px 7% 56px; }
  .course-copy .eyebrow { margin-top: 38px; }
  .course-copy h2 { font-size: 44px; }
  .body-large { font-size: 15px; }
  .course-facts strong { font-size: 18px; }
  .course-facts span { font-size: 6px; letter-spacing: .1em; }
  .learning { padding-top: 75px; padding-bottom: 77px; }
  .learning-top, .opportunity-heading { display: block; }
  .learning-top h2, .opportunity-heading h2 { font-size: 44px; margin-top: 18px; }
  .learning-top > p, .opportunity-heading > p { margin-top: 18px; max-width: 340px; }
  .learning-grid { margin-top: 30px; grid-template-columns: 1fr; gap: 12px; }
  .learning-card { min-height: 330px; }
  .learning-side { grid-column: auto; min-height: 190px; padding: 23px; }
  .learning-side p { font-size: 20px; }
  .pathways { padding: 70px 0 34px; }
  .pathways-heading h2 { font-size: 44px; }
  .pathways-heading > p { margin-bottom: 36px; }
  .pathway-list { width: 88%; }
  .pathway-row { grid-template-columns: 37px 1fr 38px; gap: 10px; padding: 21px 0; min-height: auto; }
  .pathway-number { font-size: 24px; align-self: start; padding-top: 3px; }
  .pathway-title h3 { font-size: 24px; }
  .pathway-title .eyebrow { font-size: 7px; }
  .pathway-row > p { grid-column: 2 / 4; grid-row: 2; font-size: 11px; padding-right: 6px; }
  .circle-link { grid-column: 3; grid-row: 1; width: 34px; height: 34px; }
  .opportunity { padding-top: 76px; padding-bottom: 78px; }
  .opportunity-heading h2 { font-size: 43px; }
  .noticeboard { grid-template-columns: 1fr; margin-top: 30px; }
  .notice, .notice:first-child, .notice:last-child, .notice-highlight { border: 0; border-bottom: 1px solid var(--line); min-height: 223px; padding: 22px 17px; }
  .notice:last-child { border-bottom: 0; }
  .notice h3 { font-size: 23px; margin-top: 24px; }
  .notice-symbol { right: 17px; top: 18px; }
  .noticeboard-note { text-align: left; }
  .exchange-band { grid-template-columns: 1fr; }
  .exchange-image { min-height: 290px; }
  .exchange-content { padding: 44px 7% 53px; }
  .exchange-kanji { margin-top: 37px; }
  .exchange-content h2 { font-size: 46px; }
  .exchange-vertical { display: none; }
  .contact { grid-template-columns: 1fr; padding-top: 78px; padding-bottom: 80px; gap: 37px; }
  .contact-intro h2 { font-size: 61px; }
  .contact-direct { margin-top: 25px; }
  .contact-form { padding: 24px 20px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .site-footer { padding: 42px 6% 0; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 34px 18px; padding-bottom: 35px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { flex-wrap: wrap; padding: 15px 0; justify-content: space-between; }
  .footer-bottom > span:nth-child(2) { order: 3; width: 100%; }
}
@media (max-width: 370px) {
  .hero h1 { font-size: 53px; }
  .hero-actions .text-link { font-size: 10px; }
  .course-facts { gap: 5px; }
  .course-facts span { font-size: 5px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
}
