@charset "UTF-8";
/* v20: compact desktop reading rhythm; mobile typography stays unchanged. */
@media (min-width: 981px) {
  .journey-v17 {
    --ej-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    --ej-heading-size: 3.25rem;
    --ej-card-size: 2.25rem;
  }
  .ej-page {
    font: 400 1.125rem/1.72 var(--ej-sans);
    letter-spacing: 0;
    line-break: strict;
  }
  .ej-wrap { max-width: 1360px; padding-inline: 48px; }
  .ej-page h2, .ej-page h3 {
    font-family: var(--ej-sans);
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.35;
    word-break: normal;
    overflow-wrap: anywhere;
  }
  .ej-page h2 { font-size: var(--ej-heading-size); }
  .ej-page h3 { font-size: var(--ej-card-size); }
  .ej-page .ej-kind {
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: .025em;
    line-height: 1.75;
    margin-bottom: 16px;
  }
  .ej-page p { overflow-wrap: break-word; margin-bottom: 12px; }
  .ej-intro-spread {
    grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr);
    gap: 20px;
    min-height: 660px;
  }
  .ej-intro-words { padding-block: 76px; }
  .ej-intro-words h2 {
    width: 100%;
    font-size: 3.75rem;
    line-height: 1.35;
    letter-spacing: -.025em;
    margin-bottom: 32px;
  }
  .ej-intro-words > p {
    max-width: 32em;
    font-size: 1.125rem;
    line-height: 1.72;
  }
  .ej-intro-words .ej-intro-lead { font-weight: 500; margin-bottom: 14px; }
  .ej-intro-words .ej-free-value {
    max-width: 24em;
    font-size: 1.625rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0;
    margin-top: 28px;
  }
  .ej-intro-words .ej-credit {
    font-size: 1rem;
    line-height: 1.6;
    letter-spacing: .02em;
    margin-top: 32px;
  }
  .ej-intro-portrait img {
    left: auto; right: 0;
    width: 100%; height: 100%; max-height: 680px;
    object-position: right bottom;
  }
  .ej-learning-heading {
    max-width: 1104px;
    padding: 80px 0 40px;
  }
  .ej-learning-heading h2 { margin-bottom: 24px; }
  .ej-learning-heading p { font-size: 1.125rem; line-height: 1.72; }
  .ej-learning-grid {
    grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr);
    gap: 24px;
  }
  .ej-panel-copy, .ej-session { padding: 32px; }
  .ej-seminar-photo {
    aspect-ratio: 2.1;
    object-position: 50% 26%;
  }
  .ej-seminar h3, .ej-session h3 {
    font-size: var(--ej-card-size);
    line-height: 1.4;
    letter-spacing: -.01em;
  }
  .ej-session h3 { margin-bottom: 22px; }
  .ej-page .ej-seminar-purpose { font-size: 1.125rem; line-height: 1.72; margin-top: 18px; }
  .ej-session > p:not(.ej-kind) { font-size: 1.125rem; line-height: 1.72; margin-bottom: 12px; }
  .ej-session-photo { margin-top: auto !important; padding-top: 14px; }
  .ej-session-photo img { aspect-ratio: 1.15; object-position: 43% 50%; }
  .ej-session-photo figcaption { font-size: .9375rem; line-height: 1.6; text-align: left; }
  .ej-session .ej-session-history {
    font-size: 1.0625rem !important;
    line-height: 1.72 !important;
    margin-top: 22px !important;
  }
  .ej-books {
    padding: 32px;
    grid-template-columns: minmax(0,1.18fr) minmax(0,1fr) minmax(0,.9fr);
    gap: 18px 18px;
  }
  .ej-books-copy .ej-kind { font-size: 1rem; white-space: normal; letter-spacing: .025em; }
  .ej-books h3 { font-size: 1.875rem; line-height: 1.4; letter-spacing: -.025em; margin-bottom: 18px; }
  .ej-books-copy > p:last-child { font-size: 1.0625rem; line-height: 1.72; }
  .ej-book-main { width: 100%; max-width: 196px; justify-self: center; transform: translateY(12px); }
  .ej-book-2017 { width: 76%; max-width: 152px; }
  .ej-book-wish { width: 100%; max-width: 170px; justify-self: end; }
  .ej-books .ej-books-example { font-size: .9375rem; line-height: 1.72; text-align: left; }
  .ej-dialogue { gap: 40px; margin-top: 24px; padding: 44px 40px; }
  .ej-dialogue h3 {
    font: 500 3.25rem/1.35 var(--ej-sans);
    letter-spacing: 0;
    margin-bottom: 14px;
  }
  .ej-dialogue-copy .ej-dialogue-future { font-size: 1.75rem; line-height: 1.7; letter-spacing: 0; margin-bottom: 16px; }
  .ej-dialogue-copy > p:last-child { font-size: 1.0625rem; line-height: 1.72; }
  .ej-dialogue-example { padding-left: 36px; }
  .ej-dialogue-example .ej-example-label { font-size: 1rem; line-height: 1.6; letter-spacing: .025em; }
  .ej-dialogue-example .ej-dialogue-guests { font-size: 1.625rem; line-height: 1.7; letter-spacing: .04em; font-weight: 500; }
  .ej-dialogue-example > p:last-child { font-size: 1.0625rem; line-height: 1.72; }
  .ej-insights { max-width: 1220px; gap: 64px; padding-top: 64px; }
  .ej-insights-copy h2 { font-size: 2.875rem; line-height: 1.35; margin-bottom: 26px; }
  .ej-insights-copy > p:not(.ej-kind) { font-size: 1.125rem; line-height: 1.72; margin-bottom: 12px; }
  .ej-reading { padding: 26px 28px 28px 32px; }
  .ej-reading h3 { font-size: 1.5rem; line-height: 1.55; letter-spacing: 0; margin-bottom: 18px; }
  .ej-reading > p { font-size: 1.125rem; line-height: 1.72; }
  .ej-reading .ej-reading-date { font-size: .9375rem; line-height: 1.72; }
  .ej-invitation { padding-top: 46px; }
  .ej-invitation .ej-invitation-title { font-size: 1.625rem; line-height: 1.75; font-weight: 500; }
  .ej-invitation > p:not(.join-note):not(.ej-invitation-title) { font-size: 1.125rem; line-height: 1.72; }
  .ej-page .join-button { font-size: 1.125rem; line-height: 1.75; letter-spacing: .02em; }
  .ej-page .join-note { font-weight: 400; font-size: .9375rem; line-height: 1.72; letter-spacing: 0; }
  .ej-letter { max-width: 1240px; gap: 64px; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); padding-block: 112px; }
  .ej-letter-photo { width: 100%; max-width: 370px; justify-self: end; }
  .ej-letter-photo img { max-height: 520px; }
  .ej-letter-copy h2 {
    font: 500 2.75rem/1.4 var(--ej-sans);
    letter-spacing: .025em;
    margin-bottom: 28px;
  }
  .ej-letter-copy > p:not(.ej-kind):not(.ej-signature) { max-width: 32em; font-size: 1.125rem; line-height: 1.75; margin-bottom: 16px; }
  .ej-letter-copy .ej-signature { font: 500 1.625rem/1.9 var(--serif); letter-spacing: .06em; }
  .ej-signature span { font: 400 .9375rem/1.7 var(--ej-sans); letter-spacing: .025em; }
  .ej-start { padding-block: 80px; }
  .ej-start > .ej-wrap { max-width: 1320px; }
  .ej-start h2, .ej-faq h2 { font-size: 2.75rem; line-height: 1.4; }
  .ej-start > .ej-wrap > p { font-size: 1.125rem; line-height: 1.72; }
  .ej-faq { max-width: 1240px; grid-template-columns: minmax(0,.55fr) minmax(0,1.45fr); gap: 52px; padding-block: 96px; }
  .ej-faq .faq-list summary { font-size: 1.125rem; font-weight: 500; line-height: 1.72; letter-spacing: 0; }
  .ej-faq .faq-answer { font-size: 1.125rem; line-height: 1.72; }
  .ej-closing h2 { font-size: 3.25rem; line-height: 1.4; }
  .ej-closing > .ej-wrap > p:not(.join-note) { font-size: 1.125rem; line-height: 1.72; }
  .journey-v17 .hero-about { font-size: 1.3125rem; line-height: 1.72; letter-spacing: .02em; }
  .journey-v17 .hero-purpose { font-size: 1.125rem; line-height: 1.72; letter-spacing: .025em; }
  .journey-v17 .hero-formats { font-size: 1.0625rem; line-height: 1.72; letter-spacing: 0; }
  .journey-v17 .hero .join-button { font-size: 1.125rem; line-height: 1.75; letter-spacing: .025em; }
  .journey-v17 > .site-header .desktop-nav { font-size: 1rem; font-weight: 500; letter-spacing: .02em; gap: 24px; }
  .journey-v17 > .site-header .header-join { font-size: .9375rem; font-weight: 500; line-height: 1.7; letter-spacing: 0; padding-inline: 20px; }
  .journey-v17 > .site-header .brand { display: block; }
  .journey-v17 > .site-header .brand small { display: block; margin-top: 5px; font-size: .8125rem; line-height: 1.6; letter-spacing: .08em; }
}
@media (min-width: 981px) and (max-width: 1279px) {
  .journey-v17 { --ej-heading-size: 2.75rem; --ej-card-size: 2rem; }
  .ej-wrap { padding-inline: 40px; }
  .ej-intro-spread { min-height: 600px; gap: 12px; }
  .ej-intro-words { padding-block: 64px; }
  .ej-intro-words h2 { font-size: 3rem; }
  .ej-intro-words .ej-free-value { font-size: 1.5rem; }
  .ej-panel-copy, .ej-session, .ej-books { padding: 26px; }
  .ej-books { gap: 16px 12px; }
  .ej-books h3 { font-size: 1.625rem; }
  .ej-books-copy h3 br { display: none; }
  .ej-books-copy > p:last-child br { display: none; }
  .ej-dialogue { gap: 28px; padding: 36px 32px; }
  .ej-dialogue h3 { font-size: 2.75rem; }
  .ej-dialogue-example { padding-left: 28px; }
  .ej-insights { gap: 40px; }
  .ej-insights-copy h2 { font-size: 2.5rem; }
  .ej-letter { gap: 40px; }
  .ej-letter-copy h2 { font-size: 2.375rem; }
  .ej-faq { gap: 36px; grid-template-columns: minmax(0,.6fr) minmax(0,1.4fr); }
  .ej-faq h2 { font-size: 2.25rem; }
}

