/*===========================================================================
unique
単一ページで使用するCSS
接頭辞【.u-】

【予測変換用 _base.css記述】
:root {
  --font-color-base: #333;
  --font-color-main: #fff;
  --font-color-sub: #3e64ea;
  --font-family-base: "Noto Sans JP", sans-serif;
  --font-family-serif: "Noto Serif JP", serif;
  --font-family-brandon: "Brandon Grotesque", sans-serif;
  --font-family-poppins: "Poppins", sans-serif;
  
  --back-color-main: #fff;
  --back-color-sub: #3e64ea;
}
===========================================================================*/
.l-main {
  background: #fff;
}


.u-secLead__inr {
  display: flex;
  align-items: center;
  gap: 76rem;
}
.u-secLead__img {
  width: 716rem;
  height: 480rem;
  position: relative;
}
.u-secLead__img picture {
  width: 826rem;
  position: absolute;
  top: 0;
  left: -110rem;
}
.u-secLead__col {
  flex: 1;
}
.u-secLead__txt {
  margin-top: 32rem;
  line-height: 2;
  letter-spacing: 0.04em;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-secLead__inr {
    flex-direction: column;
    align-items: flex-start;
    gap: 32rem;
  }
  .u-secLead__img {
    width: 100%;
    height: auto;
  }
  .u-secLead__img picture {
    width: 100%;
    position: static;
  }
  .u-secLead__col {
    flex: 0 1 auto;
  }
  .u-secLead__txt {
    margin-top: 24rem;
  }
}




.u-sec {
  margin-top: 120rem;
}
.u-secTtl__sub {
  margin-top: 4rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-sec {
    margin-top: 80rem;
  }
}



.u-secPanel {
  margin-inline: var(--negative-margin);
  padding-inline: abs(var(--negative-margin));
  background: #F3F9FF;
}
.u-secPanel__inr {
  box-sizing: border-box;
  padding-top: 80rem;
  padding-bottom: 126rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-secPanel__inr {
    padding-top: 48rem;
    padding-bottom: 64rem;
  }
}




.u-panelItem:not(:first-child) {
  margin-top: 40rem;
}
.u-panelItem__inr {
  box-sizing: border-box;
  padding: 64rem;
  background: #fff;
  border-radius: 8rem;
}
.u-paneTtl__sub {
  font-size: 16rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-panelItem:not(:first-child) {
    margin-top: 24rem;
  }
  .u-panelItem__inr {
    padding: 32rem 24rem;
  }
}




.u-imgCol {
  display: flex;
  gap: 48rem;
  margin-top: 24rem;
}
.u-imgCol__img {
  width: 360rem;
}
.u-imgCol__col {
  flex: 1;
}
.u-imgCol__col dl {
  padding-left: 16rem;
}
.u-imgCol__col dt {
  font-size: 20rem;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.04em;
  position: relative;
}
.u-imgCol__col dt::before {
  content: " ";
  width: 8rem;
  height: 2rem;
  background: var(--back-color-sub);
  border-radius: 25rem;
  position: absolute;
  top: 14rem;
  left: -16rem;
}
.u-imgCol__col dd + dt {
  margin-top: 24rem;
}
.u-imgCol__col dd {
  margin-top: 8rem;
  font-size: 16rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.u-note {
  margin-top: 16rem;
  font-size: 16rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-imgCol {
    flex-direction: column;
    gap: 24rem;
  }
  .u-imgCol__img {
    width: 100%;
  }
  .u-imgCol__col dt {
    font-size: 18rem;
  }
  .u-imgCol__col dd + dt {
    margin-top: 16rem;
  }
  .u-imgCol__col dd {
    margin-top: 4rem;
  }
  .u-imgCol__col p {
    margin-top: 16rem;
  }
}




.u-secCol.dummy {
  height: 265rem;
  margin-top: 56rem;
  background: #D9D9D9;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-secCol.dummy {
    height: 400rem;
    margin-top: 32rem;
  }
}


.u-secCol {
  margin-top: 120rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-secCol {
    margin-top: 32rem;
  }
}



.u-galleryCol {
  margin-top: 56rem;
  overflow: visible;
}
.u-autoWrap {
  display: flex;
  gap: 24rem;
  width: max-content;
  animation: autoScroll 38s linear infinite;
  cursor: grab;
  user-select: none;
  will-change: transform;
}
.u-autoWrap__item {
  flex-shrink: 0;
  width: 470rem;
}
.u-autoWrap__img img {
  display: block;
  border-radius: 8rem;
}
.u-autoWrap__txt {
  margin-top: 32rem;
  font-size: 16rem;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@keyframes autoScroll {
  0% {
    transform: translateX(var(--scroll-start));
  }
  100% {
    transform: translateX(var(--scroll-end));
  }
}

/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .u-galleryCol {
    margin-top: 32rem;
  }
  .u-autoWrap {
    gap: 16rem;
  }
  .u-autoWrap__item {
    width: 286rem;
  }
  .u-autoWrap__txt {
    margin-top: 16rem;
    letter-spacing: 0.08em;
  }
}