/* Re:be UX unify — 2026-11
 * Mobile-first rhythm shared across all public pages.
 * Does not change brand colors or desktop layout intent.
 */

@media (max-width: 47.999rem) {
  /* —— Type —— */
  .l-main {
    font-size: var(--font-size-body);
    line-height: var(--leading-normal);
  }

  .l-main p,
  .l-main li,
  .l-main dd {
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  /* Exclude TOP hero catch — sized in home-renewal for one-line fit.
     Exclude blog article H1 — compact tracking/size lives in blog.css
     Exclude menu-detail H1 — page tokens (--menu-fs-title / 0.04em) in menu-detail.css */
  /* Exclude outcall H1 — long JP titles sized in outcall.css to avoid orphans */
  .l-main h1:not(.p-hero__title):not(.p-article__title):not(.p-menu-detail__title):not(.p-outcall__title),
  .p-acad__title,
  .p-faq__title,
  .p-menu-list__title,
  .p-staff-page__title,
  .p-access-page__title,
  .p-reviews__title,
  .p-concept__title,
  .p-why__title,
  .p-concern__title,
  .p-blog-hero__title,
  .p-visit__title {
    font-size: var(--font-size-h1);
    line-height: 1.4;
    letter-spacing: var(--heading-ja-tracking); /* SP token: 0.04em */
    text-wrap: balance;
    line-break: strict;
    overflow-wrap: break-word;
    word-break: normal;
  }

  /* Exclude menu-detail section titles — --menu-fs-section in menu-detail.css */
  .l-main h2:not(.p-menu-detail__section-title),
  .p-acad__section-title,
  .p-faq__section-title,
  .p-outcall__section-title,
  .p-visit__section-title,
  .p-concept__section-title,
  .p-why__section-title,
  .p-concern__section-title,
  .p-staff-page__section-title,
  .p-access-page__section-title,
  .p-reviews__section-title,
  .p-blog-section__title {
    font-size: var(--font-size-h2);
    line-height: 1.4;
    letter-spacing: var(--heading-ja-tracking);
    text-wrap: balance;
    line-break: strict;
  }

  /* Exclude TOP menu card titles — sized in home-renewal (.p-home-menus__name ≈ 22–24px) */
  .l-main h3:not(.p-home-menus__name):not(.p-home-feature__name),
  .p-visit__card-title,
  .p-acad__feature-title,
  .p-acad__course-title,
  .p-menu-list__name,
  .p-menu-detail__name,
  .p-faq__q-text {
    font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.25rem);
    line-height: 1.5;
  }

  .l-main .p-outcall__note,
  .l-main .p-menu-list__note,
  .l-main .p-menu-detail__note,
  .l-main .p-visit__note,
  .l-main .c-fineprint,
  .l-main small {
    font-size: var(--font-size-small);
    line-height: 1.7;
  }

  /* —— Section / container ——
     Menu-detail / Academy section padding owned by page CSS (CTA↔heading breathing). */
  .l-main .l-section:not(.p-menu-detail__section):not(.p-acad__section),
  .l-main .p-faq__section,
  .l-main .p-outcall__section,
  .l-main .p-visit__section,
  .l-main .p-why__section,
  .l-main .p-concept__section,
  .l-main .p-concern__section,
  .l-main .p-staff-page__section,
  .l-main .p-access-page__section,
  .l-main .p-reviews__section,
  .l-main .p-blog-section {
    padding-block: var(--space-section-md);
  }

  .l-main .l-container {
    padding-inline: clamp(1.25rem, 5.2vw, 1.5rem);
  }

  .l-main .c-breadcrumb {
    margin-bottom: var(--space-6);
  }

  /* —— Cards —— */
  .l-main .p-visit__card,
  .l-main .p-acad__feature,
  .l-main .p-menu-list__card,
  .l-main .p-menu-detail__card,
  .l-main .p-concern__card,
  .l-main .c-review,
  .l-main .p-blog-card,
  .l-main .p-outcall__check,
  .l-main .p-facts__item {
    padding: clamp(1.15rem, 3.2vw, 1.4rem);
  }

  /* home menu cards: padding lives on .p-home-menus__link — do not pad the <li> */
  .l-main .p-home-menus__item {
    padding: 0;
  }

  .l-main .p-visit__cards,
  .l-main .p-acad__features,
  .l-main .p-menu-list__grid,
  .l-main .p-concern__grid,
  .l-main .p-blog-list,
  .l-main .p-voice-grid {
    gap: 1rem;
  }

  /* —— Media: keep photos out of copy —— */
  .l-main figure {
    margin-block: var(--space-5);
  }

  .l-main figure img,
  .l-main .p-menu-detail__media img,
  .l-main .p-acad__media img,
  .l-main .p-acad__course-photo img,
  .l-main .p-visit__panel-media img,
  .l-main .p-staff-page__media img,
  .l-main .p-concept__media img,
  .l-main .p-access-page__media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 6px;
  }

  /* —— Long prose breathing —— */
  .l-main .p-acad__lead,
  .l-main .p-acad__course-lead,
  .l-main .p-acad__prose,
  .l-main .p-visit__prose,
  .l-main .p-visit__lead,
  .l-main .p-faq__lead,
  .l-main .p-faq__answer,
  .l-main .p-concept__prose,
  .l-main .p-why__prose,
  .l-main .p-concern__prose,
  .l-main .p-staff-page__message,
  .l-main .p-outcall__prose,
  .l-main .p-outcall__lead,
  .l-main .p-menu-detail__prose,
  .l-main .c-prose {
    max-width: 36rem;
    margin-inline: auto;
  }

  .l-main .p-acad__lead p + p,
  .l-main .p-acad__course-lead p + p,
  .l-main .p-acad__prose p + p,
  .l-main .p-visit__prose p + p,
  .l-main .p-faq__answer p + p,
  .l-main .p-concept__prose p + p,
  .l-main .p-outcall__prose p + p,
  .l-main .p-menu-detail__prose p + p,
  .l-main .c-prose p + p {
    margin-top: 1rem;
  }

  /* First-visit timeline: less empty height */
  .l-main .p-visit__timeline-item {
    gap: var(--space-4);
  }

  .l-main .p-visit__timeline-text {
    line-height: 1.75;
  }

  /* FAQ triggers */
  .l-main .p-faq__trigger {
    min-height: 2.75rem;
    padding-block: 0.85rem;
  }

  .l-main .p-faq__answer {
    padding-bottom: 1rem;
  }

  /* Tables / prices: prevent overflow */
  .l-main table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .l-main .p-outcall__prices,
  .l-main .p-outcall__rows,
  .l-main .p-acad__course-meta,
  .l-main .p-menu-list__prices {
    max-width: 100%;
  }
}

/* Desktop: keep unify light — only safe shared tweaks */
@media (min-width: 48rem) {
  .l-main .p-acad__lead p + p,
  .l-main .p-visit__prose p + p,
  .l-main .p-faq__answer p + p,
  .l-main .p-concept__prose p + p {
    margin-top: 1.15rem;
  }
}

/* SNS float: never cover interactive footer CTA text */
body.has-mobile-bar {
  padding-bottom: calc(var(--mobile-bar-height) + env(safe-area-inset-bottom, 0px));
}

/* SNS float hidden on SP/TB — no extra SNS-avoidance gutters */
