@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Racing+Sans+One&family=Roboto:wght@500;700&display=swap");
.m-title-top {
  color: #0399de;
  font-size: 15px;
  font-size: calc($size / 16)rem;
  font-weight: bold; }
  .m-title-top::before {
    display: block;
    content: attr(data-en);
    font-size: 45px;
    font-size: calc($size / 16)rem;
    font-family: "Racing Sans One";
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 1; }
    @media screen and (max-width: 640px) {
      .m-title-top::before {
        font-size: 30px;
        font-size: calc($size / 16)rem; } }

.m-textlink {
  display: inline-flex;
  align-items: center;
  color: #0399de;
  font-size: 17px;
  font-size: calc($size / 16)rem;
  font-weight: bold;
  letter-spacing: 0.06em;
  gap: 10px; }
  @media screen and (max-width: 640px) {
    .m-textlink {
      font-size: 15px;
      font-size: calc($size / 16)rem; } }
  .m-textlink:hover {
    text-decoration: none; }
    .m-textlink:hover .m-ico-arrow {
      background-color: #0399de;
      transition: .2s; }
      .m-textlink:hover .m-ico-arrow::before {
        border-top-color: #fff;
        border-right-color: #fff; }

/***********************
Toppage
***********************/
.mv {
  width: 100%;
  position: relative; }
  @media screen and (max-width: 640px) {
    .mv {
      height: auto;
      aspect-ratio: 2800/1420; } }
  .mv .slick-slide img.m-pc-hidden {
    display: none; }
    @media screen and (max-width: 640px) {
      .mv .slick-slide img.m-pc-hidden {
        display: block; } }
  .mv .slick-slide img.m-sp-hidden {
    display: block; }
    @media screen and (max-width: 640px) {
      .mv .slick-slide img.m-sp-hidden {
        display: none; } }
  .mv .slide-arrow {
    position: absolute;
    top: 42%;
    width: 65px;
    background-color: #fff;
    aspect-ratio: 1;
    border-radius: 50%;
    box-shadow: 0px 5px 17px 0px rgba(0, 0, 0, 0.1);
    color: transparent;
    font-size: 0;
    line-height: 1;
    z-index: 1; }
    @media screen and (max-width: 640px) {
      .mv .slide-arrow {
        top: 45%;
        width: 30px; } }
    .mv .slide-arrow::before {
      position: absolute;
      content: "";
      top: 40%;
      width: 12px;
      height: 12px;
      border-top: solid 2px #0399de;
      border-right: solid 2px #0399de; }
      @media screen and (max-width: 640px) {
        .mv .slide-arrow::before {
          width: 7px;
          height: 7px; } }
    .mv .slide-arrow.prev-arrow {
      left: 15px; }
      @media screen and (max-width: 640px) {
        .mv .slide-arrow.prev-arrow {
          left: 10px; } }
      .mv .slide-arrow.prev-arrow::before {
        left: 45%;
        transform: rotate(-135deg); }
    .mv .slide-arrow.next-arrow {
      right: 15px; }
      @media screen and (max-width: 640px) {
        .mv .slide-arrow.next-arrow {
          right: 10px; } }
      .mv .slide-arrow.next-arrow::before {
        left: 37%;
        transform: rotate(45deg); }
  .mv .slick-dots {
    position: absolute;
    bottom: 50px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 3;
    line-height: 1; }
    @media screen and (max-width: 640px) {
      .mv .slick-dots {
        bottom: 10px; } }
    .mv .slick-dots li {
      display: inline-block;
      margin: 0 6px; }
      @media screen and (max-width: 640px) {
        .mv .slick-dots li {
          margin: 0 5px; } }
    .mv .slick-dots button {
      width: 15px;
      height: 15px;
      display: block;
      padding: 0;
      color: transparent;
      outline: none;
      border: unset;
      border-radius: 50px;
      background: #fff;
      cursor: pointer; }
      @media screen and (max-width: 640px) {
        .mv .slick-dots button {
          width: 10px;
          height: 10px; } }
    .mv .slick-dots .slick-active button {
      background: #0399de; }
  .mv__text {
    color: #fff;
    font-size: 55px;
    font-size: calc($size / 16)rem;
    font-weight: bold;
    line-height: calc($lin / $fontsize);
    padding: 10% 0 0 5vw; }
    @media screen and (max-width: 640px) {
      .mv__text {
        font-size: 6vw;
        padding-top: 60px; } }
  .mv-scroll {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: absolute;
    right: 20px;
    bottom: 20px;
    padding-bottom: 130px;
    overflow: hidden; }
    @media screen and (max-width: 640px) {
      .mv-scroll {
        padding-bottom: 50px; } }
    .mv-scroll span {
      writing-mode: vertical-rl;
      color: #eee;
      font-size: 13px;
      font-size: calc($size / 16)rem;
      letter-spacing: 0.09em; }
      @media screen and (max-width: 640px) {
        .mv-scroll span {
          font-size: 10px;
          font-size: calc($size / 16)rem; } }
    .mv-scroll::after {
      content: "";
      position: absolute;
      top: 4em;
      width: 1px;
      height: 100px;
      background: #eee;
      animation: pathmove 1.4s ease-in-out infinite;
      opacity: 0; }
      @media screen and (max-width: 640px) {
        .mv-scroll::after {
          height: 70px; } }
  .mv-slide li a:hover img {
    opacity: 1; }

@keyframes pathmove {
  0% {
    height: 0;
    top: 4em;
    opacity: 0; }
  30% {
    height: 60%;
    opacity: 1; }
  100% {
    height: 0;
    top: 90%;
    opacity: 0; } }
.information {
  font-size: 17px;
  font-size: calc($size / 16)rem;
  line-height: calc($lin / $fontsize);
  letter-spacing: 0.04em;
  text-align: center;
  border: 4px solid #e1e4ed;
  padding: 17px;
  margin-top: 33px; }
  @media screen and (max-width: 640px) {
    .information {
      font-size: 15px;
      font-size: calc($size / 16)rem;
      text-align: left; }
      .information br {
        display: none; } }
  .information.important {
    border-color: #ffd9d9; }
    .information.important p {
      color: #de0000; }
    .information.important .m-h4 {
      text-align: center; }

.pickup {
  padding-block: 50px; }
  @media screen and (max-width: 640px) {
    .pickup {
      padding-block: 50px; } }
  .pickup-slider {
    margin-top: 18px;
    margin-right: -17px; }
    @media screen and (max-width: 640px) {
      .pickup-slider {
        margin-right: -15px; } }
  .pickup-item {
    display: block;
    margin-right: 17px; }
    @media screen and (max-width: 640px) {
      .pickup-item {
        margin-right: 15px; } }
    .pickup-item:hover {
      text-decoration: none; }
      .pickup-item:hover .pickup-item__image img {
        height: 105%;
        opacity: unset; }
    .pickup-item__image {
      aspect-ratio: 765/432;
      overflow: hidden;
      border: 1px solid #e1e4ed; }
      .pickup-item__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: .2s; }
    .pickup-item-heading {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 13px;
      padding-top: 15px; }
      @media screen and (max-width: 640px) {
        .pickup-item-heading {
          gap: 8px; } }
      .pickup-item-heading .time {
        color: #0399de;
        font-size: 15px;
        font-size: calc($size / 16)rem;
        letter-spacing: 0.03em; }
        @media screen and (max-width: 640px) {
          .pickup-item-heading .time {
            font-size: 12px;
            font-size: calc($size / 16)rem; } }
      .pickup-item-heading .category {
        min-width: 112px;
        font-size: 13px;
        font-size: calc($size / 16)rem;
        text-align: center;
        letter-spacing: 0.04em;
        border: 1px solid #c3c5c6;
        border-radius: 3px;
        line-height: 1;
        padding: 3px 5px; }
        @media screen and (max-width: 640px) {
          .pickup-item-heading .category {
            font-size: 12px;
            font-size: calc($size / 16)rem;
            min-width: 70px; } }
    .pickup-item__title {
      font-size: 16px;
      font-size: calc($size / 16)rem;
      line-height: calc($lin / $fontsize);
      letter-spacing: 0.03em;
      padding-top: 4px; }
      @media screen and (max-width: 640px) {
        .pickup-item__title {
          font-size: 14px;
          font-size: calc($size / 16)rem; } }
  .pickup .slick-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    background-color: #fff;
    aspect-ratio: 1;
    border-radius: 50%;
    box-shadow: 0px 5px 17px 0px rgba(0, 0, 0, 0.1);
    color: transparent;
    font-size: 0;
    line-height: 1;
    position: absolute;
    top: 86px;
    z-index: 1; }
    @media screen and (max-width: 640px) {
      .pickup .slick-arrow {
        width: 30px;
        top: 11%; } }
    .pickup .slick-arrow.slick-prev {
      right: 100%;
      transform: translateX(50%); }
      .pickup .slick-arrow.slick-prev::before {
        content: '\f104';
        font-family: "Font Awesome 6 Free", sans-serif;
        font-weight: 900;
        line-height: 1;
        color: #0399de;
        font-size: 20px;
        font-size: calc($size / 16)rem; }
        @media screen and (max-width: 640px) {
          .pickup .slick-arrow.slick-prev::before {
            font-size: 14px;
            font-size: calc($size / 16)rem; } }
    .pickup .slick-arrow.slick-next {
      left: 100%;
      transform: translateX(calc(-50% - 17px)); }
      .pickup .slick-arrow.slick-next::before {
        content: '\f105';
        font-family: "Font Awesome 6 Free", sans-serif;
        font-weight: 900;
        line-height: 1;
        color: #0399de;
        font-size: 20px;
        font-size: calc($size / 16)rem; }
        @media screen and (max-width: 640px) {
          .pickup .slick-arrow.slick-next::before {
            font-size: 14px;
            font-size: calc($size / 16)rem; } }

.news {
  background-color: #f1f2f6;
  padding-block: 50px 80px; }
  @media screen and (max-width: 640px) {
    .news {
      padding-block: 50px; } }
  .news .m-ico-arrow {
    background-color: transparent; }
  .news-heading {
    display: flex;
    justify-content: space-between;
    align-items: center; }
  .news-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 15px; }
    @media screen and (max-width: 640px) {
      .news-list {
        gap: 15px; } }
    .news-list-item {
      display: block; }
      .news-list-item:hover {
        text-decoration: none; }
        .news-list-item:hover .news-list__title {
          text-decoration: underline; }
    .news-list-heading {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 13px; }
      .news-list-heading .time {
        color: #0399de;
        font-size: 15px;
        font-size: calc($size / 16)rem;
        letter-spacing: 0.03em; }
        @media screen and (max-width: 640px) {
          .news-list-heading .time {
            font-size: 12px;
            font-size: calc($size / 16)rem; } }
      .news-list-heading .category {
        min-width: 112px;
        font-size: 13px;
        font-size: calc($size / 16)rem;
        text-align: center;
        letter-spacing: 0.04em;
        border: 1px solid #c3c5c6;
        border-radius: 3px;
        background-color: #fff;
        line-height: 1;
        padding: 3px 5px; }
        @media screen and (max-width: 640px) {
          .news-list-heading .category {
            font-size: 10px;
            font-size: calc($size / 16)rem; } }
    .news-list__title {
      font-size: 16px;
      font-size: calc($size / 16)rem;
      line-height: calc($lin / $fontsize);
      letter-spacing: 0.03em;
      padding-top: 4px; }
      @media screen and (max-width: 640px) {
        .news-list__title {
          font-size: 14px;
          font-size: calc($size / 16)rem; } }
  .news-important {
    background-color: #fff;
    border-radius: 5px;
    padding: 34px 43px 39px;
    margin-top: 50px;
    position: relative; }
    @media screen and (max-width: 640px) {
      .news-important {
        padding: 20px;
        margin-top: 30px; } }
    .news-important__title {
      display: flex;
      align-items: center;
      gap: 14px;
      font-size: 21px;
      font-size: calc($size / 16)rem;
      font-weight: bold;
      letter-spacing: 0.04em; }
      @media screen and (max-width: 640px) {
        .news-important__title {
          font-size: 17px;
          font-size: calc($size / 16)rem;
          gap: 10px; } }
      .news-important__title::before {
        content: '!';
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        line-height: 1;
        width: 24px;
        font-size: 15px;
        aspect-ratio: 1;
        border-right: 50%;
        background-color: #0399de;
        border-radius: 50%;
        padding-left: 3px; }
        @media screen and (max-width: 640px) {
          .news-important__title::before {
            width: 18px;
            font-size: 12px;
            padding-left: 0; } }
    .news-important-list {
      display: flex;
      flex-direction: column;
      gap: 3px;
      padding: 13px 0 0 16px; }
    .news-important-item {
      font-size: 16px;
      font-size: calc($size / 16)rem;
      letter-spacing: 0.04em;
      padding-left: 1.5em;
      position: relative; }
      @media screen and (max-width: 640px) {
        .news-important-item {
          font-size: 14px;
          font-size: calc($size / 16)rem; } }
      .news-important-item::before {
        content: '－';
        color: #0399de;
        position: absolute;
        left: 0; }
    .news-important .m-textlink {
      position: absolute;
      right: 53px;
      bottom: 33px; }
      @media screen and (max-width: 640px) {
        .news-important .m-textlink {
          position: static;
          margin-left: auto;
          margin-top: 20px; } }

.product-container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  background-image: url(../images/product_bg_top.png), url(../images/product_bg_btm.png);
  background-position: top center, bottom center;
  background-repeat: no-repeat;
  background-size: 1200px auto;
  padding-block: 161px 93px;
  padding-left: 49px; }
  @media screen and (max-width: 640px) {
    .product-container {
      flex-direction: column;
      padding-block: 50px;
      background-size: 150% auto;
      padding-left: unset; } }
.product-image {
  flex: 1; }
  @media screen and (max-width: 640px) {
    .product-image {
      margin-top: 30px; } }
.product-title {
  color: #0399de;
  line-height: 1.3; }
  .product-title__en {
    font-family: "Racing Sans One";
    font-size: 30px;
    font-size: calc($size / 16)rem; }
    @media screen and (max-width: 640px) {
      .product-title__en {
        font-size: 36px;
        font-size: calc($size / 16)rem; } }
  .product-title__jp {
    font-size: 38px;
    font-size: calc($size / 16)rem;
    letter-spacing: 0.04em;
    font-weight: bold; }
    @media screen and (max-width: 640px) {
      .product-title__jp {
        font-size: 20px;
        font-size: calc($size / 16)rem; } }
.product__text {
  font-size: 18px;
  font-size: calc($size / 16)rem;
  line-height: calc($lin / $fontsize);
  padding-top: 23px; }
  @media screen and (max-width: 640px) {
    .product__text {
      font-size: 16px;
      font-size: calc($size / 16)rem; } }
.product-buttons {
  display: flex;
  flex-direction: column;
  padding-top: 16px; }
  @media screen and (max-width: 640px) {
    .product-buttons {
      padding-top: 10px; } }
  .product-buttons__button {
    width: 305px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    color: #0399de;
    font-size: 21px;
    font-size: calc($size / 16)rem;
    font-weight: bold;
    letter-spacing: 0.04em;
    border-bottom: 1px solid #0399de;
    padding-block: 15px;
    padding-right: 10px; }
    @media screen and (max-width: 640px) {
      .product-buttons__button {
        width: 100%;
        font-size: 18px;
        font-size: calc($size / 16)rem; } }
    .product-buttons__button:hover {
      text-decoration: none; }
      .product-buttons__button:hover .m-ico-arrow {
        background-color: #0399de;
        transition: .2s; }
        .product-buttons__button:hover .m-ico-arrow::before {
          border-top-color: #fff;
          border-right-color: #fff; }
    .product-buttons__button.--small {
      font-size: 16px;
      font-size: calc($size / 16)rem; }
    .product-buttons__button .m-ico-arrow {
      width: 30px; }
      .product-buttons__button .m-ico-arrow--medium {
        width: 22px; }
.product-menus {
  display: flex;
  flex-wrap: wrap;
  width: min(1276px, 100%);
  margin-inline: auto; }
.product-menu {
  display: block;
  color: #fff;
  line-height: 1.3;
  aspect-ratio: 2558/801;
  background-size: 105% auto;
  background-position: center;
  background-repeat: no-repeat;
  padding: 98px 68px;
  transition: background .2s; }
  @media screen and (max-width: 640px) {
    .product-menu {
      aspect-ratio: 4/1.75;
      padding: 25px 5.35% 0;
      background-size: cover; } }
  .product-menu:hover {
    text-decoration: none;
    background-size: 110%; }
    @media screen and (max-width: 640px) {
      .product-menu:hover {
        background-size: cover; } }
  .product-menu--research {
    width: 100%;
    background-image: url(../images/research_bg.jpg); }
  .product-menu--message {
    width: 100%;
    background-image: url(../images/materiality_bg.jpg); }
  .product-menu--company {
    width: 50%;
    aspect-ratio: 1276/800;
    background-image: url(../images/company_bg.jpg); }
    @media screen and (max-width: 640px) {
      .product-menu--company {
        aspect-ratio: 4 / 3; } }
  .product-menu--onescene {
    width: 50%;
    padding: 0;
    aspect-ratio: 1276 / 800;
    background-image: url(../images/onescene_img.jpg); }
    @media screen and (max-width: 640px) {
      .product-menu--onescene {
        background-image: url(../images/onescene_img_sp.jpg); } }
    .product-menu--onescene img {
      width: 100%;
      height: 100%;
      object-fit: cover; }
  .product-menu__title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 32px;
    font-size: calc($size / 16)rem;
    font-weight: bold;
    font-feature-settings: "palt";
    letter-spacing: 0.02em; }
    @media screen and (max-width: 640px) {
      .product-menu__title {
        font-size: 20px;
        font-size: calc($size / 16)rem; } }
    .product-menu__title .m-ico-arrow {
      border-color: #fff;
      border-width: 1px;
      background-color: transparent; }
      @media screen and (max-width: 640px) {
        .product-menu__title .m-ico-arrow {
          width: 25px; } }
      .product-menu__title .m-ico-arrow::before {
        border-top-color: #fff;
        border-right-color: #fff; }
  .product-menu__en {
    font-size: 17px;
    font-size: calc($size / 16)rem;
    font-family: "Racing Sans One"; }
    @media screen and (max-width: 640px) {
      .product-menu__en {
        font-size: 14px;
        font-size: calc($size / 16)rem; } }

.recruit {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  aspect-ratio: 2800/640;
  background-image: url(../images/recruit_bg.jpg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left center;
  margin-top: 65px;
  padding-right: 80px; }
  @media screen and (max-width: 640px) {
    .recruit {
      justify-content: center;
      aspect-ratio: unset;
      padding: 180px 5.35% 100px;
      background-image: url(../images/recruit_bg_sp.jpg);
      background-size: cover;
      background-position: center center;
      margin-top: 50px; } }
  .recruit-buttons {
    display: flex;
    gap: 18px; }
    @media screen and (max-width: 640px) {
      .recruit-buttons {
        gap: 10px; } }
    .recruit-buttons__button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 58px;
      color: #fff;
      font-size: 20px;
      font-size: calc($size / 16)rem;
      letter-spacing: 0.06em;
      line-height: 1;
      border-radius: 30px;
      border: 2px solid #fff;
      padding: 10px 40px;
      position: relative;
      transition: .2s; }
      @media screen and (max-width: 640px) {
        .recruit-buttons__button {
          font-size: 16px;
          font-size: calc($size / 16)rem;
          height: 45px;
          padding: 0 18px; } }
      .recruit-buttons__button::after {
        content: '';
        display: block;
        width: 8px;
        aspect-ratio: 1;
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
        transform: rotate(45deg);
        border-radius: 1px;
        margin-left: 20px; }
        @media screen and (max-width: 640px) {
          .recruit-buttons__button::after {
            margin-left: 10px; } }
      .recruit-buttons__button:hover {
        color: #111;
        text-decoration: none;
        background-color: #fff; }
        .recruit-buttons__button:hover::after {
          border-top-color: #111;
          border-right-color: #111; }

.banner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
  padding-block: 60px; }
  @media screen and (max-width: 640px) {
    .banner {
      padding-block: 30px; }
      .banner a {
        width: min(244px, calc(50% - 8px)); } }
