:root {
  color-scheme: light;
  background: #e9e9e9;
  color: #151515;
  font-family: system-ui, sans-serif;
}
body { margin: 0; }
main, footer {
  max-width: 1080px;
  margin-inline: auto;
  background: #faf8f3;
}
.panel { position: relative; }
.panel img {
  display: block;
  width: 100%;
  height: auto;
}
footer {
  box-sizing: border-box;
  background: #171717;
  color: #fff;
  text-align: center;
  padding: 1.3rem 1rem;
  font-size: .8rem;
  letter-spacing: .06em;
}

.editorial {
  padding: clamp(28px, 7vw, 64px) clamp(24px, 7vw, 64px);
  font-family: "Hiragino Sans", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  font-weight: 400;
  line-height: 1.8;
}
.editorial h2, .editorial h3 {
  word-break: auto-phrase;
  text-wrap: balance;
  line-break: strict;
  line-height: 1.4;
}
.editorial h2 {
  margin: .5em 0 1em;
  font-size: clamp(26px, 4vw, 36px);
  font-weight: 600;
}
.editorial h3 { margin: 0; font-size: 1.18rem; font-weight: 600; }
.eyebrow, .role { font-size: .875rem; font-weight: 600; }
.eyebrow { margin: 0; letter-spacing: .1em; }
.role { margin: .3em 0; }
.panel .team-logo { width: 148px; margin: 0 0 24px; }
.company-profile {
  margin-bottom: 24px;
  padding: clamp(20px, 4vw, 32px);
  background: #fff;
}
.member { padding-block: 20px; border-top: 1px solid #d5d5d5; }
.member p:last-child { margin-bottom: 0; }
.member-with-photo { display: grid; grid-template-columns: minmax(70px, 25%) 1fr; gap: 18px; align-items: start; }
.member-with-photo img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 25%; }
.text-action { color: inherit; text-underline-offset: .22em; font-weight: 600; }
.hero h1, .closing h2 {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 600;
}
.hero h1 {
  font-size: clamp(30px, 6vw, 44px);
  line-height: 1.55;
  margin: .5em 0 .8em;
}
.narrow-break { display: none; }
@media (max-width: 540px) { .narrow-break { display: initial; } }
.eyebrow { color: #435167; }
.film-still {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: #172638;
}
.work-player {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  background: #172638;
}
.detail-list {
  margin: 1.25rem 0 0;
  padding-left: 1.4rem;
}
.detail-list li { padding-block: .5rem; }
.detail-list li + li { border-top: 1px solid #dedbd5; }
.steps { list-style-type: decimal-leading-zero; }
.small-note { font-size: .875rem; }
.button {
  display: inline-flex;
  gap: .6em;
  align-items: center;
  padding: .7em 1.1em;
  box-sizing: border-box;
  border: 1px solid #172638;
  background: #172638;
  color: #fff;
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
}
.button-secondary { background: transparent; color: #172638; }
.button:focus-visible { outline: 2px solid #172638; outline-offset: 3px; }
.actions { display: flex; flex-wrap: wrap; gap: .7rem; }

.hero {
  display: grid;
  gap: 1.5rem;
  align-items: center;
}
.hero-copy p:not(.eyebrow) { margin-bottom: 1.25rem; }
.works {
  background: #172638;
  color: #fff;
}
.works h2 { font-size: clamp(30px, 5vw, 44px); }
.works .eyebrow { color: #c3d1dd; }
.works .button { background: #f4efe5; color: #172638; border-color: #f4efe5; }
.works .button:focus-visible { outline-color: #fff; }
.featured-film { margin: 0 0 clamp(24px, 5vw, 48px); }
.featured-film figcaption {
  padding: .85rem 0 1rem;
  color: #e2e8ee;
  border-bottom: 1px solid #506074;
}
.featured-film strong { color: #fff; }
.challenge .film-still { aspect-ratio: 2.9 / 1; object-position: center 57%; }
.services {
  display: grid;
  gap: 2rem;
}
.service-card {
  min-width: 0;
  padding: clamp(16px, 3vw, 28px);
  border: 1px solid #dedbd5;
  background: #fff;
}
.service-card h2 { font-size: clamp(23px, 3.4vw, 29px); }
.service-card .detail-list { font-size: .95rem; }
.social, .process {
  display: grid;
  grid-template-columns: minmax(90px, 34%) 1fr;
  column-gap: clamp(16px, 4vw, 36px);
  align-items: start;
}
.social .eyebrow, .social h2, .process .eyebrow, .process h2 { grid-column: 1 / -1; }
.social .film-still, .process .film-still { aspect-ratio: 3 / 4; }
.social .detail-list, .process .detail-list { margin-top: 0; }
.social .small-note { grid-column: 1 / -1; }
.athlete .film-still, .closing .film-still { aspect-ratio: 2.35 / 1; }
@media (min-width: 720px) {
  .hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(24px, 4vw, 56px); }
  .hero .film-still { aspect-ratio: 5 / 4; }
  .hero h1 { font-size: clamp(30px, 3.6vw, 40px); }
  .services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .challenge .detail-list { columns: 3; column-gap: 2rem; padding-left: 1rem; }
  .challenge .detail-list li { break-inside: avoid; border-top: 0; }
}
