@charset "UTF-8";
/************************************************
reset
************************************************/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,picture,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header,
hgroup, menu, nav, section,
time, mark, audio, video {
  margin:0;
  padding:0;
  border:0;
  outline:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}
body {
  background: #ebe7f0;
  box-sizing: border-box;
  position: relative;
}
article, aside, dialog, figure, footer, header,
hgroup, nav, section {
  display:block;
}

*, *::before, *::after {
  box-sizing: border-box;
}
a {
  margin:0;
  padding:0;
  border:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}
a:active, a:hover {
  outline-width: 0;
}
ul,ol {
  list-style: none;
}
picture {
  display: block;
}

html {
  font-size: 62.5%;
}

a {
  display: block;
  color: #6b6b6a;
  text-decoration: none;
  transition: all .3s;
}
a img {
  border: 0;
  outline: none;
  display: block;
  transition: all .3s;
}
@media screen and (min-width: 769px) {
   a img:hover {
    opacity: .7;
  }
}

.sp{
	display:none !important;
}

body{
  width: 100%;
  font-family: "游ゴシック", YuGothic, "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "ＭＳ Ｐゴシック", sans-serif;
  color: #333333;
  line-height: 1.6;
  text-align: left;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
}

.wrapper {
  width: min(100%,520px);
  margin: 0 auto;
  background-color: #f9f7ef;
  background-image: url("../img/contents_bg.jpg");
  background-repeat: repeat-y;
  background-size: 100% auto;
  box-shadow: 0px 0px 70px -5px #ccc4d4;
}
@media screen and (max-width: 768px) {
  .wrapper {
    width: 100%;
  }
}

.relativ {
  position: relative;
}
.absolute {
  position: absolute;
}
.inner {
  width: calc(660/750*100%);
  margin: 0 auto;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  display: block;
}

h2 {
  position: relative;
}
h2 .icon {
  width: calc(172/750*100%);
  margin: 0 auto;
  padding-top: calc(50/750*100%);
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}

.arrow {
  width: calc(368/750*100%);
  margin: 0 auto;
}


