/* =========================================================
   Clear Link v1.11.6 — heading / lead consistency guard
   Purpose:
   - natural Japanese line wrapping
   - centered heading + subcatch/lead pairs
   - one-line desktop headings when they actually fit
   - prevent narrow saved widths from producing orphaned characters
   ========================================================= */

:root{
  --cl-heading-max:1180px;
  --cl-lead-max:800px;
}


main :where(h1,h2)>.cl-phrase-unit{
  white-space:nowrap!important;
}
main :where(h1,h2)>wbr{
  display:inline;
}

/* ---------- Hero baseline ---------- */
.site-unified-hero .home-hero__content{
  width:100%!important;
}
.site-unified-hero .home-hero__panel{
  width:min(1240px,calc(100vw - 96px))!important;
  max-width:1240px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  overflow:visible!important;
}
.site-unified-hero .hero-semantic-title,
.site-unified-hero .home-hero__panel h1{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-inline:0!important;
  text-align:center!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:pretty!important;
  hyphens:none!important;
}
@supports (word-break:auto-phrase){
  .site-unified-hero .hero-semantic-title,
  .site-unified-hero .home-hero__panel h1{
    word-break:auto-phrase!important;
  }
}
.site-unified-hero .hero-semantic-title.cl-hero-fit-one-line,
.site-unified-hero .home-hero__panel h1.cl-hero-fit-one-line{
  width:auto!important;
  max-width:none!important;
  white-space:nowrap!important;
  text-wrap:nowrap!important;
  word-break:keep-all!important;
}
.site-unified-hero .home-hero__lead{
  width:min(100%,var(--cl-lead-max))!important;
  max-width:var(--cl-lead-max)!important;
  margin:20px auto 0!important;
  text-align:center!important;
  text-wrap:pretty!important;
}

/* ---------- Section heading baseline ---------- */
main section :where(
  .section-title,
  .home-section-head,
  .sf-heading,
  .pf-heading,
  .cf-heading,
  .af-heading,
  .ftc-heading,
  .ft-section-head,
  .ft-consult__head,
  .ft-promise__heading,
  .bp-section__heading,
  .bp-gallery__heading,
  .bp-page-title__main,
  .fq-group__heading,
  .cl-common-faq__heading,
  .case-summary__heading,
  .column-category-heading,
  .column-featured__heading,
  .column-latest__heading,
  .archive-intro
){
  width:100%!important;
  max-width:var(--cl-heading-max)!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}

main section :where(
  .section-title,
  .home-section-head,
  .sf-heading,
  .pf-heading,
  .cf-heading,
  .af-heading,
  .ftc-heading,
  .ft-section-head,
  .ft-consult__head,
  .ft-promise__heading,
  .bp-section__heading,
  .bp-gallery__heading,
  .bp-page-title__main,
  .fq-group__heading,
  .cl-common-faq__heading,
  .case-summary__heading,
  .column-category-heading,
  .column-featured__heading,
  .column-latest__heading,
  .archive-intro
) :where(h1,h2){
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:pretty!important;
  hyphens:none!important;
}
@supports (word-break:auto-phrase){
  main section :where(
    .section-title,
    .home-section-head,
    .sf-heading,
    .pf-heading,
    .cf-heading,
    .af-heading,
    .ftc-heading,
    .ft-section-head,
    .ft-consult__head,
    .ft-promise__heading,
    .bp-section__heading,
    .bp-gallery__heading,
    .bp-page-title__main,
    .fq-group__heading,
    .cl-common-faq__heading,
    .case-summary__heading,
    .column-category-heading,
    .column-featured__heading,
    .column-latest__heading,
    .archive-intro
  ) :where(h1,h2){
    word-break:auto-phrase!important;
  }
}
main section h2.cl-fit-singleline{
  width:auto!important;
  max-width:none!important;
  white-space:nowrap!important;
  text-wrap:nowrap!important;
  word-break:keep-all!important;
}

/* ---------- Heading-linked lead / subcatch alignment ---------- */
main section :where(
  .section-title__lead,
  .bp-gallery__lead,
  .cf-heading__lead,
  .cl-final-cta__lead,
  .support-links__lead
){
  width:min(100%,var(--cl-lead-max))!important;
  max-width:var(--cl-lead-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  text-wrap:pretty!important;
}

main section :where(
  .sf-heading,
  .pf-heading,
  .cf-heading,
  .af-heading,
  .ftc-heading,
  .ft-section-head,
  .ft-consult__head,
  .ft-promise__heading,
  .bp-section__heading,
  .cl-common-faq__heading
)>p:not(:first-child){
  width:min(100%,var(--cl-lead-max))!important;
  max-width:var(--cl-lead-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}

/* Stacked intro layouts: title and its immediate explanatory copy use one axis. */
main section :where(
  .sf-heading-grid,
  .pf-heading-grid,
  .cf-intro__grid,
  .cf-note__grid,
  .af-intro__grid,
  .ftc-intro__grid,
  .bp-page-title__grid,
  .fq-intro__grid,
  .fq-contact__grid,
  .column-focus__intro,
  .column-category-heading
){
  min-width:0!important;
}
main section :where(.sf-heading-grid,.pf-heading-grid)>p,
main section :where(.cf-intro__grid,.cf-note__grid,.af-intro__grid,.ftc-intro__grid)>p,
main section .bp-page-title__main>p,
main section .fq-intro__grid>div:last-child>p,
main section .fq-contact__grid>div:last-child>p,
main section .column-focus__intro>p,
main section .column-category-heading>p{
  width:min(100%,var(--cl-lead-max))!important;
  max-width:var(--cl-lead-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
  text-wrap:pretty!important;
}

/* Kicker + title pair must share the same axis. */
main section :where(
  .section-title__en,
  .section-kicker,
  .sf-kicker,
  .pf-kicker,
  .cf-kicker,
  .af-kicker,
  .ftc-kicker,
  .ft-kicker,
  .fq-kicker
){
  text-align:center!important;
}

/* ---------- Responsive ---------- */
@media (max-width:820px){
  .site-unified-hero .home-hero__panel{
    width:calc(100vw - 36px)!important;
    max-width:calc(100vw - 36px)!important;
  }
  .site-unified-hero .hero-semantic-title,
  .site-unified-hero .home-hero__panel h1{
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    text-wrap:pretty!important;
  }
  .site-unified-hero .home-hero__lead{
    width:min(100%,34em)!important;
    max-width:34em!important;
    margin-top:16px!important;
    text-align:center!important;
  }
  main section h2.cl-fit-singleline{
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    text-wrap:pretty!important;
    word-break:normal!important;
  }
  @supports (word-break:auto-phrase){
    main section h2.cl-fit-singleline{word-break:auto-phrase!important}
  }
}

/* Never let title geometry create horizontal overflow. */
.site-unified-hero,
.site-unified-hero .home-hero__content,
.site-unified-hero .home-hero__panel,
main section :where(.section-title,.sf-heading,.pf-heading,.cf-heading,.af-heading,.ftc-heading,.bp-section__heading,.cl-common-faq__heading){
  min-width:0!important;
}
