@charset "utf-8";

/* reset css */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

table,
tbody,
td,
tfoot,
th,
thead,
tr {
  vertical-align: middle;
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  border: none;
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  font-weight: normal;
  width: 100%;
  height: 100%;
  scrollbar-gutter: stable;
}

body {
  font-size: 2.0rem;
  font-family: 'Noto Sans JP', sans-serif;
  color: #292929;
  line-height: 1.8;
  text-size-adjust: none;
  -webkit-text-size-adjust: none;

  overflow-x: hidden;
}

p {
  color: #292929;
  letter-spacing: 0.08em;
}

a {
  color: #292929;
  display: inline-block;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: all .5s;
}

span {
  display: inline-block;
  letter-spacing: 0.08em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
}

img {
  vertical-align: bottom;
  max-width: 100%;
}

.sp-none {
  @media screen and (max-width: 767px) {
    display: none !important;
  }
}

.pc-none {
  @media (min-width: 768px) {
    display: none !important;
  }
}


@media screen and (max-width: 767px) {
  body {
    font-size: 1.6rem;
  }

  img {
    width: 100%;
    height: 100%;
  }
}


/* layler */
.content {
  position: relative;
  padding-bottom: 20px;

  &.is-megamenu-open {
    overscroll-behavior: none;
    overflow: hidden;
  }

}

.main {
  margin-top: clamp(116px, 7.5521vw, 145px);
}

@media screen and (max-width: 767px) {
  .main {
    max-width: 100%;
    margin-top: 92px;
  }
}

/* component */
/* c-heading */
.c-heading {
  font-size: 6.0rem;
  line-height: 1;
  letter-spacing: .04em;
  font-family: "Roboto", sans-serif;
  font-weight: 500;
  position: relative;
  margin: 0;
  padding: 0;
  border: none;

  .sub {
    display: block;
    font-size: 2.4rem;
    letter-spacing: .08em;
    margin-bottom: 16px;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
  }

  &.white {
    color: #ffffff;
  }
  
  &.black {
    color: #000000;
  }
}

@media screen and (max-width: 1279px) {
  .c-heading {
    font-size: 5.0rem;

    .sub {
      font-size: 2.2rem;
    }
  }
}

@media screen and (max-width: 767px) {
  .c-heading {
    font-size: 4.0rem;

    .sub {
      font-size: 1.6rem;
      margin-bottom: 8px;
    }
  }
}

