*,
*::before,
*::after {
  min-width: 0px;
  min-height: 0px;
}

html {
  font-size: 17px;
}

body {
  font-family: var(--font-sans);
  color: var(--ink);
  background-color: var(--snow);
  background: var(--stone);
  letter-spacing: 0.04em;
  line-height: 1.8;
}

#root {
  max-width: 1920px;
  margin: 0 auto;
}

p, h1, h2, h3, h4, h5, h6 {
  margin: 0;
}
h1, h2, h3, h4, h5, h6 {
  font-weight: inherit;
  line-height: inherit;
}

img, iframe {
  max-width: 100%;
}
iframe {
  border: none;
  box-shadow: none;
}

a, a:hover {
  color: var(--ink);
}

[id] {
  scroll-margin-top: 3.75rem;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

button {
  position: relative;
  appearance: none;
  cursor: pointer;
  box-shadow: none;
  border: 0;
  outline: none;
  background: none;
  padding: 0;
}

.list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-left: 1.5rem;
  list-style: disc outside none;

  & > p {
    margin: 0;
    display: list-item;
  }
}

.webgene-pagination {
  & ul {
    list-style: none;
    display: flex;
    justify-content: center;
    gap: 1.25rem;
    padding: 0;
    margin: 0;

    & li {
      & a {
        display: inline-block;
        width: 3rem;
        line-height: 3rem;
        text-align: center;
        background-color: var(--ink);
        color: var(--snow);
        
        &:hover {
          text-decoration: none;
          color: var(--snow);
        }
      }

      &.selected {
        & a {
          background-color: var(--sky);
          &:hover {}
        }
      }
    }
  }
}

.webgene-no-items {
  width: 100%;
  text-align: center;
  font-size: 0.875rem;
}

