.company-page__intro {
  margin-top: 80px;
}

.company-page__intro p {
  font-size: 1.6rem;
  line-height: 32px;
  text-align: center;
}

.company-section-heading {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  min-height: 36px;
}

.company-section-heading p {
  flex: 0 0 auto;
  color: var(--bc-green);
  font-family: var(--bc-font-serif);
  font-size: 1.6rem;
  line-height: 24px;
}

.company-section-heading > span {
  flex: 1;
  height: 1px;
  margin-bottom: 9px;
  background: #e3d4cd;
}

.company-section-heading h2 {
  flex: 0 0 auto;
  /* Figma uses16px after the eyebrow and24px before the Japanese title. */
  margin-left: 8px;
  color: var(--bc-brown);
  font-family: var(--bc-font-mincho);
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 36px;
}

.company-section-heading h2 span { color: var(--bc-green); }

.company-section-lead {
  position: relative;
  width: min(702px, 100%);
  margin-top: 80px;
}

.company-section-word {
  position: absolute;
  top: -48px;
  left: 39px;
  color: var(--bc-green-pale);
  font-family: var(--bc-font-serif);
  font-size: 10rem;
  line-height: 100px;
  opacity: 0.3;
}

.company-mission {
  position: relative;
  margin-top: 80px;
  padding-bottom: 80px;
}

.company-section-lead h3 {
  position: relative;
  color: var(--bc-brown);
  font-family: var(--bc-font-mincho);
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 48px;
  letter-spacing: 0;
}

.company-mission__photos {
  position: relative;
  z-index: 2;
  height: 500px;
  margin-top: 64px;
}

.company-mission__photo {
  position: absolute;
  display: block;
  max-width: none;
  height: auto;
}

.company-mission__photo--care {
  top: 40px;
  left: 126px;
  width: 351.4324px;
}

.company-mission__photo--home {
  /* Figma 652:321: the center photograph sits in front of both side photos. */
  z-index: 3;
  top: 0;
  left: 456px;
  width: 320px;
}

.company-mission__photo--nail {
  top: 40px;
  left: 746px;
  width: 351.4324px;
}

.company-mission__curve,
.company-mission__signature {
  position: absolute;
  display: block;
  max-width: none;
  height: auto;
  pointer-events: none;
}

.company-mission__curve {
  z-index: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 916px;
}

.company-mission__signature {
  /* Figma 293:712: translucent original artwork over the photograph strip. */
  z-index: 4;
  opacity: 0.5;
  bottom: 3px;
  left: -3px;
  width: 306px;
}

.company-mission__copy {
  position: relative;
  z-index: 3;
  width: 704px;
  margin: 4px 0 0 auto;
}

.company-mission__copy h3,
.company-vision__copy h4 {
  font-family: var(--bc-font-mincho);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 32px;
}

.company-mission__copy p,
.company-vision__copy p {
  margin-top: 24px;
  font-size: 1.6rem;
  line-height: 32px;
}

.company-vision {
  position: relative;
  min-height: 701px;
  color: #fff;
  background: var(--bc-green);
  border-radius: 0 80px 0 0;
}

.company-vision__background {
  position: absolute;
  inset: 0;
  overflow: clip;
  border-radius: inherit;
  pointer-events: none;
}

.company-vision__background::before {
  position: absolute;
  top: -200px;
  left: -355px;
  width: 1259px;
  height: 984px;
  background: url("../../assets/images/lower/company-vision-stroke.svg") center / 100% 100% no-repeat;
  content: "";
  transform: scaleX(-1);
  transform-origin: center;
}

.company-vision__inner {
  position: relative;
  z-index: 1;
  min-height: 701px;
  padding-block: 80px;
}

.company-section-heading--light p,
.company-section-heading--light h2,
.company-vision .company-section-lead h3 {
  color: #fff;
}

.company-section-heading--light > span {
  background: rgba(255, 255, 255, 0.45);
}

.company-vision .company-section-word {
  opacity: 0.1;
}

.company-vision .company-section-lead { width: min(504px, 100%); }