/* page top */
.pagetop {
  position: fixed;
  width: 80px;
  height: 80px;
  right: 60px;
  bottom: 80px;
  display: inline-block;
  overflow: hidden;
  transition: background-color .5s, border-color .5s;
  cursor: pointer;
  z-index: 10;

  & a {
    display: inline-block;
    background: #ffffff;
    border-radius: 16px;
    border: 2px solid #0061b4;
    overflow: hidden;
    text-indent: 100%;
    white-space: nowrap;
    width: 100%;
    height: 100%;

    &::before,
    &::after {
      content: '';
      position: absolute;
      overflow: hidden;
      inset: 0;
      animation-duration: .5s;
      animation-fill-mode: forwards;
      background-repeat: no-repeat;
      background-position: center;
      background-size: 20px;
    }

    &::before {
      background-image: url(/content/100862120.svg);
      -webkit-transform: translateY(0) rotate(-90deg);
      transform: translateY(0) rotate(-90deg);
    }

    &::after {
      background-image: url(/content/100862121.svg);
      -webkit-transform: translateY(-100%) rotate(-90deg);
      transform: translateY(-100%) rotate(-90deg);
    }

    @media (hover: hover) {
      &:hover {
        background: #0061b4;
        border: 2px solid #ffffff;
  
        &::before {
          animation: arrowTop .5s forwards;
        }
      
        &::after {
          animation: arrowUnder .5s .2s forwards;
        }
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .pagetop {
    width: 40px;
    height: 40px;
    right: 24px;
    bottom: 40px;
    & a {
      border-radius: 12px;

      &::before,
      &::after {
        background-size: 13px;
      }
    }
  }
}

/* 上矢印のアニメーション */
@keyframes arrowUnder {
  0% {
    -webkit-transform: translateY(100%) rotate(-90deg);
    transform: translateY(100%) rotate(-90deg);
  }

  100% {
    -webkit-transform: translateY(0) rotate(-90deg);
    transform: translateY(0) rotate(-90deg);
  }
}

@keyframes arrowTop {
  0% {
    -webkit-transform: translateY(0) rotate(-90deg);
    transform: translateY(0) rotate(-90deg);
  }

  100% {
    -webkit-transform: translateY(-100%) rotate(-90deg);
    transform: translateY(-100%) rotate(-90deg);
  }
}

.content-threecolumns {
  .content-threecolumns__inner {
    max-width: 1600px;
    margin-inline: auto;
  }

  .content-threecolumns__heading {
    margin-bottom: 30px;
  }

  .content-threecolumns__content {
    --gap: clamp(72px, 9.73cqi, 144px);

    padding-inline: 60px;
    padding-inline: clamp(20px, 3.125vw, 60px);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto auto;
    align-items: stretch;
    gap: var(--gap);
    row-gap: 0;
  }

  .content-threecolumns__block {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
  }

  .content-threecolumns__block:nth-of-type(n + 2) {
    position: relative;
    &::before {
      content: '';
      position: absolute;
      display: inline-block;
      background: rgba(255, 255, 255, .2);
      width: 2px;
      height: 330px;
      left: calc(var(--gap) / -2);
      bottom: 20px;
    }
  }

  .content-threecolumns__box {
    max-width: 398px;
  }

  .content-threecolumns__thumbnail {
    margin-inline: auto;
  }

  .content-threecolumns__label {
    color: #ffffff;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    margin-top: 32px;
  }

  .content-threecolumns__text {
    color: #ffffff;
    letter-spacing: 0.04em;
    margin-top: 24px;
  }

  .content-threecolumns__cta {
    margin-top: 60px;
    display: flex;
    justify-content: center;
  }

  .content-threecolumns__cta-link {
    display: inline-flex;
    gap: 48px;
    align-items: center;
    background: #ffffff;
    padding: 25px 25px 25px 60px;
    border-radius: 16px;


    @media (hover: hover) {
      &:hover {
        .content-threecolumns__cta-arrow {
          background: #ffffff;
          border: 2px solid #0061b4;
    
          &::before {
            -webkit-animation-name: arrowRight;
            animation-name: arrowRight;
            animation-delay: 0s;
          }
    
          &::after {
            -webkit-animation-name: arrowLeft;
            animation-name: arrowLeft;
            animation-delay: 0.2s;
          }
        }
      }
    }
  }

  .content-threecolumns__cta-label {
    display: inline-block;
    color: #0061b4;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
    transition: all .5s;
  }

  .content-threecolumns__cta-arrow {
    display: inline-block;
    background: #0061b4;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    border: 2px solid #0061b4;
    overflow: hidden;
    position: relative;
    transition: all .5s;

    &::before,
    &::after {
      content: '';
      display: inline-block;
      position: absolute;
      width: 100%;
      height: 100%;
      animation-duration: .5s;
      animation-fill-mode: forwards;
    }

    &::before {
      background: url(/content/100862121.svg) no-repeat  50% 50%/18px;
    }

    &::after {
      background: url(/content/100862120.svg) no-repeat  50% 50%/18px;
      -webkit-transform: translateX(-100%);
      transform: translateX(-100%);
    }
  }
}

@media screen and (max-width: 1439px) {
  .content-threecolumns {
    .content-threecolumns__label {
      font-size: 2.8rem;
    }

    .content-threecolumns__text {
      font-size: 1.8rem;
    }

    .content-threecolumns__cta-label {
      font-size: 2.2rem;
    }
  }
}

@media screen and (max-width: 1279px) {
  .content-threecolumns {
    .content-threecolumns__heading {
      margin-bottom: 50px;
    }

    .content-threecolumns__label {
      font-size: 2.6rem;
      margin-top: 25px;
    }

    .content-threecolumns__content {
      --gap: clamp(72px, 9cqi, 144px);
    }

    .content-threecolumns__text {
      margin-top: 19px;
    }
  }
}

@media screen and (max-width: 1024px) {
  .content-threecolumns {
    .content-threecolumns__inner {
      max-width: 100%;
      width: 100%;
      padding-inline: 16px;
    }

    .content-threecolumns__content {
      display: flex;
      flex-direction: column;
      align-items: unset;
      gap: 40px;
      padding-inline: 0;
    }

    .content-threecolumns__block {
      display: flex;
      flex-direction: column;
    }

    .content-threecolumns__block:nth-of-type(n + 2) {
      &::before {
        content: none;
      }
    }

    .content-threecolumns__label {
      line-height: 1;
      margin-top: 32px;
    }
    
    .content-threecolumns__cta-link {
      padding: 14px 25px 14px 60px;
    }

    .content-threecolumns__cta-label {
      line-height: 1.2  ;
    }

    .content-threecolumns__text {
      margin-top: 17px;
      line-height: 1.8;
    }
  }
}

@media screen and (max-width: 767px) {
  .content-threecolumns {
    .content-threecolumns__inner {
      padding-inline: 32px;
    }

    .content-threecolumns__heading {
      color: #292929;
      margin-bottom: 26px;
    }

    .content-threecolumns__content {
      padding-inline: 16px;
      margin-top: -5px;
    }

    .content-threecolumns__thumbnail {
      width: 180px;
    }

    .content-threecolumns__cta {
      width: 297px;
      margin-inline: auto;
    }

    .content-threecolumns__cta-link {
      width: 100%;
      justify-content: space-between;
      padding: 15px 16px 15px 70px;
    }

    .content-threecolumns__label {
      font-size: 2.4rem;
    }

    .content-threecolumns__text {
      font-size: 1.6rem;
      margin-top: 20px;
    }

    .content-threecolumns__cta-label {
      font-size: 1.8rem;
      line-height: 1.4;
      text-align: center;
    }
  }
}

@media screen and (max-width: 360px) {
  .content-threecolumns {
    .content-threecolumns__cta-link {
      padding-left: 60px;
    }
  }
  
  .content-threecolumns__cta {
    width: 100%;
  }
}

/* .c-linkarea-arrow  */
.c-linkarea-arrow {
  display: inline-block;
  background: #0061b4;
  width: 48px;
  height: 48px;
  border-radius: 16px;
  border: 2px solid #0061b4;
  overflow: hidden;
  position: relative;
  transition:
    background-color .5s,
    border-color .5s;

  &::before,
  &::after {
    content: '';
    position: absolute;
    inset: 0;
    animation-duration: .5s;
    animation-fill-mode: forwards;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px;
  }

  &::before {
    background-image: url(/content/100862121.svg);
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  &::after {
    background-image: url(/content/100862120.svg);
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }

  @media (hover: hover) {
    &:hover {
      background: #ffffff;
      border-color: #0061b4;
  
      &::before {
        animation: arrowRight .5s forwards;
      }
    
      &::after {
        animation: arrowLeft .5s .2s forwards;
      }
    }
  }
}

@media screen and (max-width: 1439px) {
  .c-linkarea-arrow {
    width: 38px;
    height: 38px;
    border-radius: 12px;
  }
}

@media screen and (max-width: 767px) {
  .c-linkarea-arrow {
    width: 30px;
    height: 30px;
    border-radius: 8px;

    &::before,
    &::after {
      background-size: 11px;
    }
  }
}

/* 矢印のアニメーション */
@keyframes arrowLeft {
  0% {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }

  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

@keyframes arrowRight {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  100% {
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
  }
}

/* .c-cta */
.c-cta {
  .c-cta__link {
    display: inline-flex;
    gap: 48px;
    align-items: center;
    background: #0061b4;
    padding: 15px 18px 15px 60px;
    border-radius: 16px;
    border: 2px solid #0061b4;

    @media (hover: hover) {
      &:hover {
        background: #ffffff;
        
        .c-cta__label {
          color: #0061b4;
        }
  
        .c-cta__arrow {
          background: #0061b4;
  
          &::before {
            -webkit-animation-name: arrowRight;
            animation-name: arrowRight;
            animation-delay: 0s;
          }
    
          &::after {
            -webkit-animation-name: arrowLeft;
            animation-name: arrowLeft;
            animation-delay: 0.2s;
          }
        }
      }
    }
  }

  .c-cta__label {
    display: inline-block;
    color: #ffffff;
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .08em;
    transition: all .5s;
  }
  
  .c-cta__arrow {
    display: inline-block;
    background: #ffffff;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    transition: all .5s;
    
    &::before,
    &::after {
      content: '';
      display: inline-block;
      position: absolute;
      width: 100%;
      height: 100%;
      animation-duration: .5s;
      animation-fill-mode: forwards;

      left: 0;
    }

    &::before {
      background: url(/content/100862120.svg) no-repeat  50% 50%/18px;
    }
    
    &::after {
      background: url(/content/100862121.svg) no-repeat  50% 50%/18px;
      -webkit-transform: translateX(-100%);
      transform: translateX(-100%);
    }
  }
  
  &.pink {
    .c-cta__link {
      background: #DE2A50;
      border-color: #DE2A50;
  
      @media (hover: hover) {
        &:hover {
          background-color: #f8d4dc;
    
          .c-cta__label {
            color: #DE2A50;
          }
    
          .c-cta__arrow {
            background: #DE2A50;
          }
        }
      }
    }

    .c-cta__arrow {
      &::before {
        background: url(/content/100862125.svg) no-repeat  50% 50%/18px;
      }
    }
  }

  &.white {
    .c-cta__link {
      background: #fff;
      border-color: #fff;
      pointer-events: none;
    }

    .c-cta__label {
      color: #292929;
    }

    .c-cta__arrow {
      background: #292929;

      &::before,
      &::after {
        background: url(/content/100862126.svg) no-repeat  50% 50%/18px;
      }
    }
  }
}

.c-cta-linear {
  .c-cta-linear__link {
    display: inline-flex;
    gap: 46px;
    align-items: center;
    background: #0061b4;
    padding: 23px 25px 23px 57px;
    border-radius: 16px;
    border: 2px solid #0061b4;

    @media (hover: hover) {
      &:hover {
        background: #ffffff;
        
        .c-cta-linear__label {
          color: #0061b4;
        }
  
        .c-cta-linear__arrow {
          background: #0061b4;
  
          &::before {
            background: url(/content/100862121.svg) no-repeat  50% 50%/18px;
          }
        }
      }
    }
  }

  .c-cta-linear__label {
    display: inline-block;
    color: #ffffff;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .08em;
    transition: all .5s;
  }
  
  .c-cta-linear__arrow {
    display: inline-block;
    background: #ffffff;
    width: 50px;
    height: 50px;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    transition: all .5s;
    
    &::before {
      content: '';
      display: inline-block;
      position: absolute;
      width: 100%;
      height: 100%;
      top: 50%;
      left: 0;
      transform: translate(0%, -50%);
      background: url(/content/100862120.svg) no-repeat  50% 50% / 18px;
      animation: 5s ease 4s infinite arrowMove;
    }
  }
}

@media screen and (max-width: 1799px) {
  .c-cta-linear {
    .c-cta-linear__link {
      padding: 21px 23px 21px 55px;
    }
  }
}

@media screen and (max-width: 1350px) {
  .c-cta-linear {
    .c-cta-linear__link {
      gap: 24px;
      padding: 16px 25px 16px 55px;
    }

    .c-cta-linear__label {
      font-size: 2.2rem;
    }
  }
}

@media screen and (max-width: 1279px) {
  .c-cta-linear {
    .c-cta-linear__link {
      padding: 16px 18px 16px 40px;
    }
  }
}

@media screen and (max-width: 1024px) {
  .c-cta-linear {
    .c-cta-linear__label {
      font-size: 2.0rem;
    }
  }
}

@media screen and (max-width: 900px) {
  .c-cta-linear {
    .c-cta-linear__link {
      padding: 12px 14px 12px 20px;
      gap: 10px;
    }
    .c-cta-linear__label {
      font-size: 1.8rem;
    }
    .c-cta-linear__arrow {
      border-radius: 13px;
      width: 40px;
      height: 40px;
    }
  }
}

@media screen and (max-width: 767px) {
  .c-cta {
    .c-cta__label {
      font-size: 1.8rem;
    }

    .c-cta__link {
      gap: 24px;
    }

    .c-cta__arrow {
      width: 48px;
      height: 48px;
    }
  }

  .c-cta-linear {
    display: flex;
    justify-content: center;

    .c-cta-linear__link {
      gap: 24px;
      padding: 14px 14.5px 14px 36.5px;
    }

    .c-cta-linear__label {
      font-size: 1.8rem;
    }

  .c-cta-linear__arrow {
      width: 48px;
      height: 48px;
      border-radius: 16px;

      &::before {
        background-size: 18px;
      }
      
      &::after {
        background-size: 18px;
      }
    }
  }
}

@media screen and (max-width: 360px) {
  .c-cta-linear {
    .c-cta-linear__link {
      gap: 12px;
      padding-left: 30px;
    }
  }
}

@keyframes arrowIntro {
  0% {
    transform: translate(0%, -50%);
  }

  100% {
    transform: translate(0, -50%);
  }
}

@keyframes arrowMove {
  0%,
  59% {
    transform: translate(0, -50%);
  }

  66.666% {
    transform: translate(100%, -50%);
  }

  66.667% {
    transform: translate(-100%, -50%);
  }
  78% {
    transform: translate(0, -50%);
  }
}

/* element popup */
.popup,
.popup-high,
.popup-delay {
  opacity: 0;
  -webkit-transform: scale(.8);
  transform: scale(.8);
  transition:
    opacity .6s cubic-bezier(.25, .46, .45, .94),
    transform .6s cubic-bezier(.25, .46, .45, .94);
  transition-delay: 0s;

  &.is-popped-up {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

/* utility */
.pcshow {
  display: block !important;
}

.spshow {
  display: none !important;
}

@media screen and (max-width: 767px) {
  .pcshow {
    display: none !important;
  }
  
  .spshow {
    display: block !important;
  }
}


/* project */
/* header */
.header {
  position: fixed;
  top: 20px;
  left: 0;
  width: 100%;
  height: 110px;
  z-index: 10;
  padding-inline: 30px;

  &::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    background-color: rgba(0, 0, 0, 0.3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.5s ease, visibility 0.5s ease;
  }

  &.is-megamenu-open {
    &::before {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }
  }

  .header__link-logo {
    @media (hover: hover) {
      &:hover {
        opacity: .8;
      }
    }
  }

  .header__inner {
    max-width: 1800px;
    width: 100%;
    margin-inline: auto;
    background: #ffffff;
    border-radius: 16px;
    position: relative;
    z-index: 10;
  }

  .header__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 40px;
  }

  .header__left {
    width: clamp(180px, 13.256%, 228px);
  }

  .header__right {
    display: flex;
    align-items: center;
    justify-content: right;
    flex-wrap: nowrap;
  }
  
  .navigation__list {
    flex-wrap: nowrap;
    display: flex;
    align-items: center;
    gap: clamp(16px, calc(-88.21px + 7.72vw), 60px);
    margin-right: clamp(27px, calc(-98.47px + 9.29vw), 80px);
  }

  .navigation__item {
    line-height: 1;
  }

  .navigation__link {
    font-weight: 500;
    line-height: 1;
    text-decoration-line: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
    transition: all .5s;

    @media (hover: hover) {
      &:hover {
        color: #0061b4;
        text-decoration-color: currentColor;
      }
    }
  }

  .header__cta {
    margin-right: clamp(10px, calc(-66.42px + 5.66vw), 40px);
  }

  .header__cta-link {
    gap: 24px;
    padding: 13px 14px 13px 26px;
  }

  .header__cta-label {
    font-size: 2.0rem;
    letter-spacing: 0.04em;
  }

  .header__cta-arrow {
    width: 40px;
    height: 40px;
  }

  .header__button {
    width: 90px;
    height: 70px;
    padding: 16px 20px 14px;
    background: #0061b4;
    border-radius: 12px;
    border: 2px solid #0061b4;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    transition: all .5s;
    cursor: pointer;

    @media (hover: hover) {
      &:hover {
        background: #ffffff;
    
        .header__button-line {
          background: #0061b4;
        }
        .header__button-label {
          color: #0061b4;
        }
      }
    }

    &.is-open {
      .header__button-line {
        &:first-child {
          top: 5px;
          -webkit-transform: rotate(20deg);
          transform: rotate(20deg);
        }
    
        &:last-child {
          top: 5px;
          -webkit-transform: rotate(-20deg);
          transform: rotate(-20deg);
        }
      }
    }
  }

  .header__button-icon {
    position: relative;
    width: 100%;
    height: 14px;
  }

  .header__button-line {
    display: inline-block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: #ffffff;
    transition: all .5s;
    
    &:first-child {
      top: 0;
    }
  
    &:last-child {
      top: 100%;
    }
  }

  .header__button-label {
    color: #ffffff;
    font-size: 1.4rem;
    font-family: 'Bai Jamjuree', sans-serif;
    line-height: 1;
    letter-spacing: 0.2em;
    opacity: 1;
    display: inline-block;
    transition: all .5s;
  }

  .header__megamenu {
    width: 100%;
    border-radius: 0 0 16px 16px;
    height: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transition: height .5s ease, opacity .5s ease;
    position: relative;
    z-index: 10;

    &.is-open {
      opacity: 1;
      pointer-events: auto;
    }
  }

  .header__megamenu-inner {
    display: flex;
    gap: clamp(30px, 3.5%, 60px);
    padding: 40px 40px 60px;
    background: #ffffff;
    border-radius: 0 0 16px 16px;
  }

  .header__megamenu-left {
    width: calc(100% - clamp(220px, 25.58%, 440px));
    display: flex;
    gap: clamp(20px, 3.33%, 40px);
    background: #ffffff;
    border-radius: 16px;
  }

  .header__megamenu-right {
    width: clamp(200px, 22.10%, 380px);
    height: 100%;
  }

  .header__block {
    width: clamp(200px, 31.25%, 400px);
    height: 100%;

    &.threelines {
      display: flex;
      flex-direction: column;
      gap: 24px;
    }
  }

  .header__menu {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
  }

  .header__megamenu-catelink {
    font-weight: 500;
    line-height: 1;
    padding: clamp(20px, 7.5%, 30px);
    background: #e5eff7;
    border-radius: 16px;
    transition: all .5s;
    position: relative;
  
    &::before {
      content: '';
      display: inline-block;
      position: absolute;
      background: url(/content/100862123.svg) no-repeat;
      background-size: contain;
      width: 16px;
      height: 16px;
      top: 0;
      bottom: 0;
      right: 30px;
      margin: auto;
    }
  
    @media (hover: hover) {
      &:hover {
        background: #b3d0e9;
      }
    }
  }

  .header__megamenu-list {
    padding-inline: clamp(25px, 12.5%, 50px) clamp(20px, 10%, 40px);
    padding-block: clamp(10px, 5.75%, 23px) clamp(17px, 5.75%, 23px);
    background: #f2f2f2;
    border-radius: 16px;
    height: 100%;
  }

  .header__megamenu-item {
    &:nth-of-type(n + 3) {
      padding-top: 14px;
    }
  }

  .header__megamenu-link {
    font-size: 1.8rem;
    font-weight: 500;
    text-decoration-line: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
    transition: all .5s;

    @media (hover: hover) {
      &:hover {
        color: #0061b4;
        text-decoration-color: currentColor;
      }
    }
  }

  .header__govcloud {
    background: #0061b4;
    border-radius: 16px;
    height: 100%;
  }

  .header__govcloud-link {
    padding-inline: clamp(20px, 2.0833vw, 40px);
    padding-block: clamp(20px, 2.2106vw, 42px) clamp(20px, 1.7895vw, 34px);
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100%;
    
    @media (hover: hover) {
      &:hover {
        .header__govcloud-arrow::before {
          -webkit-animation-name: arrowRight;
          animation-name: arrowRight;
          animation-delay: 0s;
        }
    
        .header__govcloud-arrow::after {
          -webkit-animation-name: arrowLeft;
          animation-name: arrowLeft;
          animation-delay: 0.2s;
        }
      }
    }
  }

  .header__govcloud-heading {
    color: #ffffff;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.4;
  }

  .header__govcloud-logo {
    margin-top: 11px;
  }

  .header__govcloud-text {
    color: #ffffff;
    font-size: 1.8rem;
    line-height: 1.4;
    margin-top: 22px;
  }

  .header__govcloud-img {
    text-align: center;
    margin-top: 31px;
  }

  .header__govcloud-arrow {
    position: absolute;
    bottom: 6px;
    right: 6px;
    background: #ffffff;
  
    &::before {
      background-image: url(/content/100862120.svg);
    }
  
    &::after {
      background-image: url(/content/100862120.svg);
      -webkit-transform: translateX(-100%);
      transform: translateX(-100%);
    }
  }

  .header__button-label{
    &.is-hide {
      opacity: 0;
    }
  }
}

@media screen and (max-width: 1450px) {
  .navigation__link {
    font-size: 1.8rem;
  }
}

@media screen and (max-width: 1350px) {
  .header {
    padding-inline: 20px;
    height: auto;

    .header__top {
      padding: 16px 24px;
    }

    .header__left {
      width: 150px;
      height: auto;
    }

    .navigation__list {
      gap: 16px;
      margin-right: 27px;
    }

    .navigation__link {
      font-size: 1.5rem;
    }

    .header__cta {
      margin-right: 10px;
    }

    .header__cta-link {
      gap: 12px;
      height: 60px;
      padding: 0 15px 0 20px;
    }

    .header__cta-label {
      width: 102px;
      font-size: 1.4rem;
      line-height: 1.4;
      text-align: center;
    }

    .header__cta-arrow {
      width: 36px;
      height: 36px;
      border-radius: 12px;
      &::before {
        background-size: 13px !important;
      }
      
      &::after {
        background-size: 13px !important;
      }
    }

    .header__button {
      width: 70px;
      height: 60px;
      padding: 12px 14px 6px;
    }

    .header__button-label {
      font-size: 1.2rem;
      line-height: 1.4;
    }
  }
}

@media screen and (max-width: 1439px) {
  .header {
    .header__megamenu-inner {
      padding-inline: 20px;
    }
  }
}

@media screen and (max-width: 999px) {
  .header {

    .pcshow {
      display: none !important;
    }

    .spshow {
      display: block !important;
    }
    
    .header__megamenu-inner {
      overflow-x: hidden;
      overscroll-behavior: contain;
      scrollbar-width: none;
      -ms-overflow-style: none;

      &::-webkit-scrollbar {
        display: none;
      }
    }

    .header__left {
      width: 150px;
      height: auto;
    }
    .header__right {
      width: auto;
    }

    .navigation {
      display: none;
    }

    .header__block {
      width: 100%;
    }

    .header__cta-label {
      width: 109px;
    }

    .header__cta-link {
      gap: 12px;
      border-radius: 12px;
      height: 64px;
    }

    .header__button {
      height: 64px;
    }

    .header__megamenu-inner {
      padding: 24px 16px;
      display: flex;
      flex-direction: column;
      gap: 24px;
      overflow-y: auto;
    }

    .header__megamenu-left {
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }

    .header__megamenu-right {
      width: 100%;
    }

    .header__megamenu-list {
      padding: 0;
      height: 0;
      opacity: 0;
      overflow: hidden;
      transition: height .5s ease, opacity .5s ease;

      &.is-open {
        opacity: 1;
      }
    }

    .header__megamenu-item {
      &:first-of-type {
        padding: 17px 24px 0;
      }

      &:nth-of-type(n + 2) {
        padding-top: 9px;
        padding-left: 40px;
      }

      &:last-of-type {
        padding-bottom: 24px;
      }
    }

    .listbtn {
      transition: all .5s;
      cursor: pointer;

      &::before,
      &::after {
        width: 14px;
        transition: all .5s;
      }

      &::before {
        background: url(/content/100862127.svg) no-repeat;
        height: 14px;
        -webkit-transform: rotate(0);
        transform: rotate(0);
      }

      &::after {
        content: '';
        position: absolute;
        display: inline-block;
        background: url(/content/100862128.svg) no-repeat;
        background-size: contain;
        height: 2px;
        top: 0;
        bottom: 0;
        right: 30px;
        margin: auto;
        opacity: 0;
        -webkit-transform: rotate(-90deg);
        transform: rotate(-90deg);
      }

      &.is-open {
        &::before {
          opacity: 0;
          -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
        }

        &::after {
          opacity: 1;
          -webkit-transform: rotate(0);
          transform: rotate(0);
        }
      }
    }

    .header__govcloud-link {
      padding: 25px 24px 47px;
    }

    .header__govcloud-logo {
      margin-top: 0;
    }

    .header__govcloud-text {
      margin-top: 17px;
    }

    .header__govcloud-heading {
      font-size: 2.4rem;
    }

    .header__govcloud-arrow {
      width: 48px;
      height: 48px;
    }

    .header-contact {
      .header-contact__inner {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        background: #0061b4;
        padding: 40px 24px 50px;
        border-radius: 16px;
      }

      .header-contact__heading {
        color: #ffffff;
        font-size: 3.0rem;
        font-weight: 700;
        line-height: 1;
        letter-spacing: .08em;
      }

      .header-contact__text {
        color: #ffffff;
        font-size: 2.0rem;
        line-height: 1.6;
        letter-spacing: 0;
        margin-top: 25px;
      }

      .header-contact-btn {
        width: 100%;
        margin-inline: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 30px;
        margin-top: 26px;
      }

      .header-contact-btn__caption {
        color: #ffffff;
        font-size: 1.8rem;
        font-weight: 500;
        line-height: 1.4;
        letter-spacing: .04em;
        text-align: center;
      }

      .header-contact-btn__block {
        width: 470px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 16px;
      }

      .header-contact-cta__link {
        display: flex;
        justify-content: space-between;
        padding: 23px 25px 23px 56px;
        height: 100px;
      }

      .header-contact-cta__link-call {
        display: flex;
        justify-content: space-between;
      }

      .header-contact-cta__label {
        font-size: 2.4rem;
        line-height: 1.4;
        width: calc(100% - 98px);
        text-align: center;
      }

      .header-contact-cta__label-call {
        font-size: 2.8rem;
        width: calc(100% - 98px);
        text-align: center;
      }

      .header-contact-cta__cta-arrow {
        width: 50px;
        height: 50px;
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .header {
    top: 0;
    padding: 0;

    .header__inner {
      border-radius: unset;
    }

    .header__left {
      width: 130px;
    }

    .header__button {
      width: 40px;
      height: 40px;
      padding: 4px 8px 0;
      border-radius: 12px;
      gap: 1px;
    }

    .header__button-icon {
      height: 8px;
    }

    .header__button-label {
      margin: 2px 0 0 -2px;
      font-size: 1.0rem;
      letter-spacing: 0;
    }

    .header__megamenu-catelink {
      font-size: 1.8rem;
      padding: 19px 24px;
    }

    .header__megamenu-item {
      &:nth-of-type(n + 2) {
        padding-top: 11px;
      }
    }

    .header__megamenu-link {
      font-size: 1.6rem;
    }

    .header__govcloud-heading {
      font-size: 1.8rem;
    }

    .header__govcloud-logo {
      margin-top: 4px;
      width: 217px;
    }

    .header__govcloud-text {
      font-size: 1.6rem;
    }

    .header__govcloud-link {
      padding: 30px 24px 52px;
    }

    .header__govcloud-arrow {
      width: 30px;
      height: 30px;
      border-radius: 8px;
    }

    .header-contact {
      .header-contact__heading {
        font-size: 2.4rem;
      }
  
      .header-contact__text {
        margin-top: 20px;
        font-size: 1.6rem;
      }

      .header-contact-btn {
        margin-top: 32px;
      }

      .header-contact-btn__block {
        width: calc(100% - 24px);
      }

      .header-contact-cta__label {
        font-size: 1.8rem;
        width: calc(100% - 72px);
      }

      .header-contact-cta__link {
        padding: 12px 16px;
        height: 80px;
      }

      .header-contact-cta__cta-arrow {
        width: 48px;
        height: 48px;
      }

      .header-contact-btn__caption {
        font-size: 1.5rem;
      }

      .header-contact-cta__label-call {
        font-size: 2.0rem;
        width: calc(100% - 72px);
      }
    }
    .header__cta {
      display: none !important;
    }
    .header__menu {
      gap: 0;
    }
  }
}

/* key visual */
.keyvisual {
  position: relative;
  z-index: 1;

  .keyvisual__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    max-width: 1800px;
    padding-inline: 100px;
    margin-inline: auto;
    padding-top: clamp(30px, 3.3855vw, 65px);
  }

  .keyvisual__left {
    display: flex;
    flex-direction: column;
    padding-top: 0;
    width: min(859px, 43.384vw);
  }

  .keyvisual__img-kv {
    position: relative;
    width: min(440px, 22.917vw);
    aspect-ratio: 440 / 839;
    height: auto;
  }

  .kv-part {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
  }

  .kv-part--1   { width: 100%;    top: 0%;    left: auto; right: 35.23%;  z-index: 1; }
  .kv-part--2   { width: 74.09%;  top: 0%;    left: auto; right: -5.00%; }
  .kv-part--3   { width: 21.14%;  top: 17.88%; left: auto; right: 2.50%; }
  .kv-part--4   { width: 35.78%;  top: 11.80%; left: auto; right: 32.73%; }
  .kv-people--1 { width: 17.05%;  top: 36.83%; left: auto; right: 112.73%; z-index: 2; }
  .kv-people--2 { width: 18.41%;  top: 51.49%; left: auto; right: 3.86%; }
  .kv-people--3 { width: 19.09%;  top: 58.28%; left: auto; right: 47.73%; z-index: 2; }
  .kv-people--4 { width: 15.91%;  top: 65.20%; left: auto; right: 97.50%; }
  .kv-people--5 { width: 21.59%;  top: 67.94%; left: auto; right: 118.41%; }
  .kv-people--6 { width: 14.77%;  top: 46.36%; left: auto; right: 169.55%; }

  .kv-part--4 {
    .kv-part-4__svg {
      width: 100%;
      height: auto;
    }
    .kv-part-4__glow-circle {
      fill: url(#kv-part-4-gradient);
      opacity: 0.8;
    }
  }

  .kv-popup {
    opacity: 0;
    transform: scale(0.8);
    transition:
      opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
      transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);

    &.is-popped-up {
      opacity: 1;
      transform: scale(1);
    }
  }

  .keyvisual__heading {
    display: block;
    width: 629px;
  }

  .keyvisual__img {
    margin-top: clamp(24px, 2.5vw, 48px);

    &.point {
      margin: -22px 0 0 -25px;
    }
  }

  .keyvisual__cta {
    margin-top: 44px;
  }
}

@media screen and (max-width: 1799px) {
  .keyvisual {
    .keyvisual__cta {
      margin-top: 30px;
    }
  }
}

@media screen and (max-width: 1539px) {
  .keyvisual {
    .keyvisual__left {
      padding-top: 0;
    }
  }
}

@media screen and (max-width: 1439px) {
  .keyvisual {
    .keyvisual__inner {
      padding-inline: 115px;
    }

    .keyvisual__heading {
      font-size: 2.8rem;
    }
  }
}

@media screen and (max-width: 1350px) {
  .keyvisual {
    .keyvisual__inner {
      padding-inline: 85px;
    }
  }
}

@media screen and (max-width: 1279px) {
  .keyvisual {
    .keyvisual__cta-link {
      gap: 24px;
      padding: 16px 18px 16px 40px;
    }

    .keyvisual__img {
      & img {
        width: 100%;
      }

      &.point {
        margin: 0 auto;
      }
    }
  }
}

@media screen and (max-width: 1024px) {
  .keyvisual {
    .keyvisual__inner {
      padding-inline: 80px;
      gap: 10px;
    }

    .keyvisual__right {
      margin-left: 0;
    }

    .keyvisual__heading {
      font-size: 2.6rem;
    }

    .keyvisual__cta {
      margin-top: 15px;
    }

    .keyvisual__cta-label {
      font-size: 2rem;
    }
  }
}

@media screen and (max-width: 900px) {
  .keyvisual {
    .keyvisual__right {
      margin-left: 163px;
    }
  }
}

@media screen and (max-width: 767px) {
  .keyvisual {
    .keyvisual__inner {
      padding-inline: 24px;
      display: flex;
      flex-direction: column;
      max-width: 100%;
      width: 100%;
      padding-top: 0;
    }

    .keyvisual__left {
      padding-top: 0;
      margin: 0 auto;
      width: 100%;
    }

    .keyvisual__right {
      margin: 0 auto !important;
    }

    .keyvisual__heading {
      font-size: 1.6rem;
      line-height: 1.6;
      letter-spacing: 0.08em;
    }

    .keyvisual__cta {
      margin-top: -13px;
      margin-inline: auto;

      &.pcshow {
        display: none !important;
      }

      &.spshow {
        display: block !important;
        margin: 0 auto !important;
      }
    }

    .keyvisual__img {
      width: 100%;
      margin-top: clamp(18px, 9.2308vw, 36px);

      &.point {
        width: calc(100% - 18px);
        margin-top: -10px;
      }
    }

    .keyvisual__img-kv {
      width: 89.06vw;
      aspect-ratio: 350 / 301;
      height: auto;
    }

    .kv-part--1   { width: 52.86%; top: 1.00%;  right: 22.00%; }
    .kv-part--2   { width: 39.14%; top: 1.00%;  right: 0.86%; }
    .kv-part--3   { width: 11.43%; top: 21.93%; right: 4.57%; }
    .kv-part--4   { width: 18.14%; top: 14.62%; right: 21.14%; }
    .kv-people--1 { width: 10.00%; top: 43.19%; right: 63.14%; }
    .kv-people--2 { display: none; }
    .kv-people--3 { width: 11.43%; top: 61.46%; right: 6.57%; }
    .kv-people--4 { width: 8.86%;  top: 61.79%; right: 75.71%; transform: scaleX(-1) !important; }
    .kv-people--5 { width: 12.57%; top: 74.09%; right: 39.14%; transform: scaleX(-1) !important; z-index: -1; }
    .kv-people--6 { width: 8.57%;  top: 30.90%; right: 86.86%; }

    .keyvisual__cta {
      width: calc(100% - 26px);
    }
  }
}

@media screen and (max-width: 360px) {
  .keyvisual {
    .keyvisual__cta-link {
      gap: 12px;
      padding-left: 30px;
    }
  }
}

/* Feature section */
.feature-content-top {
  padding: 68px 60px 0;
  margin-top: clamp(-45px, calc((100vw - 768px) * -45 / 1152), 0px);
  position: relative;

  &::before,
  &::after {
    content: "";
    position: absolute;
    display: inline-block;
    width: 100vw;
    height: clamp(181px, calc(181px + (100vw - 768px) * 181 / 1152), 362px);
    left: 0;
    background-repeat: no-repeat;
    background-position: left center;
    background-size: cover;
    z-index: 0;
    will-change: transform;
  }

  &::before {
    background-image: url(/content/100862184.png);
    top: clamp(-362px, calc(-181px + (100vw - 768px) * -181 / 1152), -181px);
    transform: translateY(var(--curve-y-before, 0px));
  }

  &::after {
    background-image: url(/content/100862183.png);
    bottom: clamp(178px, calc(178px + (100vw - 768px) * 178 / 1152), 256px);
    transform: translateY(var(--curve-y-after, 0px));
  }

  .feature-content-top__inner {
    max-width: 1800px;
    margin-inline: auto;
    padding-inline: clamp(20px, 5.2vw, 100px);

    position: relative;

    &::before {
      content: '';
      position: absolute;
      display: inline-block;
      background-color: #0061b4;
      width: 100vw;
      height: calc(100% - 150px);
      top: -100px;
      left: 50%;
      transform: translateX(-50%);
      z-index: -1;
    }
  }

  .feature-content-top__area {
    max-width: 1200px;
    margin: 80px auto 0;
  }

  .feature-content-top__bg {
    padding-block: clamp(20px, 4.1667vw, 80px) 0;
    padding-inline: clamp(20px, 5.2084vw, 100px);
    position: relative;
    z-index: 1;
    
    &::before {
      content: '';
      position: absolute;
      display: inline-block;
      background: #ccdff0;
      width: 100%;
      height: 91.11%;
      border-radius: 24px;
      top: 0;
      left: 0;
      z-index: -1;
    }
  }

  .feature-content-top__title {
    font-size: 3.0rem;
    line-height: 1;
  }

  .feature-content-top__heading {
    margin-bottom: 30px;
  }

  .feature-content-top__label {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0061b4;
    padding-block: 24px;
    border-radius: 16px 16px 0 0;
    margin-bottom: 15px;
  }

  .feature-content-top__logo {
    width: 193px;
    height: auto;
    line-height: 1;
  }

  .feature-content-top__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      'item01 item02'
      'item03 item04'
      '.      item05';
    grid-template-rows: repeat(3, 1fr);
    gap: 15px;
    align-items: stretch;
  }

  .feature-content-top__item {
    background-color: #ffffff;
    padding: 28px 27px 31px;
    border: 1px solid #e3e3e3;
    border-radius: 13px;

    &:nth-of-type(1) {
      grid-area: item01;
    }

    &:nth-of-type(2) {
      grid-area: item02;
    }

    &:nth-of-type(3) {
      grid-area: item03;
    }

    &:nth-of-type(4) {
      grid-area: item04;
    }

    &:nth-of-type(5) {
      grid-area: item05;
    }
  }
  
  .feature-content-top__heading-lv4 {
    font-size: 2.4rem;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 8px;
  }

  .feature-content-top__text {
    font-size: 2.0rem;
    font-weight: 500;
    line-height: 1.4;
  }

  .feature-content-top__bottom {
    margin-top: -50px;
    width: 100%;
    margin-inline: clamp(20px, 5.2084vw, 100px);
    padding-left: clamp(20px, 5.2084vw, 100px);
    padding-right: 67.917%;
    position: relative;
    z-index: 1;
  }

  .feature-content-top__img {
    position: relative;

    &::after {
      content: '';
      position: absolute;
      display: inline-block;
      background: url(/content/100862182.png) no-repeat;
      width: 164px;
      height: 50px;
      top: -18px;
      left: 30%;
      z-index: -1;
    }
  }

  .feature-content-top__icon-code {
    position: absolute;
    overflow: hidden;
    top: 31.9%;
    left: clamp(20px, 42.4562%, 121px);
    width: 10.2%;
    height: 13.4%;
    clip-path: polygon(0 0, 100% 41%, 100% 100%, 0 53%);
    -webkit-clip-path: polygon(0 0, 100% 41%, 100% 100%, 0 53%);

    & img {
      display: block;
      width: 100%;
      height: auto;
      will-change: transform;
      transform: translate3d(0, 0, 0);
      -webkit-transform: translate3d(0, 0, 0);
      animation: codeScroll 15s linear 0.5s infinite;
      -webkit-animation: codeScroll 15s linear 0.5s infinite;
    }
  }
}

@media screen and (max-width: 1539px) {
  .feature-content-top {
    margin-top: clamp(20px, 2.5991vw, 40px);
  }
}

@media screen and (max-width: 1402px) {
  .feature-content-top {
    .feature-content-top__bottom {
      margin-top: -56px;
    }
  }
}

@media screen and (max-width: 1348px) {
  .feature-content-top {

    &::after {
      bottom: 10%;
    }

    .feature-content-top__bottom {
      margin-top: -63px;
    }
  }
}

@media screen and (max-width: 1279px) {
  .feature-content-top {
    .feature-content-top__area {
      padding: 0 40px;
    }
  }
}

@media screen and (max-width: 1165px) {
  .feature-content-top {
    margin-top: clamp(40px, calc(60px - (100vw - 1024px) * 20 / 141), 60px);

    &::after {
      bottom: 8%;
    }

    .feature-content-top__bottom {
      margin-top: -72px;
    }
  }
}

@media screen and (max-width: 1024px) {
  .feature-content-top {

    &::after {
      bottom: 150px;
    }

    .pcshow {
      display: none !important;
    }

    .spshow {
      display: block !important;
    }

    .feature-content-top__inner {
      padding-inline: 32px;
    }

    .feature-content-top__area {
      padding: 0;
    }

    .feature-content-top__bottom {
      margin-top: -70px;
    }

    .feature-content-top__img {
      &::after {
        left: 20%;
      }
    }
  }
}

@media screen and (max-width: 965px) {
  .feature-content-top {
    .feature-content-top__bottom {
      margin-top: -73px;
    }
  }
}

@media screen and (max-width: 917px) {
  .feature-content-top {
    margin-top: 60px;
    .feature-content-top__bottom {
      margin-top: -80px;
    }
  }
}

@media screen and (max-width: 900px) {
  .feature-content-top {
    margin-top: 20px;
  }
}

@media screen and (max-width: 822px) {
  .feature-content-top {
    .feature-content-top__bottom {
      margin-top: -87px;
    }

    .feature-content-top__img {
      &::after {
        left: 13%;
      }
    }
  }
}

@media screen and (max-width: 773px) {
  .feature-content-top {
    .feature-content-top__bottom {
      margin-top: -80px;
    }
  }
}

@media screen and (max-width: 767px) {
  .feature-content-top {
    padding: 0;
    margin-top: 80px;

    &::before, 
    &::after {
      height: 72px;
    }

    &::before {
      background-image: url(/content/100862181.png);
      top: 50px;
    }

    &::after {
      background-image: url(/content/100862180.png);
      bottom: 100px;
    }

    .feature-content-top__inner {
      padding-inline: 0;
      position: relative;

      &::before {
        width: 100%;
        height: calc(100% - 185px);
        top: 80px;
        left: 0;
        transform: none;
        z-index: -1;
      }

    }

    .feature-content-top__area {
      padding: 0 20px;
    }

    .feature-content-top__bg {
      padding-block: 46px 50px;

      &::before {
        height: 100%;
      }
    }

    .feature-content-top__heading {
      margin-bottom: 32px;
    }

    .feature-content-top__title {
      font-size: 2.0rem;
      line-height: 1.4;
    }

    .feature-content-top__label {
      justify-content: left;
      padding-block: 18.5px;
      padding-left: 20px;
      margin-bottom: 10px;
    }

    .feature-content-top__logo {
      width: 144px;
    }

    .feature-content-top__list {
      grid-template-columns: 1fr;
      grid-template-areas:
        "item01"
        "item02"
        "item03"
        "item04"
        "item05";
      grid-template-rows: repeat(5, auto);
      gap: 10px;
    }

    .feature-content-top__item {
      padding: 19px 24px 21px;
    }

    .feature-content-top__heading-lv4 {
      font-size: 2.0rem;
      margin-bottom: 11px;
    }

    .feature-content-top__text {
      font-size: 1.6rem;
    }

    .feature-content-top__bottom {
      padding: 0;
      margin-top: 0;
      margin-inline: 0;
    }

    .feature-content-top__img {
      width: 117px;
      padding-top: 20px;
      margin-left: calc(100% - 175px);

      &::after {
        background: url(/content/100862179.png) no-repeat;
        width: 99px;
        height: 30px;
        top: 0;
        left: 23%;
      }
    }

    .feature-content-top__icon-code {
      top: 32%;
      left: 42.9%;
      width: 11px;
      height: 15px;
      clip-path: polygon(0 0, 100% 40%, 100% 100%, 0 56%);
      -webkit-clip-path: polygon(0 0, 100% 40%, 100% 100%, 0 56%);
    }
  }
}

/* Works */
.works-content-top {
  margin-top: 45px;
  padding-inline: 60px;

  .works-content-top__inner {
    max-width: 1800px;
    padding-block: clamp(20px, 4.166vw, 80px) 0;
    padding-inline: clamp(20px, 5.208vw, 100px);
    margin-inline: auto;
    position: relative;
  
    &::before {
      content: '';
      position: absolute;
      display: inline-block;
      background: #ccdff0;
      width: 100%;
      height: 84.1%;
      border-radius: 24px;
      top: 0;
      left: 0;
      z-index: -1;
    }
  }

  .works-content-top__icon {
    position: absolute;
    width: 140px;
    height: 195px;
    top: -24px;
    left: calc(100% - 340px);
  }

  .works-content-top__heading {
    position: relative;
    z-index: 1;
  }
  .works-content-top__area {
    margin-top: 50px;
    display: grid;
    gap: 25px;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
  }

  .works-content-top__block {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .works-content-top__label {
    & span {
      display: inline-block;
      color: #0061b4;
      font-size: 1.8rem;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.04em;
      background: #ffffff;
      padding: 8px 20.5px;
      border-radius: 16px;
    }
  }

  .works-content-top__box {
    margin-top: 4px;
  }

  .works-content-top__link {
    display: block;
    padding-block: clamp(25px, 9.67%, 50px) clamp(19px, 7.35%, 38px);
    padding-inline: clamp(34px, 13.15%, 68px);
    background: #f2f2f2;
    border-radius: 16px;
    width: 100%;
    position: relative;
    z-index: 1;
  
    @media (hover: hover) {
      &:hover {
        .works-content-top_linkarea-arrow {
          background: #ffffff;
          border-color: #0061b4;
      
          &::before {
            animation: arrowRight .5s forwards;
          }
      
          &::after{
            animation: arrowLeft .5s .2s forwards;
          }
        }
      }
    }
  }

  .works-content-top__thumbnail {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .works-content-top_linkarea-arrow {
    position: absolute;
    bottom: 6px;
    right: 6px;
  }

  .works-content-top__figcaption {
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    margin-top: 18px;
  }
}

@media screen and (max-width: 1439px) {
  .works-content-top {
    .works-content-top__figcaption {
      line-height: 1.5;
      margin-top: 13px;
    }
    .works-content-top__inner {
      &::before {
        height: 78%;
      }
    }

    .works-content-top__icon {
      left: calc(100% - 270px);
    }
  }
}

@media screen and (max-width: 1279px) {
  .works-content-top {
    .works-content-top__area {
      gap: 15px;
      margin-top: 35px;
    }

    .works-content-top__icon {
      width: 120px;
    }
  }
}

@media screen and (max-width: 1024px) {
  .works-content-top {
    .works-content-top__inner {
      padding-block: 57px 35px;
      padding-inline: 0;

      &::before {
        width: calc(100% - 32px);
        height: 100%;
        margin: auto;
        inset: 0;
      }
    }

    .works-content-top__heading {
      padding-left: 40px;
    }

    .works-content-top__icon {
      top: -100px;
      left: auto;
      right: 50px;
    }

    .works-content-top__area {
      display: block;
      gap: 15px;
      margin-top: 40px;
    }

    .works-content-top__block {
      padding-inline: 8px;
    }

    .works-content-top__link {
      padding-block: 33px 27px;
      padding-inline: 37px;
    }

    .works-content-top__figcaption {
      font-size: 1.8rem;
    }

    /* slick style */
    .slick-dots {
      display: flex;
      justify-content: center;
      margin-top: 32px;

      .slick-dot-item {
        &:nth-of-type(n + 2) {
          margin-inline: 8px;
        }

        &:last-of-type {
          margin-inline: 0;
        }

        &.slick-active {
          .slick-dot-button {
            width: 32px;
          }
        }
      }

      & button {
        display: block;
        background: #0061b4;
        width: 8px;
        height: 8px;
        outline: 0;
        border-radius: 10px;
        transition-duration: all 0.5s;
        border: 0;
        text-indent: -9999px;
        cursor: pointer;
      }
    }
  }
}


@media screen and (max-width: 767px) {
  .works-content-top {
    margin-top: 42px;
    padding-inline: 0;

    .works-content-top__label {
      & span {
        font-size: 1.4rem;
        padding: 6px 14px;
      }

    }

    .works-content-top__icon {
      width: 67px;
      height: auto;
      top: -12px;
    }

    .works-content-top__link {
      padding-inline: 23px;
    }

    .works-content-top__figcaption {
      font-size: 1.6rem;
    }
  }
}

/* Case Study */
.casestudy {
  margin-top: 120px;

  .casestudy__inner {
    max-width: 1520px;
    margin-inline: auto;
    padding-inline: 60px;
    display: flex;       
    gap: clamp(70px, 8.572%, 120px);
  }

  .casestudy__wrap {
    display: flex;
    flex-direction: column;
    width: 350px;
    margin-top: 43px;
  }

  .casestudy__heading {
    margin-bottom: 60px;
  }

  .casestudy-btn__icon {
    width: 50px;
    height: 50px;
    border-radius: 16px;
    background: #fff;
    position: relative;
  
    &::after {
      content: "";
      background: url(/content/100862120.svg) center center no-repeat;
      display: block;
      width: 28px;
      height: 28px;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
    }
  }

  .casestudy__list {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: calc(100% - (clamp(70px, 8.215%, 115px) + 350px));
  }

  .casestudy__item {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .casestudy__sub-heading {
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .04em;
  }

  .casestudy__text {
    font-size: 2rem;
    line-height: 1.8;
    letter-spacing: .035em;
  }

  .casestudy__sub-text {
    font-size: 16px;
    color: #7D7D7D;
    padding-left: 10px;
  }
}

@media screen and (max-width: 1279px) {
  .casestudy {
    .casestudy__inner {
      gap: 30px;
    }

    .casestudy__list {
      width: calc(100% - 350px);
    }
  }
}

@media screen and (max-width: 1024px) {
  .casestudy {
    margin-top: 80px;

    .pcshow {
      display: none !important;
    }

    .spshow {
      display: block !important;
    }

    .casestudy__inner {
      max-width: 100%;
      width: 100%;
      flex-direction: column;
      gap: 40px;
      padding-inline: 12px;
    }

    .casestudy__wrap {
      width: 100%;
      margin-top: 0;
    }

    .casestudy__heading {
      margin-bottom: 0;
    }

    .casestudy__list {
      width: 100%;
      gap: 24px;
    }

    .casestudy__cta {
      margin-inline: auto;
    }
  }
}

@media screen and (max-width: 767px) {
  .casestudy {
    .casestudy__inner{
      padding-inline: 32px;
    }

    .casestudy__sub-heading {
      font-size: 1.8rem;
    }

    .casestudy__text {
      font-size: 1.6rem;
    }
    
    .casestudy__cta {
      width: calc(100% - 29px);
      width: 297px;
      margin-top: -8px;
    }

    .casestudy__cta-link {
      width: 100%;
      padding: 14px 18px 14px 60px;
      justify-content: space-between; 
    }
  }
}

@media screen and (max-width: 360px) {
  .casestudy {
    .casestudy__cta {
      width: 100%;
    }
  }
}

/* Service */
.service {
  margin-top: 120px;
  padding-inline: 60px;
  
  .service__inner {
    max-width: 1600px;
    margin-inline: auto;
    border-radius: 24px;
    background: #0061B4;
    padding: clamp(40px, 5%, 80px) clamp(40px, 6.25%, 100px) clamp(40px, 6.25%, 100px);
    position: relative;
  }

  .service__icon {
    position: absolute;
    height: auto;
    top: -23px;
    left: calc(100% - 263px);

    .service__icon-people {
      position: relative;
    }
    
    .service__icon-code {
      position: absolute;
      overflow: hidden;
      top: 14px;
      left: 4.5px;
      width: 30px;
      height: 39px;
      clip-path: polygon(0 41%, 100% 0%, 100% 56%, 0% 100%);
      -webkit-clip-path: polygon(0 41%, 100% 0%, 100% 56%, 0% 100%);

      & img {
        display: block;
        width: 100%;
        height: auto;
        will-change: transform;
        transform: translate3d(0, 0, 0);
        -webkit-transform: translate3d(0, 0, 0);
        animation: codeScroll 15s linear 0.5s infinite;
        -webkit-animation: codeScroll 15s linear 0.5s infinite;
      }
    }
  }

  .service__heading {
    margin-bottom: 50px;
  }

  .service__wrap {
    padding: clamp(20px, 2.86%, 40px) clamp(30px, 4.29%, 60px);
    background: #ffffff;
    border-radius: 16px;
  }

  .service__link {
    display: block;
    border-radius: 16px;
    padding-block: clamp(19px, 2.969%, 38px) clamp(15px, 2.344%, 30px);
    padding-inline: clamp(20px, 3.125%, 40px);
    position: relative;
    margin-bottom: 30px;

    &::after {
      content: "";
      background: url(/content/100862133.png) center center no-repeat;
      display: inline-block;
      background-size: contain;
      width: clamp(280px, 45.75%, 580px);
      aspect-ratio: 56 / 39;
      position: absolute;
      bottom: 8%;
      right: 5.5%;
    }

    @media (hover: hover) {
      &:hover {
        background: #ccdff0;
  
        .service__linkarea-arrow {
          background: #ffffff;
          border-color: #0061b4;
  
          &::before {
            animation: arrowRight .5s forwards;
          }
  
          &::after {
            animation: arrowLeft .5s .2s forwards;
          }
        }
      }
    }
  }

  .service__sub-heading {
    font-family: "Roboto", sans-serif;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
    margin-bottom: 24px;
  }

  .service__logo {
    display: block;
    width: 385px;
    margin-bottom: 36px;
  }

  .service__text {
    font-size: 2rem;
    line-height: 1.8;
    letter-spacing: .04em;
  }

  .service__linkarea-arrow {
    position: absolute;
    width: 50px;
    height: 50px;
    bottom: 6px;
    right: 6px;
    pointer-events: none;
  }

  .service__list {
    display: flex;
    gap: 32px;

    .service__link {
      display: grid;
      grid-template-rows: 1fr auto;
      height: 100%;
      padding-block: 35px 30px;
      padding-inline: 40px;
      margin-bottom: 0;
      border: 1px solid #E3E3E3;

      &::after {
        display: none;
      }
    }
  }

  .service__item {
    width: clamp(250px, 31.65%, 405px);
  }

  .service__title {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .04em;
    margin-bottom: 16px;
  }

  .service__img {
    display: block;
    margin-inline: auto;
  }
}

@media screen and (max-width: 1799px) {
  .service {
    .service__icon {
      top: -40px;
      left: calc(100% - 210px);
    }
  }
}

@media screen and (max-width: 1540px) {
  .service {
    .service__link {

      &::after {
        right: 4%;
        bottom: 17%;
      }
    }
  }
}

@media screen and (max-width: 1439px) {
  .service {
    .service__link {

      &::after {
        bottom: 40%;
        right: 3%;
      }
    }

    .service__block {
      width: min(36.459vw, 525px);
    }
  }
}

@media screen and (max-width: 1279px) {
  .service {
    .service__sub-heading {
      font-size: 2.8rem;
    }

    .service__logo {
      width: calc(100% - 65px);
    }

    .service__link {

      &::after {
        bottom: 40%;
      }
    }

    .service__text {
      font-size: 1.8rem;
      width: calc(100% - 64px);
    }

    .service__title {
      font-size: 2.0rem;
    }
  }
}

@media screen and (max-width: 1024px) {
  .service {
    max-width: 100%;
    margin-top: 80px;

    .service__inner {
      padding: 50px 16px 60px;
    }

    .service__icon {
      left: auto;
      right: 50px;
    }

    .service__heading {
      padding-left: 10px;
      margin-bottom: 40px;
    }

    .service__sub-heading {
      font-size: 2.8rem;
    }

    .service__wrap {
      padding: 16px;
    }

    .service__link {
      display: flex;
      flex-direction: column;

      padding-block: 23% 40px;
      padding-inline: 12px;

      &::after {
        inset: -15% 0 auto 0;
        margin: auto;
      }
    }

    .service__block {
      width: 100%;
    }

    .service__sub-heading {
      margin-bottom: 16px;
    }

    .service__logo {
      width: 385px;
      margin-bottom: 24px;
    }

    .service__text {
      width: 100%;
      line-height: 1.6;
    }

    .service__title {
      font-size: 2.0rem;
    }

    .service__list {
      flex-direction: column;
      gap: 16px;

      .service__link {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: row-reverse;
        gap: 20px;
        padding-block: 29px;
        padding-inline: 20px;
      }
    }

    .service__item {
      width: 100%;
    }

    .service__title {
      margin-bottom: 0;
    }
    
    .service__img {
      margin-inline: 0;
    }

    .pcshow {
      display: none !important;
    }
  }
}

@media screen and (max-width: 767px) {
  .service {
    width: 100%;
    padding-inline: 16px;

    .service__inner {
      margin-top: 0;
    }
    .service__icon {
      width: 38px;
      top: -9px;
      right: 59px;
      
      .service__icon-code {
        top: 6px;
        left: 2px;
        width: 12px;
        height: 16px;
        clip-path: polygon(0 38%, 100% 0%, 100% 51%, 0% 100%);
        -webkit-clip-path: polygon(0 38%, 100% 0%, 100% 51%, 0% 100%);
      }
    }

    .service__link {
      padding-block: 17% 40px;
      padding-block: 144px 40px;
      margin-bottom: 22px;

      &::after {
        background: url(/content/100862134.png) center center no-repeat;
        width: 279px;
        top: -14%;
      }
    }

    .service__sub-heading {
      font-size: 2.2rem;
    }

    .service__logo {
      width: 220px;
    }

    .service__text {
      font-size: 1.6rem;
    }

    .service__title {
      font-size: 1.6rem;
    }

    .service__img {
      width: 100px;
    }

    .service__list {
      .service__link {
        justify-content: left;
      }
    }

    .service__linkarea-arrow {
      width: 30px;
      height: 30px;
      border-radius: 8px;
    }
  }
}

@media screen and (max-width: 360px) {
  .service {
    .service__title {
      font-size: 1.4rem;
    }

    .service__link {

      &::after {
        width: 260px;
        margin: 0 auto;
        top: -50px;
        left: 0;
        bottom: 0;
      }
    }
  }
}

@keyframes codeScroll {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(0, -55%, 0);
  }
}

@-webkit-keyframes codeScroll {
  from {
    -webkit-transform: translate3d(0, 0, 0);
  }

  to {
    -webkit-transform: translate3d(0, -55%, 0);
  }
}

/* Company */
.company {
  color: #292929;
  margin-top: 120px;
  padding-inline: 60px;

  .company__inner {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: clamp(40px, 6.667%, 80px);
  }

  .company__wrap {
    width: clamp(300px, 33.334%, 400px);
    display: flex;
    flex-direction: column;
  }

  .company__heading {
    width: 100%;
    margin-bottom: 50px;
  }

  .company__text {
    font-size: 2rem;
    line-height: 1.8;
    letter-spacing: .04em;
    margin-bottom: 30px;
  }

  .company__img {
    width: clamp(223px, 85%, 340px);
    height: clamp(135px, 17.708vw, 207px);
    margin-inline: auto;
    position: relative;

    & img {
      position: absolute;
      
      &:nth-of-type(1) {
        width: clamp(156px, 70.589%, 240px);
        top: 0;
        left: 0;
      }
      
      &:nth-of-type(2) {
        width: clamp(92px, 40.295%, 137px);
        right: 0;
        bottom: 0;
      }
    }
  }

  .company__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: calc(100% - (clamp(40px, 6.667%, 80px) + clamp(300px, 33.334%, 400px)));
  }
  
  .company__link {
    width: 100%;
    display: block;
    background: #F2F2F2;
    border-radius: 16px;
    padding: 40px 0 40px 60px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
    position: relative;

    @media (hover: hover) {
      &:hover {
        background: #b3d0e9;
      }
    }

    &::after {
      content: "";
      background: url(/content/100862123.svg) center center no-repeat;
      display: block;
      width: 28px;
      height: 28px;
      position: absolute;
      top: 50%;
      right: 60px;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%);
    }
  }
}

@media screen and (max-width: 1024px) {
  .company {
    margin-top: 60px;

    .company__inner {
      max-width: 100%;
      flex-direction: column;
      gap: 24px;
      padding-inline: 32px;
    }

    .company__wrap {
      width: 100%;
      flex-direction: column-reverse;
    }

    .company__heading {
      width: 100%;
      margin-bottom: 24px;
    }

    .company__text {
      font-size: 2rem;
      line-height: 1.8;
      letter-spacing: .04em;
      margin-bottom: 0;
    }

    .company__img {
      width: clamp(223px, 33.304%, 340px);
      height: calc(clamp(135px, 20.215vw, 207px) - 20px);
      margin-inline: auto 0;
    }
    
    .company__list {
      gap: 12px;
      width: 100%;
    }
    
    .company__link {
      width: 100%;
      display: block;
      background: #F2F2F2;
      border-radius: 16px;
      padding: 40px 0 40px 60px;
      font-size: 2rem;
      font-weight: 700;
      line-height: 1;
      letter-spacing: .04em;
      position: relative;

      @media (hover: hover) {
        &:hover {
          background: #b3d0e9;
        }
      }

      &::after {
        content: "";
        background: url(/content/100862123.svg) center center no-repeat;
        display: block;
        width: 18px;
        height: 18px;
        position: absolute;
        top: 50%;
        right: 60px;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .company {
    padding-inline: 32px;

    .company__inner {
      padding-inline: 0;
    }

    .company__img {
      width: min(223px, 56.743vw);
      height: min(135px, 34.352vw);

      & img {
        
        &:nth-of-type(1) {
          width: min(156px, 69.955%);
          height: min(116px, 29.515vw);
        }
        
        &:nth-of-type(2) {
          width: min(92px, 41.256%);
          height: min(109px, 27.736vw);
        }
      }
    }

    .company__text {
      font-size: 1.6rem;
      line-height: 1.6;
      letter-spacing: 0;
    }

    .company__link {
      font-size: 1.6rem;
      padding: 27px 30px 27px 24px;

      &::after {
        width: 14px;
        height: 14px;
      }
    }

    .company__link {
      &::after {
        right: 29px;
      }
    }
  }
}

/* News */
.top-news {
  color: #292929;
  margin-top: 100px;
  padding-inline: 60px;

  .top-news__inner {
    width: 100%;
    max-width: 1400px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: 80px;
    position: relative;
    padding-block: 50px;

    &::before {
      content: '';
      position: absolute;
      display: inline-block;
      background: #ccdff0;
      top: 0;
      left: 0;
      width: 580px;
      height: 100%;
      border-radius: 16px;
      z-index: -1;
    }
  }

  .top-news__head {
    display: flex;
    flex-direction: column;
    width: 368px;
    padding-left: 100px;
  }

  .top-news__heading {
    margin-bottom: 43px;
  }

  .top-news__archive-link {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-left: 58px;
    
    @media (hover: hover) {
      &:hover {
        .top-news-linkarea-arrow {
          background: #ffffff;
          border-color: #0061b4;
  
          &::before {
            animation: arrowRight .5s forwards;
          }
  
          &::after {
            animation: arrowLeft .5s .2s forwards;
          }
        }
      }
    }
  }

  .top-news__archive-icon {
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #0061B4;
    border-radius: 16px;
  } 
  
  .top-news-linkarea-arrow {
    width: 50px;
    height: 50px;
    pointer-events: none;
  
    &::before,
    &::after {
      background-size: 13px;
    }
  }

  .top-news__archive-img {
    width: 20px;
    height: 20px;
  }

  .top-news__archive-text {
    color: #0061B4;
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: .04em;
    white-space: nowrap;
  }

  .top-news__list {
    width: 952px;
    width: calc(100% - 448px);
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .top-news__link {
    display: block;
    padding: 28px 84px 32px 40px;
    border-radius: 16px;
    background: #F2F2F2;
    position: relative;

    &::after {
      content: "";
      background: url(/content/100862123.svg) center center no-repeat;
      display: block;
      width: 18px;
      height: 18px;
      position: absolute;
      top: 50%;
      right: 40px;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%);
    }

    @media (hover: hover) {
      &:hover {
        .top-news__text {
          text-decoration-color: currentColor;
        }
      }
    }
  }

  .top-news__meta {
    display: flex;
    gap: 24px;
    align-items: center;
    margin-bottom: 10px;
  }

  .top-news__date {
    font-size: 2rem;
    font-weight: 400;
    font-family: "Bai Jamjuree", sans-serif;
    line-height: 1;
    letter-spacing: .08em;
  }

  .top-news__tag {
    width: 155px;
    text-align: center;
    font-size: 1.6rem;
    font-weight: 700;
    font-family: "BIZ UDPGothic", sans-serif;
    line-height: 1;
    letter-spacing: .04em;
    color: #0061B4;
    padding: 6px 0;
    border-radius: 5px;
    border: 1px solid #0061B4;

    &.pink {
      color: #DE2A50;
      border-color: #DE2A50;
    }
  }

  .top-news__text {
    font-size: 2.0rem;
    line-height: 1.5;
    letter-spacing: .04em;
    text-decoration-line: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
    transition: all .5s;
  }
}

@media screen and (max-width: 1279px) {
  .top-news {
    padding-inline: 16px;
    
    .top-news__inner {
      gap: 0;
    }

    .top-news__head {
      width: 350px;
      padding-left: 50px;
    }

    .top-news__list {
      width: calc(100% - 350px);
    }
  }
}

@media screen and (max-width: 1024px) {
  .top-news {

    .pcshow {
      display: none !important;
    }

    .spshow {
      display: block !important;
    }

    .top-news__inner {
      max-width: 100%;
      flex-direction: column;
      align-items: unset;
      padding: 50px 32px 0;
      gap: 24px;

      &::before {
        width: calc(100% - 32px);
        height: 43%;
        inset: 0;
        margin: 0 auto;
      }
    }

    .top-news__head {
      width: 100%;
      padding-left: 0;
    }

    .top-news__heading {
      margin-bottom: 0;
    }

    .top-news__list {
      width: 100%;
    }

    .top-news__archive-link {
      padding-left: 0;
      justify-content: right;
    }
  }
}

@media screen and (max-width: 767px) {
  .top-news {
    margin-top: 80px;

    .top-news__inner {
      padding-inline: 16px;

      &::before {
        width: 100%;
        height: 194px;
      }
    }
      
    .top-news__link {
      padding: 14px 54px 20px 24px;

      &::after {
        width: 14px;
        height: 14px;
        right: 20px;
      }
    }

    .top-news__date {
      font-size: 1.6rem;
    }

    .top-news__tag {
      font-size: 1.4rem;
      width: 133px;
      padding: 4px 0;
    }

    .top-news__text {
      font-size: 1.6rem;
      line-height: 1.4;
    }

    .top-news__archive-link {
      gap: 16px;
    }

    .top-news-linkarea-arrow {
      width: 40px;
      height: 40px;
      border-radius: 12px;
    }

    .top-news__archive-text {
      font-size: 1.6rem;
    }
  }
}

/* Contact */
.contact {
  margin-block: 120px 15px;
  padding-inline: 60px;
  
  .contact__inner {
    max-width: 1800px;
    display: flex;
    flex-direction: column;
    background: #0061b4;
    margin-inline: auto;
    padding-block: 80px;
    border-radius: 24px;
    position: relative;
  }

  .contact__icon {
    position: absolute;
    width: 148px;
    height: 215px;
    top: -84px;
    left: calc(100% - 247px);
  }

  .contact__wrap {
    display: flex;
    align-items: center;
    padding-left: clamp(150px, 16.667%, 300px);
    margin-bottom: 61px;
  }

  .contact__text {
    color: #ffffff;
    font-size: 2.0rem;
    line-height: 1.8;
    letter-spacing: .04em;
    margin-left: 200px;
  }

  .contact-btn {
    max-width: 1000px;
    margin-inline: auto;
    display: flex;
    justify-content: center;
    gap: 60px;
  }

  .contact-btn__wrap {
    margin-bottom: 24px;
  }

  .contact-btn__caption {
    color: #ffffff;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .04em;
    text-align: center;
  }

  .contact-btn__block {
    width: 470px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .contact-cta {
    margin-bottom: 20px;
  }
  
  .contact-cta__link {
    display: flex;
    justify-content: space-between;
    padding: 23px 22px 23px 56px;
  }

  .contact-cta__label {
    font-size: 2.4rem;
    padding-left: 4px;
  }

  .contact-cta__label-call {
    font-family: "Roboto", sans-serif;
    font-size: 2.8rem;
    width: calc(100% - 97px);
    text-align: center;
    padding-left: 4px;
  }

  .contact-cta__cta-arrow {
    width: 50px;
    height: 50px;
  }
}

@media screen and (max-width: 1439px) {
  .contact {
    .contact__text {
      margin-left: 50px;
    }
    
    .contact-cta__label {
      font-size: 2.2rem;
    }

    .contact-cta__label-call {
      font-size: 2.4rem;
    }
  }
}

@media screen and (max-width: 1279px) {
  .contact {
    .contact__text {
      margin-left: 50px;
    }
    .contact__wrap {
      padding-left: 0;
      justify-content: center;
        }

    .contact-cta__link {
      padding: 16px 18px 16px 34px;
    }

    .contact-cta__label {
      font-size: 2rem;
    }

    .contact-cta__label-call {
      font-size: 2.2rem;
    }
    
    .contact-cta__cta-arrow {
      width: 34px;
      height: 34px;
      border-radius: 8px;
    }

    .contact-btn {
      gap: 20px;
    }

    .contact-btn__block {
      width: 400px;
    }
  }
}

@media screen and (max-width: 1024px) {
  .contact {
    padding-inline: 16px;
    margin-top: 88px;

    .contact__icon {
      top: -42px;
      left: auto;
      right: 50px;
    }

    .contact__inner {
      max-width: 100%;
      width: 100%;
      background: #0061b4;
      padding: 50px 32px 55px;
      border-radius: 16px;
      gap: 36px;
    }

    .contact__wrap {
      flex-direction: column;
      align-items: unset;
      padding-left: 0;
      margin-bottom: 0;
    }

    .contact__heading {
      margin-bottom: 24px;
    }

    .contact__text {
      color: #ffffff;
      font-size: 2.0rem;
      line-height: 1.6;
      letter-spacing: 0;
      margin-left: 0;
    }

    .contact-btn {
      max-width: 100%;
      width: 100%;
      margin-inline: auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 25px;
    }

    .contact-cta {
      margin-bottom: 0;
    }

    .contact-btn__caption {
      color: #ffffff;
      font-size: 1.8rem;
      font-weight: 500;
      line-height: 1.4;
      letter-spacing: .04em;
      text-align: center;
    }

    .contact-btn__block {
      width: 470px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 11px;
    }

    .contact-cta__link {
      display: flex;
      justify-content: space-between;
      padding: 23px 25px 23px 56px;
      height: 100px;
    }

    .contact-cta__link-call {
      display: flex;
      justify-content: space-between;
    }

    .contact-cta__label {
      font-size: 2.4rem;
      line-height: 1.4;
      width: calc(100% - 98px);
      text-align: center;
      padding: 0;
    }

    .contact-cta__label-call {
      font-size: 2.8rem;
      width: calc(100% - 98px);
      text-align: center;
      padding: 0;
    }

    .contact-cta__cta-arrow {
      width: 50px;
      height: 50px;
    }
  }
}

@media screen and (max-width: 767px) {
  .contact {
    .contact__icon {
      width: 72px;
      height: auto;
      top: -37px;
    }

    .contact__text {
      font-size: 1.6rem;
      letter-spacing: .04em;
    }

    .contact-btn__block {
      width: 100%;
    }

    .contact-cta__link {
      padding: 12px 16px;
      height: 80px;
    }

    .contact-cta__label {
      font-size: 1.8rem;
      width: calc(100% - 72px);
    }

    .contact-cta__cta-arrow {
      width: 48px;
      height: 48px;
      border-radius: 16px;
    }

    .contact-cta__label-call {
      font-size: 2.0rem;
      width: calc(100% - 72px);
    }

    .contact-btn__caption {
      font-size: 1.5rem;
    }
  }
}

/* footer */
.footer {
  padding-inline: 60px;

  .footer__inner {
    margin-inline: auto;
    max-width: 1800px;
    background: #0061B4;
    padding: 40px;               
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  
  .footer__block {
    width: calc(100% - 211px);
    display: flex;
    align-items: center;
    gap: 80px;
  }

  .footer__logo {
    @media (hover: hover) {
      &:hover {
        opacity: .8;
      }
    }
  }
    
  .footer__list {
    width: calc(100% - 308px);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }

  .footer__item {
    margin-right: 60px;
    &:last-of-type {
      margin-right: 0;
    }
  }
  
  .footer__link {
    color: #ffffff;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: .04em;
    white-space: nowrap;

    @media (hover: hover) {
      &:hover {
        opacity: .8;
      }
    }
  }

  .copy {
    color: #ffffff;
    font-size: 1.4rem;
    font-family: 'Bai Jamjuree', sans-serif;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;

    .line-break {
      display: none;
    }
  }
}

@media screen and (max-width: 1279px) {
  .footer {
    .footer__inner {
      justify-content: space-between;
    }

    .footer__block {
      width: calc(100% - 105px);
      gap: 20px;
    }

    .footer__list {
      width: auto;
    }

    .footer__item {
      &:nth-of-type(n + 2) {
        margin-left: 10px;  
      }
    }

    .copy {
      font-size: 1.2rem;
      line-height: 1.4;

      .line-break {
        display: block;
      }
    }
  }
}

@media screen and (max-width: 1024px) {
  .footer {
    padding-inline: 16px;

    .footer__inner {
      max-width: 100%;
      width: 100%;
      flex-direction: column;
      align-items: center;
      padding: 32px 20px 40px;
      gap: 24px;
    }

    .footer__block {
      width: 100%;
      align-items: center;
      flex-direction: column-reverse;
      gap: 40px;
    }

    .footer__logo {
      width: auto;
    }

    .footer__list {
      width: 100%;
      flex-direction: column;
      align-items: center;
      gap: 24px;
    }

    .footer__item {
      line-height: 1;
      margin-right: 0px;
    }
    .headlessBadge_wrapper {
        align-items: center;
    }
    .copy {
      font-size: 1.2rem;

      .line-break {
        display: none;
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .footer {
    .footer__logo {
      width: 115px;
    }

    .footer__link {
      font-size: 1.5rem;
    }

    .copy {
      font-weight: 600;
    }
  }
}


/* =============================================
ALAYAについて ページ
============================================= */

/* SP用見出し */
@media screen and (max-width: 767px) {
  .c-heading {
    font-size: 4rem;
    .sub {
      font-size: 1.6rem;
      margin-bottom: 9px;
    }
  }
}

/* subvisual */
.subvisual {
  margin-top: 130px;
  padding: 20px 30px 0;

  .subvisual__inner {
    max-width: 1600px;
    margin: 0 auto;
  }

  .subvisual__wrap {
    background: #e5eff7;
    border-radius: 24px;
    padding: clamp(20px, 2.0834vw, 40px) clamp(50px, 5.2084vw, 100px);
    margin-bottom: clamp(30px, 3.0209vw, 58px);
  }

  .subvisual__heading {
    font-size: clamp(3.0rem, 2.0834vw, 4.0rem);
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .08em;
  }

  .subvisual__images {
    width: min(100%, 1300px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: clamp(0px, 5.2084vw, 100px);
    margin-inline: auto;
    position: relative;
    z-index: 1;

    & img {
      &:first-of-type {
        width: min(6.0834%, 73px);
        margin-right: clamp(20px, 9.1667%, 110px);
      }
  
      &:last-of-type {
        width: min(15.75%, 189px);
        margin-left: clamp(20px, 6.8334%, 82px);
      }
    }

    .subvisual__logo {
      width: min(62.25%, 747px);
      margin-top: -50px;
    }
  }

  .subvisual__block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 58px;
    margin-top: clamp(-43px, -2.2396vw, -30px);
  }

  .subvisual__function {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .subvisual__box {
    --delay: 0s;
    --overlap: min(23.5px, 1.224vw);
    --tail-length: 0deg;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: min(549px, 28.5938vw);
    height: min(549px, 28.5938vw);
    border-radius: 50%;
    position: relative;
    isolation: isolate;

    &::before,
    &::after {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: 50%;
    }

    &::after {
      background: #aaaaaa;
      z-index: 1;
      mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 calc(100% - 1px));
      -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1px), #000 calc(100% - 1px));
    }

    &::before {
      background: conic-gradient(from 0deg, transparent 0deg var(--arc-start), rgba(0, 97, 180, 0) var(--arc-start), #0061b4 calc(var(--arc-start) + var(--tail-length)), #0061b4 var(--arc-end), transparent var(--arc-end) 360deg);
      -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
      mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
      opacity: 0;
      z-index: 2;
      animation: circleLine 6s linear var(--delay) infinite both, circleFade 6s ease-in-out var(--delay) infinite both;
    }

    &:nth-of-type(1) {
      --delay: 1s;
      margin-right: calc(var(--overlap) * -1);
    }

    &:nth-of-type(2) {
      --delay: 3s;
    }

    &:nth-of-type(3) {
      --delay: 5s;
      margin-left: calc(var(--overlap) * -1);
    }

    .subvisual__thumbnail {
      width: min(298px, 15.5209vw);
      height: auto;
    }

    & h3 {
      font-size: clamp(1.8rem, 1.6667vw, 3.2rem);
      margin-top: clamp(10px, 1.823vw, 35px);
      line-height: 1;
      text-align: center;

      .subvisual__line-break {
        display: none;
      }
    }
  }

  .subvisual__cta {
    .subvisual__cta-link {
      gap: 25px;
      padding: 23px;
    }

    .subvisual__cta-label {
      font-size: 2.4rem;
      min-width: 575px;
      text-align: center;
    }

    .subvisual__cta-arrow {
      width: 50px;
      height: 50px;
    }
  }

  @media screen and (max-width: 1380px) {
    .subvisual__images {
      padding-left: 0;
    }
  }

  @media screen and (max-width: 1100px) {
    .subvisual__box {
      & h3 {
        .subvisual__line-break {
          display: block;
        }
      }
    }
  }

  @media screen and (max-width: 767px) {
    margin-top: 72px;
    padding: 20px 16px;

    .subvisual__inner {
      width: 100%;
    }

    .subvisual__wrap {
      border-radius: 16px;
      padding: clamp(8px, 4.1026vw, 16px) clamp(12px, 6.1539vw, 24px) clamp(12px, 6.1539vw, 24px);
      margin-bottom: clamp(25px, 12.8206vw, 50px);
    }
    
    .subvisual__heading {
      font-size: 2.4rem;
    }

    .subvisual__images {
      width: 100%;
      .subvisual__logo {
        width: min(88.4616vw, 345px);
        margin-top: 0;
      }
    }

    .subvisual__block {
      margin-top: 21px;
      gap: 20px;
    }

    .subvisual__function {
      --circle-size: clamp(250px, 64.1025vw, 275px);
      --bottom-offset-x: calc(var(--circle-size) * 0.42);
      --overlap-y: calc(var(--circle-size) * 0.18);

      position: relative;
      width: 100vw;
      height: calc((var(--circle-size) * 2) - var(--overlap-y));
      overflow: hidden;
    }

    .subvisual__box {
      position: absolute;
      width: var(--circle-size);
      height: var(--circle-size);
      margin: 0;

      &:nth-of-type(1) {
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        z-index: 3;
      }

      &:nth-of-type(2) {
        bottom: 0;
        left: 50%;
        transform: translateX(calc(-50% - var(--bottom-offset-x)));
        z-index: 2;
      }

      &:nth-of-type(3) {
        bottom: 0;
        left: 50%;
        transform: translateX(calc(-50% + var(--bottom-offset-x)));
        z-index: 1;
      }

      .subvisual__thumbnail {
        width: min(100px, 25.6411vw);
      }

      & h3 {
        font-size: clamp(1.6rem, 6.1539vw, 2.4rem);
        margin-top: 15px;
      }
    }

    .subvisual__cta {
      .subvisual__cta-link {
        gap: 24px;
        padding: 5px 16px 5px 24px;
      }

      .subvisual__cta-label {
        font-size: 1.8rem;
        line-height: 1.4;
        min-width: 213px;
      }

      .subvisual__cta-arrow {
        border-radius: 8px;
        width: 36px;
        height: 36px;

        &::before,
        &::after {
          background-size: 14px;
        }
      }
    }
  }
}

@property --arc-start {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

@property --arc-end {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

@keyframes circleLine {
  0% {
    --arc-start: 0deg;
    --arc-end: 0deg;
    --tail-length: 0deg;
  }

  6% {
    --arc-start: 0deg;
    --arc-end: 97deg;
    --tail-length: 45deg;
  }

  11.111% {
    --arc-start: 0deg;
    --arc-end: 180deg;
    --tail-length: 45deg;
  }

  22.222% {
    --arc-start: 180deg;
    --arc-end: 360deg;
    --tail-length: 45deg;
  }

  29% {
    --arc-start: 290deg;
    --arc-end: 360deg;
    --tail-length: 35deg;
  }

  33.333%,
  100% {
    --arc-start: 360deg;
    --arc-end: 360deg;
    --tail-length: 0deg;
  }
}

@keyframes circleFade {
  0% {
    opacity: 0;
  }

  7% {
    opacity: 1;
  }

  29% {
    opacity: 1;
  }

  33.333%,
  100% {
    opacity: 0;
  }
}

/* breadcrumb */
.breadcrumb {
  display: flex;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: .08em;
  margin-bottom: 18px;
  flex-wrap: wrap;
  row-gap: 3px;

  .breadcrumb__item:not(:last-child)::after {
    content: "/";
    margin: 0 10px;
    color: #B7B7B7;
  }

  .breadcrumb__link {
    color: #0061b4;
  }

  .breadcrumb__link.current {
    color: #292929;
    pointer-events: none;
  }

  @media screen and (max-width: 767px) {
    font-size: 1.4rem;
    margin-bottom: 20px;

    .breadcrumb__item:not(:last-child)::after {
      margin: 0 8px;
    }
  }
}

/* new-features */
.new-features {
  padding: clamp(136px, 14.16667vw, 272px) 32px clamp(15px, 1.5625vw, 30px);
  margin-top: -5.5%;
  position: relative;

  @media screen and (min-width: 1921px) {
    padding-top: clamp(272px, calc(272px + (100vw - 1920px)), 425px);
  }
  
  &::before,
  &::after {
    content: '';
    position: absolute;
    display: inline-block;
  }

  &::before {
    background: url(/content/100862177.png) left top / cover no-repeat;
    width: 100%;
    height: clamp(110px, calc(110px + (100vw - 768px) * 163 / 1152), 273px);
    top: 0;
    left: 0;

    @media screen and (min-width: 1921px) {
      height: clamp(273px, calc(273px + (100vw - 1920px)), 427px);
      top: 25px;
    }
  }

  &::after {
    background: url(/content/100862178.png) left top / cover no-repeat;
    width: 100%;
    height: clamp(110px, calc(110px + (100vw - 768px) * 163 / 1152), 273px);
    bottom: -73px;
    left: 0;
    z-index: -1;

    @media screen and (min-width: 1921px) {
      height: clamp(273px, calc(273px + (100vw - 1920px)), 427px);
    }
  }
  
  .new-features__inner {
    padding-top: 76px;
    position: relative;

    &::before {
      content: '';
      position: absolute;
      display: inline-block;
      background-color: #0061b4;
      width: 100vw;
      height: calc(100% - 28px);
      top: -140px;
      height: 105%;
      top: -165px;
      left: 50%;
      transform: translateX(-50%);
      z-index: -1;
    }
  }
  .content-threecolumns__heading {
    margin-bottom: 30px;
  }

  .content-threecolumns__label {
    margin-top: 36px;
  }

  .content-threecolumns__thumbnail {
    text-align: center;
  }

  @media screen and (max-width: 1439px) {
    .new-features__inner {
      &::before {
        height: 105%;
        top: -175px;
      }
    }
  }

  @media screen and (max-width: 1279px) {
    .new-features__inner {
      &::before {
        height: 110%;
        top: -194px;
      }
    }
    .content-threecolumns__heading {
      color: #fff !important;
    }
  }

  @media screen and (max-width: 1024px) {
    margin-top: -14%;
    margin-top: -9.5%;

    &::before {
      top: 50px;
    }

    &::after {
      bottom: -150px;
    }

    .new-features__inner {
      &::before {
        height: 109%;
        top: -100px;
      }
    }
  }

  @media screen and (max-width: 767px) {
    padding: 72px 0 0;
    margin-top: 0;

    &::before {
      background: url(/content/100862175.png) left top / cover no-repeat;
      height: 72px;
      top: 0;
    }

    &::after {
      background: url(/content/100862176.png) left top / cover no-repeat;
      height: 72px;
      bottom: -100px;
    }

    .new-features__inner {
      padding-top: 40px;

      &::before {
        height: 105%;
        top: -30px;
        left: 0;
        transform: none;
      }
    }

    .content-threecolumns__heading {
      color: #fff !important;
    }

    .content-threecolumns__cta-link {
      padding: 15px 16px 15px 24px;
      gap: 24px;
    }

    .content-threecolumns__cta-label {
      width: 185px;
    }
  }
}

/* category */
.category {
  background-color: #ccdff0;
  margin: 0 auto;
  position: relative;

  &::before {
    content: '';
    position: absolute;
    display: inline-block;
    background: url(/content/100862174.png) left top / cover no-repeat;
    width: 100%;
    height: clamp(110px, calc(110px + (100vw - 768px) * 163 / 1152), 273px);
    top: -1px;
    left: 0;

    @media screen and (min-width: 1921px) {
      height: clamp(273px, calc(273px + (100vw - 1920px)), 427px);
    }
  } 

  .category__inner {
    display: flex;
    flex-direction: column;
    gap: 80px;
    align-items: center;
    padding: clamp(160px, 16.9271vw, 325px) 32px 0;

    @media screen and (min-width: 1921px) {
      padding-top: clamp(325px, calc(325px + (100vw - 1920px)), 450px);
    }
  }
  
  .category__content {
    border-radius: 24px;
    max-width: 1200px;
    width: 100%;
    padding: clamp(30px, 5%, 60px) clamp(50px, 8.3334%, 100px);
    position: relative;
    z-index: 2;
    background: #E5EFF7;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 40px;

    .category__right {
      position: relative;

      &::after {
        content: '';
        background: url(/content/100862172.png) no-repeat;
        position: absolute;
        display: inline-block;
        width: 180px;
        height: 200px;
        top: -290%;
        left: 0;
        right: 0;
        bottom: 0;
        margin: 0 auto;
      }
    }

    &.gray {
      background: #f2f2f2;
  
      .category__right {
        &::after {
          background: url(/content/100862173.png) no-repeat;
          width: 261px;
          height: 219px;
          top: -300%;
        }
      }
    }
  }

  .category__left {
    min-height: 232px;
  }

  .category__heading {
    font-size: 4.8rem;
    margin-bottom: 40px;

  .sub {
      margin-bottom: 10px;
    }
  }

  .category__text {
    max-width: 600px;
    letter-spacing: .04em;
  }

  .category__cta {
    .c-cta__link {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
    }

    .c-cta__label {
      min-width: 143px;
      text-align: center;
    }
  }
  
  @media screen and (max-width: 1600px) {
    .category__content {
      .category__right {
        &::after {
          top: -280%;
        }
      }

      &.gray {
        .category__right {
          &::after {
            top: -290%;
          }
        }
      }
    }
  }
  
  @media screen and (max-width: 1240px) {
    .category__content {
      .category__right {
        &::after {
          top: -265%;
        }
      }

      &.gray {
        .category__right {
          &::after {
            top: -280%;
          }
        }
      }
    }
  }
  
  @media screen and (max-width: 1024px) {
    .category__content {
      .category__right {
        &::after {
          top: -255%;
        }
      }

      &.gray {
        .category__right {
          &::after {
            top: -270%;
          }
        }
      }
    }
  }
  
  @media screen and (max-width: 1005px) {
    .category__content {
      .category__right {
        &::after {
          top: -295%;
        }
      }
    }
  }
  
  @media screen and (max-width: 890px) {
    .category__content {
      .category__right {
        &::after {
          top: -335%;
        }
      }
    }
  }
  
  @media screen and (max-width: 832px) {
    .category__content {
      .category__right {
        &::after {
          top: -400%;
        }
      }
    }
  }
  
  @media screen and (max-width: 768px) {
    .category__content {
      .category__right {
        &::after {
          top: -485%;
        }
      }

      &.gray {
        .category__right {
          &::after {
            top: -310%;
          }
        }
      }
    }
  }
  
  @media screen and (max-width: 767px) {

    &::before {
      background: url(/content/100862171.png) left top / cover no-repeat;
      height: 72px;
      top: -1px;
    }

    .category__content {
      display: block;
      padding: clamp(25px, 12.821vw, 50px) clamp(12px, 6.1539vw, 24px) clamp(20px, 10.257vw, 40px);
    
      .category__right {
        &::after {
          content: none;
        }
      }
    }

    .category__inner {
      gap: 60px;
      padding: 92px 32px 20px;
    }

    .category__left {
      min-height: inherit;
    }

    .category__heading {
      font-size: 3.6rem;
      margin-bottom: 24px;

      .sub {
        font-size: 1.6rem;
        margin-bottom: 8px;
      }
    }

    .category__text {
      letter-spacing: .05em;
      margin-bottom: 17px;
    }

    .category__img {
      display: block;
      width: 172px;
      height: auto;
      margin: 0 auto 20px;
    }

    .category__cta {
      width: fit-content;
      margin: 0 auto;
    }

    .c-cta__label {
      max-width: 181px;
    }

    .c-cta__link {
      padding: 13px 16px 13px 24px;
      gap: 24px;
    }

    .c-cta__arrow {
      width: 36px;
      height: 36px;
      border-radius: 8px;
      &::before {
        background: url(/content/100862120.svg) no-repeat  50% 50%/13px;
      }
      
      &::after {
        background: url(/content/100862121.svg) no-repeat  50% 50%/13px;
      }
    }
  }
}

/* feature */
.feature {
  margin-top: 80px;
  position: relative;

  .feature__inner {
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 16px;
  }

  .feature-product {
    width: 100%;
    max-width: 1200px;
    padding: clamp(30px, 5%, 60px) clamp(50px, 8.3334%, 100px);
    margin: 0 auto;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #e3e3e3;

    .feature-product__wrap {
      display: flex;
      align-items: end;
      justify-content: space-between;
      margin-bottom: 50px;
      gap: 40px;
    }

    .feature-product__content {
      max-width: 560px;
    }

    .feature-product__heading {
      font-size: 3rem;
      font-weight: 700;
      line-height: 1.4;
      letter-spacing: .08em;
      margin-bottom: 24px;
    }

    .feature-product__text {
      font-size: 2rem;
      font-weight: 500;
      line-height: 1.8;
      letter-spacing: .04em;
    }

    .feature-product__cta {
      flex-shrink: 0;

      .c-cta__link {
        padding: 15px 12px 15px 59px;
      }
    }

    .feature-product__list {
      display: flex;
      gap: 25px;
    }

    .feature-product__item {
      position: relative;
      flex: 1;
    }
    
    .feature-product__link {
      display: block;
      width: 100%;
      height: 177px;
      background: #F2F2F2;
      border-radius: 16px;
      padding: 50px 40px 0 40px;
      padding: clamp(25px, 15.773%, 50px) clamp(20px, 12.619%, 40px) 0;
      font-size: 2.4rem;
      font-weight: 700;
      line-height: 1.4;
      letter-spacing: .04em;
            
      @media (hover: hover) {
        &:hover {
          background: #B3D0E9;

          &.feature-product__linkarea-arrow {
            background: #ffffff;
            border-color: #0061b4;

            &::before {
              animation: arrowRight .5s forwards;
            }

            &::after {
              animation: arrowLeft .5s .2s forwards;
            }
          }
        }
      } 
    }

    .feature-product__item:nth-child(2) .feature-product__link {
      padding-top: 33px;
    }

    .feature-product__linkarea-arrow {
      position: absolute;
      bottom: 7px;
      right: 7px;
      pointer-events: none;
    }
  }

  @media screen and (max-width: 1024px) {
    display: none;
  }
}

/* functions */
.functions {
  margin-block: 180px 120px;
  padding: 0 32px;

  .functions__inner {
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    background: #E5EFF7;
    border-radius: 24px;
    padding: clamp(25px, 2.8646vw, 55px) clamp(70px, 7.2917vw, 140px) clamp(25px, 2.448vw, 47px);
    position: relative;

    display: flex;
    gap: 85px;
  }

  .functions__content {
    flex: 1;
  }

  .functions__heading {
    margin-bottom: 40px;
  }
  .functions__text {
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: .04em;
    margin-bottom: 60px;
  }

  .functions__cta {
    margin-left: 10px;
    .c-cta__link {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
    }

    .c-cta__label {
      min-width: 143px;
      text-align: center;
    }
  }

  .functions__img {
    display: block;
  }
}

@media screen and (max-width: 1024px) {
  .functions {
    margin-block: 273px 120px;

    .functions__heading {
      font-size: 3.6rem;
      margin-bottom: 24px;
    }

    .functions__inner {
      display: block;
    }

    .functions__text {
      font-size: 1.6rem;
      margin-bottom: 20px;
    }

    .functions__img {
      width: 250px;
      height: auto;
      margin: 20px auto 0;
    }

    .functions__cta {
      width: fit-content;
      margin: 0 auto;
  
      .c-cta__label {
        width: 181px;
      }
    }

    .c-cta__link {
      padding: 13px 16px 13px 24px;
      gap: 24px;
    }

    .c-cta__arrow {
      width: 36px;
      height: 36px;
      border-radius: 8px;
      &::before {
        background: url(/content/100862120.svg) no-repeat  50% 50%/13px;
      }
      
      &::after {
        background: url(/content/100862121.svg) no-repeat  50% 50%/13px;
      }
    }
  }
}

@media screen and (max-width: 767px) {
  .functions {
    margin-block: 112px 60px;

    .functions__inner {
      width: 100%;
      max-width: 100%;
      border-radius: 16px;
      padding: clamp(25px, 12.8206vw, 50px) clamp(12px, 6.1539vw, 24px) clamp(20px, 10.2565vw, 40px);
    }

    .functions__img {
      margin: 20px auto;
    }

    .functions__cta {
      .c-cta__label {
        min-width: 181px;
        width: auto;
      }
    }
  }
}

/* ctaボタン　works */
.c-cta--works {
  .c-cta__link {
    gap: 48px;
    padding: 13px 16px 16px 54px;
  }
  .c-cta__label {
    width: 230px;
    text-align: center;
  }
  
  @media (max-width: 767px) {
    width: fit-content;
    margin: 0 auto;

    .c-cta__link {
      gap: 24px;
      padding: 12px 13px 12px 23px;
    }
    .c-cta__label {
      width: 213px;
    }
    .c-cta__arrow {
      width: 36px;
      height: 36px;
      border-radius: 8px;
      flex-shrink: 0;
      &::before {
        background: url(/content/100862120.svg) no-repeat  50% 50%/13px;
      }
      
      &::after {
        background: url(/content/100862121.svg) no-repeat  50% 50%/13px;
      }
    }
  }
}

.subvisual {
  padding: 0 16px;
  margin: 160px 0 80px;

  .subvisual__inner {
    max-width: 1600px;
    margin: 0 auto;
  }

  .subvisual__wrap {
    background: #E5EFF7;
    border-radius: 24px;
    padding: 40px 100px;
  }

  .subvisual__heading {
    font-size: 4rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .08em;
    margin: 0;
  }

  .subvisual__logo {
    display: block;
    width: 739px;
    height: auto;
    margin-left: 50px;
    position: relative;
    z-index: 2;
  }

  @media (max-width: 767px) {
    margin: 102px 0 60px;

    .subvisual__inner {
      width: 100%;
    }
    .subvisual__wrap {
      border-radius: 16px;
      padding: 16px 24px 24px 24px;
    }
    .subvisual__heading {
      font-size: 2.4rem;
    }
    .subvisual__logo {
      margin: 0 auto;
      padding: 0;
      max-width: 345px;
      width: 100%;
    }
  }
}

.l-maincontentsWrap {
  max-width: 1448px;
  padding: 0 24px;
  margin: 0 auto;
}

h2 {
  font-size: 3.2rem;
  line-height: 1.4;
  letter-spacing: .08em;
  font-weight: 500;
  padding-top: 30px;
  border-top: 2px solid #0061B4;
  margin-bottom: 50px;
  margin-top: 90px;
  
  @media (max-width: 767px) {
    font-size: 2.4rem;
    padding-top: 24px;
    margin: 80px 0 34px;
  }
}

h2:has(+ h3) {
  @media (max-width: 767px) {
    margin-bottom: 40px;
  }
}

h3 {
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .08em;
  margin-bottom: 30px;

  @media (max-width: 767px) {
    font-size: 2rem;
    margin-bottom: 24px ;
    margin-top: 40px;
  }
}

.text{
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .04em;
  margin-bottom: 50px;

  @media (max-width: 767px) {
    line-height: 1.8;
    margin-bottom: 24px;
  }
  &.tar {
    text-align: end;
    margin: 16px 0;
  }
}

.text:has( + .text) {
  margin-bottom: 12px;
}

h2 + .text {
  margin-bottom: 60px;

  @media (max-width: 767px) {
    margin-bottom: 40px;
  }
}

/* 下矢印のアニメーション */
@keyframes arrowAnchorUnder {
  0% {
    -webkit-transform: translateY(-100%) rotate(90deg);
    transform: translateY(-100%) rotate(90deg);
  }

  100% {
    -webkit-transform: translateY(0) rotate(90deg);
    transform: translateY(0) rotate(90deg);
  }
}

@keyframes arrowAnchorTop {
  0% {
    -webkit-transform: translateY(0) rotate(90deg);
    transform: translateY(0) rotate(90deg);
  }

  100% {
    -webkit-transform: translateY(100%) rotate(90deg);
    transform: translateY(100%) rotate(90deg);
  }
}

/* 左矢印のアニメーション */
@keyframes arrowPrevLeft {
  0% {
    -webkit-transform: translateX(0) rotate(180deg);
    transform: translateX(0) rotate(180deg);
  }

  100% {
    -webkit-transform: translateX(-100%) rotate(180deg);
    transform: translateX(-100%) rotate(180deg);
  }
}

@keyframes arrowPrevRight {
  0% {
    -webkit-transform: translateX(100%) rotate(180deg);
    transform: translateX(100%) rotate(180deg);
  }

  100% {
    -webkit-transform: translateX(0) rotate(180deg);
    transform: translateX(0) rotate(180deg);
  }
}


.pageLink {
  display: flex;
  gap: 24px 32px;
  margin-top: 60px;
  flex-wrap: wrap;
  padding: 0 8px;
  
  @media (max-width: 767px) {
    margin-top: 40px;
    flex-direction: column;
    gap: 12px;
  }
  
  .c-cta--pagelink {
    flex-shrink: 0;
    .c-cta__link {
      gap: 32px;
      background: #fff;
      padding: 12px 14px 12px 38px;

      @media (max-width: 767px) {
        justify-content: space-between;
        width: 100%;
        border: 1px solid #0061B4;
        border-radius: 12px;
        padding: 9px 12px 9px 24px;
        gap: 24px;
      }

      @media (hover: hover) {
        &:hover {
          background: #0061B4;
          .c-cta__label {
            color: #fff;
          }
        }
      }
    }

    .c-cta__label {
      font-size: 1.8rem;
      line-height: 1.4;
      letter-spacing: .08em;
      color: #0061B4;
      font-weight: 700;

      @media (max-width: 767px) {
        font-size: 1.6rem;
      }
    }
    .c-cta__arrow {
      width: 30px;
      height: 30px;
      border-radius: 8px;
      background: #0061B4;
      pointer-events: none;
      flex-shrink: 0;

      @media (max-width: 767px) {
        width: 26px;
        height: 26px;
      }

      &::before {
        background: url(/content/100862121.svg) no-repeat 50% 50% / 13px;
        transform: rotate(90deg);

        @media (max-width: 767px) {
          background-size: 10px;
        }
      }
      &::after {
        background: url(/content/100862120.svg) no-repeat 50% 50% / 13px;
        transform: translateY(-100%) rotate(90deg);

        @media (max-width: 767px) {
          background-size: 10px;
        }
      }
      
    }
    @media (hover: hover) {
      &:hover {
        .c-cta__arrow {
          background-color: #fff;
          flex-shrink: 0;
          
          &::before {
            -webkit-animation-name: arrowAnchorTop;
            animation-name: arrowAnchorTop;
            animation-delay: 0s;
          }
          &::after {
            -webkit-animation-name: arrowAnchorUnder;
            animation-name: arrowAnchorUnder;
            animation-delay: 0.2s;
          }
        }
      }
    }
  }
}

.columnLayout_texImg02 {
    display: flex;
    flex-wrap: nowrap;
    gap: 40px;
    align-items: center;
    padding-bottom: 50px;
    margin-bottom: 50px;
    border-bottom: 2px solid #E3E3E3;

  @media (max-width: 767px) {
    flex-direction: column;
    gap: 0;
    padding-bottom: 34px;
    margin-bottom: 34px;
  }

  .column {
    @media (max-width: 767px) {
      order: 1;
    }
  }
  
  .column.tac {
    max-width: 445px;
    width: 100%;
    height: auto;
    @media (max-width: 767px) {
      order: 2;
    }
  }

  h3 {
    margin-bottom: 20px;

    @media (max-width: 767px) {
      margin-bottom: 16px;
      margin-top: 0;
    }
  }

  a {
    display: block;

    img {
      width: 100%;
      height: auto;
    }

    @media (max-width: 767px) {
      order: 2;
      padding: 0 8px;
      margin-bottom: 32px;
    }
  }
  .c-cta__link {
    @media (max-width: 767px) {
      margin-bottom: 0;
    }
  }
}

.columnLayout_texImg02:first-of-type {
    padding-top: 50px;
    border-top: 2px solid #E3E3E3;

    @media (max-width: 767px) {
      padding-top: 35px;
    }
  }

.columnLayout_texImg02.is-last {
  margin-bottom: 120px;

  @media (max-width: 767px) {
    margin-bottom: 90px;
  }
}

.columnLayout_texImg03 {
  display: flex;
  align-items: center;
  gap: 20px;

  @media (max-width: 767px) {
    flex-direction: column-reverse;
  }

  .column {
    &:first-of-type {
      flex: 1 1 auto;
    }
    &:last-of-type {
      flex: 0 0 auto;
      max-width: 50%;
    }

    @media (max-width: 767px) {
      &:last-of-type {
        max-width: 100%;
      }
    }

    & figure {
      margin: 0;
    }

    & img {
      display: block;
      width: auto;
      max-width: 100%;
      height: auto;      
    }

    .text {
      margin-bottom: 0;
    }
  }
}

.columnLayout {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 100px;

  @media (max-width: 767px) {
    flex-direction: column;
    gap: 24px;
  }
  .column {
    width: calc((100% - 40px) / 2);
    background: #F2F2F2;
    border-radius: 24px;
    padding: 50px 60px 60px;

    @media (max-width: 767px) {
      width: 100%;
      padding: 32px 24px 40px;
    }

    h3 {
      margin: 0 0 24px;
    }
  }
  a {
    display: block;
    width: 100%;
    max-width: 445px;
    height: auto;
    margin: 0 auto;
    position: relative;

    img {
      width: 100%;
      height: auto;
    }

    .c-linkarea-arrow {
      position: absolute;
      bottom: 8px;
      right: 8px;
      pointer-events: none;
      width: 50px;
      height: 50px;
      border-radius: 16px;

      &::before,
      &::after {
        background-size: 14px;
      }
      
      @media (max-width: 767px) {
        bottom: 3px;
        right: 27px;
        width: 30px;
        height: 30px;
        border-radius: 8px;
        &::before,
        &::after {
          background-size: 11px;
        }
      }

      &::before {
        background-image: url(/content/100862143.svg);
        -webkit-transform: translateX(0);
        transform: translateX(0);
        transform: translateY(-1px);
      }

      &::after {
        content: none;
      }
    }
  }

  .text {
    margin-bottom: 0;
    
    @media (max-width: 767px) {
      font-size: 1.4rem;
      line-height: 1.6;
    }
  }

  .wba {
    color: #0061b4;
    word-break: break-all;
    text-decoration: none;

    & img {
      width: auto;
    }
  }

  @media (hover: hover) {
    a:hover {
      .c-linkarea-arrow {
        background: #ffffff;
        border-color: #0061b4;
      }
      .c-linkarea-arrow::before {
        background-image: url(/content/100862144.svg);
      }
    }
    .wba:hover {
      text-decoration: underline;
    }
  }
}

.columnLayout.categoryList {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: 40px;

  @media (max-width: 1024px) {
    display: flex !important;
    flex-direction: column;
    margin-bottom: 74px;
    gap: 24px;
  }
  
  .column {
    width: 100%;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    gap: 0px;
    background: #E5EFF7;
    padding: 50px 60px;
    border-radius: 16px;
    @media (max-width: 767px) {
      display: flex;
      flex-direction: column;
      padding: 32px 24px;
    }
  }
  .text {
    margin-bottom: 40px;

    @media (max-width: 1024px) {
      margin-bottom: 32px;
    }
  }
  .column_ttl {
    margin: 0 0 30px;

    @media (max-width: 1024px) {
      margin-bottom: 24px;
    }
  }

  .c-cta__label {
    @media (max-width: 1279px) {
      width: 180px;
    }
    @media (max-width: 1024px) {
      width: 197px;
    }
  }
}


.linkListTypeB {
  display: flex;
  gap: 24px 32px;
  margin-bottom: 40px;
  flex-wrap: wrap;
  align-items: baseline;

  @media (max-width: 767px) {
    flex-direction: column;
    gap: 15px;
  }

  li {
    width: calc((100% - 64px) / 3);
    line-height: 1;

    @media (max-width: 767px) {
      width: 100%;
    }
  }

  a {
    color: #0061b4;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .04em;
    display: inline-flex;
    align-items: center;
    gap: 16px;

    @media (max-width: 767px) {
      gap: 12px;
    }
  }

  @media (hover: hover) {
    a:hover{
      .c-linkarea-arrow--linkListTypeB {
        background: #0061b4;
      }

      .c-linkarea-arrow--linkListTypeB::before {
        animation: arrowRight .5s forwards;
      }

      .c-linkarea-arrow--linkListTypeB::after {
        animation: arrowLeft .5s .2s forwards;
      }
    }
  }
}

.c-linkarea-arrow--linkListTypeB {
  background: #fff;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  pointer-events: none;
  flex-shrink: 0;
  border: 1px solid #0061B4;

  @media (max-width: 767px) {
    width: 26px;
    height: 26px;
  }

  @media (hover: hover) {
    &:hover {
      background: #0061b4;
    }
  }

  &::before {
    background: url(/content/100862120.svg) no-repeat  50% 50%/11px;

    @media (max-width: 767px) {
      background-size: 10px;
    }
  }
  
  &::after {
    background: url(/content/100862121.svg) no-repeat  50% 50%/11px;
    
    @media (max-width: 767px) {
      background-size: 10px;
    }
  }
}

.flex_row {
  display: flex;
  gap: 32px;
  justify-content: center;
  margin: 60px 0 100px;

  @media (max-width: 1024px) {
    flex-direction: column;
    align-items: center;
    margin: 40px 0 80px;
    gap: 24px;
  }

  .c-cta.center {
    margin: 0;
  }
}

.c-cta--400 {
  .c-cta__link {
    gap: 48px;
    padding: 13px 14px 16px 58px;
  }
  .c-cta__link--3line {
    padding: 4px 14px 7px 58px;

    .c-cta__label {
      font-size: 2.0rem;

      @media (max-width: 767px) {
        font-size: 1.6rem;
        line-height: 1.15;
      }
    }
  }
  .c-cta__label {
    width: 228px;
    text-align: center;
    line-height: 1.1;
    font-size: 2.2rem;
    padding-left: 3px;

    @media (max-width: 767px) {
      font-size: 1.8rem;
      line-height: 1.4;
    }
  }
  
  @media (max-width: 767px) {
    width: fit-content;
    margin: 0 auto;

    .c-cta__link {
      height: 64px;
      gap: 24px;
      padding: 0 13px 0 23px;
    }
    .c-cta__label {
      width: 213px !important;
    }
    .c-cta__arrow {
      width: 36px;
      height: 36px;
      border-radius: 8px;
      flex-shrink: 0;
      &::before {
        background: url(/content/100862120.svg) no-repeat  50% 50%/13px;
      }
      
      &::after {
        background: url(/content/100862121.svg) no-repeat  50% 50%/13px;
      }
    }
  }
}

.c-cta.center {
  width: fit-content;
  margin: 0 auto;
}

.content-wrap {
  border: 2px solid #e3e3e3;
  border-radius: 24px;
  padding: 50px 60px 60px;
  margin: 90px 0 120px;

  @media (max-width: 767px) {
    border-radius: 16px;
    padding: 32px 24px 40px 24px;
    margin: 80px 0;
  }

  h3 {
    @media (max-width: 767px) {
      margin-top: 0;
    }
  }

  .linkListTypeB {
    margin-bottom: 0;
  }
}

.lead {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.window {
  color: #0061B4;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .04em;
  text-decoration: underline;
  display: inline;
  margin-bottom:50px;

  @media (max-width: 767px) {
    margin-bottom: 60px;
    font-weight: 400;
  }

  @media (hover: hover) {
    &:hover {
      text-decoration: none;
    }
  }
}

.new_window_icon02 {
  vertical-align: middle;
  padding-left: 7px;
  width: 21px;
  height: auto;
  transform: translateY(-1px);
}

.text .window {
  margin-bottom: 0;
}

/* 枠内テキストボタン */
.contactArea {
  background: #E5EFF7;
  border-radius: 24px;
  padding: 60px 100px 64px;
  margin-bottom: 70px;

  @media (max-width: 767px) {
    width: 100%;
    border-radius: 16px;
    padding: 32px 24px;
    margin-bottom: 50px;
  }

  .c-cta__label {
    @media (max-width: 767px) {
      max-width: 197px;
    }
  }
}

.contactArea .text {
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .08em;
  text-align: center;
  margin-bottom: 40px;

  @media (max-width: 767px) {
    font-size: 2rem;
    margin-bottom: 32px;
    text-align: initial;
  }
}

/* リスト */
.plain {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.04em;
  margin-bottom: 80px;
  @media (max-width: 767px) {
    line-height: 1.8;
    margin-bottom: 60px;
  }


  li {
    position: relative;
    padding-left: 20px;
    &::before {
      position: absolute;
      top: 10px;
      left: 4px;
      content: "";
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: #292929;
    }
    &:not(:last-of-type) {
      margin-bottom: 12px;
    }
  }
  &:has(+ .text.tar) {
    margin-bottom: 0;
  } 
}

/* 罫線 */
.dotLine {
  border-top: 2px solid #e3e3e3;
  &:has(+ .fontS) {
    margin-bottom: 24px;

    @media (max-width: 767px) {
      margin-bottom: 16px;
    }
  }
}

.fontS {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .04em;
  &:not(:last-of-type) {
    margin-bottom: 8px;

    @media (max-width: 767px) {
      margin-bottom: 12px;
    }
  }
}

/* 表 */
.table-type1-body {
  border-radius: 16px;
  border: 2px solid #E3E3E3;
  @media (max-width: 767px) {
    border-radius: 12px;
    border: 1px solid #E3E3E3;
  }
}

.table-type1-list {
  display: flex;
  align-items: center;
  border-bottom: 2px solid #E3E3E3;
  font-size: 1.8rem;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: .08em;

  @media (max-width: 767px) {
    padding: 16px 24px;
    gap: 8px;
    flex-direction: column;
    align-items: baseline;
    border-bottom: 1px solid #E3E3E3;
  }
  
  dt {
    width: 100%;
    max-width: 360px;
    padding: 24px 32px;

    @media (max-width: 767px) {
      padding: 0;
      font-size: 1.6rem;
      font-weight: 700;
    }
  }

  dd {
    width: 100%;
    padding: 24px 32px;

    @media (max-width: 767px) {
      padding: 0;
      font-size: 1.6rem;
      font-weight: 400;
    }
  }
  .arrowSmall {
    display: block;
    width: fit-content;
    color: #0061B4;
    text-decoration: underline;
    margin-top: 12px;

    @media (max-width: 767px) {
      margin-top: 8px;
    }

    @media (hover: hover) {
      &:hover {
        text-decoration: none;
      }
    }
  }

  &:last-of-type {
    border: none;
  }
}

/* 表（見出し有） */
.tablecommon {
  margin-bottom: 82px;

  @media (max-width: 767px) {
    margin-bottom: 60px;
  }
  table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 16px;
    overflow: hidden;
    @media (max-width: 767px) {
      border-radius: 12px;
    }
  }
  thead tr {
    border: 2px solid #E3E3E3;
    @media (max-width: 767px) {
      border: 1px solid #E3E3E3;
    }
  }
  .tableTh2 {
    border-left: 2px solid #E3E3E3;
    @media (max-width: 767px) {
      border-left: 1px solid #E3E3E3;
    }
  }
  .tableTd1 {
    border-right: 2px solid #e3e3e3;
    @media (max-width: 767px) {
      border-right: 1px solid #e3e3e3;
    }
  }

  th,
  td {
    padding: 24px 32px;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .08em;
    text-align: left;
    vertical-align: middle;

    @media (max-width: 767px) {
      padding: 16px 24px;
      font-size: 1.6rem;
    }
  }
  
  th:first-child {
    width: 360px;

    @media (max-width: 767px) {
      width: 130px;
    }
  }
  
  td {
    font-weight: 400;
  }
}

.tableTh1 {
  background: #CCDFF0;
}
.tableTd1 {
  font-weight: 400;
}
.tablecommon tbody tr th,
.tablecommon tbody tr td {
  border-bottom: 2px solid #E3E3E3;
  @media (max-width: 767px) {
    border-bottom: 1px solid #E3E3E3;
  }
}
.tablecommon thead tr:first-child th:first-child {
  border-top-left-radius: 16px;
  border-bottom: 2px solid #CCDFF0;
  @media (max-width: 767px) {
    border-top-left-radius: 12px;
    border-bottom: 1px solid #CCDFF0;
  }
}
.tablecommon thead tr:first-child th:last-child {
  border-top-right-radius: 16px;
  @media (max-width: 767px) {
    border-top-right-radius: 12px;
  }
}
.tablecommon tbody tr:last-child th:first-child {
  border-bottom-left-radius: 16px;
  @media (max-width: 767px) {
    border-bottom-left-radius: 12px;
  }
}
.tablecommon tbody tr:last-child td:last-child {
  border-bottom-right-radius: 16px;
  @media (max-width: 767px) {
    border-bottom-right-radius: 12px;
  }
}

.tablecommon tbody td {
  padding-left: 34px;

  @media (max-width: 767px) {
    padding-left: 25px;
  }
}

/* 前ページリンク */
.btn_prev {
  a {
    display: flex;
    align-items: center;
    gap: 24px;
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
    color: #0061B4;

    @media (max-width: 767px) {
      gap: 16px;
      font-size: 1.6rem;
    }

    @media (hover: hover) {
      &:hover {
        .c-linkarea-arrow--btn_prev {
          background: #fff;
  
  
  
          &::before {
            -webkit-animation-name: arrowPrevLeft;
            animation-name: arrowPrevLeft;
            animation-delay: 0s;
          }
          &::after {
            -webkit-animation-name: arrowPrevRight;
            animation-name: arrowPrevRight;
            animation-delay: 0.2s;
          }
        }
      }
    }
  }
}

.c-linkarea-arrow--btn_prev {
  pointer-events: none;

  @media (max-width: 767px) {
    width: 40px;
    height: 40px;
    border-radius: 12px;
  }

  &::before {
    background: url(/content/100862121.svg) no-repeat 50% 50% / 13px;
    transform: rotate(180deg);
  }
  &::after {
    background: url(/content/100862120.svg) no-repeat 50% 50% / 13px;
    transform: translateX(100%) rotate(180deg);
  }
}

/* リンクリスト（インデント） */
.sitemapList {
  li {
    line-height: 1;
    a {
      display: inline-flex;
      align-items: center;
      gap: 16px;
      font-size: 2rem;
      font-weight: 500;
      letter-spacing: .04em;
      color: #0061B4;

      @media (max-width: 767px) {
        gap: 12px;
        font-size: 1.8rem;
      }
      
      .c-linkarea-arrow {
        width: 30px;
        height: 30px;
        border-radius: 8px;
        pointer-events: none;
        border: 1px solid #0061B4;

        @media (max-width: 767px) {
          width: 26px;
          height: 26px;
        }

        &::before,
        &::after {
          background-size: 11px;

          @media (max-width: 767px) {
            background-size: 10px;
          }
        }
      }

      @media (hover: hover) {
        &:hover {
          .c-linkarea-arrow {
            border: 1px solid #0061B4;
            background: #fff;
            &::before {
              -webkit-animation-name: arrowRight;
              animation-name: arrowRight;
              animation-delay: 0s;
            }
            &::after {
              -webkit-animation-name: arrowLeft;
              animation-name: arrowLeft;
              animation-delay: 0.2s;
            }
          }
        }
      }
    }

    ul {
      li {
        padding-left: 24px;
        margin-bottom: 22px;

        @media (max-width: 767px) {
          padding-left: 16px;
          margin-bottom: 16px;
        }
        a {
          font-size: 1.6rem;
          font-weight: 500;
          line-height: 1.6;

          .c-linkarea-arrow {
            background: #fff;
            border: 1px solid #0061B4;
            pointer-events: none;

            &::before {
              background: url(/content/100862120.svg) no-repeat 50% 50% / 11px;
            }
            &::after {
              background: url(/content/100862121.svg) no-repeat 50% 50% / 11px;
            }
          }
          @media (hover: hover) {
            &:hover {
              .c-linkarea-arrow {
                background: #0061B4;
              }
            }
          }
        }
      }
      li:first-child {
        margin-top: 24px;

        @media (max-width: 767px) {
          margin-top: 16px;
        }
      }
    }
  }
}

.tac {
  text-align: center;
}

/* 画像1カラム */
.mediaBlock {
  img {
    width: auto;
    max-width: 1200px;
    height: auto;

    @media (max-width: 767px) {
      width: 100%;
    }
  }
}

.figurewrap {
  display: flex;
  justify-content: center;
  gap: 43px;

  @media (max-width: 767px) {
    flex-direction: column;
    gap: 16px;
  }
  figure {
    img {
      width: auto;
      max-width: 580px;
      height: auto;

      @media (max-width: 767px) {
        width: 100%;
        max-width: 100%;
      }
    }
  }
}

.container {
  padding: 0 16px;
}

.linkListTypeA {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex-wrap: wrap;

  .linkListTypeA__item {
    line-height: 1;
  }

  .linkListTypeA__link {
    color: #0061b4;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .04em;
    display: inline-flex;
    align-items: center;
    gap: 16px;
  }

  @media (hover: hover) {
    .linkListTypeA__link:hover{
      .c-linkarea-arrow--linkListTypeA {
        background: #0061b4;
        border-color: #0061b4;
      }
      .c-linkarea-arrow--linkListTypeA::before {
        animation: arrowRight .5s forwards;
      }
      .c-linkarea-arrow--linkListTypeA::after {
        animation: arrowLeft .5s .2s forwards;
      }
    }
  }
}

.c-linkarea-arrow--linkListTypeA {
  background: #fff;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  pointer-events: none;

  @media (max-width: 767px) {
    width: 26px;
    height: 26px;
  }

  @media (hover: hover) {
    &:hover {
      background: #0061b4;
    }
  }

  &::before {
    background: url(/content/100862120.svg) no-repeat  50% 50%/11px;
  }

  &::after {
    background: url(/content/100862121.svg) no-repeat  50% 50%/11px;
  }
}

.leadArea .text {
  font-size: 1.8rem;
  font-weight: 500;
}

.faqArea dl {
  display: flex;
  flex-direction: column;
  gap: 20px;

  dt, dd {
    display: flex;
    gap: 16px;
    letter-spacing: .04em;
    line-height: 1.6;

    @media (max-width: 767px) {
      line-height: 1.8;
    }

    &::before {
      content:"";
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      line-height: 1;
      background-size: 100% auto;
      transform: translateY(-7px);
      
      @media (max-width: 767px) {
        transform: translateY(0px);
      }
    }
  }

  dt {
    font-size: 1.8rem;
    font-weight: 500;

    &::before {
      background: url(/content/100862145.svg) no-repeat;
    }
  }

  dd {
    font-size: 1.6rem;

    &::before {
      background: url(/content/100862146.svg) no-repeat;
    }
  }

  dd:not(:first-of-type) {
    padding-left: 56px;
    margin-top: -7px;

    @media (max-width: 767px) {
      padding-left: 48px;
      margin-top: -3px;
    }
    &::before {
      display: none;
    }
  }
}

.dotLine {
  margin-block: 30px;
  border-top: 1px solid #e3e3e3;
}

.linkListTypeA {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-left: 80px;

  .linkListTypeA__item {
    line-height: 1;
  }

  .linkListTypeA__link {
    color: #0061b4;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .04em;
    display: inline-flex;
    align-items: center;
    gap: 16px;

    @media (max-width: 767px) {
      gap: 12px;
    }
  }

  @media (hover: hover) {
    .linkListTypeA__link:hover{
      .c-linkarea-arrow--linkListTypeA {
        background: #0061b4;
        border-color: #0061b4;
      }
      .c-linkarea-arrow--linkListTypeA::before {
        animation: arrowRight .5s forwards;
      }
      .c-linkarea-arrow--linkListTypeA::after {
        animation: arrowLeft .5s .2s forwards;
      }
    }
  }
}

.c-linkarea-arrow--linkListTypeA {
  background: #fff;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  pointer-events: none;
  flex-shrink: 0;

  @media (max-width: 767px) {
    width: 26px;
    height: 26px;
    border: 1px solid #0061b4;
  }

  @media (hover: hover) {
    &:hover {
      background: #0061b4;
    }
  }

  &::before {
    background: url(/content/100862120.svg) no-repeat  50% 50%/11px;
  }

  &::after {
    background: url(/content/100862121.svg) no-repeat  50% 50%/11px;
  }
}

.selectNews {
  display: flex;
  gap: 20px;
  align-items: center;

  .news {
    padding: 0;
  }
}

.selectNews__label {
  font-size: 2rem;
}

.selectNews__select {
  width: 250px;
}

.select {
  display: flex;
  align-items: center;
  position: relative;
  border: 1px solid #aaa;
  border-radius: 12px;

  &::after {
    content: "";
    position: absolute;
    right: 16px;
    width: 24px;
    height: 24px;
    background: url(/content/100862122.svg) no-repeat;
    background-size: 100% auto;
    pointer-events: none;
  }
}

.select select {
  font-family: 'Noto Sans JP', sans-serif;
  width: 100%;
  padding: 13px 16px 13px 24px;
  font-size: 2rem;
  color: #292929;
  background: none;
  border-radius: 12px;
  appearance: none;

  @media (max-width: 767px) {
    font-size: 1.8rem;
  }
}


.newsList {
  display: flex;
  flex-direction: column;
  gap: 8px;
  .news_item {
    a {
      width: 100%;
      padding: 24px 40px 28px;
      border-radius: 16px;
      background: #F2F2F2;
      position: relative;

      @media (max-width: 767px) {
        padding: 16px 16px 22px 24px;
      }

      &::after {
        content: "";
        background: url(/content/100862123.svg) center center no-repeat;
        display: block;
        width: 19px;
        height: 19px;
        position: absolute;
        top: 50%;
        right: 45px;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);

        @media (max-width: 767px) {
          width: 15px;
          height: 15px;
          right: 21px;
        }
      }
      @media (hover: hover) {
        &:hover {
          .news_ttl {
            text-decoration-color: currentColor;
          }
        }
      }
    }
    span {
      width: 100%;
      padding: 24px 40px 28px;
      border-radius: 16px;
      background: #F2F2F2;
      position: relative;
	}
    .nolink {
      display: block;
      width: 100%;
      padding: 24px 40px 28px;
      margin-bottom: 0;
      border-radius: 16px;
      background: #F2F2F2;

      @media (max-width: 767px) {
        padding: 16px 16px 22px 24px;
      }

      .news_ttl {
        text-decoration-line: none;
      }
    }
    div {
      display: flex;
      align-items: center;
      gap: 24px;
      margin-bottom: 12px;

      @media (max-width: 767px) {
        margin-bottom: 8px;
      }

      .date {
        font-size: 1.8rem;
        font-weight: 500;
        line-height: 1;
        letter-spacing: .08em;
        font-family: 'Bai Jamjuree', sans-serif;

        @media (max-width: 767px) {
          font-size: 1.6rem;
          font-weight: 500;
        }
      }
      .news_cat {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 155px;
        height: 28px;
        font-family: "BIZ UDPGothic", sans-serif;
        font-size: 1.6rem;
        font-weight: 700;
        border-radius: 5px;
        border: 1px solid #0061b4;
        color: #0061b4;

        @media (max-width: 767px) {
          font-size: 1.4rem;
          width: 133px;
          height: 26px;
        }
      }
      .news_cat.red {
        border: 1px solid #DE2A50;
        color: #DE2A50;
        
      }
    }
    .news_ttl {
      font-size: 1.8rem;
      font-weight: 400;
      line-height: 1.5;
      letter-spacing: .04em;
      margin-bottom: 0;

      text-decoration-line: underline;
      text-decoration-color: transparent;
      text-decoration-thickness: 1px;
      text-underline-offset: 0.2em;
      transition: all .5s;

      @media (max-width: 767px) {
        padding-right: 40px;
        margin: 0;
        font-size: 1.6rem;
        line-height: 1.4;
      }
    }
  }
}

.require {
  padding-block: 4px 5px;
  padding-inline: 12px;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  background-color: #de2a50;
  border-radius: 4px;
}

form {
  font-size: 1.6rem;
}

form table,
form tbody,
form tr,
form th,
form td {
  display: block;
  text-align: left;
}

form .tablecommon {
  margin-bottom: 0;
}

form .tablecommon th,
form .tablecommon td {
  padding: 0;
  border: none;
}

form .tablecommon tbody tr th, 
form .tablecommon tbody tr td {
  border: none;
}

form .tablecommon td {
  font-size: 1.6rem;
}

form table {
  padding: 26px 80px;
  border: 1px solid #e3e3e3;
  border-radius: 24px !important;

  @media (max-width: 767px) {
    border-radius: 0 !important;
  }
}

form tr {
  display: flex;
  gap: 39px;
  align-items: start;
  padding-block: 24px;
  border-bottom: 1px solid #e3e3e3;

  @media (max-width: 767px) {
    padding: 21px 0 21px;
  }
}

form tr:last-child {
  border: none;
}

form tr:not(:first-child) {
  th {
    padding-top: 14px;

    @media (max-width: 767px) {
      padding: 0;
    }
  }
}

form th {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-basis: 300px !important;
  flex-shrink: 0 !important;
  font-size: 1.8rem !important;
  font-weight: 500 !important; 
  letter-spacing: .04em !important;
  
  &:has(+ td.questionLeft) {
    padding-top: 0;
    line-height: 1.8;
  }
}

form td {
  width: 100%;
  font-size: 1.6rem;
}

form input[type="text"],
form input[type="email"],
form input[type="tel"] {
  width: 100%;
  max-width: 446px;
  padding: 15.5px 24px;
  font-size: 2rem;
  border: 1px solid #aaa;
  border-radius: 12px;
  margin-left: 8px;

  @media (max-width: 767px) {
    margin: 0;
    max-width: none;
  }
}

form input[type="text"].short,
form input[type="email"].short,
form input[type="tel"].short {
  max-width: 122px;
}

form input[type="text"].full,
form input[type="email"].full,
form input[type="tel"].full {
  width: 100%;
}

form .hyphen {
  width: 16px;
  height: 0;
  margin-inline: 12px;
  text-indent: -9999px;
  border-top: 2px solid #aaa;
}

form textarea {
  display: block;
  width: 100%;
  max-width: 892px;
  height: 200px;
  border: 1px solid #aaa;
  border-radius: 12px;
  margin-left: 8px;

  @media (max-width: 767px) {
    max-width: none;
    margin: 0;
  }
}

form input[type="radio"],
form input[type="checkbox"] {
  width: 0;
  height: 0;
  opacity: 0;
  overflow: hidden;
}

form label {
  cursor: pointer;
}

form label:has(input[type="radio"]) {
  position: relative;
  display: flex;
  gap: 6px;
  align-items: center;
  padding-block: 8px;
  letter-spacing: .04em;

  @media (max-width: 767px) {
    padding-block: 9.5px;
  }
}

form label:has(input[type="radio"])::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: 24px;
  height: 24px;
  border: 1px solid #aaa;
  border-radius: 100%;
}

form label:has(input[type="radio"]:checked)::after {
  content: "";
  display: block;
  position: absolute;
  left: 5px;
  width: 14px;
  height: 14px;
  background-color: #0061b4;
  border-radius: 100%;
}

form label:has(input[type="checkbox"]) {
  position: relative;
  display: flex;
  gap: 6px;
  letter-spacing: .04em;
  line-height: 1.6;
  align-items: center;
  padding-block: 8px;

  @media (max-width: 767px) {
    padding-block: 9.5px;
  }
}

form label:has(input[type="checkbox"])::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: 24px;
  height: 24px;
  border: 1px solid #aaa;
  border-radius: 4px;
}

form label:has(input[type="checkbox"]:checked)::before {
  background-color: #0061b4;
  border-color: #0061b4;
}

form label:has(input[type="checkbox"])::after {
  content: "";
  display: block;
  position: absolute;
  left: 3px;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  background: url(/content/100862124.svg) no-repeat;
  background-size: 100% auto;
}

form .catalog {
  margin-top: 19px;
  font-size: 1.6rem;
  letter-spacing: .04em;

  @media (max-width: 767px) {
    margin-top: 13px;
    line-height: 1.8;
  }
}

form .fontS {
  margin-top: 8px;
  font-size: 1.4rem;
}

form p {
  font-size: 1.6rem;
  letter-spacing: .04em;

  @media (max-width: 767px) {
    line-height: 1.8;
  }
}

form .window {
  margin: 0;
}

form .questionLeft {
  margin-left: 8px;

  @media (max-width: 767px) {
    margin-left: 0;
  }
}

form .questionRight {
  margin-left: -14px;

  @media (max-width: 767px) {
    margin-left: 0;
  }
}

.tablecommon--form {
  tr:first-of-type {
    th {
      padding-top: 11px !important;
    }
  }
  tr {
    padding-block: 23.5px;
  }
  tr:last-child {
    border-bottom: 1px solid #e3e3e3;
  }
  input[type="text"] {
    margin: 0;
  }
  input[type="text"].full {
    max-width: none;
  }
  input[type="text"]:first-child {
    margin-left: 8px;

    @media (max-width: 767px) {
      margin: 0;
    }
  }
  table {
    padding-bottom: 50px;
  }
}

.p_form_TtlLv03 {
  margin-top: 50px;
  font-size: 2.6rem;
  font-weight: 500;
}

.p_form_list {
  font-size: 1.6rem;
  letter-spacing: .04em;
  line-height: 1.6;
  margin-bottom: -5px;

  @media (max-width: 767px) {
    line-height: 1.8;
  }
}

label:has(.require) {
  width: 100%;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-shrink: 0 !important;
}

.c-cta .c-cta__arrow::before,
.c-cta .c-cta__arrow::after {
  left: 0;
}

.c-cta__link:disabled {
  background-color: #7D7D7D;
  border-color: #7D7D7D;
  pointer-events: none;
}

.c-cta__link:disabled .c-cta__arrow::before {
  background: url(/content/100862147.svg) no-repeat  50% 50%/18px;
}

@media screen and (max-width: 767px) {
  .faqArea dl {
    gap: 16px;

    dt, dd {
      &::before {
        width: 32px;
        height: 32px;
        background-size: 100% auto;
      }
    }
  }

  .linkListTypeA {
    padding-left: 48px;
  }

  .dotLine {
    margin-block: 26px;
  }

  .selectNews__label {
    flex-shrink: 0;
    font-size: 1.8rem;
  }

  .selectNews__select {
    width: 100%;
  }

  form .tablecommon table {
    padding: 0;
    border: 0;
    border-block: 1px solid #aaa;
    border-radius: 0;
  }

  form tr {
    display: block;
    border-bottom: 1px solid #e3e3e3;
  }

  form th {
    margin-bottom: 12px;
  }

  form .tablecommon th:first-child {
    width: 100%;
  }

  form input[type="text"],
  form input[type="email"],
  form input[type="tel"] {
    width: 100%;
  }

  form input[type="text"].short,
  form input[type="email"].short,
  form input[type="tel"].short {
    width: 96px;
  }

  form .hyphen {
    width: 12px;
    height: 0;
    margin-inline: 8px;
  }

  .p_form_TtlLv03 {
    margin-block: 40px 24px;
    font-size: 2rem;
  }

  .p_form_checkbox {
    text-align: left;
  }
  #check_msg {
    text-align: center;
  }
}

/* ===== Headless Badge (footer) ===== */
.headlessBadge_wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-end;
}
.headlessBadge_x7f2 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px 6px 6px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px;
  line-height: 1;
  white-space: nowrap;
}

.headlessBadge_x7f2 .headlessBadge_iconCircle_x7f2 {
  width: 22px;
  height: 22px;
  min-width: 22px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
}

.headlessBadge_x7f2 .headlessBadge_sub_x7f2 {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.75);
}

.headlessBadge_x7f2 .headlessBadge_main_x7f2 {
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: #ffffff;
}

.flex {
  display: flex;
}

.flex.alc {
  align-items: center;
}

.flex.column {
  flex-direction: column;
}

.red {
  color: #DE2A50;
}

.fw500 {
  font-weight: 500;
}

.tac {
  text-align: center;
}

.tal {
  text-align: left;
}

.tar {
  text-align: right;
}

.pt0 {
  padding-top: 0 !important;
}

.mt0 {
  margin-top: 0;
}
 
.mt10 {
  margin-top:10px;
}
 
.mt20 {
  margin-top:20px;
}
 
.mt30 {
  margin-top:30px;
}
 
.mt40 {
  margin-top:40px;
}
 
.mt50 {
  margin-top:50px; 
}
 
.mt60 {
  margin-top:60px;
}
 
.mb0 {
  margin-bottom: 0;
}
 
.mb10 {
  margin-bottom: 10px;
}
 
.mb20 {
  margin-bottom: 20px;
}
 
.mb30 {
  margin-bottom: 30px !important;
}
 
.mb40 {
  margin-bottom: 40px;
}
 
.mb50 {
  margin-bottom: 50px;
}
 
.mb60 {
  margin-bottom: 60px;
}

.mb80 {
  margin-bottom: 80px !important;
}

.mb100 {
  margin-bottom: 100px !important;
}

.mb110 {
  margin-bottom: 110px !important;
}
 
.mr5 {
  margin-right: 5px;
}


a.notes {
    margin: 0;
    color: #0061b4;
    text-decoration: none;
}

.width50p {
  width: 50%;
　display: block;
　margin: 0 auto;
}


.width67p {
  width: 67%;
　display: block;
　margin: 0 auto;
}

.width75p {
  width: 75%;
　display: block;
　margin: 0 auto;
}

.hidden {
  display: none!important;
}