@charset "UTF-8";
:root {
  --color-text:#293c3a;
  --color-muted:#62706d;
  --color-accent:#294f4c;
  --color-bg:#fff;
  --color-soft:#f0f3f1;
  --color-line:#d5ded9;
  --content-width:1280px;
  --ja-font:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  --en-font:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}
body {
  margin:0;
  color:var(--color-text);
  background:var(--color-bg);
  font-family:var(--ja-font);
  font-size:14px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
body.menu-open {
  overflow:hidden;
}
a {
  color:inherit;
  text-decoration:none;
}
button {
  font:inherit;
  color:inherit;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
h1,h2,h3,p,figure,dl,dd {
  margin:0;
}
h1,h2,h3 {
  font-weight:400;
}
ul {
  list-style:none;
  margin:0;
  padding:0;
}
button,a {
  -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible {
  outline:2px solid var(--color-accent);
  outline-offset:7px;
}
::selection {
  background:#d6e3de;
  color:#203c37;
}
.en {
  font-family:var(--en-font);
  font-weight:300;
}
.l-wrapper {
  padding-left:clamp(24px,5vw,80px);
  padding-right:clamp(24px,5vw,80px);
}
.l-inner {
  width:100%;
  max-width:var(--content-width);
  margin-inline:auto;
}
.skip-link {
  position:fixed;
  left:16px;
  top:16px;
  z-index:100;
  padding:12px 20px;
  background:white;
  transform:translateY(-180%);
}
.skip-link:focus {
  transform:none;
}
.site-header {
  height:80px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  position:relative;
  z-index:10;
  background:#fff;
}
.site-brand {
  display:flex;
  align-items:center;
  gap:13px;
  flex-shrink:0;
}
.site-brand img {
  width:48px;
  height:48px;
  object-fit:contain;
}
.site-brand__name {
  font-size:21px;
  font-family:var(--en-font);
  letter-spacing:.025em;
  line-height:1.15;
}
.site-brand__name small {
  display:block;
  font-family:var(--ja-font);
  font-size:9px;
  letter-spacing:.12em;
  margin-top:8px;
}
.desktop-nav {
  display:flex;
  align-items:center;
  gap:clamp(18px,2.2vw,36px);
  font-size:12px;
}
.desktop-nav a {
  position:relative;
  white-space:nowrap;
  padding-block:8px;
}
.desktop-nav a::after {
  content:"";
  position:absolute;
  left:0;
  bottom:1px;
  width:100%;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .4s var(--ease);
}
.desktop-nav a:hover::after,.desktop-nav a[aria-current=page]::after {
  transform:scaleX(1);
  transform-origin:left;
}
.desktop-nav .nav-contact {
  padding:10px 19px;
  border:1px solid var(--color-line);
  border-radius:0;
}
.desktop-nav .nav-contact::after {
  display:none;
}
.desktop-nav .nav-contact:hover {
  background:var(--color-soft);
}
.menu-toggle {
  display:none;
  width:48px;
  height:48px;
  border:0;
  background:transparent;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:7px;
  cursor:pointer;
}
.menu-toggle span {
  width:25px;
  height:1px;
  background:var(--color-text);
}
.menu-dialog {
  border:0;
  width:100%;
  height:100dvh;
  max-width:none;
  max-height:none;
  margin:0;
  padding:28px;
  background:var(--color-soft);
  color:var(--color-text);
}
.menu-dialog::backdrop {
  background:#294f4c55;
}
.menu-dialog__top {
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.menu-close {
  border:1px solid var(--color-line);
  background:transparent;
  padding:10px 18px;
  cursor:pointer;
}
.mobile-nav {
  display:flex;
  flex-direction:column;
  margin:55px auto 30px;
  max-width:600px;
}
.mobile-nav a {
  font-size:22px;
  padding:19px 0;
  border-bottom:1px solid var(--color-line);
  display:flex;
  justify-content:space-between;
}
.mobile-nav a span {
  font-size:13px;
  align-self:center;
}
.menu-dialog__foot {
  max-width:600px;
  margin:auto;
  font-size:12px;
  color:var(--color-muted);
}
.hero {
  position:relative;
  min-height:650px;
  height:calc(100svh - 80px);
  max-height:950px;
  background:#d1d8d7;
  isolation:isolate;
  overflow:hidden;
  color:white;
}
.hero__visual,.hero__shade {
  position:absolute;
  inset:0;
}
.hero__visual {
  z-index:-2;
}
.hero__visual img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 42%;
  animation:hero-image 2.4s var(--ease) both;
}
.hero__shade {
  z-index:-1;
  background:linear-gradient(90deg,rgba(24,41,40,.36) 0%,rgba(24,41,40,.06) 60%),linear-gradient(0deg,rgba(24,41,40,.65),transparent 65%);
}
.hero__content {
  height:100%;
  display:flex;
  align-items:flex-end;
  padding-top:60px;
  padding-bottom:45px;
}
.hero__content .l-inner {
  max-width:1440px;
}
.hero h1 {
  font-size:clamp(25px,2.3vw,38px);
  line-height:1.75;
  letter-spacing:.15em;
  font-weight:400;
  animation:hero-copy 1.2s .15s var(--ease) both;
}
.hero h1 br {
  display:none;
}
.hero__english {
  font-size:clamp(60px,7.25vw,112px);
  line-height:1.23;
  letter-spacing:-.052em;
  margin-top:9px;
  animation:hero-copy 1.3s .3s var(--ease) both;
}
.hero__bottom {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-top:32px;
  gap:30px;
  animation:hero-copy 1.3s .5s var(--ease) both;
}
.hero__bottom p {
  font-size:12px;
  line-height:1.9;
  letter-spacing:.08em;
}
.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:45px;
  min-height:52px;
  border-bottom:1px solid var(--color-line);
  padding-block:10px;
  font-size:13px;
  transition:border-color .3s,color .3s;
}
.text-link:hover {
  border-color:var(--color-accent);
}
.text-link--light {
  border-color:#ffffff70;
}
.text-link--light:hover {
  border-color:#fff;
}
.arrow {
  font-family:Arial,sans-serif;
  font-size:23px;
  line-height:1;
  font-weight:400;
  display:inline-block;
  transition:transform .4s var(--ease);
}
a:hover .arrow {
  transform:translate(3px,-3px);
}
.section-heading__english {
  font-size:clamp(44px,5vw,70px);
  line-height:1.1;
  letter-spacing:-.045em;
  margin-bottom:22px;
}
.section-heading h2 {
  font-size:14px;
  letter-spacing:.08em;
  line-height:1.9;
}
.body-copy {
  line-height:2.25;
  color:var(--color-muted);
  font-size:14px;
}
.statement {
  font-size:clamp(25px,2.5vw,36px);
  line-height:1.9;
  letter-spacing:.075em;
}
.about {
  padding-top:140px;
  padding-bottom:130px;
  position:relative;
}
.about__inner {
  display:flex;
  justify-content:space-between;
  gap:10%;
}
.about .section-heading {
  width:40%;
  padding-top:12px;
}
.about__body {
  width:50%;
}
.about__body .body-copy {
  margin-top:25px;
}
.about__body .text-link {
  margin-top:32px;
}
.about__photo {
  position:absolute;
  left:max(5vw,calc((100vw - 1280px)/2));
  top:315px;
  width:clamp(180px,26vw,360px);
  aspect-ratio:1.12;
  overflow:hidden;
  border-radius:48% 48% 44% 44%;
  transform:rotate(-7deg);
}
.about__photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transform:rotate(7deg) scale(1.15);
}
.business {
  padding-top:115px;
  padding-bottom:105px;
  background:var(--color-soft);
}
.business>.l-inner>.section-heading {
  margin-bottom:65px;
}
.flagship {
  display:flex;
  align-items:center;
  gap:7%;
}
.flagship__image {
  width:56%;
  aspect-ratio:1.25;
  overflow:hidden;
}
.image-hover {
  overflow:hidden;
}
.image-hover img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.2s var(--ease);
}
a:hover .image-hover img {
  transform:scale(1.045);
}
.flagship__body {
  flex:1;
}
.category {
  font-size:11px;
  color:var(--color-muted);
  letter-spacing:.09em;
}
.flagship h3 {
  font-size:76px;
  line-height:1.2;
  letter-spacing:-.04em;
  margin:11px 0 24px;
}
.flagship__lead span {
  display:inline-block;
}
.flagship__lead {
  font-size:20px;
  line-height:1.95;
  letter-spacing:.03em;
}
.flagship .body-copy {
  margin-top:23px;
  font-size:13px;
}
.flagship .text-link {
  margin-top:28px;
  min-width:200px;
}
.business__secondary {
  display:flex;
  gap:9%;
  align-items:flex-start;
  margin-top:95px;
}
.home-brand {
  width:47%;
}
.home-brand__image {
  aspect-ratio:1.7;
}
.home-brand__image img {
  object-position:center 42%;
}
.home-brand__content {
  position:relative;
  margin-top:26px;
  padding-right:35px;
}
.home-brand h3 {
  font-size:34px;
  line-height:1.4;
  letter-spacing:-.025em;
  margin:8px 0 13px;
}
.home-brand p:not(.category) {
  font-size:13px;
  color:var(--color-muted);
  line-height:2;
}
.home-brand__content>.arrow {
  position:absolute;
  right:0;
  top:30px;
}
.brand-group {
  flex:1;
  padding-top:0;
}
.brand-group h3,.support-brands h3 {
  font-size:20px;
  letter-spacing:.02em;
}
.brand-group__intro {
  color:var(--color-muted);
  font-size:13px;
  line-height:2;
  margin:18px 0 23px;
}
.brand-row {
  display:flex;
  align-items:center;
  gap:22px;
  padding:22px 0;
  border-top:1px solid var(--color-line);
}
.brand-row__name {
  font-family:var(--en-font);
  font-size:25px;
  font-weight:300;
  line-height:1.3;
}
.brand-row__description {
  font-size:11px;
  color:var(--color-muted);
  margin-top:5px;
}
.brand-row>.arrow {
  margin-left:auto;
  font-size:19px;
}
.support-brands {
  margin-top:85px;
  padding:36px 0;
  border-top:1px solid var(--color-line);
  display:flex;
  align-items:center;
  gap:45px;
}
.support-brands>div {
  flex:1.2;
}
.support-brands>div>p {
  font-size:12px;
  color:var(--color-muted);
  margin-top:12px;
}
.support-brands .brand-row {
  flex:1;
  border:0;
  min-width:0;
}
.support-brands .brand-row__name {
  font-size:26px;
}
.business__all {
  display:flex;
  justify-content:flex-end;
  margin-top:16px;
}
.business__all .text-link {
  min-width:245px;
}
.company {
  padding-block:105px;
}
.company__inner {
  display:flex;
  justify-content:space-between;
  gap:10%;
  align-items:center;
}
.company .body-copy {
  margin-top:25px;
}
.company .text-link {
  margin-top:24px;
  min-width:200px;
}
.company__facts {
  display:flex;
  flex-wrap:wrap;
  width:42%;
  column-gap:15%;
  row-gap:25px;
}
.company__facts>div {
  flex:1;
}
.company__facts dt {
  font-size:12px;
  color:var(--color-muted);
  margin-bottom:2px;
}
.company__facts dd {
  white-space:nowrap;
}
.company__facts dd .en {
  font-size:72px;
  line-height:1.2;
  letter-spacing:-.055em;
}
.company__facts dd small {
  font-size:12px;
  margin-left:10px;
}
.company__facts .company__location {
  flex-basis:100%;
  border-top:1px solid var(--color-line);
  padding-top:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.company__location dd {
  font-size:16px;
}
.recruit {
  padding-top:30px;
  padding-bottom:115px;
}
.recruit__inner {
  display:flex;
  gap:8%;
  align-items:center;
}
.recruit__photo {
  width:57%;
  aspect-ratio:1.17;
  border-radius:0 40% 0 0;
}
.recruit__photo img {
  object-position:58% 50%;
}
.recruit__body {
  flex:1;
}
.recruit .section-heading h2 {
  font-size:24px;
  line-height:1.9;
  letter-spacing:.045em;
  margin-top:30px;
}
.recruit .section-heading__english {
  font-size:clamp(40px,4vw,60px);
  white-space:nowrap;
}
.recruit .body-copy {
  margin-top:22px;
}
.recruit .text-link {
  margin-top:28px;
  min-width:220px;
}
.contact-strip {
  padding-block:72px;
  background:var(--color-soft);
}
.contact-strip__link {
  display:flex;
  align-items:center;
  gap:45px;
}
.contact-strip__heading {
  font-size:clamp(52px,7vw,92px);
  line-height:1.1;
  letter-spacing:-.045em;
}
.contact-strip__copy {
  margin-left:auto;
  font-size:13px;
  line-height:2;
}
.contact-strip .arrow {
  font-size:45px;
  margin-left:40px;
}
.site-footer {
  padding-top:65px;
  padding-bottom:26px;
}
.footer-top {
  display:flex;
  justify-content:space-between;
  gap:60px;
}
.footer-identity>p {
  font-size:12px;
  color:var(--color-muted);
  margin-top:25px;
  line-height:2.1;
}
.footer-nav {
  display:flex;
  gap:75px;
  font-size:12px;
}
.footer-nav ul {
  display:flex;
  flex-direction:column;
  gap:12px;
}
.footer-nav a:hover {
  text-decoration:underline;
  text-underline-offset:5px;
}
.footer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:55px;
  padding-top:22px;
  border-top:1px solid var(--color-line);
  font-size:10px;
  color:var(--color-muted);
}
.footer-bottom a {
  font-size:11px;
}
.footer-bottom small {
  font-size:10px;
  letter-spacing:.04em;
}
.footer-bottom .arrow {
  font-size:16px;
  margin-left:10px;
}
.page-heading {
  padding-top:76px;
  padding-bottom:65px;
  background:var(--color-soft);
}
.breadcrumb {
  font-size:10px;
  color:var(--color-muted);
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom:50px;
  flex-wrap:wrap;
}
.breadcrumb a {
  text-decoration:underline;
  text-underline-offset:4px;
}
.page-heading__english {
  font-size:clamp(52px,8vw,100px);
  line-height:1.2;
  letter-spacing:-.045em;
}
.page-heading h1 {
  font-size:19px;
  letter-spacing:.09em;
  margin-top:18px;
}
.page-heading__lead {
  font-size:14px;
  line-height:2.1;
  color:var(--color-muted);
  margin-top:27px;
  max-width:650px;
}
.page-content {
  padding-top:90px;
  padding-bottom:110px;
}
.page-content .l-inner {
  max-width:1100px;
}
.page-content h2 {
  font-size:28px;
  line-height:1.8;
  letter-spacing:.04em;
}
.page-content h3 {
  font-size:20px;
  line-height:1.8;
}
.page-content .body-copy {
  margin-top:25px;
  max-width:700px;
}
.editorial-image {
  margin-top:50px;
  aspect-ratio:2.4;
  overflow:hidden;
}
.editorial-image img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.content-section+.content-section {
  margin-top:80px;
  padding-top:55px;
  border-top:1px solid var(--color-line);
}
.content-section .text-link {
  margin-top:25px;
  min-width:230px;
}
.history {
  margin-top:32px;
}
.history>div {
  display:flex;
  gap:45px;
  padding:22px 0;
  border-top:1px solid var(--color-line);
}
.history dt {
  font-family:var(--en-font);
  font-size:23px;
  min-width:90px;
}
.history dd {
  align-self:center;
  color:var(--color-muted);
}
.company-table {
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.company-table th,.company-table td {
  padding:24px 0;
  border-bottom:1px solid var(--color-line);
  text-align:left;
  vertical-align:top;
  font-weight:400;
}
.company-table th {
  width:25%;
  padding-right:25px;
  color:var(--color-muted);
}
.company-table a {
  text-decoration:underline;
  text-underline-offset:4px;
}
.content-note {
  font-size:12px;
  color:var(--color-muted);
  margin-top:22px;
}
.portfolio-list {
  display:flex;
  flex-wrap:wrap;
  gap:65px 7%;
}
.portfolio-item {
  width:46.5%;
  display:block;
  border-top:1px solid var(--color-line);
  padding-top:28px;
}
.portfolio-item__logo {
  height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  margin-bottom:26px;
}
.portfolio-item__logo img {
  max-width:70%;
  max-height:110px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.portfolio-item h2 {
  font-family:var(--en-font);
  font-size:30px;
}
.portfolio-item p {
  margin-top:12px;
  color:var(--color-muted);
  font-size:13px;
}
.portfolio-item .text-link {
  margin-top:18px;
  width:100%;
}
.brand-detail {
  display:flex;
  gap:8%;
  align-items:flex-start;
}
.brand-detail__logo {
  width:38%;
  background:var(--color-soft);
  padding:50px 30px;
  min-height:250px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.brand-detail__logo img {
  max-height:180px;
  object-fit:contain;
}
.brand-detail__body {
  flex:1;
}
.brand-detail__body h2 {
  text-wrap:balance;
}
.brand-detail__body .text-link {
  margin-top:25px;
  min-width:230px;
}
.brand-detail__meta {
  margin-top:24px;
  font-size:12px;
  color:var(--color-muted);
}
.related-link {
  margin-top:70px;
}
.contact-options {
  margin-top:40px;
  border-top:1px solid var(--color-line);
}
.contact-option {
  display:flex;
  gap:25px;
  align-items:center;
  justify-content:space-between;
  padding:28px 0;
  border-bottom:1px solid var(--color-line);
}
.contact-option h3 {
  font-size:18px;
}
.contact-option p {
  font-size:12px;
  color:var(--color-muted);
  margin-top:7px;
}
.contact-option .text-link {
  margin:0;
  min-width:210px;
}
.brand-directory {
  display:flex;
  flex-wrap:wrap;
  gap:16px 28px;
  margin-top:28px;
}
.brand-directory a {
  text-decoration:underline;
  text-underline-offset:6px;
}
.page-recruit-image {
  margin-bottom:55px;
  aspect-ratio:2.8;
  overflow:hidden;
}
.page-recruit-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
}
[data-reveal].is-pending {
  opacity:0;
  transform:translateY(24px);
}
[data-reveal] {
  transition:opacity 1s var(--ease),transform 1.15s var(--ease);
}
.about__photo[data-reveal].is-pending {
  transform:translateY(24px) rotate(-7deg);
}
@keyframes hero-copy {
  from {
    opacity:0;
    transform:translateY(25px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes hero-image {
  from {
    transform:scale(1.06);
  }
  to {
    transform:scale(1);
  }
}
/* Portfolio hierarchy: primary businesses, regional salons, media and support. */
.page-heading h1.page-heading__english {
  font-size:clamp(52px,8vw,100px);
  line-height:1.2;
  letter-spacing:-.045em;
  margin:0;
}
.page-heading__japanese { font-size:19px; letter-spacing:.09em; margin-top:18px; }
.portfolio-category+.portfolio-category { margin-top:95px; }
.portfolio-category>.body-copy { margin-top:15px; }
.portfolio-category .portfolio-list { margin-top:35px; }
.portfolio-item h3 { font-family:var(--en-font); font-size:30px; font-weight:300; }
.portfolio-list--featured .portfolio-item { border:0; padding-top:0; }
.portfolio-list--featured .portfolio-item__logo { height:auto; aspect-ratio:1.6; overflow:hidden; }
.portfolio-list--featured .portfolio-item__logo img { width:100%; height:100%; max-width:none; max-height:none; object-fit:cover; transition:transform 1.2s var(--ease); }
.portfolio-list--featured .portfolio-item:hover img { transform:scale(1.045); }
.portfolio-list--rows { display:block; }
.portfolio-list--rows .portfolio-item { width:100%; display:flex; align-items:center; gap:7%; padding-block:30px; }
.portfolio-list--rows .portfolio-item__logo { width:25%; flex-shrink:0; margin:0; }
.portfolio-list--rows .portfolio-item__body { flex:1; }
.portfolio-list--rows .portfolio-item__body>.text-link { max-width:220px; }
@media (min-width:769px) and (prefers-reduced-motion:no-preference) {
  @supports (animation-timeline:view()) {
    .hero__visual img {
      animation:hero-scroll linear both;
      animation-timeline:view();
      animation-range:exit 0% exit 100%;
    }
    @keyframes hero-scroll {
      from {
        transform:scale(1);
      }
      to {
        transform:scale(1.08);
      }
    }
  }
}
@media (max-width:1024px) {
  .flagship h3 {
    font-size:60px;
  }
  .flagship__lead {
    font-size:17px;
  }
  .flagship .body-copy br {
    display:none;
  }
  .about__inner {
    gap:6%;
  }
  .about__body {
    width:54%;
  }
  .support-brands {
    gap:24px;
  }
  .support-brands>div {
    flex:1;
  }
  .support-brands h3 {
    font-size:17px;
  }
  .company__facts dd .en {
    font-size:58px;
  }
  .recruit .section-heading h2 {
    font-size:20px;
  }
  .footer-nav {
    gap:40px;
  }
  .desktop-nav {
    display:none;
  }
  .menu-toggle {
    display:flex;
  }
  .site-header {
    height:80px;
  }
  .hero {
    height:calc(100svh - 80px);
  }
  .support-brands {
    flex-wrap:wrap;
  }
  .support-brands>div {
    flex-basis:100%;
  }
  .support-brands .brand-row {
    flex-basis:40%;
  }
  .brand-row__name {
    font-size:22px;
  }
  .company__inner {
    gap:6%;
  }
  .company__facts {
    width:44%;
  }
}
@media (max-width:768px) {
  .page-heading h1.page-heading__english { font-size:49px; }
  .page-heading__japanese { font-size:17px; margin-top:13px; }
  .portfolio-category+.portfolio-category { margin-top:60px; }
  .portfolio-list--rows .portfolio-item { display:block; }
  .portfolio-list--rows .portfolio-item__logo { width:100%; height:100px; margin-bottom:25px; }
  .portfolio-list--rows .portfolio-item__logo img { max-height:90px; max-width:70%; }

  #group .history>div { display: block; }
  #group .history dd { margin-top: 10px; }
  html {
    scroll-padding-top:25px;
  }
  .l-wrapper {
    padding-left:20px;
    padding-right:20px;
  }
  .site-header {
    height:72px;
    gap:15px;
  }
  .site-brand {
    gap:9px;
  }
  .site-brand img {
    width:40px;
    height:40px;
  }
  .site-brand__name {
    font-size:19px;
  }
  .site-brand__name small {
    font-size:8px;
    margin-top:6px;
  }
  .hero {
    height:calc(100svh - 72px);
    min-height:590px;
    max-height:820px;
  }
  .hero__visual img {
    object-position:30% 40%;
  }
  .hero__shade {
    background:linear-gradient(0deg,rgba(21,40,38,.68),rgba(21,40,38,.03) 80%);
  }
  .hero__content {
    padding-bottom:33px;
    padding-top:35px;
  }
  .hero h1 {
    font-size:25px;
    letter-spacing:.09em;
    line-height:1.8;
  }
  .hero h1 br {
    display:block;
  }
  .hero__english {
    font-size:clamp(35px,8.5vw,65px);
    letter-spacing:-.055em;
    margin-top:12px;
    white-space:nowrap;
  }
  .hero__bottom {
    margin-top:26px;
    gap:22px;
    align-items:flex-start;
    flex-direction:column;
  }
  .hero__bottom p {
    font-size:10px;
    line-height:1.9;
  }
  .hero__bottom .text-link {
    font-size:11px;
    min-height:42px;
    gap:45px;
  }
  .about {
    padding-top:75px;
    padding-bottom:70px;
  }
  .about__inner {
    display:block;
  }
  .about .section-heading {
    width:100%;
    padding:0;
  }
  .section-heading__english {
    font-size:46px;
    margin-bottom:15px;
  }
  .section-heading h2 {
    font-size:12px;
  }
  .about__body {
    width:100%;
    margin-top:38px;
  }
  .statement {
    font-size:25px;
    line-height:1.85;
    letter-spacing:.045em;
  }
  .about__body .body-copy {
    font-size:13px;
    line-height:2.25;
  }
  .about__body .body-copy br {
    display:none;
  }
  .about__body .text-link {
    margin-top:20px;
  }
  .about__photo {
    position:relative;
    left:auto;
    top:auto;
    width:67%;
    max-width:300px;
    margin:50px auto 10px;
    aspect-ratio:1.2;
  }
  .business {
    padding-top:70px;
    padding-bottom:65px;
  }
  .business>.l-inner>.section-heading {
    margin-bottom:38px;
  }
  .flagship {
    display:block;
  }
  .flagship__image {
    width:100%;
    aspect-ratio:1.25;
  }
  .flagship__body {
    padding-top:27px;
  }
  .flagship h3 {
    font-size:58px;
    margin:7px 0 16px;
  }
  .flagship__lead {
    font-size:19px;
  }
  .flagship .body-copy {
    font-size:13px;
    margin-top:18px;
  }
  .flagship .text-link {
    margin-top:20px;
    width:100%;
  }
  .business__secondary {
    display:block;
    margin-top:58px;
  }
  .home-brand {
    width:100%;
    display:block;
  }
  .home-brand h3 {
    font-size:31px;
  }
  .home-brand__content {
    margin-top:20px;
  }
  .brand-group {
    margin-top:58px;
  }
  .brand-group h3,.support-brands h3 {
    font-size:18px;
  }
  .brand-row {
    padding:21px 0;
  }
  .brand-row__name {
    font-size:26px;
  }
  .brand-group__intro {
    margin:13px 0 22px;
  }
  .support-brands {
    display:block;
    margin-top:25px;
    padding-top:30px;
  }
  .support-brands>div>p {
    font-size:12px;
  }
  .support-brands>.brand-row {
    border-bottom:1px solid var(--color-line);
    padding-block:22px;
  }
  .business__all {
    margin-top:4px;
  }
  .business__all .text-link {
    width:100%;
  }
  .company {
    padding-top:70px;
    padding-bottom:65px;
  }
  .company__inner {
    display:block;
  }
  .company .body-copy {
    font-size:13px;
  }
  .company__facts {
    width:100%;
    margin-top:38px;
    column-gap:8%;
    row-gap:20px;
  }
  .company__facts dd .en {
    font-size:clamp(48px,16vw,62px);
  }
  .company__facts .company__location {
    padding-top:17px;
  }
  .recruit {
    padding-top:10px;
    padding-bottom:70px;
  }
  .recruit__inner {
    display:block;
  }
  .recruit__photo {
    width:100%;
    aspect-ratio:1.2;
  }
  .recruit__body {
    padding-top:38px;
  }
  .recruit .section-heading__english {
    font-size:45px;
  }
  .recruit .section-heading h2 {
    font-size:24px;
    margin-top:24px;
  }
  .recruit .body-copy {
    font-size:13px;
  }
  .recruit .text-link {
    margin-top:20px;
  }
  .contact-strip {
    padding-block:45px;
  }
  .contact-strip__link {
    flex-wrap:wrap;
    gap:20px;
    position:relative;
    padding-right:35px;
  }
  .contact-strip__heading {
    font-size:58px;
  }
  .contact-strip__copy {
    margin:0;
    flex-basis:100%;
    font-size:12px;
  }
  .contact-strip .arrow {
    position:absolute;
    right:0;
    top:16px;
    font-size:33px;
    margin:0;
  }
  .site-footer {
    padding-top:45px;
    padding-bottom:25px;
  }
  .footer-top {
    display:block;
  }
  .footer-identity>p {
    font-size:11px;
    margin-top:22px;
  }
  .footer-nav {
    margin-top:34px;
    gap:50px;
    flex-wrap:wrap;
    font-size:11px;
  }
  .footer-bottom {
    margin-top:36px;
    gap:15px;
    align-items:flex-start;
  }
  .footer-bottom small {
    font-size:9px;
  }
  .footer-bottom a {
    font-size:10px;
  }
  .page-heading {
    padding-top:28px;
    padding-bottom:40px;
  }
  .breadcrumb {
    margin-bottom:32px;
    font-size:9px;
  }
  .page-heading__english {
    font-size:49px;
    overflow-wrap:anywhere;
  }
  .page-heading h1 {
    font-size:17px;
    margin-top:13px;
  }
  .page-heading__lead {
    font-size:12px;
    margin-top:20px;
  }
  .page-content {
    padding-top:50px;
    padding-bottom:70px;
  }
  .page-content h2 {
    font-size:24px;
  }
  .page-content .body-copy {
    font-size:13px;
  }
  .editorial-image {
    aspect-ratio:1.4;
    margin-top:32px;
  }
  .content-section+.content-section {
    margin-top:45px;
    padding-top:35px;
  }
  .history>div {
    gap:23px;
  }
  .history dt {
    min-width:65px;
    font-size:20px;
  }
  .history dd {
    font-size:12px;
  }
  .company-table th,.company-table td {
    display:block;
    width:100%;
    padding:0;
    border:0;
  }
  .company-table th {
    padding-top:20px;
    font-size:12px;
  }
  .company-table td {
    padding:7px 0 20px;
    border-bottom:1px solid var(--color-line);
    font-size:13px;
    overflow-wrap:anywhere;
  }
  .portfolio-list {
    gap:40px;
  }
  .portfolio-item {
    width:100%;
  }
  .portfolio-item__logo {
    height:130px;
  }
  .portfolio-item h2 {
    font-size:30px;
  }
  .brand-detail {
    display:block;
  }
  .brand-detail__logo {
    width:100%;
    min-height:200px;
    padding:40px;
    margin-bottom:35px;
  }
  .brand-detail__logo img {
    max-height:130px;
  }
  .contact-option {
    display:block;
  }
  .contact-option .text-link {
    margin-top:15px;
    width:100%;
  }
  .page-recruit-image {
    aspect-ratio:1.4;
    margin-bottom:35px;
  }
  .related-link {
    margin-top:40px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none;
    transition:none;
  }
  [data-reveal].is-pending {
    opacity:1;
    transform:none;
  }
  .about__photo[data-reveal].is-pending {
    transform:rotate(-7deg);
  }
}
