* {
  box-sizing: border-box;
}

:root {
  --brandRed: #DC002F;
  --brandGray: #2E3133;
  font-size: 62.5%;
}

@media screen and (max-width: 767px) {
  :root {
    font-size: calc(1rem / 375 * 100vw);
  }
}

html {
  overflow-x: hidden;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
  color: var(--brandGray);
  font-family: helvetica, arial, meiryo, sans-serif;
  font-size: 1.6rem;
  line-height: 1.5;
  background: #FAFAFA;
  overflow-x: hidden;
}

body:not(.readied) > *:not(noscript) {
  display: none;
}

p {
  margin: 0;
}

a {
  color: #2196F3;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

header {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 6.4rem;
  padding: 1.8rem 2rem;
  background: #FFF;
}

@media screen and (max-width: 767px) {
  header {
    max-width: 100vw;
    height: auto;
    padding: 1.6rem 2rem;
  }
}

.header__container {
  display: flex;
  justify-content: space-between;
  flex-grow: 1;
  max-width: 120rem;
  margin: 0 auto;
}

.header__logo {
  height: 2.8rem;
}

.main {
  flex-grow: 1;
  width: 100%;
  max-width: 124rem;
  margin-inline: auto;
  padding: 4rem 2rem;
}

.main__title {
  margin: 0 0 3.2rem;
  font-size: 3.6rem;
  line-height: 1.2;
}

@media screen and (max-width: 767px) {
  .main__title {
    margin-bottom: 1.6rem;
    font-size: 2.8rem;
  }
}

.main__title-h2 {
  margin-bottom: 3.2rem;
  padding-top: 2.4rem;
  font-size: 2.4rem;
  position: relative;
}

@media screen and (max-width: 767px) {
  .main__title-h2 {
    margin-bottom: 1.5rem;
    padding-top: 2rem;
  }
}

.main__title-h2::before {
  content: "";
  width: 3.2rem;
  height: 0.1rem;
  background: var(--brandRed);
  position: absolute;
  top: 0;
  left: 0;
}

.main__description {
  margin-bottom: 4.8rem;
  padding: 1.6rem;
  border-radius: 0.4rem;
  border: 0.1rem solid #F0F0F0;
  background: #FFF;
  font-size: 1.4rem;
}

.main__body {
}

.flex-container {
  display: flex;
  gap: clamp(0rem, 9.091vw - 7.364rem, 4rem);
}

@media screen and (max-width: 767px) {
  .flex-container {
    flex-direction: column;
    gap: 3.2rem;
  }
}

.flex-box--img {
  flex-shrink: 0;
}

@media screen and (max-width: 767px) {
  .flex-box--img {
    text-align: center;
  }
}

.hero-img {
  width: 36rem;
  height: auto;
  max-width: 100%;
}

p,
.btn-wrap + p {
  margin-top: 3.2rem;
}

@media screen and (max-width: 767px) {
  p,
  .btn-wrap + p {
    margin-top: 2.4rem;
  }
}

p + p {
  margin-top: 1em;
}

.btn-wrap {
  margin-top: 4.8rem;
}

.btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: fit-content;
  min-width: 36.8rem;
  padding: 1.8rem 5.6rem 1.8rem 2.4rem;
  border-radius: 0.4rem;
  background-color: #EA0437;
  background-image: linear-gradient(rgba(34, 34, 34, 0.2), rgba(34, 34, 34, 0.2));
  background-position: 100% 100%;
  background-repeat: no-repeat;
  background-size: 0 100%;
  color: #FFF;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.75;
  position: relative;
  transition: background-size 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

@media screen and (max-width: 767px) {
  .btn {
    width: 100%;
    min-width: 0;
    padding: 1.5rem 5rem 1.5rem 2rem;
    font-size: 1.4rem;
  }
}

.btn:hover {
  text-decoration: none;
  background-position: 0 100%;
  background-size: 100% 100%;
}

.btn::after {
  content: "";
  width: 0.6rem;
  height: 1rem;
  background-image: url("data:image/svg+xml; charset=utf8, %3csvg%20xmlns%3d%22http%3a%2f%2fwww%2ew3%2eorg%2f2000%2fsvg%22%20viewBox%3d%220%200%20100%20100%22%20fill%3d%22%23fff%22%3e%3cpath%20d%3d%22M77%2e5,50L30%2e8,96%2e8l%2d4%2e6%2d4%2e6c%2d2%2e1%2d2%2d2%2e1%2d5%2e3,0%2d7%2e4L61,50L22%2e5,11%2e5l8%2e3%2d8%2e3L77%2e5,50z%22%2f%3e%3c%2fsvg%3e");
  background-position: center;
  background-size: cover;
  position: absolute;
  top: 50%;
  right: 2.4rem;
  transform: translateY(-50%);
}

@media screen and (max-width: 767px) {
  .btn::after {
    right: 2rem;
  }
}

.arrow-link {
  padding-left: 1.8rem;
  color: var(--brandGray);
  font-size: 1.6rem;
  position: relative;
}

.arrow-link::before {
  content: "";
  width: 1rem;
  height: 1rem;
  margin-block: auto;
  background: url(/img/landing_page/ai-assistant/ai-assistant_confirmation-arrow_right_red.svg) no-repeat center / contain;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
}

.switch-contents__content {
  display: none;
}

footer:not(:first-of-type) {
  display: none;
}

.prd-layout-footer {
  padding: 1.6rem 2rem;
  background: rgba(185, 189, 190, 0.00);
  backdrop-filter: blur(30px);
  color: var(--brandGray);
  font-size: 1.3rem;
}

.prd-layout-footer-content {
  max-width: 120rem;
  padding: 0;
}

.prd-layout-footer-list {
  margin: 0;
}

.prd-layout-footer-list > li::before {
  background: var(--brandGray);
}

.prd-layout-footer-list > li > a {
  color: var(--brandGray);
}

@media not screen and (max-width: 767px) {
  .pc-hidden {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .sp-hidden {
    display: none;
  }
}