@charset "UTF-8";

@font-face {
  font-family: 'Helvetica-L';
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/Helvetica-Light.ttff") format("truetype");
  font-display: swap;
}

@font-face {
  font-family: 'Helvetica';
  font-style: normal;
  font-weight: bold;
  src: url("../fonts/Helvetica.ttf") format("truetype");
  font-display: swap;
}

@font-face {
  font-family: 'Helvetica-B';
  font-style: normal;
  font-weight: bold;
  src: url("../fonts/Helvetica-Bold.ttf") format("truetype");
  font-display: swap;
}

/* ==== root ========================== */
:root {
  --color-black: #231815;
  --color-white: #ffffff;
  --color-primary: #0fff00;
  --color-subPrimary: #533fdf;
  --color-pink: #ff009d;

  --noto-sans: "Noto Sans JP", serif;
  --zen-kaku: "Zen Kaku Gothic New", serif;
  --helvetica: "Helvetica", sans-serif;
  --helvetica-b: "Helvetica-B", sans-serif;

  --header: 12.2rem;
  scroll-padding: var(--header);
}

@media screen and (max-width:767px) {
  :root {
    --header: 13.5em;
    scroll-padding: var(--header);
  }
}

/*================================================
 *  一般・共通設定
 ================================================*/
html {
  font-size: clamp(6.3px, 0.833333vw, 13px);
  /* 1200px 10px */
  /* font-size: 0.833333vw; */
  scroll-behavior: smooth;
  box-sizing: border-box;
}

body {
  font-family: var(--zen-kaku);
  color: var(--color-black);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.6;
}

.wrap {
  width: 103rem;
  margin-left: auto;
  margin-right: auto;
}

.narrow {
  width: 100rem;
  margin-left: auto;
  margin-right: auto;
}

.max-1800 {
  max-width: 1800px;
  margin-left: auto;
  margin-right: auto;
}

p {
  font-size: 1.6rem;
}

a {
  color: var(--color-black);
  text-decoration: none;
  display: block;
  transition: all .4s;
}

a:hover {
  opacity: 1;
}


img {
  max-width: 100%;
  display: block;
}

strong {
  font-weight: bold;
}

small {
  font-size: smaller;
}

ul,
ol,
dl {
  margin: 0;
}

ul li {
  list-style: none;
}

ol li {
  list-style: decimal;
}

li {
  margin-left: 0;
}

/* タイトル */

h2.hd.ac {
  text-align: center;
}

h2.hd span {
  font-size: 1.8rem;
  display: block;
}

h2.hd.ac span {
  font-size: 1.8rem;
  display: block;
}

h2.cmn {
  text-align: center;
  font-size: 5rem;
  font-weight: bold;
}

h2.cmn span {
  font-size: 1.7rem;
  display: block;
  margin: 0 auto;
  font-weight: 500;
}

@media screen and (max-width:767px) {
  html {
    /* basefont-size 10px 600px */
    font-size: 1.66666vw;
  }

  p {
    font-size: 1.9rem;
  }

  .wrap,
  .narrow {
    width: 100%;
    min-width: unset;
  }


}

/*================================================
 *  section btn
 ================================================*/
section {
  position: relative;
  padding-bottom: 13rem;
}

.section {
  padding-top: 13rem;
}

