/* =========================================================
   Figma lower hero
   benefit / career / data / message
   1440px: 480px copy + 960px image / 470px high
========================================================= */

.lower-page__hero-title-line {
  display: flex;
  align-items: center;
  width: max-content;
}

.lower-page__hero-title-line--keyword {
  margin: 0;
}

.lower-page__hero-circle-text {
  display: inline-flex;
  align-items: center;
  color: var(--color-accent);
}

.lower-page__hero-circle-text i {
  display: grid;
  place-items: center;

  border: 2px solid var(--color-text-main);
  border-radius: 50%;
  color: var(--color-accent);
  font-style: normal;
  line-height: 1;
}

.lower-page__hero-circle-text i > span {
  display: block;
  font-family: "Zen Maru Gothic", sans-serif;

  font-weight: 400;
  line-height: 1;
}

/* Copy enters as one block; only the circled characters appear afterwards. */
.js-lower-hero-staged {
  opacity: 0;
  transform: translateX(-52px);
}

.js-lower-hero-staged .lower-page__hero-circle-text i > span {
  opacity: 0;
  transform: translateX(-10px) scale(0.88);
}

.js-lower-hero-staged.is-visible {
  animation: lowerHeroSlideIn 0.75s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.js-lower-hero-staged.is-visible .lower-page__hero-circle-text i > span {
  animation: lowerHeroCharIn 0.28s ease forwards;
}

.js-lower-hero-staged.is-visible
  .lower-page__hero-circle-text
  i:nth-child(1)
  > span {
  animation-delay: 0.62s;
}
.js-lower-hero-staged.is-visible
  .lower-page__hero-circle-text
  i:nth-child(2)
  > span {
  animation-delay: 0.76s;
}
.js-lower-hero-staged.is-visible
  .lower-page__hero-circle-text
  i:nth-child(3)
  > span {
  animation-delay: 0.9s;
}
.js-lower-hero-staged.is-visible
  .lower-page__hero-circle-text
  i:nth-child(4)
  > span {
  animation-delay: 1.04s;
}

@keyframes lowerHeroSlideIn {
  from {
    opacity: 0;
    transform: translateX(-52px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes lowerHeroCharIn {
  from {
    opacity: 0;
    transform: translateX(-10px) scale(0.88);
  }
  to {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

/* data: title sequence first, then the lead simply fades in. */
.js-data-hero-lead {
  opacity: 0;
}

.js-data-hero-lead.is-visible {
  animation: lowerHeroLeadFadeIn 0.55s ease-out 1.18s forwards;
}

@keyframes lowerHeroLeadFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@media (min-width: 768px) {
  .benefit-page .lower-page__hero-inner,
  .career-page__hero .lower-page__hero-inner,
  .data-page .lower-page__hero-inner,
  .message-page .lower-page__hero-inner {
    grid-template-columns: 33.3333% minmax(0, 66.6667%);
    min-height: 0;
    background: var(--color-gray0);
    overflow: visible;
    align-items: stretch;
  }

  .benefit-page .lower-page__hero-copy,
  .career-page__hero .lower-page__hero-copy,
  .data-page .lower-page__hero-copy,
  .message-page .lower-page__hero-copy {
    position: relative;
    z-index: 2;
    justify-content: flex-start;
    align-items: center;
    overflow: visible;
    min-width: 0;
    padding: 0 0 0 clamp(18px, calc(6.7056vw - 30px), 82px);
    background: var(--color-gray0);
  }

  .benefit-page .lower-page__hero-title,
  .career-page__hero .lower-page__hero-title,
  .data-page .lower-page__hero-title,
  .message-page .lower-page__hero-title {
    position: relative;
    z-index: 2;
    width: 397px;
    max-width: none;
    color: var(--color-text-main);
    font-family: "Zen Maru Gothic", sans-serif;
    font-size: clamp(60px, 5.5556vw, 96px);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0;
  }

  .data-page .lower-page__hero-title {
    font-size: clamp(54px, 5vw, 86px);
  }

  .benefit-page .lower-page__hero-title-line:first-child em,
  .career-page__hero .lower-page__hero-title-line:first-child em,
  .data-page .lower-page__hero-title-line:first-child em,
  .message-page .lower-page__hero-title-line:first-child em {
    color: var(--color-accent);
  }

  .benefit-page .lower-page__hero-media,
  .career-page__hero .lower-page__hero-media,
  .data-page .lower-page__hero-media,
  .message-page .lower-page__hero-media {
    position: relative;
    z-index: 1;
    min-width: 0;
    min-height: 0;
    height: auto;
    aspect-ratio: 960 / 470;
  }

  .benefit-page .lower-page__hero-media img,
  .career-page__hero .lower-page__hero-media img,
  .data-page .lower-page__hero-media img,
  .message-page .lower-page__hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .data-page .lower-page__hero-copy {
    padding-top: 0;
  }

  .data-page__hero-copy-inner {
    width: 397px;
  }
}

/* 1440px is the design baseline.
   Above and below it, the media and type scale while preserving the same proportions. */
@media (min-width: 1101px) {
  .benefit-page .lower-page__hero-media picture,
  .career-page__hero .lower-page__hero-media picture,
  .data-page .lower-page__hero-media picture,
  .message-page .lower-page__hero-media picture {
    display: block;
    width: 100%;
    height: 100%;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  /* Keep the same 1440px composition all the way down to the SP breakpoint.
     The previous 44/56 split created too much empty space on the left and
     made the image noticeably smaller around 1100px and below. */
  .benefit-page .lower-page__hero-inner,
  .career-page__hero .lower-page__hero-inner,
  .data-page .lower-page__hero-inner,
  .message-page .lower-page__hero-inner {
    grid-template-columns: 33.3333% minmax(0, 66.6667%);
  }

  .benefit-page .lower-page__hero-copy,
  .career-page__hero .lower-page__hero-copy,
  .data-page .lower-page__hero-copy,
  .message-page .lower-page__hero-copy {
    padding-left: 6.7056vw;
  }

  .benefit-page .lower-page__hero-title,
  .career-page__hero .lower-page__hero-title,
  .message-page .lower-page__hero-title {
    width: 27.5694vw;
    max-width: none;
    font-size: 5.5556vw;
  }

  .data-page .lower-page__hero-title {
    width: 27.5694vw;
    max-width: none;
    font-size: 5vw;
  }

  .data-page__hero-copy-inner {
    width: 27.5694vw;
  }

  .data-page__hero-lead {
    margin-top: 1.25vw;
    font-size: clamp(12px, 1.1111vw, 16px);
  }
}

@media (max-width: 767px) {
  .benefit-page .lower-page__hero-inner,
  .career-page__hero .lower-page__hero-inner,
  .data-page .lower-page__hero-inner,
  .message-page .lower-page__hero-inner {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--color-gray0);
  }

  .benefit-page .lower-page__hero-copy,
  .career-page__hero .lower-page__hero-copy,
  .data-page .lower-page__hero-copy,
  .message-page .lower-page__hero-copy {
    min-height: 0;
    padding: 38px 28px 34px;
    background: var(--color-gray0);
  }

  .benefit-page .lower-page__hero-title,
  .career-page__hero .lower-page__hero-title,
  .data-page .lower-page__hero-title,
  .message-page .lower-page__hero-title {
    width: max-content;
    max-width: 100%;
    font-size: 48px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0;
  }

  .lower-page__hero-circle-text i {
    border-width: 2px;
  }

  .benefit-page .lower-page__hero-media,
  .message-page .lower-page__hero-media,
  .data-page .lower-page__hero-media {
    min-height: 0;
    height: auto;
  }

  .benefit-page .lower-page__hero-media img,
  .message-page .lower-page__hero-media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 390 / 244;
    object-fit: cover;
  }

  .data-page .lower-page__hero-copy {
    padding-bottom: 20px;
  }

  .data-page__hero-copy-inner {
    width: 100%;
  }

  .data-page__hero-lead {
    margin-top: 18px;
  }

  .data-page .lower-page__hero-media picture,
  .data-page .lower-page__hero-media img {
    display: block;
    width: 100%;
  }

  .data-page .lower-page__hero-media img {
    height: auto;
    aspect-ratio: 390 / 282;
    object-fit: cover;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js-lower-hero-staged,
  .js-lower-hero-staged.is-visible,
  .js-lower-hero-staged .lower-page__hero-circle-text i > span,
  .js-lower-hero-staged.is-visible .lower-page__hero-circle-text i > span,
  .js-data-hero-lead,
  .js-data-hero-lead.is-visible {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

@media (min-width: 768px) {
  .data-page__hero-lead {
    margin-top: 18px;
    font-size: 16px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.06em;
  }
}

@media (max-width: 767px) {
  .data-page__hero-lead {
    font-size: 16px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.06em;
  }
}

@media (min-width: 1200px) {
  .lower-page__hero-circle-text i {
    /* The lower-hero rings are smaller than the TOP hero rings,
       so 6px gives the same perceived stroke weight as TOP's 8px. */
    border-width: 6px;
  }
}

@media (max-width: 1199px) {
  .lower-page__hero-circle-text i {
    border-width: clamp(4px, 0.78vw, 6px);
  }
}

.lower-page__hero-circle-text i,
.lower-page__hero-circle-text i > span {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 900;
}

.lower-page__hero-circle-text {
  letter-spacing: 0;
}

.lower-page__hero-circle-text i {
  box-sizing: border-box;
  flex: 0 0 1.12em;
  width: 1.12em;
  height: 1.12em;
  margin-right: 0;
  margin-left: -0.06em;
}

.lower-page__hero-circle-text i:first-child {
  margin-left: 0;
}

.lower-page__hero-circle-text i > span {
  font-size: 0.7em;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .benefit-page .lower-page__hero-inner,
  .career-page__hero .lower-page__hero-inner,
  .data-page .lower-page__hero-inner,
  .message-page .lower-page__hero-inner {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--color-gray0);
  }

  .benefit-page .lower-page__hero-copy,
  .career-page__hero .lower-page__hero-copy,
  .data-page .lower-page__hero-copy,
  .message-page .lower-page__hero-copy {
    min-height: 0;
    padding: 52px clamp(48px, 7.3vw, 72px) 64px;
    background: var(--color-gray0);
  }

  .benefit-page .lower-page__hero-title,
  .career-page__hero .lower-page__hero-title,
  .message-page .lower-page__hero-title {
    width: max-content;
    max-width: 100%;
    font-size: clamp(58px, 7.8vw, 68px);
    line-height: 1.1;
  }

  .data-page .lower-page__hero-title {
    width: max-content;
    max-width: 100%;
    font-size: clamp(54px, 7.2vw, 64px);
    line-height: 1.1;
  }

  .data-page__hero-copy-inner {
    width: 100%;
  }

  .data-page__hero-lead {
    margin-top: 20px;
  }

  .benefit-page .lower-page__hero-media,
  .career-page__hero .lower-page__hero-media,
  .data-page .lower-page__hero-media,
  .message-page .lower-page__hero-media {
    min-height: 0;
    height: auto;
    aspect-ratio: auto;
  }

  .benefit-page .lower-page__hero-media picture,
  .career-page__hero .lower-page__hero-media picture,
  .data-page .lower-page__hero-media picture,
  .message-page .lower-page__hero-media picture,
  .benefit-page .lower-page__hero-media img,
  .career-page__hero .lower-page__hero-media img,
  .data-page .lower-page__hero-media img,
  .message-page .lower-page__hero-media img {
    display: block;
    width: 100%;
  }

  .benefit-page .lower-page__hero-media img,
  .career-page__hero .lower-page__hero-media img,
  .message-page .lower-page__hero-media img {
    height: auto;
    aspect-ratio: 768 / 360;
    object-fit: cover;
  }

  .data-page .lower-page__hero-media img {
    height: auto;
    aspect-ratio: 768 / 430;
    object-fit: cover;
  }
}
