@charset "utf-8";

/******************
 * reset
******************/
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}
ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
body {
  min-height: 100vh;
  line-height: 1.5;
}
h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1;
}
a:not([class]) {
  color: currentColor;
}
img,
picture {
  max-width: 100%;
  display: block;
  height: auto;
}
input,
button,
textarea,
select {
  font: inherit;
}
textarea:not([rows]) {
  min-height: 10em;
}
:target {
  scroll-margin-block: 5ex;
}
em {
  font-style: normal;
}

/******************
 * base
 ******************/
:root {
  --base-width: 375; /* 基準幅 */
  --max-width: 640; /* 最大幅 */
  --base-font-size: 10; /* 基準フォントサイズ (10px) */
  /* 最大横幅サイズ時の最大フォントサイズ */
  --max-font-size: calc((var(--base-font-size) / var(--base-width)) * var(--max-width) * 1px);
}

html {
  /** 以下指定により「1rem = width 375px 時の 10px」となる */
  font-size: min(calc((var(--base-font-size) / var(--base-width)) * 100vw), var(--max-font-size));
  scroll-behavior: smooth;
}

body {
  background: #D7F4FF;
  background: linear-gradient(90deg, rgba(215, 244, 255, 1) 0%, rgba(255, 223, 248, 1) 100%);
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  font-style: normal;
  font-size: 1.4rem;
  letter-spacing: 0.1rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 1.4rem;
}
img,
video {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
a {
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.2s;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.6;
    transition: opacity 0.2s;
  }
  button:hover {
    cursor: pointer;
  }
  label:hover {
    cursor: pointer;
  }
}
input,
textarea,
select,
button {
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: inherit;
  font-size: 1.4rem;
}
input:focus,
textarea:focus,
select:focus,
button:focus {
  outline: auto;
}

button {
  border: none;
  border-radius: 0.7rem;
  cursor: pointer;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}
input, select {
  vertical-align: middle;
}
/* smart phone default style reset */
input, button, select, textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
button{
  border: none;
  padding: 0;
  margin: 0;
  height: auto;
  cursor: pointer;
}
/* select box , checkboxの矢印を非表示 */
select::-ms-expand {
  display: none;
}
input[type="submit"]:hover {
  cursor: pointer;
}
input,
textarea {
  width: 100%;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 12px 10px;
  border: 1px solid #D3D3D3;
  background: #F7F7F7;
}
input:focus,
textarea:focus {
  background: #fffbc9;
}
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="number"],
input[type="image"] {
  height: auto;
  width: 100%;
}
/* placeholder color */
input::placeholder {
  color: #333;
  opacity: 0.7;
}
/* Edge */
input::-ms-input-placeholder {
  opacity: 0.7;
}
/* テキストを選択時時のハイライトカラー */
::-moz-selection {
  background-color: #93C1E5;
  color: #fff;
  text-shadow: none;
}
::selection {
  background-color: #93C1E5;
  color: #fff;
  text-shadow: none;
}
/*PC・SP表示非表示*/
.pc{
    display:none;
}
@media screen and (min-width:768px){
.pc{display:inline-block;}
.sp{display:none;}
}


/******************
 * utility
******************/
.u-mt-1 {
  margin-top: -1rem;
}
.u-mb-1 {
  margin-bottom: 1rem;
}
.u-mb-2 {
  margin-bottom: 2rem;
}
.u-mb-3 {
  margin-bottom: 3rem;
}
.u-mb-4 {
  margin-bottom: 4rem;
}
.u-mb-5 {
  margin-bottom: 5rem;
}
.aC {
  text-align: center;
}


/*page*/
main{
  width: 100%;
}
.pc-bg{
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: 100vh;
  position: fixed;
}
.pc-bg__popup,
.pc-bg__menu{
  width: calc((100% - 430px) / 2);
  pointer-events: initial;
  padding: 15rem 2rem 2rem;
}
.main-contents{
  width: 430px;
  margin: 0 auto;
  position: relative;
  /* z-index: 0; */
}
@media screen and (max-width :1080px) {
  .pc-bg__popup{
    width: calc(100% - 430px - 2rem);
    padding: 15rem 1rem 2rem;
  }
  .pc-bg__menu{
    display: none;
  }
  .main-contents{
    margin: 0 2rem 0 auto;
  }
}
@media screen and (max-width :768px) {
  .pc-bg__popup{
    display: none;
  }
  .main-contents{
    width: 100%;
  }
}


/* main */
/* popup */
.pc-bg__popup--inner{
  position: relative;
  max-width: 330px;
  margin: 0 auto;
}
.popup-btn{
  position: absolute;
  top: 60%;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
}
@media screen and (max-width :1080px){
}
/* /popup */