/* gradBtn */
.gradBtn a {
  padding: 0.5rem 3.2rem;
  background: var(--color-black);
  border-radius: 10000px;
  color: var(--color-white);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-weight: bold;
  font-size: 1.3rem;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.gradBtn a::before,
.gradBtn a::after {
  position: absolute;
  content: "";
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  display: inline-block;
  background-image: url(../images/gradation_circle.svg);
  width: 40rem;
  height: 40rem;

  transition: all .4s;
  z-index: -1;
}

.gradBtn a::before {
  top: -100%;
  right: -30%;
}

.gradBtn a::after {
  bottom: -100%;
  left: -30%;
}

.gradBtn a:hover::before {
  transform: translate3d(1%, -1%, 0);
}

.gradBtn a:hover::after {
  transform: translate3d(-1%, 1%, 0);
}

.gradBtn.ac a {
  margin-left: auto;
  margin-right: auto;
}

/* simple_arrow */
.simpleArrowBtn a {
  font-size: 2rem;
  padding: 1rem 6rem 1rem 3rem;
  background: var(--color-black);
  color: var(--color-white);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
}

.simpleArrowBtn a::before {
  position: absolute;
  content: "";
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  display: inline-block;
  background-image: url(../images/simple_arrow.png);
  width: 1.5rem;
  height: 1.5rem;
  top: 50%;
  right: 3.5rem;
  transform: translateY(-50%);
  transition: .4s;
}

.simpleArrowBtn a:hover::before {
  right: 2.5rem;
}

.simpleArrowBtn.gr a {
  background: var(--color-primary);
  color: var(--color-black);
  border: 0.1rem solid var(--color-black);
}

.simpleArrowBtn.gr a::before {
  background-image: url(../images/simple_arrow_bk.png);
}

/* loop_swiper */
.loop_swiper {
  mix-blend-mode: screen;
}

.loop_swiper .swiper-wrapper {
  transition-timing-function: linear;
}

.loop_swiper .swiper-slide,
.loop_swiper .swiper-slide img {
  width: auto;
  max-width: unset;
  height: 11rem;
}

@media screen and (max-width:767px) {
  .gradBtn a {
    padding: 1rem 5rem;
    font-size: 1.8rem;
  }

  .gradBtn a::before {
    top: -24%;
    right: -10%;
  }

  .gradBtn a::after {
    bottom: -24%;
    left: -10%;
  }

  .loop_swiper .swiper-slide,
  .loop_swiper .swiper-slide img {
    height: 7.6rem;
  }

}

/*================================================
 *  header / ヘッダー
 ================================================*/
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  transition: all .2s;
  padding: 2rem 0;
  background: transparent;
}

header .nav__inner {
  width: 112rem;
  margin: 0 auto;
}

/* nav__left */
header .nav__left a h1 {
  width: 19rem;
  position: relative;
  display: block;
}

header .nav__left a h1::before {
  position: absolute;
  content: "";
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  display: inline-block;
  background-image: url(../images/hd_logo_bk.png);
  width: 100%;
  height: 100%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: all .2s;
}

header .nav__left h1 img {
  transition: all .2s;
}

header.changeNav .nav__left a h1::before {
  opacity: 1;
}

header.changeNav .nav__left h1 img {
  opacity: 0;
}

/* nav__right */
nav.gnav ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 3rem;
}

nav.gnav ul li:nth-child(1),
nav.gnav ul li.contact_sp {
  display: none;
}

nav.gnav ul li a {
  font-size: 1.4rem;
  color: var(--color-white);
}

nav.gnav ul li a:hover {
  opacity: .8;
}

.main_header nav.gnav ul li a:not(.current) {
  color: #a5a6a6;
}

nav.gnav ul li.contact a,
.main_header nav.gnav ul li.contact a {
  background: var(--color-primary);
  padding: 0.5rem 2.9rem;
  color: var(--color-black);
  font-size: 1.5rem;
  font-weight: 900;
}

header.changeNav {
  background: var(--color-white);
}

header.changeNav nav.gnav ul li a {
  color: var(--color-black);
}

