/* Shared mobile breadcrumb, paragraph and section-ending rule treatment. */
:root{
  --mobile-content-inline:22px;
  --mobile-section-space:64px;
  --mobile-section-rule-height:2px;
  /* SOURCE OF TRUTH: site-components.css .detail-hero::after */
  --mobile-section-rule-background:linear-gradient(90deg,rgba(75,155,114,0),rgba(75,155,114,.72) 30%,rgba(42,135,158,.76) 70%,rgba(42,135,158,0));
  --mobile-section-rule-gap:24px;
  --mobile-cta-height:49px;
  --mobile-cta-padding-inline:22px;
  --mobile-cta-font-size:13.5px;
}

.mobile-section-boundary{display:none}

.page-about .detail-hero>.breadcrumb,
.page-business .business-hero>.breadcrumb,
.page-results .results-hero>.breadcrumb,
.page-business-detail .detail-hero>.breadcrumb{z-index:6}

@media (max-width:820px){
  .mobile-section-boundary{
    display:block;
    width:calc(100% + (var(--mobile-content-inline) * 2));
    height:var(--mobile-section-rule-height);
    flex:0 0 var(--mobile-section-rule-height);
    margin-left:calc(var(--mobile-content-inline) * -1);
    margin-top:var(--mobile-section-rule-gap);
    background:var(--mobile-section-rule-background);
  }

  .mobile-section-boundary--section{
    width:100%;
    margin-left:0;
    margin-top:40px;
  }

  /* Intro endings use one additional spacing step without changing the rule itself. */
  .page-results .results-hero-copy .mobile-section-boundary,
  .page-about .detail-hero-button+.mobile-section-boundary{
    margin-top:calc(var(--mobile-section-rule-gap) + 8px);
  }

  .page-about .detail-hero>.breadcrumb,
  .page-business .business-hero>.breadcrumb,
  .page-results .results-hero>.breadcrumb,
  .page-business-detail .detail-hero>.breadcrumb{
    position:absolute;
    inset:14px auto auto var(--mobile-content-inline);
    display:flex;
    width:auto;
    max-width:calc(100% - (var(--mobile-content-inline) * 2));
    flex:none;
    flex-wrap:wrap;
    align-items:center;
    gap:4px 7px;
    margin:0;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.58);
    border-radius:10px;
    color:#3f565b;
    background:rgba(255,255,255,.76);
    box-shadow:0 4px 15px rgba(35,60,58,.08);
    -webkit-backdrop-filter:blur(5px);
    backdrop-filter:blur(5px);
    font-size:11.5px;
    line-height:1.45;
    letter-spacing:.01em;
    text-shadow:0 1px 0 rgba(255,255,255,.72);
  }

  /* CONTACT detail is the source size for compact mobile CTAs. */
  :is(.page-about,.page-business-detail) .detail-hero-button,
  .mobile-value-section__cta,
  .page-business-detail .detail-contact .button-gradient,
  .page-business-detail .purchase-consult-section .button-gradient,
  .page-business-detail .brand-store-section .button-gradient,
  .page-business-detail .amazon-shop-banner-section .button-gradient,
  .page-business-detail .amazon-suppliers-section .button-gradient{
    width:fit-content;
    max-width:100%;
    min-height:var(--mobile-cta-height);
    padding:11px var(--mobile-cta-padding-inline);
    gap:11px;
    border-radius:999px;
    font-size:var(--mobile-cta-font-size);
    white-space:nowrap;
  }

  .page-privacy .privacy-hero .breadcrumb{
    position:static;
    inset:auto;
    display:flex;
    width:100%;
    flex-wrap:wrap;
    align-items:center;
    gap:5px 8px;
    margin:0 0 15px;
    color:#718185;
    font-size:12px;
    line-height:1.6;
    letter-spacing:.01em;
  }

  .detail-hero-grid .detail-hero-copy::after{content:none!important}

  .detail-hero-description,
  .business-hero-lead,
  .results-hero-description,
  .metrics-heading>p:last-child,
  .mobile-value-section__description,
  .privacy-hero .detail-hero-description{
    padding-bottom:0;
    border-bottom:0;
    word-break:auto-phrase;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:pretty;
  }

  .detail-hero-description-line,
  .detail-hero-description>.semantic-phrase,
  .company-hero-description-mobile>span,
  .business-hero-lead>span,
  .mobile-value-section__copy-line,
  .results-hero-description .copy-unit,
  .metrics-heading>p:last-child .copy-unit{
    display:inline!important;
    white-space:normal!important;
  }

  .results-hero-description wbr,
  .metrics-heading>p:last-child wbr{display:none}

  .company-hero-description-mobile{
    display:inline!important;
    letter-spacing:-.01em;
  }

  .mobile-value-section{
    --mobile-value-padding-inline:var(--mobile-content-inline);
    padding-top:32px;
    padding-bottom:32px;
  }

  .mobile-value-section__index{font-size:12px}
  .mobile-value-section__description{
    max-width:100%;
    font-size:14px;
    line-height:1.9;
    letter-spacing:0;
  }
  .page-results .results-hero-description{max-width:100%}
  .page-company .detail-hero-description{max-width:24.5em}
  .page-contact .contact-hero-lead{max-width:21em}

  .business-hero-copy,
  .results-hero-copy,
  .detail-hero-grid .detail-hero-copy{padding-bottom:0}

  .business-section{padding-top:60px}
  .page-results .home-metrics{padding-top:calc(var(--mobile-section-space) - var(--mobile-section-rule-gap))}
  .page-company .company-profile,
  .page-contact .contact-main-section{padding-top:56px}
}