/* menu */
.pc-bg__menu--inner{
  width: 260px;
  margin: 0 auto;
}
.pc-bg__menu h2{
  background-image: url(../../img/index/mokuji_ttl.webp);
  background-size: 100%;
  background-repeat: no-repeat;
  text-align: center;
  width: 176px;
  height: 74px;
  line-height: 2;
  font-size: 1.8rem;
  color: #4FBCFE;
  margin: 0 auto;
}
.menu-inner li a{
  display: flex;
  font-size: 1.3rem;
  font-weight: 700;
  border-bottom: dotted #fff 5px;
  padding: .3rem 1rem 0;
}
.menu-inner li a span.text{
  width: 200px;
  text-align: center;
}
.menu-inner li a span.arrow{
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  position: relative;
}
.menu-inner li a span.arrow::before{
  content: '';
  width: 10px;
  height: 10px;
  position: absolute;
  top: 40%;
  left: 50%;
  border-top: 2px solid #fff;
  border-right:  2px solid #fff;
  transform: translate(-50%, -50%) rotate(135deg);
}
.menu-inner li:nth-child(odd) a span.text{
  color: #F86DE9;
}
.menu-inner li:nth-child(odd) a span.arrow{
  background-color: #F86DE9;
}
.menu-inner li:nth-child(even) a span.text{
  color: #4FBCFE;
}
.menu-inner li:nth-child(even) a span.arrow{
  background-color: #4FBCFE;
}
/* /menu */


/* coupon get-btn */
.coupon{
  background-color: #E9F9FF;
  position: relative;
  z-index: -1;
}
.get-btn {
  padding: 2rem 0;
}
/* /coupon get-btn */


/* line_dtl */
.line_dtl{
  font-size: 0.7rem;
  padding: 1rem;
}
.line_dtl p{
	text-align: center;
  margin-bottom: 0.8rem;
  overflow-wrap: break-word;
}
/* /line_dtl */


/* Slick */
.slider-wrapper {
  padding: 2rem 2rem 3rem 2rem;
  background-image: url(../../img/index/tik_bg.webp);
  background-size: 100%;
  background-repeat: no-repeat;
  position: relative;
}
.js-slick .slick-dots {
  position: absolute;
  bottom: 5%;
  left: 50%;
  transform: translateX(-50%);
  bottom: auto;                /* slickデフォルトの下位置指定を解除 */
  display: flex !important;
  gap: 5px;                   /* ドット同士の間隔 */
  width: auto;                 /* slickデフォルトの width: 100% を解除 */
  z-index: 10;
}
.slick-dotted.slick-slider{
  margin-bottom: 0 !important;
}
.js-slick .slick-dots li {
  margin: 0;
}
.slider-wrapper ul {
  margin: 0 auto;
}
.slider-wrapper ul li img {
  width: 100%;
}
.slider-wrapper p{
  font-size: .7rem;
  color: #437388;
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  line-height: 0;
  width: 100%;
  text-align: center;
}
.slider-wrapper .yajirushi{
  position: absolute;
  top: 20%;
  transform: translateY(-50%) rotate(90deg);
  left: 50%;
  width: 4%; 
}
.slide-items{
  padding: 36% 0 0; 
  width: 93%;
  margin: 0 auto;
}
.slick-dots li button:before{
  opacity: 1 !important;
  color: #fff !important;
  font-size: .8rem !important;

}
.slick-dots li.slick-active button:before{
  opacity: 1 !important;
  color: #0061AC !important;
}
@media screen and (min-width: 640px) {
.js-slick .slick-dots {
  left: 50%;
  transform: translateX(-50%);
  gap: 15px;                   /* ドット同士の間隔 */
}
.slider-wrapper .yajirushi{
  width: 3%;
}
}
/* /Slick */


/* footer */
.page-footer {
  padding: 2rem 1rem;
  text-align: center;
  font-size: 1rem;
  background-color: #387BD7;
  color: #fff;
  position: relative;
  z-index: 100;
}
.page-footer a {
  margin: 0 0.5rem;
}
/* /footer */


/* ボタンアニメーション */
.btn_animation .btn{
  display: block;
  animation: btn_animation 1s infinite;
}

@keyframes btn_animation {
    0% {
        transform: scale(1, 0.8);
    }
    20% {
        transform: scale(0.8, 1.1);
    }
    95% {
        transform: scale(1, 1);
    }
    100% {
        transform: scale(1, 0.8);
    }
}
/* /ボタンアニメーション */


/* modal */
.modal{
  margin: 0 auto;
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 9999;
}
.modal__content{
  position: relative;
  width: 100%;
  max-width: 500px;
  margin: 0 auto;
}
.modal__content .close-btn{
  position: absolute;
  top: 0;
  right: 0;
  background-color: #fff;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid #000;
  color: #000;
  font-size: 30px;
}
.modal__content .close-btn span{
  line-height: 0;
  vertical-align: 7px;
}
.modal-btn{
  position: absolute;
  top: 60%;
  left: 50%;
  transform: translateX(-50%);
  width: 85%;
  display: flex;
  align-items: start;
}
/* /modal */


