/* Readability pass requested during content review. */
#root .text-xs {
  font-size: 0.875rem;
  line-height: 1.45;
}

#root .text-sm {
  font-size: 1rem;
  line-height: 1.7;
}

#root .text-base {
  font-size: 1.0625rem;
  line-height: 1.75;
}

@media (max-width: 767px) {
  #root .text-sm {
    font-size: 0.975rem;
  }
}

#story h3 {
  font-size: 1.25rem;
  line-height: 1.55;
}

#story p {
  font-size: 1.0625rem;
  line-height: 1.9;
}

#faq button {
  font-size: 1.125rem;
  line-height: 1.65;
}

#faq .leading-relaxed {
  font-size: 1.0625rem;
  line-height: 1.9;
}

.about-wide-note {
  grid-column: 1 / -1;
  width: 100%;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.5rem, 2.35vw, 2rem) !important;
  letter-spacing: 0.01em;
}

.training-cta {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  width: 100%;
}

#faq [data-slot="accordion-trigger"] {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
}

#faq [data-slot="accordion-item"]:last-child {
  border-bottom-width: 1px !important;
  border-bottom-style: solid !important;
}

@media (min-width: 1100px) {
  .copy-no-wrap-desktop {
    max-width: none !important;
    white-space: nowrap;
  }
}

/* Keep the instructor stats and photo strip together on tablet/desktop. */
#instructor .mt-auto {
  margin-top: 0 !important;
}

.instructor-copy-spaced {
  white-space: pre-line;
}

#instructor .grid-cols-2.gap-3.mt-auto::after {
  content: "楽しく、わかりやすく、できるまで。";
  display: block;
  grid-column: 1 / -1;
  margin-top: 1.25rem;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: oklch(0.48 0.11 42);
}

.instructor-reservation-link {
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.1rem;
  padding: 0.75rem 1.5rem;
  border: 2px solid #06c755;
  border-radius: 9999px;
  background: #06c755;
  color: white;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.instructor-reservation-link:hover {
  background: #05b34d;
  border-color: #05b34d;
  color: white;
}

.instructor-instagram-link {
  align-self: center;
  display: inline-block;
  margin-top: 0.9rem;
  color: oklch(0.45 0.04 60);
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.3em;
}

.instructor-instagram-link:hover {
  color: oklch(0.48 0.11 42);
}