.company-vision__copy {
  width: 600px;
  margin-top: 80px;
}

.company-vision__illustration {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.company-vision__arch {
  position: absolute;
  top: 196px;
  left: 876px;
  width: 353px;
  height: 425px;
  overflow: hidden;
  border: 1px solid #a2c3aa;
  border-radius: 240px 240px 24px 24px;
  background: #3b954c;
}

.company-vision__arch::after {
  position: absolute;
  top: 95.6356%;
  left: -8.8319%;
  width: 116.177%;
  height: 38.5343%;
  background: #2a8e3d;
  mask: url("../../assets/images/lower/company-vision-shadow.svg") center / contain no-repeat;
  transform: matrix(0.9750061, -0.2221781, 0.2221781, 0.9750061, 0, 0);
  transform-origin: top left;
  content: "";
}

.company-vision__people {
  position: absolute;
  z-index: 1;
  top: 377px;
  left: 703px;
  width: 326px;
  height: 228px;
  object-fit: contain;
}

.company-values {
  margin-top: 80px;
}

.company-values__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 392px));
  grid-template-rows: auto auto auto;
  gap: 0 24px;
  justify-content: center;
  margin-top: 64px;
}

.company-value-card {
  --bc-kicker-fill: #e7f2ea;
  --bc-kicker-opacity: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: start;
  min-height: 302px;
  padding: 32px;
  background: var(--bc-cream);
  border-radius: 24px 24px 4px 24px;
}

.company-value-card--2,
.company-value-card--4,
.company-value-card--6 {
  --bc-kicker-fill: #f3f9f5;
  background: var(--bc-green-pale);
}
/* Figma: cards 01/03/04/06 have the small corner at bottom left. */
.company-value-card--1,
.company-value-card--3,
.company-value-card--4,
.company-value-card--6 { border-radius: 24px 24px 24px 4px; }
.company-value-card--2,
.company-value-card--5 { margin-top: 40px; }

.company-value-card--4,
.company-value-card--5,
.company-value-card--6 {
  grid-row: 3;
}

.company-value-card__number {
  position: absolute;
  top: 24px;
  left: 24px;
  min-height: 30px;
  padding-top: 6px;
}

.company-value-card__icon {
  display: block;
  flex: none;
  width: 70px;
  height: 70px;
}

.company-value-card__icon img { display: block; width: 100%; height: 100%; }

.company-value-card h3 {
  width: min(288px, 100%);
  margin-top: 8px;
  font-family: var(--bc-font-sans);
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 32px;
  text-align: center;
}

.company-value-card__divider {
  display: block;
  flex: none;
  width: 40px;
  height: 1px;
  margin-top: 16px;
  /* Original Figma stroke geometry, with its viewport fitted to the 1px line. */
  background: url("../../assets/images/lower/company-value-divider.svg") center / 40px 1px no-repeat;
}

.company-value-card p {
  width: 100%;
  margin-top: 15px;
  font-size: 1.6rem;
  line-height: 32px;
}

.company-values__message {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 336px minmax(0, 1fr);
  align-items: center;
  grid-row: 2;
  grid-column: 1 / -1;
  padding-block: 64px;
}

.company-values__message img {
  display: block;
  width: 113px;
  height: 128px;
  object-fit: contain;
}

.company-values__message img:first-child {
  justify-self: end;
  margin-right: 52px;
}

.company-values__message img:last-child {
  justify-self: start;
  margin-left: 19px;
}

.company-values__message p {
  font-family: var(--bc-font-mincho);
  font-size: 2.4rem;
  line-height: 48px;
  text-align: center;
}

.company-values__message strong {
  font-size: 2.4rem;
  font-weight: 400;
}

.company-values__message span {
  color: var(--bc-green);
}

.company-profile {
  display: grid;
  /* The photo bleeds left; the profile ends at the common content rail. */
  grid-template-columns: minmax(0, calc((100% - var(--bc-content)) / 2 + 496px)) minmax(0, 1fr);
  min-height: 695px;
  margin-top: 120px;
}

