.ttl_ptn_2 { color: var(--brown); font-family: var(--serif); font-size: 38px; font-weight: 600; line-height: 1.5em; @media (max-width: 700px) { font-size: 30px; } }
.section_lead, .price_intro { max-width: 760px; margin-top: 18px; color: var(--muted); font-size: 17px; line-height: 1.8em; @media (max-width: 700px) { font-size: 15px; } }
.small_note { margin-top: 24px; color: var(--muted); font-size: 13px; line-height: 1.8em; }
.text_link { display: inline-flex; align-items: center; gap: 36px; margin-top: 30px; padding-bottom: 8px; border-bottom: 1px solid var(--gold); color: var(--brown); font-size: 16px; font-weight: 600; &:hover { color: #987346; } }
.notice_box { margin-top: 30px; padding: 24px 28px; border-left: 3px solid var(--gold); background: #fffaf1; color: var(--ink); strong { color: var(--brown); font-size: 18px; } p { margin-top: 8px; font-size: 15px; line-height: 1.8em; } }

.check_grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 30px; margin-top: 37px; padding: 0; list-style: none;
  li { padding: 22px 25px 22px 48px; border: 1px solid #e6d8b9; background: #fffdf8; font-size: 16px; line-height: 1.7em; }
  li::before { margin-left: -25px; margin-right: 13px; color: var(--gold); content: '◆'; font-size: 10px; }
  @media (max-width: 700px) { grid-template-columns: 1fr; gap: 10px; margin-top: 26px; li { padding: 17px 21px 17px 43px; font-size: 14px; } }
}

.topic_grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 38px;
  article { min-height: 225px; padding: 30px; border: 1px solid var(--line); background: #fff; }
  span { color: var(--gold); font-family: var(--serif); font-size: 24px; }
  h3 { margin-top: 14px; color: var(--brown); font-family: var(--serif); font-size: 25px; font-weight: 600; }
  p { margin-top: 17px; font-size: 15px; line-height: 1.9em; }
  @media (max-width: 700px) { grid-template-columns: 1fr; gap: 12px; margin-top: 27px; article { min-height: 0; padding: 23px; } h3 { font-size: 22px; } }
}

.plan_grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 38px;
  .plan_card { display: flex; flex-direction: column; min-height: 348px; padding: 28px; border: 1px solid var(--line); background: #fff; }
  .plan_name { padding-bottom: 17px; border-bottom: 1px solid var(--line); color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
  h3 { margin-top: 24px; color: var(--brown); font-family: var(--serif); font-size: 27px; font-weight: 600; }
  h3 small { font-family: var(--sans); font-size: 14px; font-weight: 400; }
  .plan_price { margin-block: 13px 20px; color: var(--brown); font-family: var(--serif); font-size: 31px; font-weight: 600; }
  .plan_price small { margin-left: 5px; font-family: var(--sans); font-size: 14px; font-weight: 500; }
  .plan_card > p:not(.plan_price) { font-size: 15px; line-height: 1.8em; }
  .plan_extra { margin-top: auto; padding-top: 22px; color: var(--muted); }
  @media (max-width: 1000px) { gap: 12px; .plan_card { padding: 22px; } h3 { font-size: 23px; } }
  @media (max-width: 700px) { grid-template-columns: 1fr; gap: 13px; margin-top: 27px; .plan_card { min-height: 0; } .plan_extra { margin-top: 22px; } }
}

.terms_list {
  margin-top: 35px;
  > div { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 26px; padding-block: 23px; border-top: 1px solid var(--line); }
  > div:last-child { border-bottom: 1px solid var(--line); }
  dt { color: var(--brown); font-size: 17px; font-weight: 600; }
  dd { font-size: 15px; line-height: 1.85em; }
  @media (max-width: 700px) { > div { grid-template-columns: 1fr; gap: 8px; padding-block: 18px; } dt { font-size: 16px; } dd { font-size: 14px; } }
}

.price_rows {
  max-width: 880px; margin-top: 36px; border-top: 1px solid var(--line);
  > div { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding-block: 22px; border-bottom: 1px solid var(--line); }
  strong { color: var(--brown); font-size: 19px; font-weight: 600; }
  strong small { margin-left: 15px; color: var(--muted); font-size: 13px; font-weight: 400; }
  span { flex-shrink: 0; color: var(--brown); font-family: var(--serif); font-size: 27px; font-weight: 600; }
  span small { margin-left: 4px; font-family: var(--sans); font-size: 14px; }
  @media (max-width: 700px) { margin-top: 24px; > div { align-items: flex-start; flex-direction: column; gap: 5px; padding-block: 17px; } strong { font-size: 16px; } strong small { display: block; margin: 5px 0 0; } span { font-size: 24px; } }
}

.price_columns {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; margin-top: 35px;
  .price_column { padding: 29px; border: 1px solid var(--line); background: #fff; }
  h3 { color: var(--brown); font-family: var(--serif); font-size: 25px; font-weight: 600; }
  .price_column > p { margin-top: 8px; color: var(--muted); font-size: 14px; }
  dl { margin-top: 23px; }
  dl > div { display: flex; justify-content: space-between; gap: 18px; padding-block: 13px; border-top: 1px solid var(--line); font-size: 17px; }
  dd { color: var(--brown); font-weight: 600; }
  @media (max-width: 700px) { grid-template-columns: 1fr; gap: 12px; margin-top: 26px; .price_column { padding: 23px; } h3 { font-size: 22px; } dl > div { font-size: 16px; } }
}

.note_list { margin-top: 24px; padding-left: 1.3em; color: var(--muted); font-size: 14px; line-height: 1.9em; }
.simple_list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 35px; padding: 0; list-style: none; li { padding: 23px; border: 1px solid var(--line); background: #fffdf8; color: var(--brown); font-weight: 600; } @media (max-width: 700px) { grid-template-columns: 1fr; gap: 10px; li { padding: 17px; } } }
.story_steps { display: grid; gap: 0; margin-top: 36px; padding: 0; list-style: none; li { display: flex; gap: 23px; padding: 25px 0; border-top: 1px solid #dfcfac; } li:last-child { border-bottom: 1px solid #dfcfac; } span { color: var(--gold); font-family: var(--serif); font-size: 25px; } h3 { color: var(--brown); font-family: var(--serif); font-size: 22px; font-weight: 600; } p { margin-top: 8px; font-size: 15px; line-height: 1.8em; } }
.route_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 36px; > a { display: flex; flex-direction: column; min-height: 215px; padding: 28px; border: 1px solid var(--line); background: #fff; } > a:hover { border-color: var(--gold); } span { color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .14em; } h3 { margin-top: 23px; color: var(--brown); font-family: var(--serif); font-size: 24px; font-weight: 600; } p { margin-top: 14px; font-size: 14px; line-height: 1.8em; } b { align-self: flex-end; margin-top: auto; color: var(--brown); font-size: 22px; font-weight: 400; } @media (max-width: 1000px) { grid-template-columns: repeat(2, minmax(0, 1fr)); } @media (max-width: 700px) { grid-template-columns: 1fr; gap: 12px; margin-top: 25px; > a { min-height: 185px; padding: 23px; } } }
.sec_pricing_business, .sec_pricing_classroom { background: var(--sand); }

.sec_session_related {
  .related_links { display: flex; flex-wrap: wrap; gap: 18px 24px; margin-top: 30px; }
  .text_link { margin-top: 0; }
}
