/**
 * Lesort — スマホ専用上書きCSS（767px以下のみ）
 * PC（768px以上）には一切影響しません。
 * 既存の style.css / ceo.css / shain.css の後に読み込んでください。
 */
@media screen and (max-width: 767px) {
  /* ========== コンテナ：カード幅100% ========== */
  body main .ceo-card,
  body main .ceo-content,
  body main .members-card,
  body main .members-grid,
  body main .members-grid-pro,
  body main .members-grid-pro .member-card,
  body main .service-card--promotion,
  body main .service-card--consulting {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body main .ceo-content {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  body main .service-card--promotion,
  body main .service-card--consulting {
    align-items: stretch !important;
    text-align: left !important;
  }

  body main .service-card--promotion .service-card-heading,
  body main .service-card--consulting .service-card-heading {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin-bottom: 16px !important;
  }

  /* ========== 見出し：中央＋下線中央 ========== */
  body main .section-title,
  body main .sp-optimized-text--heading,
  body main .service-card-heading h2,
  body main .service-card h2.sp-optimized-text--heading,
  body main .ceo-content h2.sp-optimized-text--heading {
    text-align: center !important;
  }

  body main .service-card-heading h2.sp-optimized-text--heading,
  body main .ceo-content h2.sp-optimized-text--heading {
    display: inline-block !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body main .service-card-heading h2::after,
  body main .service-card h2.sp-optimized-text--heading::after {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: 42px !important;
  }

  /* ========== 本文：左詰め＋均等配置・右余白消滅 ========== */
  body main .sp-optimized-text:not(.sp-optimized-text--heading):not(.member-message),
  body main .ceo-content p.ceo-text.sp-optimized-text,
  body main .ceo-content .ceo-text,
  body main .members-card .members-intro.sp-optimized-text,
  body main .service-card--promotion p.sp-optimized-text,
  body main .service-card--consulting p.sp-optimized-text {
    display: block !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
    text-align: justify !important;
    text-align-last: left !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.02em !important;
    font-weight: 400 !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
    line-break: anywhere !important;
    text-wrap: wrap !important;
    white-space: normal !important;
    min-height: 0 !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  /* ========== 社員カード本文：全員分・左詰め（shain.css 相当） ========== */
  body main .member-card .member-message,
  body main .members-grid-pro .member-card .member-message {
    display: block !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
    text-align-last: auto !important;
    font-size: 0.82rem !important;
    line-height: 1.82 !important;
    letter-spacing: 0.016em !important;
    font-weight: 400 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    line-break: strict !important;
    text-wrap: pretty !important;
    white-space: normal !important;
    min-height: 10em !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  body main .member-card .member-message br {
    display: block !important;
    margin-top: 0.85em !important;
    line-height: 0 !important;
  }

  /* 太字・下線の強制解除 */
  body main .sp-optimized-text .service-emphasis,
  body main .sp-optimized-text strong,
  body main .sp-optimized-text b,
  body main .service-card p .service-emphasis,
  body main .ceo-content .ceo-text strong {
    font-weight: normal !important;
    color: inherit !important;
    text-decoration: none !important;
    text-underline-offset: unset !important;
    text-decoration-thickness: unset !important;
  }

  /* ========== バナー（SP）：カードを横幅いっぱいにフィット ========== */
  body main .banner-sp {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 10px 0 70px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }

  body main .banner-sp .container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body main .banner-sp-track {
    display: flex !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 4px 0 14px !important;
    gap: 0 !important;
    scroll-padding-inline: 0 !important;
  }

  body main .banner-sp-card {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    scroll-snap-align: start !important;
  }

  body main .banner-sp-card img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: clamp(200px, 52vw, 300px) !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
    animation: none !important;
    filter: none !important;
    background: #e8ebf1 !important;
  }

  body main .banner-sp-card .banner-card {
    box-sizing: border-box !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 16px 16px 18px !important;
  }

  body main .banner-sp-card .banner-card h2,
  body main .banner-sp-card .banner-card p {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
    line-break: anywhere !important;
  }

  body main .banner-sp-card .banner-card p {
    font-size: 14px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.02em !important;
  }

  body main .banner-sp-card .banner-card h2 {
    font-size: 1.1rem !important;
    line-height: 1.4 !important;
    margin-bottom: 10px !important;
  }

  /* ========== プライバシーポリシー：画面幅いっぱい・読みやすく ========== */
  body main .privacy-hero,
  body main .privacy-section {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body main .privacy-hero .container,
  body main .privacy-section .container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body main .privacy-hero .section-title,
  body main .privacy-hero h1.section-title {
    text-align: center !important;
  }

  body main .privacy-eyebrow {
    text-align: center !important;
  }

  body main .privacy-card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 18px 14px 22px !important;
  }

  body main .privacy-item {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 12px 14px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body main .privacy-lead,
  body main .privacy-item p,
  body main .privacy-item li {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left !important;
    text-align: justify !important;
    text-align-last: left !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.02em !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
    line-break: anywhere !important;
    text-wrap: wrap !important;
    white-space: normal !important;
  }

  body main .privacy-item h2 {
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
  }

  body main .privacy-item ul {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    margin-right: 0 !important;
  }

  body main .privacy-contact {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 12px 12px !important;
    margin-right: 0 !important;
  }

  body main .privacy-lead br,
  body main .privacy-item p br,
  body main .privacy-item li br {
    display: none !important;
  }

  /* ========== Instagram：.instagram-subline のみ（中央・2行） ========== */
  html body main p.instagram-subline,
  html body main .instagram-subline {
    text-align: center !important;
    font-size: clamp(13px, 3.2vw, 14px) !important;
    line-height: 1.7 !important;
    letter-spacing: 0.02em !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  html body main .instagram-subline br.sp-only {
    display: inline !important;
  }

  /* ========== 社員紹介：.members-lead のみ（中央・2行） ========== */
  html body main p.members-lead,
  html body main .members-lead {
    text-align: center !important;
    font-size: clamp(13px, 3.2vw, 14px) !important;
    line-height: 1.7 !important;
    letter-spacing: 0.02em !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  html body main .members-lead br.sp-only {
    display: inline !important;
  }
}