/*-----------------------------------
FV
-----------------------------------*/
.fv {
  padding: calc(50/750*100%) 0;
  background-image: url("../img/fv_bg.jpg");
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.fv h1 {
  width: calc(604/750*100%);
  margin: 0 auto calc(43/750*100%);
}

/*-----------------------------------
idx
-----------------------------------*/
.idx {
  position: relative;
}
.idx .inner {
  margin: 0 auto;
  position: absolute;
  left: 0;
  right: 0;
  top: 19.5%;
}

/*-----------------------------------
chap02
-----------------------------------*/
.chap02 {
  padding-bottom: calc(100/750*100%);
}
.chap02 .arrow {
  padding-top: calc(70/750*100%);
}

/*-----------------------------------
chap03
-----------------------------------*/
.chap03 {
  padding-bottom: calc(150/750*100%);
}
.chap03_ttl_wrap {
  position: relative;
}
.chap03_ttl_wrap .inner {
  margin: 0 auto;
  padding-top: 38.8%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}

/*-----------------------------------
chap04
-----------------------------------*/
.chap04 {
  padding-bottom: calc(120/750*100%);
}
.letro_wrap {
  background: #fff;
}
.chap04_img03_wrap {
  position: relative;
}
.chap04_img03_wrap p:nth-of-type(2) {
  width: calc(474/750*100%);
  margin: 0 auto;
  padding-top: calc(118/750*100%);
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}
.chap04_img03_wrap p:nth-of-type(3) {
  width: calc(629/750*100%);
  margin: 0 auto;
  padding-top: calc(194/750*100%);
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}
.chap04 .arrow01 {
  padding: calc(60/750*100%) 0 calc(60/750*100%);
}
.fin_btn {
  width: calc(684/750*100%);
  margin: 0 auto;
}

/*------------
CV
------------*/
.cv {
  position: relative;
}
.couponBox {
  max-width: 92%;
  margin-left: auto;
  margin-right: auto;
  border-radius: clamp(0px, 2.6667vw, 13px);
  overflow: hidden;
}
.couponBox .code-wrapper {
  background: url("../img/couponcode_bg.png") ;
  background-size: contain; 
/*  background: #29407b;*/
  display: flex;
  justify-content: center;
  gap: 10px;
}

.couponBox .code-wrapper .code {
    width: 66.52%;
}

@media screen and (min-width: 769px) {
  .couponBox .code-wrapper .code {
    max-width: 464px;
  }
}

.couponBox .code-wrapper .btn {
    width: 16.08%;
}

@media screen and (min-width: 769px) {
  .couponBox .code-wrapper .btn {
    max-width: 111px;
  }
}

.couponBox .code-wrapper .btn button{
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

.couponBox .code-wrapper.bg_cta {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.couponBox .code-wrapper .code {
    width: 66.521739%;
}

@media screen and (min-width: 769px) {
  .couponBox .code-wrapper .code {
    max-width: 464px;
  }
}

.couponBox .code-wrapper .btn {
    width: 16.0869565%;
}

@media screen and (min-width: 769px) {
  .couponBox .code-wrapper .btn {
    max-width: 111px;
  }
}

.couponBox .code-wrapper .btn button{
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}
.cv02 {
  margin: calc(60/750*100%) 0 0;
}

/*-----------------------------------
float-button__wrap
-----------------------------------*/
.float-button__wrap {
  width: 100%;
  background-color: rgba(255,255,255,.8);
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  transition: .5s;
  opacity: 0;
  pointer-events: none;
}
.float-button {
  width: 520px;
  margin: 0 auto;
  padding: 10px 20px 15px 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
}
.float-button__wrap.active {
  opacity: 1;
  pointer-events: auto;
}
.float-button__wrap.active.none {
  opacity: 0;
  pointer-events: none;
}
.float-button__wrap p {
  width: 48.9%;
}
.float-button__wrap a {
  display: block;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .float-button {
    width: 100%;
    padding: 2% 3.6% 3% 3.6%;
  }
}

/*-----------------------------------
FOOTER
-----------------------------------*/
footer {
  font-size: 2.604167vw;
  padding-top: 3vw;
  padding-bottom: 3vw;
  text-align: center;
  background: #fff;
  font-weight: 500;
  color: #535353;
}
footer * {
  letter-spacing: 0;
}
footer .linkBlock li {
  display: inline-block;
  line-height: 2;
}
footer .linkBlock li a {
  color: #535353;
}
footer .shareBlock li {
  display: inline-block;
  width: 6.512vw;
  margin: 5vw 2.4vw;
}


@media screen and (min-width: 769px) {
  footer {
    font-size: 14px;
    padding-top: 40px;
    padding-bottom: 40px;
  }
  footer .shareBlock li {
    width: 40px;
    margin: 35px 15px 40px;
  }

  footer .linkBlock li a{
	font-size: 14px;
  }

  footer .textCopy {
    font-size: 14px;
  }
}




/************************************
アニメーション
************************************/
/* ========== 共通状態 ========== */
.fade-up,
.fade-in,
.fade-left {
  opacity: 0;
  transition: all 0.5s ease-out;
}
.fade-up{
  transition: all 1s ease-out;
}

/* ========== アニメーション開始 ========== */
.inview.fade-up {
  transform: translateY(0);
  opacity: 1;
}
.fade-up {
  transform: translateY(30px);
}
.inview.fade-in {
  transform: translateY(0);
  opacity: 1;
}
.inview.fade-left {
  transform: translateX(0);
  opacity: 1;
}
.fade-left {
  transform: translateX(-30px);
}
.bounce {
  animation: bounce 1s infinite ease-in-out;
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(clamp(-20px, -2.67vw, 0px));
  }
}

@keyframes HorizontalShake {
  0% {
    transform:translateX(0px);
  }

  85% {
    transform:translateX(0px);
  }

  88% {
    transform:translateX(7px);
  }

  91% {
    transform:translateX(-7px);
  }

  94% {
    transform:translateX(7px);
  }
  97% {
    transform:translateX(-7px);
  }
  100% {
    transform:translateX(0px);
  }
}