/* Shared natural text wrapping. Layout-specific corrections follow. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body[data-page-kind] #main :is(p,dd,li,h1,h2,h3,h4),
body[data-page-kind] .shift-consult :is(p,h2) {
  text-wrap:wrap; word-break:normal; line-break:strict; overflow-wrap:anywhere;
}
/* 本文の見栄えのための固定改行は使わず、会社・肩書き等の項目区切りだけ残す。 */
body main :is(p,dd) br { display:none!important; }
body main .preserve-line-breaks br { display:initial!important; }
body main .reading-term { white-space:normal; }
body main .reading-copy { display:block; min-width:0; font:inherit; color:inherit; }
body main .copy-line { display:inline; margin:0; }
body .shift-consult h2 br { display:none; }
@media(max-width:800px) {
  body[data-page-kind] #main > .site-pagehead { padding-inline:20px; }
  body[data-page-kind] #main > .site-pagehead > .site-pagehead__inner { padding-inline:0; }
  body[data-page-kind] #main > .site-pagehead h1 { font-size:clamp(24px,7vw,30px); }
  body[data-page-kind] #main :is(.shift-intro__audience,.ls-number__key) { display:block!important; }
  body #main .ls-number__key .ls-icon { display:inline-block; vertical-align:middle; margin-right:8px; }
}
body main .ls-message__sign span { display:inline-block; }
/* PCの導入文は本文と同じ幅を使い、短い末尾だけが残るのを防ぐ。 */
@media (min-width: 801px) {
  body main .ls-lead { max-width: 100%; }
  body .service-content .decision-facts > div { grid-template-columns: max-content minmax(0, 1fr); }
  body .service-content .decision-facts { display: grid; grid-template-columns: minmax(max-content, .85fr) minmax(0, 1.15fr); column-gap:32px; }
  body .service-content .decision-facts > div { grid-column:1 / -1; grid-template-columns:subgrid; align-items:start; }
  body .service-content .decision-facts dt { white-space:nowrap; }
  body main dd { text-wrap:wrap; }
}
/* 隣り合う章の余白が二重に広がらないようにする。 */
@media (max-width: 700px) {
  body .portal-section, body .shift-section { padding-block: 32px; }
  body #main > .ls-section, body .service-content > .ls-section { padding-block: 32px; }
  body .first-step { padding-bottom: 0; margin-bottom: 0; }
  body .company-about .about-chapter, body .decision-chapter, body .decision-next { margin-top: 48px; }
  body .features .feature-opening, body .features .feature-split,
  body .features .feature-followup, body .features .feature-platform,
  body .features .feature-entry { padding-block: 32px; }
  body .proof-entry { margin-block: 48px; }
  body .deliverable-row { padding-block: 32px; }
}
/* タブレットの縦向きでは、長い本文の列幅を優先する。 */
@media (min-width: 701px) and (max-width: 1100px) {
  body .portal-section, body .shift-section { padding-block: 48px; }
  body .company-about .about-split, body .company-about .about-brand,
  body .features .feature-opening, body .features .feature-split,
  body .features .feature-practice__body, body .features .feature-platform {
    grid-template-columns: minmax(0, 1fr); gap: 32px;
  }
  body .company-about .about-chapter, body .decision-chapter { margin-top: 64px; }
  body .pricing-pair { padding: 32px; gap: 32px; }
  body .feature-entry { flex-wrap: wrap; }
}
@media (min-width: 701px) and (max-width: 900px) {
  body .shift-section, body .pricing-pair, body .deliverable-row,
  body .decision-next, body .proof-entry, body .company-about .about-group,
  body .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  body .contact-layout__form { grid-row: 1; }
  body .deliverable-row--reverse > :first-child { order: 0; }
}
@media (max-width: 600px) {
body .portal-roles dl > div { grid-template-columns: minmax(0, 1fr); }
body .portal-roles dt { padding: 20px 0 8px; }
body .portal-roles dd { margin: 0; padding: 0 0 24px; min-width: 0; }
body .portal-roles dd p, body .portal-roles dd strong { max-width: 100%; }
body .site-actions { width: 100%; min-width: 0; }
body .site-actions .site-button { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; gap: 12px; padding-inline: 16px; white-space: normal; overflow-wrap: anywhere; }
body .site-actions .site-button > span[aria-hidden] { flex: 0 0 auto; }
body .shift-text-link { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
body .ls-container, body .site-pagehead__inner { min-width: 0; }
body .portal-section, body .shift-intro { padding-inline: 20px; }
body .ls-container { padding-inline: 20px; }
body .site-pagehead__inner { padding-inline: 20px; }
}

/* スマホでは文節を優先。短い最終行と見出しの行長も整える。 */
@media (max-width: 800px) {
  body main :is(p, dd, li, h1, h2, h3, h4),
  body main .intake-section > p:not(.intake-label) {
    text-wrap: wrap;
    word-break: normal;
    line-break: strict;
    overflow-wrap: anywhere;
  }
  body .shift-intro__copy,
  body .shift-intro__copy > p,
  body .site-pagehead__lead,
  body .ls-lead { max-width: 100%; }
  body main :is(.shift-intro__copy, .intake-section, .shift-about__body, .platform-intro, .decision-chapter) p br,
  body main .ls-lead br { display: none; }
  body main .copy-line { display: inline; margin: 0; }
}

/* スマホの相談導線は中央に、補足文は読みやすい左揃えにする。 */
@media (max-width: 800px) {
  body #intake-heading { text-align: center; font-size: clamp(24px, 6vw, 32px); }
  body #intake-heading > span { display: block; white-space: nowrap; }
  body .site-actions { justify-content: center; align-items: center; }
  body :is(main, .shift-consult) :is(.site-button, .ls-btn) { margin-inline: auto; justify-content: center; text-align: center; }
  body .shift-intro .site-actions { align-items: center; }
  body :is(main, .shift-consult) .cta-microcopy { text-align: left; margin-bottom: 16px; }
  body .cta-microcopy + .site-actions { margin-top: 16px; }
  body :is(.site-button, .site-actions) + :is(.ls-note, .cta-microcopy) { margin-top: 16px; text-align: left; }
}

/* 見出しも固定の行に分けず、列幅と文節に応じて折り返す。 */
.press-announcement { max-width: 1200px; margin: 0 auto; padding: 24px; display: flex; justify-content: center; align-items: baseline; gap: 8px 24px; text-align: center; font-size: 16px; background: #f5f5f5; }
.press-announcement time { flex-shrink: 0; color: #505050; }
.press-announcement a { color: #111; text-underline-offset: .2em; }
.press-announcement__link { display: inline-block; margin-left: 16px; font-size: 14px; }
body .heading-phrases > span { display: inline; }
@media (max-width: 800px) {
  /* 過去の手動改行を解除し、文節の改行候補を使う。 */
  body main :is(h2, h3) br { display: none; }
  body .heading-phrases > span { display: inline; white-space: normal; }
  body .icon-heading:has(.heading-phrases) { font-size: clamp(22px, 5.5vw, 32px); }
  .press-announcement { flex-direction: column; align-items: center; gap: 8px; padding: 24px 20px; }
  .press-announcement__link { display: block; margin: 8px 0 0; }
  body main h2 { text-wrap:balance; }
}
@media (min-width: 801px) {
  body main :is(h2, h3) br { display: none; }
}

/* ナビなどの短いラベルだけ文節を優先。本文・見出しには適用しない。 */
body[data-page-kind] #main [data-readable-copy]:not([data-readable-flow]),
body[data-page-kind] .ls-footer [data-readable-copy]:not([data-readable-flow]),
body[data-page-kind] .shift-consult [data-readable-copy]:not([data-readable-flow]){word-break:keep-all;overflow-wrap:break-word;line-break:strict;text-wrap:pretty}
body[data-page-kind] :is(#main,.ls-footer,.shift-consult) [data-readable-copy] wbr.readable-break{display:initial}
body[data-page-kind] #main :is(h1,h2,h3,h4,dt,summary)[data-readable-copy]:not([data-readable-flow]),
body[data-page-kind] #main nav a[data-readable-copy]:not([data-readable-flow]),
body[data-page-kind] .shift-consult h2[data-readable-copy]:not([data-readable-flow]){text-wrap:balance}
body[data-page-kind] #main .about-facts dd[data-readable-copy]:not([data-readable-flow]){text-wrap:balance}

/* 全画面幅の本文・見出し・質問・項目名は、使える横幅まで自然に折り返す。 */
 body[data-page-kind] :is(#main,.ls-footer,.shift-consult) :is(p,dd,li,h1,h2,h3,h4,dt,summary)[data-readable-copy][data-readable-flow] { word-break:normal; overflow-wrap:break-word; line-break:strict; text-wrap:wrap; }
 body[data-page-kind] :is(#main,.ls-footer,.shift-consult) [data-readable-copy][data-readable-flow] wbr.readable-break { display:none; }
@media(max-width:480px) {
  body[data-page-kind] #main .about-service { grid-template-columns:minmax(0,1fr); gap:12px; }
}

/* 本文と見出しの自然折り返しをページ固有の装飾より優先する。 */
body[data-page-kind] :is(#main,.ls-footer,.shift-consult) [data-readable-flow] { word-break:normal!important; text-wrap:wrap!important; }
@media(min-width:801px) {
 body[data-page-kind="home"] #main .portal-service { grid-template-columns:minmax(240px,.55fr) minmax(0,1.45fr); column-gap:32px; }
 body[data-page-kind="home"] #main .home-fit .portal-sectionhead h2 { max-width:none!important; font-size:clamp(24px,2vw,28px)!important; }
}

body[data-page-kind] #main .site-pagehead__lead { max-width:none; }
