/* Approved option 2: Noto Serif JP Light headlines and Regular body copy. */
@font-face {
  font-family: "BCO Editorial Mincho";
  src: url("assets/editorial-mincho-300-400.woff2?v=1") format("woff2");
  font-weight: 300 400;
  font-style: normal;
  font-display: swap;
}
:root, .detail {
  --font: "BCO Editorial Mincho", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
}
body {font-synthesis:none; font-weight:400}
body.detail h1, body.detail h2, body.detail h3,
body .opening h1, body .brand-catch, body .venture-tagline,
body .belief-line p, body .quiet-footer .end-message,
body .message-image>p {font-weight:300}
body .identity>span, body .primary-nav, body .section-topline,
body .business-jump b, body .opening-bottom>div>span,
body .venture-links>a, body .venture-links b,
body .about-text .lead, body .quiet-link, body .form-link,
body .quiet-footer .end-main nav a, body .phone-dock a,
body .brand-story-text .brand-lead, body .message-signature strong,
body .field, body .inquiry-next, body .inquiry-send,
body .inquiry-aside li[aria-current], body .line-action {font-weight:400}
body .opening-display strong, body .opening-display>span,
body .venture-links .korect-link b, body .brand-korect .brand-opening h1,
body.detail .inquiry-heading h1, body.detail .inquiry-heading h1 span {font-weight:400}
body .opening h1 {letter-spacing:.025em;line-height:1.6}
body .editorial-heading h1 {line-height:1.65}
body .menu-dialog nav>a {font-weight:300}
body .menu-brands a {font-weight:400}

/* Keep the thinner letterforms comfortable in long Japanese passages. */
.venture-description, .company-heading-new>div>p,
.business-heading-new>p, .about-text>p:not(.lead),
.brand-story-text>p:last-child, .corporate-statement>p:last-child,
.philosophy-origin>p:last-child, .vision-statement>p:last-child,
.value-row>div>p:last-child, .policy-text p {
  font-size:15px;line-height:2.15;
}
@media(max-width:760px) {
  body .opening-copy>p {font-size:14px;line-height:2.1}
  .business-heading-new {display:block}
  body .business-heading-new h2 {font-size:29px;line-height:1.7}
  .business-heading-new>p {max-width:none;margin-top:20px}
  .venture-description, .company-heading-new>div>p,
  .business-heading-new>p, .about-text>p:not(.lead),
  .brand-story-text>p:last-child, .corporate-statement>p:last-child,
  .philosophy-origin>p:last-child, .vision-statement>p:last-child,
  .value-row>div>p:last-child, .policy-text p,
  .page-intro, .origin-story>div>p, .korect-standard li p,
  .chapter-contact p:not(.page-eyebrow) {
    font-size:14px;line-height:2.1;
  }
  body .sector-brand-description {font-size:14px!important}
  .company-choices p, .brand-notes p,
  .information-table dd, .inquiry-heading>p {font-size:13px}
  .quiet-footer .end-main nav a {font-size:12px}
  .quiet-footer .end-message {letter-spacing:.02em}
}
@media(max-width:360px) {
  body .opening-copy>p {font-size:13px;letter-spacing:0}
  body .business-heading-new h2 {font-size:27px}
  body .opening h1 {letter-spacing:.015em}
}