/************************************
 * JS
************************************/
/******** Modal ********/
.js-modal__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100vw;
	height: 100dvh;
	background-color: rgb(0, 0, 0, .75);
	padding: 2rem;
}
.js-modal__content {
	-webkit-animation: zoomIn 1s cubic-bezier(0.79, 0, 0.31, 1) forwards;
	animation: zoomIn 1s cubic-bezier(0.79, 0, 0.31, 1) forwards;
}


/************************************
 * アンケート
************************************/
.question{
  background-color: #E9F9FF;
}

.csl__box {
	background-color: #e9f9ff;
	position: relative;
  padding: 2.5rem 0 0 0;
  z-index: 0;
}

.charabox__contents-img{
	position: absolute;
	top: -1%;
	right: 0%;
	max-width: 16vw;
	z-index: 3;
	transition: top .6s cubic-bezier(.4, 0, .2, 1);
}

/******** 質問ブロック（ステップ制御） ********/
.csl__item {
	position: relative;
	transition: filter .4s ease;
}

/* まだ回答できない質問 */
.csl__item.is-locked {
	filter: grayscale(100%) opacity(.55);
	pointer-events: none;
	-webkit-user-select: none;
	user-select: none;
}
.csl__item.is-locked .sec-worries__item {
	cursor: default;
}

.animated-sway {
	animation: sway 3s linear 0s infinite;
	transition: 0.8s;
  }

@keyframes sway {
	0%   { transform: translateX(0); }
	25%  { transform: translateX(-5px); }
	50%  { transform: translateX(5px); }
	75%  { transform: translateX(-5px); }
	100% { transform: translateX(0); }
}

.charabox__contents-img--down{
	position: absolute;
	top: 100%;
	right: 2%;
	max-width:75px;
	z-index: 10000;
}

@media screen and (min-width: 768px) {
	.charabox__contents-img{
		max-width:100px;
		animation: animationDawn 1s cubic-bezier(0.79, 0, 0.31, 1) forwards;
	}
}

.csl__head {
	width: 100%;
	margin-bottom: 0.5rem;
	-moz-column-gap: 2%;
	column-gap: 2%;
	font-size: 2rem;
	font-weight: bold;
	line-height: 1.3;
}
.csl__head h2 {
	font-size: 1.2rem;
  font-weight: bold;
  text-align: left;
  line-height: 1.5;
  padding: 0 2rem;
}

@media screen and (max-width:768px) {
.csl__head h2 {
	font-size: 1.8rem;
}
}

.csl__head h2 span{
	display: block;
	font-size: 1.5rem;
}
.csl__head__img{
	width:50%;
	margin: 0 auto;
	padding: 1rem;
}
.count_nam{
	width: 20%;
	padding: 1.5% 2%;
	text-align: center;
	font-size: 1.2rem;
	font-weight: normal;
	background-color: #FDE5E5;
	border-radius: 50px;
}
.csl__head-number {
	width: 20%;
}
.csl__btn-wrap {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	flex-direction: row;
	gap: 1rem;
	padding: 0rem 1rem 3rem;
  z-index: 2;
}
.csl__btn-wrap > * {
  width: calc((100% - 1rem) / 2); /* gapが1rem×2＝2rem */
}
.p5{
	display: block;
}
.csl__checkbox {
	transition: all .2s;
	display: block;
	border: none;
	cursor: pointer;
}
.csl__checkbox input[type='checkbox']{
	display: none;
}
.csl__btn-inner:has(.csl__checkbox img:hover){
	border: #E02961 solid 2px;
	border-radius: .7rem;
	padding: .1rem;
}
.csl__prev-btn {
	margin-top: 0.5rem;
	padding: 0.5rem;
	width: 20%;
	background-color: #efefef;
	font-size: 1.2rem;
}
@media screen and (max-width:640px){

}

/******** カード ********/
.sec-worries__row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  column-gap: 1rem;
  margin-bottom: 1.7rem;

}
.sec-worries__item {
  position: relative;
  cursor: pointer;
}
.sec-worries__item .flip-card {
  top: 0;

}

.flip-card {
  width: 100%;
  height: 100%;
  left: 0;
  background-color: transparent;
  position: relative;
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s;
}
.flip-card-front img{
	border: 0.2rem solid #44a2e5;
	border-radius: 0.9rem;
	box-shadow: 0px 0px 1rem rgba(0,0,0,0.25);
	transition: border-color .3s ease;
}

/* 選択済みのカード */
.flip-card__wrap.js-active .flip-card-front img {
	border-color: #466b85;
}


/******** / カード ********/

.thanks-text{
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
  padding: 1rem;
}
@media screen and (max-width:768px) {
.thanks-text{
  font-size: 1.7rem;
  padding-right: 2.3rem;
} 
}