.company-profile__media {
  grid-area: 1 / 1;
  display: block;
  width: 100%;
  height: 695px;
  overflow: hidden;
  border-radius: 0 302px 0 0;
}

.company-profile__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.company-profile__body {
  grid-area: 1 / 2;
  width: min(648px, calc(100% - 80px));
  margin-left: 80px;
  padding-top: 87.5px;
}

.company-profile__body h2 {
  padding-bottom: 24px;
  box-shadow: inset 0 -1px 0 #e3d4cd;
  font-family: var(--bc-font-mincho);
  font-size: 3.2rem;
  font-weight: 400;
  line-height: 64px;
}

.company-profile__body h2 span {
  color: var(--bc-green);
}

.company-profile__body dl > div {
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr);
  min-height: 80px;
  border-bottom: 1px solid #e3d4cd;
}

.company-profile__body dt,
.company-profile__body dd {
  /* The bottom1px border is included in each48px vertical gutter. */
  padding-block: 24px 23px;
  font-size: 1.6rem;
  line-height: 32px;
}

.company-profile__body dt {
  font-weight: 400;
}

.company-profile__address-break {
  display: none;
}

.company-page > .lower-breadcrumb {
  margin-top: 80px;
}

@media (max-width: 1331px) {
  .company-page__intro,
  .company-mission,
  .company-values {
    margin-top: 64px;
  }

  .company-mission__photos {
    /* Columns narrow together; image widths retain the 352/320/352 composition. */
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 324px));
    align-items: start;
    justify-content: center;
    height: auto;
  }

  .company-mission__photo--care,
  .company-mission__photo--nail {
    position: relative;
    top: auto;
    left: auto;
    grid-row: 1;
    width: calc(100% * 352 / 324);
    height: auto;
    margin-top: calc(100% * 32 / 324);
  }

  .company-mission__photo--care {
    grid-column: 1;
    justify-self: start;
  }

  .company-mission__photo--home {
    position: relative;
    top: auto;
    left: auto;
    grid-area: 1 / 2;
    justify-self: center;
    width: calc(100% * 320 / 324);
    height: auto;
  }

  .company-mission__photo--nail {
    grid-column: 3;
    justify-self: end;
  }

  .company-mission__curve {
    width: min(75vw, 916px);
  }

  .company-mission__signature {
    width: min(25%, 306px);
  }

  .company-mission__copy {
    width: min(72%, 704px);
    margin-top: 40px;
  }

  .company-vision {
    min-height: 0;
    border-radius: 0 64px 0 0;
  }

  .company-vision__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 42%);
    column-gap: 32px;
    min-height: 0;
    padding-block: 64px;
  }

  .company-vision .company-section-heading {
    grid-column: 1 / -1;
  }

  .company-vision .company-section-lead {
    grid-column: 1;
    width: 100%;
  }

  .company-vision__copy {
    grid-column: 1;
    width: 100%;
    margin-top: 48px;
  }

  .company-vision__illustration {
    position: relative;
    inset: auto;
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: end;
    width: min(100%, 520px);
    height: auto;
    aspect-ratio: 520 / 425;
    margin: 0 0 0 auto;
  }

  .company-vision__arch {
    top: 0;
    right: 0;
    left: auto;
    width: 67.8846%;
    height: 100%;
    /* Size the arch to its 353:425 ratio without shrinking the lower 24px corners. */
    border-radius: 50% 50% 24px 24px / 41.5294% 41.5294% 24px 24px;
  }

  .company-vision__people {
    top: 42.5882%;
    left: 0;
    width: 62.6923%;
    height: auto;
  }

  .company-value-card {
    padding-inline: 24px;
  }

  .company-values__message {
    grid-template-columns: 113px minmax(0, 336px) 113px;
    justify-content: center;
    padding-block: 40px;
    gap: 24px;
  }

  .company-values__message img:first-child,
  .company-values__message img:last-child { margin: 0; }

  .company-profile {
    grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
    min-height: 0;
    margin-top: 80px;
  }

  .company-profile__media {
    height: 100%;
    min-height: 560px;
    border-radius: 0 220px 0 0;
  }

  .company-profile__body {
    width: calc(100% - 64px);
    margin-left: 40px;
    padding-top: 24px;
  }

  .company-profile__body dl > div {
    grid-template-columns: 104px minmax(0, 1fr);
  }
}