@media screen and (max-width:767px) {
  header {
    padding: 1.5rem 0;
  }

  header .nav__inner {
    width: 54rem;
  }

  header .nav__left a h1 {
    width: 27rem;
    /* z-index: 101; */
  }

  header.changeNav.nav-open .nav__left h1 img {
    opacity: 1;
  }

  header.changeNav.nav-open .nav__left a h1::before {
    opacity: 0;
  }

  /* ハンバーガーメニュー内 */
  nav.global__nav {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    background: var(--color-black);
    transition: all .2s ease-out;
    z-index: 100;
    overflow-y: auto;
    opacity: 0;
    pointer-events: none;
  }

  .nav-open .global__nav {
    opacity: 1;
    pointer-events: fill;
  }

  nav.gnav ul {
    display: block;
    padding: 8rem 0;
  }

  nav.gnav ul li {
    border-bottom: 0.1rem solid var(--color-white);
  }

  nav.gnav ul li:nth-child(1),
  nav.gnav ul li.contact_sp {
    display: block;
  }

  nav.gnav ul li.contact {
    display: none;
  }

  nav.gnav ul li a {
    font-size: 4rem;
    font-weight: 500;
    padding: 4rem 0;
    margin: 0 7.5rem;
  }

  header.changeNav.nav-open nav.gnav ul li a {
    color: var(--color-white);
  }

  /* hamburger */
  .hamburger {
    position: absolute;
    right: 3rem;
    top: 4rem;
    width: 4rem;
    height: 4rem;
    cursor: pointer;
    z-index: 300;
  }


  /* line open */
  .hamburger__line {
    position: absolute;
    left: 0px;
    width: 100%;
    height: 0.6rem;
    background-color: var(--color-white);
    transition: all .2s ease-out;
  }

  .hamburger__line--1 {
    top: 0;
  }

  .hamburger__line--2 {
    top: calc(50% - 0.6rem);
  }

  .hamburger__line--3 {
    top: calc(100% - 1.2rem);
  }

  header.changeNav .hamburger__line {
    background-color: var(--color-black);
  }


  /* line close */
  .nav-open .hamburger__line--1 {
    transform: rotate(45deg);
    top: 1rem;
    background-color: var(--color-white);
  }

  .nav-open .hamburger__line--2 {
    width: 0;
    left: 50%;
  }

  .nav-open .hamburger__line--3 {
    transform: rotate(-45deg);
    top: 1rem;
    background-color: var(--color-white);
  }

  .nav-open.changeNav .hamburger__line {
    background-color: var(--color-white);
  }
}

/*================================================
 *  fix_btn
 ================================================*/
#fix_btn {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 8.5rem;
  z-index: 10;
  transition: .4s;
}

#fix_btn .close {
  display: none;
  cursor: pointer;
}

#fix_btn.hidden {
  opacity: 0;
  pointer-events: none;
}

@media screen and (max-width:767px) {
  #fix_btn {
    width: 100%;
  }


  #fix_btn .close {
    display: block;
    width: 3.5rem;
    margin-left: auto;
  }

}



/*================================================
 *  cmn-contact
 ================================================*/
#cmn-contact {
  background: url(../images/cmn_cont_bg.jpg) no-repeat center/cover;
  height: 100%;
  padding: 0;
}

#cmn-contact a {
  width: 100%;
  height: 15rem;
  color: var(--color-white);
  display: grid;
  place-content: center;
}

#cmn-contact h2 {
  font-size: 1.8rem;
  text-align: center;
  line-height: 1.6;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
}

#cmn-contact h2::before,
#cmn-contact h2::after {
  position: absolute;
  content: "";
  width: 4.3rem;
  height: 4.3rem;
  top: 50%;
  right: -6rem;
  transform: translateY(-50%);
  transition: .4s;
}

#cmn-contact h2::before {
  background: var(--color-primary);
  border-radius: 1000px;
}


#cmn-contact h2::after {
  position: absolute;
  content: "";
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  display: inline-block;
  background-image: url(../images/cmn_cont_arrow.png);
  width: 4.3rem;
  height: 4.3rem;
  top: 50%;
  right: -6rem;
  transform: translateY(-50%);
  transition: .4s;
}

#cmn-contact a:hover h2::after {
  right: -7rem;
}

@media screen and (max-width:767px) {
  #cmn-contact {
    background: url(../images/cmn_cont_bg_sp.jpg) no-repeat center/cover;
    height: 100%;
    padding: 0;
  }

  #cmn-contact h2 {
    font-size: 1.9rem;
    text-align: center;
  }
}


/*================================================
 *  フッター
 ================================================*/
footer {
  background: var(--color-black);
  padding: 10rem 0 9rem;
  color: var(--color-white);
}

footer .inner {
  width: 80rem;
  margin: 0 auto;
}

.ft__logo {
  width: 24rem;
}

.ft__logo h1 {
  font-size: 2rem;
  color: var(--color-white);
  line-height: 3;
}

.ft__logo p {
  font-size: 1.3rem;
  margin-top: 1rem;
}


.ft__menu {
  width: 13rem;
}

.ft__menu li a {
  color: var(--color-white);
  font-size: 1.2rem;
  margin-top: 2rem;
}

.ft__menu li.contact a {
  border-radius: 0;
  font-size: 1.5rem;
}

.ft__menu li.contact a::before {
  top: -50%;
  right: 0%;
}

.ft__menu li.contact a::after {
  bottom: -50%;
  left: 0%;
}