@media (max-width:680px){
  .page-privacy .privacy-hero .breadcrumb{margin-bottom:15px}
  .page-privacy .privacy-hero{padding-bottom:30px}

  /* Final mobile type polish: preserve approved copy/breaks while bringing
     equivalent lead copy onto one readable scale. */
  .page-about .detail-hero-description,
  .page-business .business-hero-lead,
  .page-company .detail-hero-description{
    font-size:13.5px;
    line-height:1.92;
  }

  .page-about .detail-hero-description{letter-spacing:-.04em}
  .page-about .detail-hero-description>.detail-hero-description-line{
    display:block!important;
    white-space:nowrap!important;
  }
  .page-business .business-hero-lead{
    width:calc(100% + 12px);
    max-width:none;
    margin-left:-6px;
    letter-spacing:-.055em;
  }
  .page-company .detail-hero-description{max-width:25.5em;letter-spacing:-.015em}

  body.page-contact .detail-hero--contact .detail-hero-copy .contact-hero-lead{
    width:calc(100% + 28px);
    max-width:none;
    font-size:13.25px;
    line-height:1.85;
    letter-spacing:-.055em;
    white-space:nowrap;
  }

  :is(.page-about,.page-business,.page-results) .mobile-value-section__title{
    width:calc(100% + 14px);
    margin-inline:-7px;
    font-size:26.5px;
    line-height:1.44;
  }

  :is(.page-about,.page-business,.page-results) .mobile-value-section .mobile-value-two-line{
    width:calc(100% + 14px);
    max-width:none;
    margin-inline:-7px;
    font-size:13.25px;
    line-height:1.92;
    letter-spacing:-.085em;
  }

  .page-about .mobile-value-section .mobile-value-two-line{
    width:calc(100% + 24px);
    margin-inline:-12px;
    letter-spacing:-.12em;
  }
}

@media (max-width:380px){
  /* Preserve the approved single-line copy at the narrowest target width. */
  :is(.page-about,.page-business,.page-results) .mobile-value-section :is(.mobile-value-section__title,.mobile-value-section__description){
    width:calc(100% + 28px);
    max-width:calc(100vw - 16px);
    margin-inline:-14px;
  }
}