.thumbnail {
  position: relative;

  &.thumbnail--16x9 {
    padding-top: 56.25%;
  }
  &.thumbnail--3x2 {
    padding-top: 66.6666%;
  }

  & img,
  &:empty::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  &:empty::before {
    content: "";
    background-image: url("/system_panel/uploads/images/ogp.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
  }
}

.article-body {
  & > p {
    margin: 1em 0;
  }

  & > h1,
  & > h2,
  & > h3,
  & > h4,
  & > h5,
  & > h6 {
    margin: 2em 0 1em;
  }

  & > *:first-child {
    margin-top: 0;
  }

  & > *:last-child {
    margin-bottom: 0;
  }

  & a,
  & a:hover {
    color: var(--blue);
    text-decoration: underline;
  }
}

.backdrop-object {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
}


.section-display-text {
  position: relative;
  font-size: 4rem;
  line-height: 1;
  text-decoration: underline;
  font-family: var(--font-sans);
  font-weight: 900;
  background: var(--grad-sky-blue);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  &::after {
    content: "";
    height: 4px;
    width: 100%;
    background: var(--grad-sky-blue);
    position: absolute;
    bottom: 0;
    left: 0;
  }
  
  @media screen and (min-width: 768px) {
    font-size: 5rem;
  }
  @media screen and (min-width: 1024px) {
    font-size: 7.5rem;
  }
  @media screen and (min-width: 1200px) {
    font-size: 8rem;
  }
}

.contact-section {
  & .section-display-text {
    position: absolute;
    top: 5rem;
    left: 3.75%;
  }
}


.button {
  position: relative;
  border-radius: 1rem;
  border: 0;
  box-shadow: 0 4px 8px 0 rgba(0 0 0 / 16%);
  padding: 0.75rem 2rem;
  background-color: var(--ink);
  color: var(--snow);
  font-size: 0.875rem;
  line-height: 1.25;
  font-weight: 500;
  transition: all 200ms ease;
  
  &::after {
    content: "";
    position: absolute;
    background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%0A%3Crect%20width%3D%2224%22%20height%3D%2224%22%20rx%3D%2212%22%20fill%3D%22%23069FE1%22%2F%3E%0A%3Cmask%20id%3D%22mask0_133_948%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%226%22%20y%3D%226%22%20width%3D%2212%22%20height%3D%2212%22%3E%0A%3Crect%20x%3D%226%22%20y%3D%226%22%20width%3D%2212%22%20height%3D%2212%22%20fill%3D%22%23D9D9D9%22%2F%3E%0A%3C%2Fmask%3E%0A%3Cg%20mask%3D%22url(%23mask0_133_948)%22%3E%0A%3Cpath%20d%3D%22M12.9231%2014.8268L12.3961%2014.2846L14.3058%2012.375H8.25V11.625H14.3058L12.3961%209.71535L12.9231%209.1731L15.75%2012L12.9231%2014.8268Z%22%20fill%3D%22white%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    width: 1.5rem;
    height: 1.5rem;
    bottom: -0.375rem;
    right: -0.375rem;
    transition: all 200ms ease;
    transform-origin: center;
  }
  
  &:hover {
    transform: scale(1.1);
    text-decoration: none;
    color: var(--snow);
    &::after {
      transform: scale(0);
    }
  }
  &:active {
    transform: scale(1.05);
  }
  
  &.button--yellow::after {
    background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%0A%3Crect%20width%3D%2224%22%20height%3D%2224%22%20rx%3D%2212%22%20fill%3D%22%23E3B718%22%2F%3E%0A%3Cmask%20id%3D%22mask0_133_948%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%226%22%20y%3D%226%22%20width%3D%2212%22%20height%3D%2212%22%3E%0A%3Crect%20x%3D%226%22%20y%3D%226%22%20width%3D%2212%22%20height%3D%2212%22%20fill%3D%22%23D9D9D9%22%2F%3E%0A%3C%2Fmask%3E%0A%3Cg%20mask%3D%22url(%23mask0_133_948)%22%3E%0A%3Cpath%20d%3D%22M12.9231%2014.8268L12.3961%2014.2846L14.3058%2012.375H8.25V11.625H14.3058L12.3961%209.71535L12.9231%209.1731L15.75%2012L12.9231%2014.8268Z%22%20fill%3D%22white%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E');
  }
}

.news-list, .case-list {
  & .webgene-blog {
    display: grid;
    gap: 2rem;
  }
  @media screen and (min-width: 768px) {
    & .webgene-blog {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    & .webgene-pagination, & .webgene-no-items {
      grid-column: span 2 / span 2;
    }
  }
}
.category-list {
  & .webgene-blog {
    display: grid;
    gap: 0.25rem;
  }
}

.section-title {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-start;

  & .section-title__en {
    position: relative;
    font-size: 2rem;
    padding-bottom: 0.25rem;
    line-height: 1;
    font-weight: 900;
    background: var(--grad-sky-blue);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    &::after {
      content: "";
      height: 4px;
      width: 100%;
      position: absolute;
      bottom: 0;
      left: 0;
      background-image: var(--grad-sky-blue);
    }
  }
  & .section-title__ja {
    padding: 0.5rem 1rem;
    background-color: var(--ink);
    color: var(--snow);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
  }
  
  @media screen and (min-width: 768px) {
    flex-direction: row;
    align-items: baseline;
    gap: 1.5rem;

    & .section-title__en {
      font-size: 2.5rem;
    }
    & .section-title__ja {
      font-size: 1.125rem;
    }
  }
  @media screen and (min-width: 1024px) {
    gap: 2rem;

    & .section-title__en {
      font-size: 3rem;
    }
    & .section-title__ja {
      font-size: 1.25rem;
    }
  }
  @media screen and (min-width: 1200px) {
    & .section-title__en {
      font-size: 3.5rem;
    }
    & .section-title__ja {
      font-size: 1.5rem;
    }
  }
}

.intro-subtle {
  font-family: var(--font-display);
  font-size: 3rem;
  line-height: 1;
  letter-spacing: 0;
  transform: rotate(-9.66deg);
  position: absolute;
  top: -2rem;
  left: -2rem;
  white-space: nowrap;
  
  @media screen and (min-width: 768px) {
    font-size: 3.75rem;
    top: -2.5rem;
    left: -4rem;
  }
  @media screen and (min-width: 1024px) {
    font-size: 5rem;
    top: -3rem;
    left: -5rem;
  }
}

.case-subtle {
  font-family: var(--font-display);
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: 0;
  transform: rotate(-9.66deg);
  position: absolute;
  top: 0.75rem;
  right: -0.5rem;
  white-space: nowrap;
  color: var(--yellow);
  
  @media screen and (min-width: 768px) {
    font-size: 2.5rem;
    top: 1rem;
    right: -0.75rem;
  }
  @media screen and (min-width: 1024px) {
    font-size: 3rem;
    top: 1.125rem;
    right: -1rem;
  }
}

.swiper:not(.swiper-initialized) .swiper-wrapper {
  display: flex;
  overflow: auto;
  
  & .swiper-slide {
    min-width: 100%;
  }
}
.case-list.case-list--in-section {
  @media screen and (min-width: 1024px) {
    padding-top: 2.5rem;
  }
  
  & .webgene-blog {
    @media screen and (min-width: 768px) {
      row-gap: 1rem;
    }
  }
  
  & .webgene-item:nth-child(even){
    @media screen and (min-width: 768px) {
      padding-top: 4rem;
    }
  }
}

.case-list.case-list--in-section .wbgene-item::nth-child(even) {
  @media screen and (min-width: 768px) {
    padding-top: 4rem;
  }
}

.strengths-slider {
  & .swiper-wrapper {
    transition-timing-function: linear;
  }
}

.recruit-slider {
  &:not(.swiper-initialized) .swiper-wrapper .swiper-slide {
    width: 400px;
    min-width: 400px;
  }
}

.cases-bg-dec {
  background-image: linear-gradient(90deg, rgba(73, 252, 255, 0.20) 0%, rgba(62, 168, 255, 0.20) 100%);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(10px);
  width: 78.5%;
  position: absolute;
  top: 9.875rem;
  bottom: 0;
  right: 0
}

.biz-bg-dec {
  background-color: var(--snow);
  width: 84%;
  position: absolute;
  top: 6.25rem;
  bottom: 3.75rem;
  right: 0
}

.flow-list {
  display: grid;
  gap: 2rem;
  
  @media screen and (min-width: 768px) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  @media screen and (min-width: 1440px) {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0;
  }

  & .flow-list__item {
    display: flex;
    flex-direction: column;
    gap: 1rem;

    & .flow-list__title {
      padding: 1.5rem;
      text-align: center;
      font-weight: 900;
      font-size: 1.125rem;
      line-height: 1.25;
    }
    & .flow-list__content {
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }
    & .flow-list__container {
      padding: 1rem;
      background-color: var(--snow);
      background-image: var(--stone);
      display: flex;
      flex-direction: column;
    }
    &:first-child .flow-list__title {
      background-color: #F3FBFF;
    }
    &:nth-child(2) .flow-list__title {
      background-color: #D4F2FE;
    }
    &:nth-child(3) .flow-list__title {
      background-color: #A7E4FF;
    }
    &:nth-child(4) .flow-list__title {
      background-color: #7ED5FA;
    }
    &:nth-child(5) .flow-list__title {
      background-color: #3DBFF7;
    }
    &:nth-child(6) .flow-list__title {
      background-color: #069FE1;
    }
    
    @media screen and (min-width: 768px) {
      & .flow-list__title {
        padding: 1.5rem;
      }
      & .flow-list__container {
        padding: 2rem;
        flex: 1 0 0%;
      }
      & .flow-list__content {
        flex: 1 0 0%;
      }
    }
    @media screen and (min-width: 1440px) {
      gap: 2rem;
      & .flow-list__title {
        position: relative;
        &::before {
          content: "";
          position: absolute;
          top: 0;
          right: -19px;
          width: 20px;
          height: 100%;
          z-index: 1;
        }
      }
      &:first-child {
        & .flow-list__title {
          border-top-right-radius: 0;
          border-bottom-right-radius: 0;
          &::before {
            background: no-repeat center/100% 100% url("/system_panel/uploads/images/flow-polygon--1.png");
          }
        }
        & .flow-list__container {
          border-top-right-radius: 0;
          border-bottom-right-radius: 0;
        }
        & .flow-list__content {
          border-right: 1px dashed var(--sky);
          padding-right: 2rem;
          margin-right: -2rem;
        }
      }
      &:nth-child(2) {
        & .flow-list__title {
          border-radius: 0;
          &::before {
            background: no-repeat center/100% 100% url("/system_panel/uploads/images/flow-polygon--2.png");
          }
        }
        & .flow-list__container {
          border-radius: 0;
        }
        & .flow-list__content {
          border-right: 1px dashed var(--sky);
          padding-right: 2rem;
          margin-right: -2rem;
        }
      }
      &:nth-child(3) {
        & .flow-list__title {
          border-radius: 0;
          &::before {
            background: no-repeat center/100% 100% url("/system_panel/uploads/images/flow-polygon--3.png");
          }
        }
        & .flow-list__container {
          border-radius: 0;
        }
        & .flow-list__content {
          border-right: 1px dashed var(--sky);
          padding-right: 2rem;
          margin-right: -2rem;
        }
      }
      &:nth-child(4) {
        & .flow-list__title {
          border-radius: 0;
          &::before {
            background: no-repeat center/100% 100% url("/system_panel/uploads/images/flow-polygon--4.png");
          }
        }
        & .flow-list__container {
          border-radius: 0;
        }
        & .flow-list__content {
          border-right: 1px dashed var(--sky);
          padding-right: 2rem;
          margin-right: -2rem;
        }
      }
      &:nth-child(5) {
        & .flow-list__title {
          border-radius: 0;
          color: var(--snow);
          &::before {
            background: no-repeat center/100% 100% url("/system_panel/uploads/images/flow-polygon--5.png");
          }
        }
        & .flow-list__container {
          border-radius: 0;
        }
        & .flow-list__content {
          border-right: 1px dashed var(--sky);
          padding-right: 2rem;
          margin-right: -2rem;
        }
      }
      &:nth-child(6) {
        & .flow-list__title {
          border-radius: 0;
          color: var(--snow);
          &::before {
            background: no-repeat center/100% 100% url("/system_panel/uploads/images/flow-polygon--6.png");
          }
        }
        & .flow-list__container {
          border-top-left-radius: 0;
          border-bottom-left-radius: 0;
        }
      }
    }
  }
}




