html { scroll-padding-top: 90px; }
.hero h1 {
  font-size: clamp(46px, 6vw, 86px);
  line-height: .99;
  margin: 18px 0;
}
.hero .hero-training {
  font: 600 clamp(21px, 2.6vw, 35px)/1.17 var(--display);
  max-width: 510px;
  margin: 0 0 15px;
}
.proof, .care-review { padding: 64px 0; }
.proof { background: var(--bg-soft); }
.proof-carousels, .app-review-grid { display: grid; gap: 18px; }
.proof-carousels { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.proof-carousel { min-width: 0; padding: 18px; border-radius: 22px; background: var(--white); }
.proof-carousel h3 { margin: 0 0 12px; font-size: 21px; }
.proof-track {
  position: relative;
  display: flex;
  gap: 12px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  margin: 0;
  padding: 0;
  list-style: none;
}
.proof-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.proof-image-button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: var(--bg-soft);
  cursor: zoom-in;
}
.proof-slide img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
}
.proof-image-button:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.proof-image-dialog {
  position: fixed;
  inset: 0;
  width: min(100%, 720px);
  max-width: 100%;
  max-height: 96vh;
  margin: auto;
  padding: 0;
  border: 0;
  background: var(--white);
  color: var(--ink);
}
.proof-image-dialog::backdrop { background: rgb(0 0 0 / 76%); }
.proof-image-dialog form { display: flex; justify-content: flex-end; padding: 4px 10px; }
.proof-image-dialog button { min-height: 44px; padding: 0 12px; cursor: pointer; }
.proof-image-dialog img { display: block; width: 100%; height: auto; }
.proof-controls { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; }
.proof-controls[hidden] { display: none; }
.proof-controls span { font-size: 13px; font-variant-numeric: tabular-nums; }
.proof-controls button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid #d6ddd4;
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  font: 26px/1 var(--text);
  cursor: pointer;
}
.proof-controls button[aria-disabled="true"] { color: #777c73; opacity: .68; cursor: default; }
.proof-controls button:focus-visible, .proof-track:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.footer .footer-layout { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 22px; }
.footer-column { display: grid; gap: 6px; overflow-wrap: anywhere; }
.footer-column h2 { font: 700 16px/1.35 var(--text); }
.footer-column a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.footer-column p { margin: 0; }
.footer-document-note { max-width: 33ch; font-size: 13px; }
.order-contents ul { margin: 6px 0 0; padding-left: 20px; }
.goal-question { grid-column: 1/-1; margin: 0; }
.goal-choice { min-height: 148px; }
.review-package .package-count { color: var(--accent); font-weight: 700; margin: 14px 0 4px; }
.review-package .package-contents { margin: 8px 0 12px; padding-left: 20px; }
.review-package .package-contents li + li { margin-top: 5px; }
.review-package .offer-gift { margin: 12px 0; }
.review-package .route-duration { margin-bottom: 5px; }
.study-plan { margin: 16px 0 12px; padding: 12px 0; border-block: 1px solid #c9d0c2; }
.study-plan b { display: block; font-size: 15px; }
.study-plan ul { margin: 6px 0; padding-left: 18px; font-size: 14px; line-height: 1.5; }
.study-plan p { margin: 4px 0 0; font-size: 13px; color: #46564a; }
.about p + p { margin-top: 14px; }
.app-review-grid { grid-template-columns: minmax(0, 220px) minmax(0, 220px) minmax(0, 1fr); align-items: start; }
.app-review-grid figure { margin: 0; }
.app-review-grid img { display: block; width: 100%; height: auto; border: 1px solid #d9ded4; border-radius: 16px; }
.app-review-grid figcaption { margin-top: 6px; text-align: center; }
.app-review-grid ul { padding-left: 20px; }
.app-review-grid li + li { margin-top: 6px; }
.care-review { background: var(--bg-soft); }
.care-review .ctas { margin-top: 18px; }
@media (max-width: 820px) {
  .hero h1 { font-size: clamp(37px, 9vw, 65px); }
  .proof, .care-review { padding: 40px 0; }
}
@media (max-width: 600px) {
  .proof-carousels, .footer .footer-layout { grid-template-columns: minmax(0, 1fr); }
  .app-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .app-review-grid > div { grid-column: 1/-1; }
  .goal-choice { min-height: 0; }
}

.price-display{display:grid;gap:3px;align-items:start}.price-before{display:block;font-size:13px;line-height:1.4;color:#4e5d51}.price-before s{font-weight:600;white-space:nowrap;text-decoration-thickness:1.5px}.price-display .detail-price{margin:0 0 8px}

.hero-title-row{display:flex;align-items:center;gap:clamp(12px,3vw,32px)}
.hero-discount{flex:0 0 auto;display:grid;gap:3px;color:#35483b}
.hero-discount strong{font-size:clamp(24px,5.8vw,45px);line-height:1;white-space:nowrap;letter-spacing:-.04em}
.hero-discount span{font-size:11px;line-height:1.2}
.offer-choices .choice-before{display:block;font-size:11px;line-height:1.2;color:#526053;white-space:nowrap}
.price-before{display:flex;align-items:baseline;gap:4px 7px;flex-wrap:wrap}
.price-before s{font-size:16px}
.site-course-contents{padding-left:20px;display:grid;gap:8px}

.price-before{display:grid;gap:2px}
.price-chp-label{font-size:13px;color:#35483b;font-weight:650}
.offer-choices .choice-price-label{display:block;font-size:10px;line-height:1.2;color:#526053;margin-top:4px}
.offer-choices .choice-chp-label{color:#35483b;font-weight:650}