@media (max-width:680px){
  /* Shared mobile reading scale, derived from the approved brand-sales copy. */
  :root{
    --mobile-body-font:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
    --mobile-body-lead-size:14px;
    --mobile-body-size:14px;
    --mobile-card-body-size:13.5px;
    --mobile-flow-body-size:13.5px;
    --mobile-profile-size:13px;
    --mobile-note-size:12.5px;
    --mobile-body-line-height:1.92;
    --mobile-card-line-height:1.88;
    --mobile-flow-line-height:1.88;
    --mobile-profile-line-height:1.8;
    --mobile-note-line-height:1.7;
    --mobile-body-weight:400;
    --mobile-body-letter-spacing:normal;
    --mobile-body-color:#5a7074;
    --mobile-body-color-strong:#50666b;
    --mobile-reading-copy:#5a7074;
    --mobile-reading-copy-strong:#50666b;
  }

  .page-home :is(.hero-lead,.about-copy,.philosophy-lead-mobile),
  :is(.page-about,.page-business,.page-company) :is(.detail-hero-description,.business-hero-lead),
  .page-contact .contact-hero-lead,
  :is(.page-about,.page-business,.page-results) .mobile-value-section__description{
    color:var(--mobile-reading-copy);
    font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
    font-weight:400;
  }

  .page-home .hero-lead{font-size:13.5px;line-height:1.92}
  .page-home .about-copy{font-size:13.5px;line-height:1.94}
  .page-home .about-copy-mobile>span:last-child{letter-spacing:-.105em}
  .page-home .philosophy-lead-mobile{font-size:13.5px;line-height:1.96;letter-spacing:-.15em}
  .page-home :is(.metrics-heading,.business-heading)>p:last-child{
    color:var(--mobile-reading-copy-strong);
    font-size:14.25px;
    line-height:1.92;
  }
  .page-home .business-card p{
    color:#536a6f;
    font-size:13.5px;
    line-height:1.88;
  }
  .page-home :is(.company-copy,.contact-copy)>p:not(.section-kicker){
    color:var(--mobile-reading-copy-strong);
    font-size:14.25px;
    line-height:1.92;
  }
  .page-home .home-contact-copy-mobile{
    width:calc(100% + 12px);
    max-width:calc(100vw - 32px);
    margin-left:-6px;
    font-size:13.5px;
    line-height:1.92;
    letter-spacing:-.1em;
  }
  .page-home .company-table dt{font-size:13px;line-height:1.8}
  .page-home .company-table dd{color:#52676c;font-size:14px;line-height:1.84}

  :is(.page-about,.page-business,.page-company) :is(.detail-hero-description,.business-hero-lead){
    font-size:14px;
    line-height:1.92;
  }
  body.page-contact .detail-hero--contact .detail-hero-copy .contact-hero-lead{
    width:calc(100% + 32px);
    color:var(--mobile-reading-copy);
    font-size:13.5px;
    line-height:1.9;
    letter-spacing:-.06em;
  }

  .page-about :is(.foundation-intro>p:last-child,.foundation-row p,.centered-heading>p:last-child,.value-card p),
  .page-business .business-card-copy>p,
  .page-results :is(.results-hero-description,.metrics-heading>p:last-child,.experience-intro,.experience-card-body>p:last-child),
  .page-company :is(.company-contact-copy-mobile,.company-profile .company-table dd),
  .page-contact :is(.contact-form-heading>p:not(.section-kicker),.contact-response-copy p,.privacy-guidance){
    color:var(--mobile-reading-copy);
    font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
    font-weight:400;
  }

  .page-about :is(.foundation-intro>p:last-child,.foundation-row p,.centered-heading>p:last-child,.value-card p){
    font-size:14.25px;
    line-height:1.9;
  }
  .page-business .business-card-copy>p{font-size:14px;line-height:1.9}
  .page-results .experience-card:nth-child(2) .experience-card-body>p.source-copy{font-size:14px;line-height:1.9}
  .page-results .results-next-copy>p:not(.section-kicker){font-size:14px;line-height:1.92}
  .page-company .company-profile .company-table dt{color:#476f68;font-size:13.25px;line-height:1.8}
  .page-company .company-profile .company-table dd{color:#52676c;font-size:14.25px;line-height:1.86}
  .page-company .company-contact-copy-mobile{font-size:14.25px;line-height:1.92;letter-spacing:-.02em}
  .page-contact :is(.contact-response-copy p,.privacy-guidance){font-size:14px;line-height:1.9}

  :is(.page-about,.page-business,.page-results) .mobile-value-section .mobile-value-two-line{
    color:var(--mobile-reading-copy);
    font-size:13.5px;
    line-height:1.94;
  }
  .page-results .mobile-value-section .mobile-value-two-line{
    width:calc(100% + 24px);
    margin-inline:-12px;
    letter-spacing:-.125em;
  }
  .page-about .mobile-value-section .mobile-value-two-line{letter-spacing:-.135em}
}

@media (max-width:430px){
  /*
   * ENFOURS mobile body contract.
   * Values come from the approved brand-sales hero description at 390px.
   * The automated typography audit treats these role tokens as hard floors.
   */
  .page-home :is(.hero-lead,.about-copy,.about-copy-mobile>span,.philosophy-lead-mobile,.philosophy-lead-mobile>span,.home-contact-copy-mobile,.home-contact-copy-mobile>span),
  :is(.page-about,.page-business,.page-results) .mobile-value-section :is(.mobile-value-section__description,.mobile-value-copy-line),
  body.page-contact .detail-hero--contact .detail-hero-copy :is(.contact-hero-lead,.contact-hero-keep){
    color:var(--mobile-body-color);
    font-family:var(--mobile-body-font);
    font-size:var(--mobile-body-lead-size);
    font-weight:var(--mobile-body-weight);
    line-height:var(--mobile-body-line-height);
  }

  .page-home .about-copy-mobile>span:last-child{letter-spacing:-.13em}
  .page-home .hero-lead{letter-spacing:-.08em}
  .page-about .foundation-row .foundation-copy-line{letter-spacing:-.025em;text-wrap:balance}
  .page-company .company-profile .company-table dt{letter-spacing:-.015em;white-space:nowrap}
  .page-company .company-profile .company-table dd{letter-spacing:-.01em;text-wrap:pretty}
  .page-company .company-profile .company-table>div:nth-child(8) dd{letter-spacing:-.045em}
  .page-contact .privacy-guidance{letter-spacing:-.085em;text-wrap:pretty}
  .page-contact .contact-consent .checkbox>span{white-space:nowrap;letter-spacing:-.03em}
  .page-about .mobile-value-section .mobile-value-two-line{letter-spacing:-.165em}
  .page-results .mobile-value-section .mobile-value-two-line{letter-spacing:-.14em}
  body.page-contact .detail-hero--contact .detail-hero-copy .contact-hero-lead{letter-spacing:-.09em}
}

/* Mobile image boundaries: one short fade, with no blur over the subject. */
@media (max-width:820px){
 body :is(.detail-hero,.business-hero,.results-hero) :is(.detail-hero-media,.business-hero-media,.results-hero-media)::before{content:none;display:none}
 body :is(.detail-hero,.business-hero,.results-hero) :is(.detail-hero-media,.business-hero-media,.results-hero-media)::after{
  content:"";display:block;position:absolute;z-index:3;inset:auto 0 0;width:100%;height:24px;pointer-events:none;
  background:linear-gradient(180deg,rgba(252,252,250,0),#fcfcfa);
  filter:none;backdrop-filter:none;-webkit-backdrop-filter:none;mask-image:none;-webkit-mask-image:none;
 }
}
@media (max-width:680px){
 body.page-home .hero-media::after{content:"";display:block;position:absolute;z-index:2;inset:auto 0 0;height:24px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,0),#fff)}
}
@media (max-width:767px){
 body :is(.one-company,.future-section,.results-next) .mobile-value-section__media::after{
  height:24px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff);
  filter:none;backdrop-filter:none;-webkit-backdrop-filter:none;mask-image:none;-webkit-mask-image:none;
 }
}

/* Mobile prose: natural wrapping replaces compressed, fixed-line copy. */
@media (max-width:767px){
  body :is(.about-copy,.philosophy-lead,.philosophy-lead-mobile,.home-contact-copy-mobile,
    .foundation-intro>p:last-child,.foundation-row p,.centered-heading>p:last-child,
    .mobile-value-section__description,.company-contact-copy-mobile,
    .contact-copy>p:not(.section-kicker),.company-copy>p:not(.section-kicker),
    .detail-hero-description,.business-hero-lead,.results-hero-description,.contact-hero-lead){
    font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif!important;
    font-size:15px!important;font-weight:500!important;line-height:1.85!important;
    letter-spacing:0!important;color:#50666b!important;
    font-feature-settings:normal!important;font-variant-east-asian:normal!important;
    white-space:normal!important;word-break:normal!important;overflow-wrap:anywhere!important;
    text-wrap:pretty!important;line-break:strict;
  }
  body :is(.about-copy,.philosophy-lead,.philosophy-lead-mobile,.home-contact-copy-mobile,
    .foundation-intro>p:last-child,.foundation-row p,.centered-heading>p:last-child,
    .mobile-value-section__description,.company-contact-copy-mobile,
    .contact-copy>p:not(.section-kicker),.company-copy>p:not(.section-kicker),
    .detail-hero-description,.business-hero-lead,.results-hero-description,.contact-hero-lead) :is(span,p){
    font:inherit!important;letter-spacing:0!important;color:inherit!important;
    font-feature-settings:normal!important;font-variant-east-asian:normal!important;
    white-space:normal!important;word-break:normal!important;text-wrap:pretty!important;
  }
  body :is(.about-copy-mobile>span,.philosophy-lead-mobile>span,.home-contact-copy-mobile>span,
    .foundation-copy-line,.mobile-value-copy-line,.company-contact-copy-line,
    .detail-hero-description-line,.contact-hero-keep){display:inline!important}
  body :is(.about-copy,.home-contact-copy-mobile,.philosophy-lead-mobile,.mobile-value-section__description,
    .business-hero-lead,.contact-hero-lead,.company-contact-copy-mobile){
    width:auto!important;max-width:100%!important;margin-inline:0!important;
  }
}

/* Editorial line-break policy: preserve short semantic units, not fixed lines.
   Desktop stays inline. Mobile wraps between units; Japanese strict kinsoku
   keeps punctuation off the start of a line. auto-phrase assists browsers
   that support it; explicit units provide the cross-browser fallback. */
@media (max-width:767px){
 body main p,body main p :is(span,p){
  word-break:normal!important;overflow-wrap:normal!important;line-break:strict!important;
 }
 @supports(word-break:auto-phrase){
  body main p,body main p :is(span,p){word-break:auto-phrase!important}
 }
 body main p span.jp-phrase.jp-phrase.jp-phrase{
  display:inline-block!important;white-space:nowrap!important;
  word-break:keep-all!important;overflow-wrap:normal!important;
  font:inherit!important;letter-spacing:inherit!important;vertical-align:baseline;
 }
}
