@charset "UTF-8";

/*

  CSS初期化

================================================================
*/
body, div, dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6,
object, iframe, pre, code, p, blockquote,
form, fieldset, legend,
table, th, td, caption, tbody, tfoot, thead,
article, aside, figure, footer, header,
hgroup, menu, nav, section, audio, video, canvas {
  margin: 0;
  padding: 0;}
article, aside, figure, figcaption,footer,
h1, h2, h3, h4, h5, h6, header, hgroup, menu, nav, section {
  display: block;}
li { list-style: none;}
table,tr,th,td { border-collapse: collapse;}
img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  border: none;}

/*

  基本レイアウト設定

================================================================
*/
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;}
html { scroll-behavior: smooth;}
body {
  font-feature-settings: "palt";
  font-family: var(--font-primary);
  font-size: 16px;
  line-height: 1.0;
  word-break: break-all;
  -webkit-text-size-adjust: 100%;
  letter-spacing: .1em;
  color: var(--color-text);}
em,i,address { font-style: normal;}

p {
    line-height: 1.6;
    letter-spacing: .1em;}

/* --------------------------------------------------------- sp */
@media (max-width: 767px) {
  body {
      font-size: 3.6vw;}}
/*
================================================================

  共通パーツ

================================================================
*/

/*
  見出し
=============================================================== */
h1,h2,h3,h4 {
  line-height: 1.5;
letter-spacing: .1em;}
h2 {
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--color-primary);
  position: relative;}
.h2-box {
}
/* --------------------------------------------------------- sp */
@media (max-width: 767px) {
}

/*
  ボタン
=============================================================== */

.btn-common {
  background: var(--color-accent);
  border: 1px solid var(--color-accent);
  color: #fff;
  width: 300px;
  text-align: center;
  padding: 18px 40px;
  font-size: 20px;
  font-weight: bold;
  border-radius: 8px;
  display: block;
  margin: 0 auto;
  position: relative;
}
.btn-common::before {
  content: "";
  position: absolute;
  top: 42%;
  right: 8%;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  width: 8px;
  height: 8px;
  transform: rotate(45deg);
}
.btn-common:hover {
  background: #fff;
  color: var(--color-accent);
  transform: .3s;
  animation: pop .5s ease
}
.btn-common:hover::before {
  border-top: 2px solid var(--color-accent);
  border-right: 2px solid var(--color-accent);
  transform: .3s;
}

.arrow {
  position: relative;
  display: inline-block;
  padding: 0.6rem 1rem 2px;
  color: var(--color-text);
}/*矢印と下線の形状*/
.arrow::before{
  content: '';
  position: absolute;
  bottom: -5px;
  right: -1rem;
  width: 4rem;
  height: 1px;
  background:var(--color-primary);
  transition: all .3s;
}

.arrow::after{
  content: '';
  position: absolute;
  bottom: 0;
  right: -1rem;
  width: 15px;
  height:1px;
  background:var(--color-primary);
  transform: rotate(35deg);
  transition: all .3s;
}
.arrow:hover {
  opacity: .8;
}
/*hoverした際の移動*/
.arrow:hover::before{
  right:-2rem;
  width: 5rem;
}

.arrow:hover::after{
  right:-2rem;
}
/* --------------------------------------------------------- sp */
@media (max-width: 767px) {
.arrow {
  padding: 1.6vw 4vw;
}/*矢印と下線の形状*/
.arrow::before{
  right: -2vw;
  width: 20vw;
}

.arrow::after{
  right: -2vw;
  width: 15px;
  height:1px;
  background:var(--color-primary);
  transform: rotate(35deg);
  transition: all .3s;
}
.arrow:hover {
  opacity: .8;
}
/*hoverした際の移動*/
.arrow:hover::before{
  right:-6vw;
  width: 24vw;
}
.arrow:hover::after{
  right:-6vw;
}
}

/*
  独自class
=============================================================== */

.rainbow {
    background: var(--rainbow);}

.rainbow-text {
    background: var(--rainbow);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
    color: #fff;}

/*
  アニメーション
=============================================================== */
.aho {
    animation: aho 2s linear infinite;}
@keyframes aho {
    100% { background-position: 200%;}}

.wave {
    --animation-wave:3.5s linear 0s infinite normal none running wave;
    animation: 3.5s linear 0s infinite normal none running wave;
}
@keyframes wave {
    100% {transform: translateX(-136px);}
}
@keyframes fade {
  0% {
    opacity: 0;
    filter: blur(10px);
  }
  100% {
    opacity: 1;
  }
}

/*
  フォント
=============================================================== */

/*Zen Maru Gothic*/
@font-face {
	font-family: 'ZenMaruGothic';
	font-style: normal;
	font-weight: 500;
	src: url('../font/ZenMaruGothic-Regular.woff2') format('woff2');}
@font-face {
	font-family: 'ZenMaruGothic';
	font-style: normal;
	font-weight: 700;
	src: url('../font/ZenMaruGothic-Bold.woff2') format('woff2');}
/*ZenKakuGothicNew*/
@font-face {
	font-family: 'ZenKakuGothicNew';
	font-style: normal;
	font-weight: 500;
	src: url('../font/ZenKakuGothicNew-Regular.woff2') format('woff2');
}
@font-face {
	font-family: 'ZenKakuGothicNew';
	font-style: normal;
	font-weight: 700;
	src: url('../font/ZenKakuGothicNew-bold.woff2') format('woff2');
}
@font-face {
	font-family: 'Montserrat';
	src: url('../font/Montserrat-Bold.ttf') format('ttf');
}
/*

  基本リンク設定

================================================================
*/
a, a img {
  outline: none;}
a:link, a:visited { text-decoration: none;}
a:hover, a:active  { text-decoration: none;}

/*

  フォームパーツ初期化

================================================================
*/
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;}
textarea {
  resize: vertical;}
input[type='checkbox'],
input[type='radio'] {
  display: none;}

input[type='submit'],
input[type='button'],
label,
button,
select {
  cursor: pointer;}
select::-ms-expand {
  display: none;}