
.elementary-course .legal-hero { padding:clamp(36px,5vw,64px) 0; }
.elementary-skip-link { position:fixed; left:16px; top:12px; z-index:1000; padding:10px 14px; background:#fff; color:var(--lm-green-dark,#00875f); border:2px solid currentColor; transform:translateY(-160%); }
.elementary-skip-link:focus-visible { transform:translateY(0); }
.elementary-hero-layout { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr)); gap:clamp(24px,4vw,52px); align-items:center; }
.elementary-hero-copy { min-width:0; }
.elementary-course .legal-hero h1 { font-size:clamp(28px,3vw,42px); line-height:1.5; margin:16px 0; }
.elementary-course .legal-hero p { font-size:16px; line-height:1.9; }
.elementary-hero-photo { margin:0; min-width:0; }
.elementary-hero-photo img { width:100%; height:auto; border-radius:16px; }
.elementary-hero-photo figcaption { font-size:12px; color:#60706a; margin-top:8px; }
.elementary-course .sec-title { font-size:clamp(25px,2.4vw,34px); }
.elementary-course main > section { padding-top:clamp(32px,5vw,64px); padding-bottom:clamp(32px,5vw,64px); }
.elementary-course main p, .elementary-course main li { font-size:16px; line-height:1.9; }
.elementary-course .features-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)) !important; }
.elementary-purpose { background:#fff; }
.elementary-purpose-layout { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(32px,6vw,88px); align-items:start; }
.elementary-purpose-heading { position:static; top:auto; }
.elementary-purpose h2,.elementary-purpose h3,.elementary-exam h2 { text-wrap:balance; }
.elementary-purpose-heading p { max-width:38rem; }
.elementary-purpose-note { margin-top:24px; padding-left:18px; border-left:4px solid var(--lm-lime,#c8f45d); color:#435e56; }
.elementary-purpose-paths { border-top:1px solid #cfe0da; }
.elementary-purpose-paths > a { padding:28px 0 30px; border-bottom:1px solid #cfe0da; }
.elementary-purpose-paths h3 { margin:0 0 8px; color:var(--lm-green-dark,#00875f); font-size:clamp(20px,2vw,25px); }
.elementary-purpose-paths p { margin:0; }
.elementary-exam { background:var(--cream-2); }
.elementary-reading-width { max-width:1080px; }
.elementary-reading-width > p { max-width:760px; }
.elementary-choice-table-wrap { margin-top:28px; overflow-x:auto; border-top:2px solid var(--lm-green,#0e9066); border-bottom:1px solid #bfcfc9; }
.elementary-choice-table-wrap:focus-visible { outline:3px solid var(--lm-green,#0e9066); outline-offset:4px; }
.elementary-choice-table { width:100%; min-width:760px; border-collapse:collapse; background:#fff; }
.elementary-choice-table th,.elementary-choice-table td { padding:18px 20px; border-bottom:1px solid #dbe6e2; text-align:left; vertical-align:top; line-height:1.75; }
.elementary-choice-table thead th { color:var(--lm-green-dark,#00875f); background:#edf7f3; font-size:15px; }
.elementary-choice-table tbody th { width:29%; color:#173c32; }
.elementary-choice-table td:nth-child(2) { width:31%; font-weight:700; }
.elementary-exam-summary { margin-top:28px; padding:20px 0 0; border-top:1px solid #bfcfc9; }
@media (max-width:760px) {
  .elementary-purpose-layout { grid-template-columns:1fr; gap:24px; }
  .elementary-purpose-heading { position:static; }
  .elementary-purpose-paths > a { padding:22px 0 24px; }
  .elementary-choice-table-wrap { margin-right:-16px; padding-right:16px; }
}

.elementary-purpose-paths > a { display:flex; gap:16px; color:inherit; text-decoration:none; transition:none; border-radius:8px; padding-left:12px; padding-right:12px; }
.elementary-purpose-paths > a:hover { background:#f0f8f4; }
.elementary-purpose-paths > a:focus-visible { outline:3px solid #00875f; outline-offset:4px; }
.elementary-purpose-paths > a > div { min-width:0; }
.purpose-number { flex:none; font-size:30px; line-height:1.3; color:#00875f; }
.purpose-more { display:block; margin-top:12px; color:#00875f; font-weight:700; font-size:14px; }
.elementary-support-muted { background:#f5faf7; }
.elementary-support h2, #elementary-exam-title { scroll-margin-top:110px; }
.elementary-support p + p { margin-top:18px; }
@media (prefers-reduced-motion:no-preference) { html:has(.elementary-course) { scroll-behavior:smooth; } }

/* Keep Japanese words intact and give the family story room to breathe. */
.elementary-course .heading-phrase { display:inline-block; }
.elementary-course .word-keep { white-space:nowrap; }
.elementary-story-width { max-width:860px; }
.elementary-story h2 { text-wrap:wrap; line-height:1.65; }
.elementary-story h3 { margin:48px 0 20px; font-size:clamp(21px,2.2vw,27px); line-height:1.7; color:#00875f; text-wrap:wrap; }
.elementary-story p { line-height:2.15 !important; margin:0 0 26px; }
.elementary-story .story-marker { background:linear-gradient(transparent 70%,#cbeadd 70%); -webkit-box-decoration-break:clone; box-decoration-break:clone; padding-bottom:2px; }
.homework-comic { margin:36px 0 44px; padding:20px 12px; border:1px solid #dbe8e1; border-radius:16px; background:#fffefa; }
.homework-comic img { display:block; width:100%; height:auto; }
.comic-captions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; text-align:center; color:#00875f; font-size:16px; line-height:1.8; }
.comic-captions small { display:block; color:#4b6056; font-size:13px; }
.elementary-story .comic-note { margin:16px 0 0; text-align:center; font-size:12px; color:#637269; }
.founder-message { margin:40px 0; padding:28px 32px 8px; background:#fff; border-radius:16px; }
.founder-message h3 { margin-top:0; }
.elementary-story .founder-signature { font-size:13px; color:#476555; text-align:right; }
@media(max-width:600px) {
.elementary-course .legal-hero h1 { font-size:clamp(25px,6.5vw,32px); text-wrap:wrap; }
.story-desktop-break { display:none; }
.elementary-story h2 { font-size:24px; text-align:left; }
.elementary-story h3 { margin-top:36px; }
.founder-message { padding:24px 20px 4px; }
.comic-captions { gap:6px; font-size:12px; }
.comic-captions small { font-size:11px; }
.homework-comic { padding:16px 6px; }
}

.elementary-story .story-title-line { display:block; }
@media(max-width:600px) { .elementary-story h2 { font-size:clamp(19px,5.25vw,24px); letter-spacing:0; } }

.founder-place-art { margin:24px auto 32px; max-width:640px; }
.founder-place-art img { display:block; width:100%; height:auto; }

/* Keep the elementary page opening proportional to its introduction. */
body.elementary-course .legal-hero h1 { font-size:clamp(26px,2.2vw,32px); line-height:1.55; letter-spacing:.01em; }
@media(max-width:600px) { body.elementary-course .legal-hero h1 { font-size:26px; } }

/* The opening image comes before the copy on all screen sizes. */
.elementary-course .elementary-hero-layout {
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:center;
}
.elementary-course .elementary-hero-actions { margin-top:24px; }
@media(max-width:800px) {
  .elementary-course .elementary-hero-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
}

/* The same three-card learning stages used on the junior and high school pages. */
.elementary-course .elementary-grade-section {
  background:#00875f;
  color:#fff;
  padding:clamp(52px,6vw,82px) 0;
}
.elementary-course .elementary-grade-section .sec-title { color:#fff; font-size:clamp(25px,3vw,36px); line-height:1.5; }
.elementary-course .elementary-grade-lead { color:#f0faf5; margin:14px 0 34px; max-width:700px; }
.elementary-course .elementary-grade-section .grade-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.elementary-course .elementary-grade-section .grade-card {
  min-width:0;
  border-radius:22px;
  padding:28px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.27);
}
.elementary-course .elementary-grade-section .grade-card span { display:block; color:#e5ffd2; font-size:14px; font-weight:800; }
.elementary-course .elementary-grade-section .grade-card h3 { color:#fff; margin:14px 0 12px; font-size:clamp(20px,2vw,24px); line-height:1.5; }
.elementary-course .elementary-grade-section .grade-card p { color:#f0faf5; margin:0; line-height:1.85; }
@media(max-width:800px){
  .elementary-course .elementary-grade-section .grade-grid { grid-template-columns:1fr; }
  .elementary-course .elementary-grade-section .grade-card { padding:27px 24px; }
}

/* Elementary-to-junior transition: accessible HTML figures, sized for small screens. */
.elementary-story .junior-time-figure,.elementary-story .junior-changes-figure{margin:2rem 0 2.5rem;padding:clamp(1rem,3vw,2rem);border:1px solid #cbeadd;border-radius:1.25rem;background:#fff}
.elementary-story :is(.junior-time-figure,.junior-changes-figure) :is(div,article,figcaption,p){min-width:0;overflow-wrap:anywhere}
.elementary-story .junior-figure-label{display:flex;align-items:center;gap:.5rem;color:var(--lm-green-dark,#00875f);font-size:.8125rem;font-weight:700}
.elementary-story .junior-figure-label svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.elementary-story :is(.junior-time-figure,.junior-changes-figure) figcaption h3{margin:.625rem 0 1rem;font-size:clamp(1.2rem,2.3vw,1.6rem);line-height:1.6}
.elementary-story .junior-time-figure figcaption p{margin:0 0 1.5rem;font-size:.875rem;line-height:1.9!important}
.junior-time-chart{
  display:grid;grid-template-columns:minmax(4.85rem,.24fr) minmax(0,1fr);
  gap:.75rem clamp(.5rem,2vw,1.25rem);
  margin:1.25rem 0;padding:clamp(.75rem,2.5vw,1.5rem);
  border:1px solid #cbeadd;border-radius:1rem;background:#f4faf7;
}
.junior-time-chart-top{grid-column:1/-1;font-size:.8125rem;color:#52665e}
.junior-time-row{display:contents}
.junior-time-school{align-self:center;font-size:clamp(.8125rem,2vw,1rem);font-weight:700;color:#16443d}
.junior-time-track{position:relative;border-radius:.55rem;background:#e5eee9}
.junior-time-track:has(.junior-time-bar-elementary)::after{content:"";position:absolute;inset:0 auto 0 50%;border-inline-start:1px dashed #52665e;pointer-events:none}
.junior-time-bar{display:flex;align-items:center;justify-content:center;min-height:3rem;padding:.4rem .2rem;border-radius:.55rem}
.junior-time-bar-elementary{width:50%;background:#bfe8d6;color:#16443d}
.junior-time-bar-junior{width:100%;background:#225c9f;color:#fff}
.junior-time-bar>span{font-size:clamp(1rem,3vw,1.6rem);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3;white-space:nowrap}
.junior-time-bar small{font-size:.7rem;margin-inline-start:.15rem}
.junior-time-axis{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);color:#52665e;font-size:.7rem;font-variant-numeric:tabular-nums}
.junior-time-axis span:nth-child(2){text-align:center}
.junior-time-axis span:last-child{text-align:end}
.junior-time-takeaway{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.75rem;background:#edf8f2;color:#16443d}
.junior-time-takeaway svg{width:2rem;height:2rem;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.elementary-story .junior-time-takeaway p{margin:.25rem 0 0;font-size:.8125rem;line-height:1.75!important}
.elementary-story p.junior-figure-note{margin:1.25rem 0 0;color:#52665e;font-size:.75rem;line-height:1.8!important}
.junior-figure-note a{color:var(--lm-green-dark,#00875f);text-underline-offset:3px}
.junior-change-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem}
.junior-change-card{--topic-ink:#00875f;--topic-tint:#e2f7ed;--topic-line:#9bd9c0;padding:clamp(1rem,2vw,1.25rem);border:1px solid var(--topic-line);border-radius:1rem;background:#fff}
.junior-change-math{--topic-ink:#225c9f;--topic-tint:#e8f2ff;--topic-line:#a9c9ef}
.junior-change-english{--topic-ink:#82520c;--topic-tint:#fff1d5;--topic-line:#e7c486}
.junior-change-teacher{--topic-ink:#65488a;--topic-tint:#f2eafb;--topic-line:#ceb8e7}
.junior-change-heading{display:flex;align-items:center;gap:.625rem;margin-bottom:1rem}
.junior-change-heading>svg{flex:none;width:2.5rem;height:2.5rem;padding:.375rem;border-radius:.75rem;background:var(--topic-tint);fill:none;stroke:var(--topic-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.elementary-story .junior-change-heading h4{margin:0;color:var(--topic-ink);font-size:1rem;line-height:1.65;font-weight:700}
.junior-test-subjects,.junior-math-example,.junior-english-example,.junior-teacher-example{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;min-height:5rem;padding:.75rem .5rem;margin-bottom:1rem;border-radius:.75rem;background:var(--topic-tint);color:var(--topic-ink)}
.junior-test-subjects>span{display:grid;place-items:center;width:2.25rem;height:2.75rem;background:#fff;border:1px solid var(--topic-line);border-top:4px solid var(--topic-ink);border-radius:.375rem;font-size:1.125rem;font-weight:700}
.junior-math-example>span{font-size:clamp(.875rem,2vw,1.125rem);white-space:nowrap}
.junior-math-example i{font-family:Georgia,serif}
.junior-english-example>span{font-size:.875rem}
.junior-english-example strong{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.junior-teacher-example>span{font-size:.875rem;line-height:1.7}
.junior-change-comparison{display:grid;gap:.625rem}
.junior-change-comparison>div{display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:.5rem;align-items:baseline}
.junior-change-comparison>div>span{font-size:.6875rem;color:#52665e}
.elementary-story .junior-change-comparison p{font-size:.8125rem;margin:0;line-height:1.8!important}
.junior-change-comparison>div:last-child>span,.junior-change-comparison>div:last-child>p{color:var(--topic-ink);font-weight:700}
.elementary-story p.junior-change-action{margin:1rem 0 0;padding-top:.75rem;border-top:1px solid var(--topic-line);font-size:.8125rem;line-height:1.9!important}
.junior-figure-note a:focus-visible{outline:3px solid var(--lm-green,#0e9066);outline-offset:3px}