footer .copy {
  width: 100%;
  opacity: 0.5;
  font-size: 1.1rem;
}

@media screen and (max-width:767px) {
  footer .inner {
    width: 100%;
  }

  .ft__logo {
    width: 28rem;
    margin: 0 auto;
  }

  .ft__logo h1 {
    text-align: center;
    font-size: 2.6rem;
  }

  .ft__logo p {
    font-size: 1.4rem;
  }

  .ft__menu {
    width: 37rem;
    margin: 4rem auto 0;
  }

  .ft__menu ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0 4rem;
  }

  .ft__menu li a {
    font-size: 1.4rem;
  }

  .ft__menu li.contact {
    width: 100%;
  }

  .ft__menu li.contact a {
    margin: 5rem auto;
    font-size: 2.4rem;
  }

  .ft__menu li.contact a::before {
    top: -20%;
    right: 35%;
  }

  .ft__menu li.contact a::after {
    bottom: -20%;
    left: 35%;
  }

  footer .copy {
    font-size: 1.2rem;
    text-align: center;
  }
}

/*================================================
 *  mainVisual
 ================================================*/
#subVisual {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  width: 100%;
  height: 45rem;
  margin-top: 12.2rem;
  padding-bottom: 0;
}

#subVisual h2 {
  position: absolute;
  top: 0;
  left: 0;
}

@media screen and (max-width:767px) {
  #subVisual {
    height: 35rem;
    margin-top: 13.5em;
  }
}

/*================================================
 *  privacy
 ================================================*/
#subVisual.privacy h2 {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--color-black);
  font-size: 2.8rem;
  width: 100%;
  text-align: center;
  font-weight: bold;
}

#subVisual.privacy h2 span {
  display: block;
}

#privacy h3 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 1rem;
}

#privacy p {
  line-height: 2;
  font-weight: 400;
}

#privacy p.mt-1em {
  margin-top: 1em;
}

#privacy p.mt-2em {
  margin-top: 2em;
}

#privacy p span {
  display: inline-block;
  line-height: 1.8;
  margin-bottom: 1rem;
}

@media screen and (max-width:767px) {
  #subVisual.privacy {
    height: 23rem;
  }

  #subVisual.privacy h2 {
    font-size: 2.4rem;
  }

  #privacy .narrow {
    width: 52rem;
  }
}

/*================================================
 *  ani
 ================================================*/
/* fadeup */
.fadein {
  opacity: 0;
  transition: all 0.8s ease;
}

.fadein.on {
  opacity: 1;
}


/* fadeup */
.fadeup {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.8s ease;
}

.fadeup.on {
  opacity: 1;
  transform: translateY(0px);
}


.delay02 {
  transition-delay: 0.2s;
}

.delay03 {
  transition-delay: 0.3s;
}

.delay04 {
  transition-delay: 0.4s;
}

.delay10 {
  transition-delay: 1s;
}

/* obi */
.in_ani.obi,
.in_modal.obi {
  position: relative;
  overflow: hidden;
  line-height: 1;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 1rem;
}

.in_ani.obi::before,
.in_modal.obi::before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  background-color: var(--color-primary);
  transform-origin: left;
  top: 0;
  left: 0;
  z-index: 1;
  transform: scaleX(0);
  transform-origin: left;
}

.in_ani.obi.on::before,
.in_modal.obi.on::before {
  animation: obiani 800ms cubic-bezier(0.215, 0.61, 0.355, 1) 1 forwards;
}

/* テキストopa */
.in_ani.obi span,
.in_modal.obi span {
  opacity: 0;
  transition: all .4s ease .3s;
  padding: 1rem 2rem;
  background-color: var(--color-primary);
}

.in_ani.obi.on span,
.in_modal.obi.on span {
  opacity: 1;
}

@keyframes obiani {
  0% {
    transform: scaleX(0);
    transform-origin: left;
  }

  45% {
    transform: scaleX(1);
    transform-origin: left;
  }

  50% {
    transform: scaleX(1);
    transform-origin: left;
  }

  55% {
    transform: scaleX(1);
    transform-origin: right;
  }

  100% {
    transform: scaleX(0);
    transform-origin: right;
  }
}
.footer__sns img {
  width: 40px;
  height: 40px;
  margin-top: 10px;
}