/* Below 1024px, three readable card columns no longer fit with their gutters. */
@media (max-width: 1023px) {
  .company-section-word {
    top: -36px;
    left: 0;
    font-size: 7.2rem;
    line-height: 1;
  }

  .company-section-lead { width: min(702px, 100%); margin-top: 64px; }

  .company-section-lead h3 { font-size: 2rem; line-height: 40px; }

  .company-mission__copy { width: min(100%, 704px); }

  .company-values__grid {
    grid-template-columns: repeat(2, minmax(0, 392px));
    grid-template-rows: none;
    gap: 24px;
  }

  .company-value-card {
    grid-row: auto;
    margin-top: 0;
  }

  .company-value-card--2,
  .company-value-card--4,
  .company-value-card--6 { margin-top: 32px; }

  .company-values__message {
    grid-row: 1;
    padding-block: 0 24px;
  }
}

/* Keep the authored portrait crop and left-edge placement at tablet widths. */
@media (max-width: 1199px) {
  .company-profile__media {
    align-self: center;
    height: auto;
    min-height: 0;
    aspect-ratio: 604 / 695;
  }

  .company-profile__body {
    align-self: center;
    padding-top: 0;
  }

  .company-profile__body h2 {
    font-size: 2.8rem;
    line-height: 48px;
  }

  .company-profile__body dl > div {
    grid-template-columns: 104px minmax(0, 1fr);
    column-gap: 24px;
    min-height: 0;
  }

  .company-profile__body dt,
  .company-profile__body dd {
    padding-block: 20px 19px;
  }
}

/* A compact table keeps the portrait and information together on tablets. */
@media (min-width: 768px) and (max-width: 959px) {
  .company-profile { grid-template-columns: 40% minmax(0, 1fr); }

  .company-profile__body {
    width: calc(100% - 56px);
    margin-left: 32px;
  }

  .company-profile__body dl > div {
    grid-template-columns: 80px minmax(0, 1fr);
    column-gap: 16px;
  }

  .company-profile__body dt,
  .company-profile__body dd { padding-block: 16px 15px; }

  .company-profile__media {
    /* The authored corner is 302px on a 604 x 695 portrait. */
    border-top-right-radius: 50% 43.4532%;
  }
}

@media (max-width: 767px) {
  .company-profile { grid-template-columns: 1fr; row-gap: 64px; }

  .company-profile__body {
    grid-area: 1 / 1;
    width: min(100% - 48px, 648px);
    margin: 0 auto;
  }

  .company-profile__body h2 { text-align: center; }
  .company-profile__body dl { display: flex; flex-direction: column; }
  .company-profile__business { order: 1; }

  .company-profile__media {
    grid-area: 2 / 1;
    /* This edge-connected portrait fills the viewport; only the table has gutters. */
    width: 100%;
    border-radius: 0 64px 0 0;
  }
  .company-vision__inner { display: block; }

  .company-vision__illustration {
    width: min(82%, 400px);
    margin-top: 40px;
  }

  .company-values__grid { grid-template-columns: minmax(0, 480px); }

  .company-value-card { margin-top: 0; padding-inline: 32px; }

  .company-values__message {
    grid-template-columns: 72px minmax(0, 336px) 72px;
    gap: 16px;
  }

  .company-values__message img {
    width: 72px;
    height: auto;
  }

  .company-values__message p { font-size: 2rem; line-height: 40px; }
}

/* Constrain the table alone, keeping the portrait connected to both screen edges. */
@media (min-width: 600px) and (max-width: 767px) {
  .company-profile__body {
    width: min(100% - 48px, 604px);
  }
}