/* Mobile editorial polish: preserve words, let prose flow, group short labels. */
.copy-unit {display:inline-block;max-width:100%;vertical-align:baseline}
main p .copy-tail {display:inline}
main :is(h1,h2,h3,p,dd) {line-break:strict;word-break:normal}
main :is(p,dd) {text-wrap:pretty}
:where(.venture-copy,.sector-brand-copy,.message-text,.brand-story-text,.information-table dd,.contact-panel>div) {min-width:0}
.primary-nav {gap:clamp(14px,1.65vw,27px)}
.primary-nav>a {white-space:nowrap;font-size:12px}
.primary-nav .nav-contact {padding-inline:17px;gap:18px}
.primary-nav a[aria-current="page"] {text-decoration:underline;text-underline-offset:9px;text-decoration-thickness:1px}
.menu-dialog nav a[aria-current="page"] {color:#bfcee5}
.menu-dialog nav a {min-height:64px;font-size:22px;line-height:1.5;padding-block:13px}
.menu-dialog nav small {font-size:8px;margin-bottom:5px;line-height:1.5}
.menu-dialog .menu-top {position:sticky;top:0;padding-block:8px 18px}
.menu-dialog .menu-brands {margin-top:24px}
.menu-dialog .menu-purpose {margin-top:22px}
@media(min-width:761px) and (max-width:900px) {
  .primary-nav {display:none}
  .header-business {display:inline-flex;align-items:center;gap:12px;margin-left:auto;margin-right:26px;font-size:12px;min-height:44px}
  .menu-open {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:44px;height:55px;padding:0;border:0;background:transparent;color:inherit}
  .menu-open>span {width:25px;height:9px;border-block:1px solid currentColor}
  .menu-open small {font:400 8px var(--latin);letter-spacing:.1em}
}
@media(max-width:760px) {
  .editorial-heading h1>span,.brand-catch>span {max-width:100%}
  .privacy-main .editorial-heading h1 {font-size:clamp(25px,7.2vw,32px);letter-spacing:0}
  .message-text>p {line-height:2.1;letter-spacing:.01em;margin-bottom:27px}
  .message-sentence {display:block}
  .message-sentence+.message-sentence {margin-top:.45em}
  .page-intro,.origin-story>div>p,.brand-story-text>p,.policy-text p {letter-spacing:.01em}
  .chapter-contact p br {display:none}
  .chapter-contact h2 {font-size:clamp(20px,5.7vw,24px);letter-spacing:0}
  .contact-panel p .copy-tail {display:block}
  .contact-panel p .copy-unit {margin-right:.15em}
  .hours-detail {display:block;font-size:.92em;line-height:1.9;margin-top:3px}
  .address-building {display:block}
  .information-table dd {overflow-wrap:break-word}
  .information-table a[href^="tel:"] {white-space:nowrap}
  .store-reservation h2 {font-size:clamp(23px,6.3vw,27px);letter-spacing:0}
  .quiet-footer .end-main nav {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;width:100%;justify-content:normal}
  .quiet-footer .end-main nav a {line-height:1.8}
  .menu-dialog {padding:14px 25px max(22px,env(safe-area-inset-bottom))}
  .menu-dialog nav a {font-size:20px;padding-block:12px;min-height:65px}
  .menu-dialog nav small {margin-bottom:4px}
  .menu-dialog .menu-brands {margin-top:20px}
  .menu-dialog .menu-purpose {font-size:11px;line-height:1.9}
}
@media(max-width:360px) {
  .menu-dialog {padding-inline:21px}
  .menu-dialog nav a {font-size:19px;min-height:60px;padding-block:10px}
  .quiet-footer .end-main nav {column-gap:12px}
}

/* Editorial groups retain Japanese words at responsive line endings. */
.phrase,.heading-phrase {display:inline-block;max-width:100%;vertical-align:baseline;white-space:normal;overflow-wrap:normal}
main :is(h1,h2,h3,p,dd) {overflow-wrap:normal}
main p:has(.phrase) {text-wrap:wrap}
.company-profile-grid {grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.company-profile-grid>* {min-width:0}
.profile-visual {width:100%;min-width:0;min-height:0;aspect-ratio:.82}
.information-table {min-width:0;margin:0}
.information-table>div {grid-template-columns:115px minmax(0,1fr)}
.information-table dd {margin:0;min-width:0}
.information-table .inline-link {max-width:100%}
.information-table .inline-link>span {min-width:0}
.information-table .inline-link i {flex-shrink:0}
.company-profile-grid .information-table dt {word-break:keep-all}
.profile-visual>span {font-size:clamp(25px,3vw,45px);left:9%;top:8%}
.message-layout {grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.message-text {min-width:0}
.message-text>p {letter-spacing:0}
.origin-story {grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.values-section {grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.chapter-contact {grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.chapter-contact p .phrase {line-height:inherit}
.chapter-contact .form-link {white-space:nowrap}
body .phone-dock {display:none}
body .header-business {display:none}
.primary-nav {gap:clamp(16px,1.6vw,28px)}
.primary-nav>a {position:relative;justify-content:center}
.primary-nav a[aria-current="page"],.primary-nav a[aria-current="location"] {text-decoration:none;color:#315f9f}
.primary-nav a[aria-current]::after {content:"";position:absolute;bottom:5px;left:25%;right:25%;height:2px;background:currentColor}
.primary-nav .nav-contact {gap:14px}
@media (min-width:761px) and (max-width:1100px) {
  body .masthead,body.scrolled .masthead,body.detail .masthead,body.reading .masthead {height:116px;display:grid;grid-template-columns:1fr auto;grid-template-rows:66px 50px;padding:0 4vw;gap:0;transition:background .3s}
  .masthead .identity {grid-column:1;grid-row:1}
  .masthead .identity img {width:36px;height:36px}
  .masthead .identity>span {font-size:13px}
  .masthead .menu-open {grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:44px;height:50px;padding:0;border:0;background:transparent;color:inherit}
  .menu-open>span {width:24px;height:9px;border-block:1px solid currentColor}
  .menu-open small {font:400 8px var(--latin);letter-spacing:.1em}
  body .primary-nav {display:grid;grid-column:1/-1;grid-row:2;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;gap:0;border-top:1px solid #8e9ba430}
  .primary-nav>a {min-height:48px;font-size:12px;letter-spacing:0}
  .primary-nav .nav-contact {border:0;padding:0;gap:0}
  .primary-nav .nav-contact i {display:none}
  html {scroll-padding-top:136px}
  .editorial-main {padding-top:156px}
  .brand-main {padding-top:145px}
  .contact-page {padding-top:150px}
  .opening-kicker {top:155px}
}
@media (min-width:761px) and (max-width:1000px) {
  .business-heading-new,.company-heading-new,.about-intro {display:block}
  .business-heading-new>p,.company-heading-new>div,.about-text {max-width:42em;width:100%;margin-top:26px;padding-top:0}
  .company-profile-grid {gap:5vw;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .information-table>div {grid-template-columns:90px minmax(0,1fr);gap:18px}
  .message-layout {display:block;padding-top:42px}
  .message-image figure {aspect-ratio:2.2;max-height:330px}
  .message-image img {object-position:50% 60%}
  .message-image>p {display:none}
  .message-text {max-width:42em;margin:38px auto 0}
  .message-text>p {font-size:16px;line-height:2.15;margin-bottom:30px}
  .origin-story,.values-section,.philosophy-origin,.corporate-statement {display:block}
  .origin-story h2,.values-heading h2,.corporate-statement h2 {font-size:32px;margin-top:24px}
  .origin-story>div,.values-list,.philosophy-origin>p:last-child,.corporate-statement>p:last-child {margin-top:28px;max-width:42em}
  .origin-story>div>p,.philosophy-origin>p:last-child,.corporate-statement>p:last-child {font-size:15px}
  .values-list {margin-left:auto}
  .chapter-contact {grid-template-columns:1fr;gap:20px}
  .chapter-contact .form-link {justify-self:start;width:320px;margin-top:0}
  .quiet-footer .end-main {display:block}
  .quiet-footer .end-main nav {max-width:none;margin-top:25px;justify-content:start}
  .brand-story-heading h2 {font-size:30px}
}
@media (max-width:760px) {
  :root {--persistent-nav:calc(96px + env(safe-area-inset-bottom))}
  /* No backdrop/transform on this parent: the six links are viewport-fixed. */
  body .masthead,body.scrolled .masthead,body.detail .masthead,body.reading .masthead {height:68px;backdrop-filter:none;transform:none;transition:background .3s}
  body .primary-nav {position:fixed;inset:auto 0 0;z-index:45;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;padding:0 10px env(safe-area-inset-bottom);background:#fff;color:#142434;border-top:1px solid #ccd5de;box-shadow:0 -5px 20px #101d2c09}
  body .primary-nav>a {min-height:48px;padding:0 3px;font-size:11.5px;line-height:1.5;letter-spacing:0;white-space:nowrap}
  .primary-nav>a:nth-child(n+4) {border-top:1px solid #e6ebef}
  .primary-nav .nav-contact {border-left:0;border-right:0;border-bottom:0;gap:0;background:none}
  .primary-nav .nav-contact i {display:none}
  body .primary-nav a[aria-current] {color:#234e9a;background:#edf2f8}
  .primary-nav a[aria-current]::after {bottom:6px;left:40%;right:40%}
  body .menu-open {display:flex}
  body .quiet-footer {padding-bottom:calc(var(--persistent-nav) + 30px)}
  html {scroll-padding-top:88px;scroll-padding-bottom:var(--persistent-nav)}
  .opening {height:calc(100svh - var(--persistent-nav));min-height:620px}
  .opening-kicker {top:103px}
  .profile-visual {aspect-ratio:1.3}
  .information-table>div {grid-template-columns:78px minmax(0,1fr);gap:18px}
  .information-table dd {overflow-wrap:anywhere}
  .message-text>p {font-size:14px;line-height:2.15}
  .message-sentence {display:inline}
  .message-sentence+.message-sentence {margin:0}
  .origin-story h2,.values-heading h2 {font-size:clamp(25px,7vw,29px);letter-spacing:0}
  .chapter-contact .form-link {white-space:normal}
  .policy-text p {font-size:14px;line-height:2.15}
}
@media(max-width:760px) {
  body.detail .masthead,body.reading .masthead {background:#fff}
  body.corporate-home.scrolled:not(.reading) .masthead {background:#101d2c}
}
@media(min-width:761px) and (max-width:1000px) {
  .korect-standard {display:block}
  .korect-standard h2 {font-size:32px}
  .korect-standard ol {padding:0;margin-top:32px}
}
/* Short informational paragraphs avoid a one-phrase final line. */
main .policy-text p,main .chapter-contact p:not(.page-eyebrow) {text-wrap:balance}

/* Start these two concluding sentences on a fresh line at all widths. */
.sentence-start {display:block}
.sentence-part {display:inline-block;max-width:100%;vertical-align:baseline;white-space:normal;overflow-wrap:normal}

/* Approved lettering option 2: Montserrat Regular with light Japanese Mincho. */
@font-face {
  font-family:"BCO Montserrat";
  src:url("assets/bco-montserrat-400.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0042-0043,U+004F;
}
.brand-name {font-family:"BCO Montserrat",Arial,sans-serif;font-size:1em;font-weight:400;font-style:normal;letter-spacing:.01em}
/* The SVG already has a transparent contour; remove its CSS white backing. */
body .identity img {background:transparent}
body :is(h1,h2,h3) .brand-name {font-weight:400}

/* Hero business link: match the other text links. */
.opening-bottom .scroll-link>span {
  font:400 13px/1.8 var(--font);
  letter-spacing:.025em;
  max-width:none;
  white-space:nowrap;
}
@media(max-width:760px) {
  .opening-bottom .scroll-link>span {font-size:12px}
}
