/* Purpose section overrides are kept separate so they load after the shared editorial system. */
@font-face {
  font-family: "TekitouPoem";
  src: url("/fonts/TekitouPoem-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --font-handwritten: "TekitouPoem", "Klee One", "Yu Mincho", serif;
}

.philosophy::before,
.people-intro::before,
.purpose-hand-note,
.nikudarake-hand,
.handwritten-accent {
  font-family: var(--font-handwritten) !important;
  font-weight: 400;
  font-synthesis: none;
  opacity: .78;
}

.purpose-hand-note small,
.nikudarake-hand small,
.handwritten-accent small {
  font-family: var(--font-handwritten) !important;
}

.handwritten-accent {
  margin: 34px 0 0;
  color: #676159;
  font-size: clamp(1.22rem, 1.65vw, 1.62rem);
  line-height: 1.62;
  letter-spacing: .045em;
  transform: rotate(-1.5deg);
}

.philosophy::before,
.people-intro::before {
  transform: rotate(-1.5deg) !important;
}

.purpose-detail .purpose-hand-note {
  transform: rotate(-1.5deg);
}

.nikudarake-hand {
  transform: rotate(-2deg);
}

.handwritten-accent small {
  display: block;
  margin-top: 5px;
  font-size: .72em;
  letter-spacing: .04em;
}

.business-heading .business-hand {
  grid-column: 2;
  margin-top: 4px;
  color: #3f4430;
}

.home-people .handwritten-accent,
.recruit-teaser .handwritten-accent {
  width: max-content;
  max-width: 100%;
}

.purpose-detail {
  padding: 96px max(7vw, calc((100vw - 1100px) / 2)) 112px;
  scroll-margin-top: 84px;
}

.purpose-detail::before,
.purpose-detail::after {
  display: none !important;
}

.purpose-detail .purpose-statement {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 54px;
  row-gap: 24px;
  min-height: 0;
  margin: 0;
  align-items: start;
}

.purpose-detail .purpose-label {
  grid-column: 1;
  grid-row: 1;
  margin: 10px 0 0;
  writing-mode: horizontal-tb;
}

.purpose-detail .purpose-title {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: start;
  height: auto;
  margin: 0;
  font-size: clamp(2rem, 3.45vw, 3.55rem);
  line-height: 1.55;
  writing-mode: horizontal-tb;
}

.purpose-detail .purpose-hand-note {
  grid-column: 1;
  grid-row: 2;
  width: 160px;
  margin: 20px 0 0;
  color: #5f5a53;
  font-family: var(--font-handwritten) !important;
  font-size: 1.18rem;
  line-height: 1.65;
  letter-spacing: .03em;
  transform: rotate(-4deg);
}

.purpose-detail .purpose-hand-note small {
  display: block;
  margin-top: 8px;
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-size: .72rem;
  line-height: 1.45;
}

.purpose-detail > p:last-child {
  width: min(650px, calc(100% - 214px));
  margin: 42px 0 0 214px;
}

@media (max-width: 720px) {
  .handwritten-accent {
    margin-top: 26px;
    font-size: 1.12rem;
  }

  .business-heading .business-hand {
    grid-column: 1;
  }

  .purpose-detail {
    padding: 82px 24px 94px;
  }

  .purpose-detail .purpose-statement {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 28px;
  }

  .purpose-detail .purpose-label,
  .purpose-detail .purpose-title,
  .purpose-detail .purpose-hand-note {
    grid-column: 1;
    grid-row: auto;
  }

  .purpose-detail .purpose-title {
    height: auto;
    font-size: clamp(1.65rem, 7.5vw, 2.25rem);
    line-height: 1.65;
    writing-mode: horizontal-tb;
  }

  .purpose-detail .purpose-title span {
    white-space: normal;
  }

  .purpose-detail .purpose-hand-note {
    width: auto;
    margin: 2px 8px 0 auto;
    font-size: 1.06rem;
  }

  .purpose-detail > p:last-child {
    width: 100%;
    margin: 36px 0 0;
  }
}

@media (min-width: 721px) {
  .philosophy,
  .spirit-section {
    grid-template-columns: minmax(0, 1fr);
    gap: 42px;
  }

  .philosophy .section-label,
  .spirit-section .section-label {
    gap: 16px;
  }

  .philosophy .section-label > span,
  .spirit-section .section-label > span {
    flex: none;
    white-space: nowrap;
  }
}
