/* Readable Japanese line lengths and deliberate phrase boundaries. */
#main :is(h1,h2,h3,h4,p,li,dt,dd) {
  word-break: normal;
  line-break: strict;
}
#main :is(h1,h2,h3,h4) {
  text-wrap: balance;
}
#main :is(p,li,dd) {
  text-wrap: pretty;
}
@supports(word-break:auto-phrase) {
  #main p {
    word-break: auto-phrase;
  }
}
#main :is(.section-sub,.v11-company-description,.v11-business-desc,.v11-food-copy>p,.v11-toys-copy>p,.v11-oem-copy>p,.v11-contact-copy,.v11-company-message,.plus-v26-hero-lead,.company-intro-lead,.principle-card p,.service-card p,.business-card p,.category-card-info p,.chiffon-flavor-info p,.plus-v38-home-description p,.plus-v38-toys-text p) {
  text-wrap: pretty;
}
#main .copy-phrase {
  display: inline-block;
  max-width: 100%;
  vertical-align: baseline;
  word-break: normal;
}
#main h2 {
  line-height: 1.6;
  letter-spacing: .025em;
}
#main :is(.section-head,.plus-v38-intro) > * {
  min-width: 0;
}
#main .section-sub {
  max-inline-size: 38em;
  line-height: 2;
}
#main :is(.split-copy,.plus-v38-intro-copy,.plus-v38-detail-hero,.plus-v38-category-top,.plus-v38-feature-text) p {
  max-inline-size: 40em;
  line-height: 2.05;
}
#main :is(.plus-v26-hero-lead,.v11-business-desc,.v11-company-description,.v11-contact-copy) {
  max-inline-size: 39em;
  line-height: 2.1;
}
#main .plus-v38-home-description,
#main .plus-v38-toys-text {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(20px,2vw,28px);
}
#main :is(.plus-v38-home-description,.plus-v38-toys-text) h3 {
  font-size: clamp(19px,1.6vw,24px);
  line-height: 1.6;
  min-height: 3.2em;
  margin: 0;
  text-wrap: initial;
}
#main .plus-v38-home-description h3:has(.copy-phrase) .copy-phrase {
  display: block;
}
#main .plus-v38-home-description h3 wbr {
  display: none;
}
#main :is(.plus-v38-home-description,.plus-v38-toys-text) p {
  text-wrap: pretty;
}
#main :is(.plus-v38-home-description,.plus-v38-toys-text) p {
  font-size: 13px;
  line-height: 1.95;
  margin: 0;
  flex: 1;
}
#main .plus-v38-card-more {
  margin-top: 6px;
}
#main :is(.category-card-info,.company-business-copy,.gift-example-info) {
  display: flex;
  flex-direction: column;
  flex: 1;
}
#main :is(.category-card-link,.company-business-card) {
  display: flex;
  flex-direction: column;
  height: 100%;
}
#main :is(.category-choose,.company-card-link) {
  margin-top: auto;
  padding-top: 14px;
}
#main .company-card-link {
  align-self: flex-start;
}
#main .product-card {
  display: flex;
  flex-direction: column;
}
#main .product-card .body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
#main .product-card p {
  height: auto;
  overflow: visible;
  min-height: 3.8em;
}
#main .product-card .bottom {
  margin-top: auto;
}
#main :is(.principle-card,.process-card) h3 {
  line-height: 1.65;
}
#main :is(.flex-actions,.cta-inner,.plus-v38-next .wrap) {
  gap: 16px;
}
#main :is(.flex-actions,.cta-inner,.plus-v38-next .wrap) > * {
  min-width: 0;
}
#main .cta-inner > div {
  flex: 1;
  max-width: 48em;
}
#main .cta-inner h2 {
  font-size: clamp(24px,2.6vw,36px);
  max-inline-size: 23em;
}
#main .btn {
  max-width: 100%;
  white-space: normal;
  text-align: center;
  line-height: 1.7;
}
#main .prod-hero h1 {
  font-size: clamp(28px,3.2vw,44px);
  line-height: 1.55;
  overflow-wrap: normal;
}
@media(max-width:1100px) and (min-width:801px) {
  #main :is(.plus-v38-home-description,.plus-v38-toys-text) {
    padding: 18px;
  }
  #main .card-copy-break {
    display: none;
  }
}
@media(max-width:900px) {
  #main .cta-inner {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media(min-width:651px) and (max-width:1000px) {
  #main :is(.principles-grid,.business-scenarios) {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}
@media(max-width:650px) {
  #main :is(.principles-grid,.business-scenarios) {
    grid-template-columns: minmax(0,1fr);
  }
}
@media(max-width:600px) {
  #main h2 {
    font-size: clamp(23px,6.2vw,30px);
    line-height: 1.65;
  }
  #main .plus-v38-home-description h3,
  #main .plus-v38-toys-text h3 {
    min-height: 0;
    font-size: 22px;
  }
  #main :is(.plus-v38-intro-copy,.split-copy,.section-head) p {
    line-height: 2;
  }
  #main .plus-v38-inline-note {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }
}