/* The illustrations explain the sequence, not a reproduction of LINE's UI. */
.ej-steps { gap: 40px; margin-top: 44px; }
.ej-steps li { position: relative; min-width: 0; border-top: 1px solid #adb9d5; padding-top: 18px; }
.ej-step-number { font: 500 2.75rem/1.2 var(--latin); letter-spacing: -.025em; color: var(--ink); margin-bottom: 0; }
.ej-step-visual { display: block; width: 100%; max-width: 320px; height: auto; aspect-ratio: 8/5; margin: 6px auto 26px; overflow: visible; }
.ej-steps li:not(:last-child)::after {
  content: ""; position: absolute; top: 142px; right: -26px;
  width: 12px; height: 12px; border-right: 1px solid #7888ac; border-top: 1px solid #7888ac;
  transform: rotate(45deg);
}
.ej-steps h3 { font-size: 1.375rem; font-weight: 500; line-height: 1.75; letter-spacing: .015em; margin-bottom: 12px; }
.ej-steps p { font-size: 1.0625rem; font-weight: 400; line-height: 1.9; letter-spacing: .015em; }
@media (min-width: 701px) and (max-width: 980px) {
  .ej-steps { gap: 24px; }
  .ej-steps h3 { font-size: 1.25rem; }
  .ej-steps p { font-size: 1rem; }
  .ej-steps li:not(:last-child)::after { right: -16px; top: 125px; width: 9px; height: 9px; }
}
@media (max-width: 700px) {
  .ej-steps { margin-top: 32px; }
  .ej-steps li { padding: 22px 0 38px; margin-bottom: 28px; }
  .ej-step-number { position: static; font-size: 2.25rem; }
  .ej-step-visual { width: 100%; max-width: 280px; margin: 0 auto 18px; }
  .ej-steps h3 { font-size: 1.25rem; line-height: 1.7; }
  .ej-steps p { font-size: 1rem; line-height: 1.9; }
  .ej-steps li:not(:last-child)::after { top: auto; right: calc(50% - 6px); bottom: -8px; transform: rotate(135deg); }
  .ej-steps li:last-child { margin-bottom: 0; padding-bottom: 0; }
}

/* Empty testimonial positions are visible only in the design review. */
[data-review-only][hidden] { display: none !important; }
.ej-voices { padding-top: 76px; padding-bottom: 14px; }
.ej-voices-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.ej-page .ej-voices-heading .ej-kind { margin-bottom: 12px; }
.ej-page .ej-voices-status { font: 400 .9375rem/1.8 var(--ej-sans); color: #516189; margin: 0 0 8px; }
.ej-page .ej-voices-lead { font-size: 1.125rem; font-weight: 400; line-height: 1.95; margin: 22px 0 28px; }
.ej-voices-layout { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.ej-voice-slot { min-width: 0; padding: 28px 26px; background: #ffffffd9; border-top: 2px solid #7587b3; }
.ej-page .ej-voice-topic { font: 500 1.0625rem/1.8 var(--ej-sans); letter-spacing: .015em; margin-bottom: 28px; }
.ej-page .ej-voice-pending { font: 400 1rem/1.9 var(--ej-sans); color: #5c6c8c; margin: 0 0 30px; }
.ej-voice-rule { display: block; width: 40px; height: 1px; background: #bac5de; margin-bottom: 14px; }
.ej-page .ej-voice-meta { font: 400 .875rem/1.8 var(--ej-sans); color: #5c6c8c; margin: 0; }
.ej-page .ej-voices-note { font: 400 .9375rem/1.9 var(--ej-sans); color: #516189; margin: 22px 0 0; }
@media (max-width: 980px) {
  .ej-voices-heading { display: block; }
  .ej-page .ej-voices-status { margin: 16px 0 0; }
  .ej-voices-layout { gap: 16px; }
  .ej-voice-slot { padding: 24px 20px; }
}
@media (max-width: 700px) {
  .ej-voices { padding-top: 46px; padding-bottom: 0; }
  .ej-voices h2 { font-size: 1.875rem; line-height: 1.5; }
  .ej-page .ej-voices-lead { font-size: 1.0625rem; line-height: 1.9; }
  .ej-voices-layout { grid-template-columns: 1fr; gap: 16px; }
  .ej-page .ej-voice-topic { margin-bottom: 18px; }
  .ej-page .ej-voice-pending { margin-bottom: 20px; }
}
