/* ==========================================================================
   AIソリューション事業
   ※ 元: Next.js の CSS Modules（SCSS）を素のCSSに変換
   ========================================================================== */

/* --------------------------------------------------------------------------
   .solution-page（元: src/app/services/solution/page.module.scss）
   -------------------------------------------------------------------------- */

.solution-page__hero-title-en {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  font-size: 70px;
  color: var(--color-text-primary);
  line-height: normal;
  margin: 0;
}

@media (max-width: 768px) {
  .solution-page__hero-title-en {
    font-size: 42px;
  }
}

.solution-page__hero-title-ja {
  font-family: var(--font-body);
  font-weight: var(--font-weight-regular);
  font-size: 20px;
  color: var(--color-text-primary);
  margin: 14px 0 28px;
}

@media (max-width: 768px) {
  .solution-page__hero-title-ja {
    font-size: 16px;
    margin: 10px 0 20px;
  }
}

.solution-page__main {
  background-color: var(--color-background);
  min-height: 100vh;
}

/* =========================================== */
/* Hero Section */
/* =========================================== */
.solution-page__hero {
  position: relative;
  min-height: 900px;
  padding-top: var(--header-height);
  overflow: hidden;
}

@media (max-width: 1024px) {
  .solution-page__hero {
    min-height: auto;
    padding-bottom: 60px;
  }
}

@media (max-width: 640px) {
  .solution-page__hero {
    min-height: auto;
    padding-top: 15vw; /* Match mobile header height */
    padding-bottom: 8.33vw; /* 40px / 480px */
  }
}

.solution-page__hero-content {
  position: relative;
  z-index: 2;
  padding: 66px 0 0 var(--padding-x-desktop);
  max-width: var(--max-width);
}

@media (max-width: 1024px) {
  .solution-page__hero-content {
    padding: 40px var(--padding-x-tablet) 0;
  }
}

@media (max-width: 768px) {
  .solution-page__hero-content {
    padding: 30px var(--padding-x-mobile) 0;
  }
}

@media (max-width: 640px) {
  .solution-page__hero-content {
    padding: 5vw 4.79vw 0; /* 24px 23px / 480px */
  }
}

/* heroTitleEn, heroTitleJa スタイルは共通スタイルを使用 */
/* $breakpoint-sm の追加スタイルを上書き */
.solution-page__hero-title-en {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-light);
  font-size: 70px;
  color: var(--color-text-primary);
  line-height: normal;
  margin: 0;
}

@media (max-width: 768px) {
  .solution-page__hero-title-en {
    font-size: 42px;
  }
}

@media (max-width: 640px) {
  .solution-page__hero-title-en {
    font-size: 8.33vw; /* 40px / 480px */
  }
}

.solution-page__hero-title-ja {
  font-family: var(--font-body);
  font-weight: var(--font-weight-regular);
  font-size: 20px;
  color: var(--color-text-primary);
  margin: 14px 0 28px;
}

@media (max-width: 768px) {
  .solution-page__hero-title-ja {
    font-size: 16px;
    margin: 10px 0 20px;
  }
}

@media (max-width: 640px) {
  .solution-page__hero-title-ja {
    font-size: 2.92vw; /* 14px / 480px */
    margin: 2.08vw 0 4.17vw; /* 10px 0 20px / 480px */
  }
}

.solution-page__hero-catchcopy {
  font-family: var(--font-body);
  font-weight: var(--font-weight-regular);
  font-size: 40px;
  line-height: 1.8;
  color: var(--color-text-primary);
  margin: 30px 0 0;
}

@media (max-width: 768px) {
  .solution-page__hero-catchcopy {
    font-size: 24px;
    margin-top: 20px;
  }
}

@media (max-width: 640px) {
  .solution-page__hero-catchcopy {
    font-size: 5.6vw;
    line-height: 1.5;
    margin-top: 1rem;
  }
}

.solution-page__hero-description {
  font-family: var(--font-body);
  font-weight: var(--font-weight-regular);
  font-size: 18px;
  line-height: 1.9;
  color: var(--color-text-primary);
  max-width: 700px;
  margin-top: 65px;
}

@media (max-width: 768px) {
  .solution-page__hero-description {
    font-size: 15px;
    margin-top: 40px;
  }
}

@media (max-width: 640px) {
  .solution-page__hero-description {
    font-size: 3.125vw; /* 15px / 480px */
    line-height: 1.8;
    margin-top: 6.25vw; /* 30px / 480px */
    max-width: 100%;
  }
}

.solution-page__hero-visual {
  position: absolute;
  top: 202px;
  right: 0;
  width: 700px;
  height: 700px;
}

@media (max-width: 1400px) {
  .solution-page__hero-visual {
    width: 50%;
    height: auto;
    aspect-ratio: 1;
  }
}

@media (max-width: 1024px) {
  .solution-page__hero-visual {
    position: relative;
    top: 0;
    width: 100%;
    max-width: 500px;
    margin: 40px auto 0;
    padding: 0 var(--padding-x-tablet);
  }
}

@media (max-width: 768px) {
  .solution-page__hero-visual {
    padding: 0 var(--padding-x-mobile);
    max-width: 400px;
  }
}

@media (max-width: 640px) {
  .solution-page__hero-visual {
    position: relative;
    top: 0;
    width: 100%;
    max-width: none;
    margin: 6.25vw auto 0; /* 30px / 480px */
    padding: 0;
    height: auto;
    aspect-ratio: 1;
  }
}

.solution-page__video-wrapper {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 0;
}

.solution-page__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