@media (max-width: 599px) {
  .company-page__intro {
    /* The supplied intro has a 329px text rail at 375px (24px left, 22px right). */
    width: calc(100% - 46px);
    margin-inline: 24px 22px;
    margin-top: 40px;
  }

  .company-page__intro p {
    font-size: 1.5rem;
    line-height: 30px;
    text-align: left;
  }

  .company-section-heading {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding-bottom: 8px;
  }

  .company-section-heading p { line-height: 16px; }

  .company-section-heading > span {
    position: absolute;
    inset: auto 0 0;
    margin: 0;
  }

  .company-section-heading h2 {
    margin-left: 0;
    font-size: 2rem;
  }

  .company-section-lead { margin-top: 72px; }

  .company-section-word {
    top: -56px;
    font-size: 10rem;
    line-height: 100px;
  }

  .company-mission__photos {
    /* This decorative photo collage keeps the SP composition and intrinsic image ratios. */
    display: block;
    width: calc(100% + 48px);
    height: auto;
    aspect-ratio: 375 / 192.64;
    margin: 40px -24px 0;
    overflow: clip;
  }

  .company-mission__photo {
    position: absolute;
    margin: 0;
  }

  .company-mission__photo--care,
  .company-mission__photo--nail {
    top: 8.638%;
    width: 38.9865%;
    margin: 0;
  }

  .company-mission__photo--care { left: -3.4424%; }
  .company-mission__photo--home { top: 0; left: 33.1665%; width: 35.4995%; }
  .company-mission__photo--nail { left: 65.3382%; }

  .company-mission__signature {
    display: block;
    top: 73.7126%;
    bottom: auto;
    left: -1.5844%;
    width: 33.8517%;
  }

  .company-mission__copy { margin-top: 24px; }

  .company-mission__curve { width: 100vw; }

  .company-vision { border-top-right-radius: 40px; }
  .company-vision__inner { padding-block: 80px; }

  .company-vision__background::before {
    top: -119px;
    left: -318.214px;
    width: 902.214px;
    height: 710px;
    background-image: url("../../assets/images/lower/company-vision-stroke-sp.svg");
  }

  .company-vision .company-section-lead h3 br { display: none; }
  .company-vision .company-section-lead .bc-text-unit { display: inline; white-space: normal; }
  .company-vision__copy { margin-top: 32px; }

  .company-vision__illustration {
    width: 100%;
    aspect-ratio: 327 / 273.312;
    margin-top: 40px;
  }

  .company-vision__arch { width: 69.42195%; }
  .company-vision__people { top: 27.0753%; left: 1px; width: 84.70948%; }

  .company-values { margin-top: 80px; }

  .company-value-card { min-height: 0; padding: 32px 20px; }
  .company-value-card:nth-child(odd) { border-radius: 24px 24px 4px 24px; }
  .company-value-card:nth-child(even) { border-radius: 24px 24px 24px 4px; }
  .company-value-card h3 { font-size: 1.6rem; line-height: 28px; }
  .company-value-card p { font-size: 1.5rem; line-height: 30px; }

  .company-values__message {
    position: relative;
    display: block;
    grid-column: 1;
    padding: 0 0 66px;
  }

  .company-values__message img {
    position: absolute;
    bottom: 0;
    width: 80px;
    height: 90px;
  }

  .company-values__message img:first-child { left: -12px; }
  .company-values__message img:last-child { right: -12px; }

  .company-values__message p {
    width: min(280px, 100%);
    margin-inline: auto;
    font-size: 2rem;
    line-height: 40px;
  }

  .company-values__message strong { font-size: inherit; }

  .company-profile__media {
    width: 100%;
    aspect-ratio: 375 / 427;
    border-radius: 0 40px 0 0;
  }

  .company-profile__body h2 {
    font-size: 2.4rem;
    line-height: 36px;
    text-align: center;
  }

  .company-profile__body dl > div {
    grid-template-columns: 67px minmax(0, 1fr);
    column-gap: 20px;
    min-height: 0;
  }

  .company-profile__body dt,
  .company-profile__body dd {
    padding-block: 16px 15px;
    font-size: 1.6rem;
    line-height: 32px;
  }

  .company-profile__address-break {
    display: none;
  }

  .company-page > .lower-breadcrumb { margin-block: 24px 40px; }
}
