@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&family=Noto+Serif+JP:wght@200..900&family=Zen+Maru+Gothic:wght@400;500;700&display=swap');

:root{
 scroll-behavior: smooth;
}
#Content_feature * {
  font-family: 'Noto Sans JP', "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}
#Content_feature .fZen{
  font-family: "Zen Maru Gothic", sans-serif;
}
#Content_feature{
 position: relative;
	margin-bottom: 0px;
	background: url("images/bg_contents.jpg") repeat left top / 100% auto;
 padding-bottom: calc(97px + 146px);
}
#Content_feature::after{
 content: "";
 display: block;
 background: url("images/foot_bg.jpg") repeat-x left top / auto 100%;
 width: 100%;
 height: 97px;
 position: absolute;
 left: 0;
 bottom: 0;
}
#Content_feature a{
	color: #000 !important;
	text-decoration: none;
}
#Content_feature img{
	width: 100%;
}
#Content_feature .article_inner{
	margin: 0 auto;
	max-width: 1000px;
}
#Content_feature .inner{
  margin: 0 auto;
  max-width: 929px;
}
#Content_feature a.btn{
	background: #000;
	display: block;
	width: 238px;
	height: 36px;
	color: #fff !important;
	font-size: 20px;
	line-height: 1.2;
	font-weight: 500;
	text-align: center;
}
#Content_feature a.btn:hover {
  opacity: .8;
}
@media (max-width: 820px) {
	#Content_feature .article_inner{
		max-width: 92%;
	}
	#Content_feature .inner{
		/*max-width: 390px;*/
 		margin: auto;
		padding-left: 2.6%;
		padding-right: 2.6%;
	}
}/*-SP tablet-*/
@media (max-width: 390px) {
	#Content_feature .inner{
		padding-left: 5.1%;
		padding-right: 5.1%;
	}
}/*-SP-*/
#Content_feature .flex{
	display: flex;
	flex-wrap: wrap;
}
@media screen and (min-width: 769px){
	#Content_feature .pcFlex{
		display: flex;
		flex-wrap: wrap;
	}
}/*-PC only-*/


/* collectionNavi */
.collectionNavi{
	background: url("images/navi_bg_02.png") repeat left top / auto 81px;
	border-bottom: 5px solid #a79060;
	height: 81px;
	padding: 20px 0 10px;
}
.collectionNavi .article_inner{
	align-items: center;
}
.collectionNavi h2{
	color: #a79060;
	font-size: min(2vw,20px);
	font-weight: 500;
	line-height: 1.1;
	margin: 0;
	padding: 0 3.5% 0 1%;
	text-align: center;
	width: min(26.5%,265px);
}
.collectionNavi ul{
	align-items: center;
	width: 73.5%;
}
.collectionNavi ul li{
	border-left: 2px solid #a79060;
	font-size: 17px;
	font-weight: 500;
	padding: 0 1%;
	text-align: center;
	width: min(25%,180px);
	color: #a79060;
}
#Content_feature .collectionNavi ul li a{
	color: #FFFFFF !important;
}
@media (max-width: 1000px) {
	.collectionNavi h2{
        padding: 0 1%;
	}
}/**/
@media (max-width: 820px) {
	#Content_feature .collectionNavi .article_inner{
		max-width: 100%;
	}
	.collectionNavi h2{
		font-size: calc(20px * .8);
	}
	.collectionNavi ul li{
		font-size: calc(17px * .825);
	}
}/*-SP tablet-*/
@media (max-width: 390px) {
	.collectionNavi{
		height: auto;
		padding: 10px 0 0;
	}
	.collectionNavi h2{
		font-size: 16px;
		padding: 0 5px;
		width: 100%;
	}
	.collectionNavi ul{
		margin-top: 10px;
		width: 100%;
	}
	.collectionNavi ul li{
		font-size: 3.8vw;
		padding: 10px 5px;
		width: 50%;		
        border-top: 2px solid #a79060;
	}
	.collectionNavi ul li:nth-of-type(odd){
		border-left: none;
	}
}/*-SP-*/


/* mainvisual */
.mainvisual{
	background: url("images/mv_bg.png") no-repeat center center / cover;
	font-size: 0;
	position: relative;
	text-align: center;
}
@media (min-width: 821px) {
	.mainvisual img{
		width: min(100%, 1920px);
		margin: 0 auto;
	}
}/*PC*/
@media (max-width: 820px) {
.mainvisual{
    width: 100%;
    aspect-ratio: 4 / 3;
}
.mainvisual img{
	width: 100%;
	height: 100%;
    aspect-ratio: 4 / 3;
	object-fit: cover;
}
}/*-SP tablet-*/
@media (max-width: 390px) {
}/*-SP-*/



/* anchorLink */
.anchorLink{
 background: url(images/navi_bg_03.png) repeat left top / auto 80px;
	min-height: 80px;
	padding: 15px;
}
.anchorLink .flex{
	gap: 10px 3.2%;
	justify-content: center;
	align-items: center;
}
.anchorLink .flex li{
	text-align: center;
}
#Content_feature .anchorLink a{
 display: block;
	height: 50px;
}
#Content_feature .anchorLink a img{
 width: auto;
 height: 100%;
}
@media (max-width: 820px) {
	#Content_feature .anchorLink .article_inner{
		max-width: 100%;
	}
}/*-SP tablet-*/
@media (max-width: 390px) {	
	.anchorLink{
		height: auto;
	}
	#Content_feature .anchorLink a{
		height: 33px;
	}
	.anchorLink .flex li:not(:first-of-type) img{
		width: 100%;
		height: auto;
	}	
}/*-SP-*/

#intro,
#story,
#character,
#info{
	scroll-margin-top: 80px;
}


.contents-wrap{
 overflow: hidden;
}

/* .h2 */
#Content_feature h2.contTi{
 margin: 0;
}
#Content_feature h2.contTi .tiImg{
	display: block;
	font-size: 0;
	text-align: center;
}
#Content_feature h2.contTi .tiImg img{
	width: min(51vw,510px);
	height: auto;
	aspect-ratio: 510/88;
}
@media (max-width: 390px) {
	#Content_feature h2.contTi .tiImg img{
		width: min(100%, 260px);
	}
}/*-SP-*/


/*bg*/
.bg01{
  background: radial-gradient(circle, #ffffff5c .65vw, transparent .65vw)  0 -1.3vw/min(2.86vw,55px) min(2.86vw,55px) #d5f4ed;
}
/* intro */
#intro{
 padding-top: 85px;
}
#intro .pcFlex{
 position: relative;
 padding: 0 0 0 11.5%;
 z-index: 0;
}
#intro .pcFlex::before{
 content: "";
 display: block;
 border-block:14px #a79060 solid;
 background: #f873c6;
 clip-path: polygon(26px 0%, calc(100% - 26px) 0%, 100% 26px, 100% calc(100% - 26px), calc(100% - 26px) 100%, 26px 100%, 0% calc(100% - 26px), 0% 26px);
 width: 100%;
 height: 100%;
 position: absolute;
 top: 0;
 left: 0;
 z-index: -1;
}
#intro .txts{
 padding: 45px 0 0;
 }
@media (min-width: 821px) {
#intro .txts{
 width: 49%;
 }
 #intro figure{
	width: 54.6%;
  margin-top: max(-5.5vw,-55px);
  margin-right: -5%;
 }
}/*PC*/
@media (max-width: 820px) {
#intro{
 padding-top: 40px;
}

	#intro .pcFlex{
		padding: 0 5.1%;
	}	
}/*-SP tablet-*/

#intro h3{
 border-radius: 8px;
 background: #a79060;
 margin-bottom: 40px;
 padding: 0 0 0 .5em;
 color: #fff;
 font-size: 24px;
 line-height: 1.9;
}
#intro p{
 color: #fff;
 font-size: 18px;
 font-weight: 600;
 line-height: 2.1;
 letter-spacing: 0.05em;
}
@media (min-width: 821px) {
 #intro h3{
  width: 150%;
  max-width: 553px;
 }
}/*PC*/

@media (max-width: 820px) {
	#intro h3{
 		margin-bottom: 20px;
    padding: .5em;
		line-height: 1.4em;
    text-indent: -0.5em;
	} 
#intro p{
 font-size: 17px;
 line-height: 1.8;
}
}/*SP*/
@media (max-width: 390px) {

}/*-SP-*/

/* story */
#Content_feature #story{
	padding-block: 132px 200px;
}

#story .txtBox{
 border-radius: 33px;
 border: 13px #81dfc8 solid;
 background: #fff;
	padding: 55px 10.5% 34px;
}
#story .txtBox p{
	font-size: 18px;
	line-height: 1.94;
	letter-spacing: 0.05em;
 text-align: center;
}
#story .txtBox .fZen{
 margin-top: 30px;
 color: #f873c6;
 font-size: 25px;
 font-weight: 600;
 line-height: 1.56;
 letter-spacing: 0.025em;
}

@media (max-width: 820px) {
	#Content_feature #story{
	padding-block: 65px 100px;
	}
}/*-SP tablet-*/
@media (max-width: 390px) {
#Content_feature #story{
	}
	#story .txtBox{
  border-radius: 20px;
  border-width: 7px;
		padding: 15px 3.23% 35px;
	}
	#story .txtBox p{
		font-size: 16px;
	}
#story .txtBox .fZen{
 margin-top: 30px;
 font-size: 20px;
}

}/*-SP-*/


/* character */
#Content_feature #character{
 margin-top: max(-8.8vw,-88px);
}
#Content_feature #character .contTi{
 border-bottom: 14px #f873c6 solid;
}
.bg02{
  background: radial-gradient(circle, #ffffff5c .65vw, transparent .65vw) 0 -1.3vw/min(2.86vw,55px) min(2.86vw,55px) #fee3f4;
 padding: 1px 0 170px;
}
.charaBox .txts h3{
	font-size: 0;
	margin-bottom: 15px;
}
.charaBox .txts h3 img{
  aspect-ratio: 252 / 40;
}
.charaBox .txts p{
	font-size: 20px;
	line-height: 1.65;
 letter-spacing: 0.05em;
}
#character .list02{
	margin: 60px auto 0;
	width: min(100%, 869px);
	gap: 20px 5.8%;
	justify-content: space-between;
}
#character .list02 .charaBox figure{
	margin: 0 0 22px ;
}
#character .list02 .charaBox .txts{
}
@media (min-width: 821px) {
	#Content_feature #character{
	}
	#character .list02 #charaBoxMarina.charaBox{
		width: 100%;
		gap: 22px 3.5%;
        justify-content: center;
	}
	#character .list02 .charaBox:not(#charaBoxMarina){
		flex: 1;
	}
	#character .list01 .charaBox figure,
	#charaBoxMarina figure{
		width: min(47.9%,248px);
	}
	#character .list01 .charaBox .txts,
	#charaBoxMarina .txts{
		width: min(48.6%,252px);
	}
}/*PC*/
@media (max-width: 820px) {
.bg02{
 padding: 1px 5.1% 80px;
}
	.charaBox .txts p{
		font-size: 16px;
	}
	#character .list02{
		max-width: 390px;
		margin-top: 40px;
		gap: 50px 5%;
	}
	#character .list02 .charaBox{
		width: calc(100% - 2.9% * 2);
		margin: 0 2.9%;
	}
}/*-SP tablet-*/

@media (max-width: 390px) {	
#Content_feature #character{
 margin-top: max(-12vw,-45px);
}
#Content_feature #character .contTi{
 border-bottom: 7px #f873c6 solid;
}
 
}


/* info */
#Content_feature #info{
 margin-top: max(-8.8vw,-88px);
}
#Content_feature #info .contTi{
 border-bottom: 14px #81dfc8 solid;
}
.info_inner{
	background: #fff;
	padding: 44px 6.6% 70px;
}
#info .info_inner p:first-child{
 font-size: 18px;
 text-align: center;
 line-height: 1.2;
 font-weight: 600;
 letter-spacing: 0.02em;
}
#info h3{
 margin: 30px 0;
 height: 40px;
}
#info h3 img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#info ul.flex{
	gap: 20px 4.1%;
}
#info ul li figure{
	border: 1px solid #a79060;
 width: min(80.7%, 205px);
 margin: 0 auto 10px;
}
#info ul li p{
	min-height: 46px;
 font-size: 16px;
 font-weight: 500;
	text-align:center;
}
#info ul li p span{
 display: block;
 font-size: 1.5em;
 font-weight: 700;
  font-family: "Noto Serif JP", serif;
 letter-spacing: -0.15em;
 line-height: 1.2em;
}

.txt_next{
 border: 2px #f873c6 solid;
	border-radius: calc(infinity * 1px);
 width: 90%;
 max-width: 504px;
 margin: 35px auto 12px;
 padding: 8px;
 color: #f873c6;
 font-size: 27px;
 font-weight: 600;
 text-align: center;
}
.txt_new{
 font-size: 18px;
 font-weight: 600;
 text-align: center;
 letter-spacing: 0.02em;
}

@media (min-width: 821px) {
	#info ul li{
		flex: 1;
	}
}/*PC*/
@media (max-width: 820px) {
	#info ul li{
		width: calc((100% - 4.1%) / 2);
	}
	#info ul li p{
		font-size: 13px;
	}
	.txt_next{
	margin: 32px auto 10px;
	font-size: 27px;
	}
	.txt_new{
	font-size: 18px;
	}
}/*-SP tablet-*/
@media (max-width: 390px) {
#Content_feature #info{
 margin-top: max(-12vw,-45px);
}
#Content_feature #info .contTi{
 border-bottom: 7px #81dfc8 solid;
}
}/*-SP-*/


/*-- modal --*/
.bookDetail{
	background-color:#FFFFFF;
	padding: 32px 36px 68px 48px;
	width: 790px;
	height: 475px;
}
.bookDetail .btnClose{
	display: block;
	margin: 0 0 0 auto;
	width: 27px;
	height: 27px;
}
.bookDetail .boxInner{
	display: flex;
	gap: 0 3.1%;
	margin-top: -5px;
}
.bookDetail .txts{
	width: max(50.6%,400px);
}
.bookDetail h3{
	margin-bottom: 20px;
	text-align: left;
}
.bookDetail h3 img{
	display: inline;
	vertical-align: top;
}
.bookDetail .num{
	display: inline-block;
	width: 65px;
}
.bookDetail .num img{
	height: 37px;
	width: auto !important;
}
.bookDetail .title{
	height: 48px;
	width: auto !important;
}
.bookDetail p{
	font-size: 16px;
	line-height: 1.75;
}
.bookDetail .btn{
	margin: 20px auto 0;
	padding: 5px;
	width: 238px;
}
.bookDetail figure{
	border: 1px solid #000;	
	width: 245px;
}
@media (max-width: 390px) {
	.bookDetail{
		margin: 0 auto;
		padding: 35px 45px 55px 40px;
		max-width: 375px;
		height: auto;
	}
	.bookDetail .boxInner{
		flex-direction: column-reverse;
		flex-wrap: wrap;
	}
	.bookDetail .txts{
		width: 100%;
	}
	.bookDetail figure{
		margin: 0 auto 20px;
		width: 230px;
	}
}/*-SP-*/
@media (min-width: 821px) {
	.bookDetail figure{
		margin-top: 8px;
		margin-right: 36px;
	}
}/*-PC-*/



/* パソコンで見たときは"pc"のclassがついた画像が表示される */
@media (min-width: 821px) {
.sp { display: none !important; }
}
/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media (max-width: 820px) {
.pc { display: none !important; }
}


/* ===== campaign ===== */
#campaign {
  padding-top: 100px;
  padding-bottom: 60px;
}

/* 外枠 */
.campaign_box {
  border: 13px solid #f873c6;
  border-radius: 20px;
  background: #fff;
  padding: 60px 6% 45px;
  position: relative;
  margin-top: 28px;
}

/* オビ：枠上部に半分かかる */
.campaign_mainTit {
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  background: #f873c6 !important;
  color: #fff !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
  white-space: nowrap !important;
  margin: 0 !important;
  padding: .55em 1.8em !important;
  border-radius: 999px !important;
  z-index: 1 !important;
  text-align: center !important;
  width: auto !important;
}

/* ①②セクション */
.campaign_section {
  position: relative;
}

.campaign_divider {
  border: none;
  border-top: 2px dashed #f873c6;
  margin: 40px 0;
}

/* 見出し：h3を使わずdivで、既存h3スタイルを回避 */
.campaign_boxTit {
  display: flex !important;
  align-items: center !important;
  gap: .45em !important;
  background: none !important;
  color: #a79060 !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
  margin: 0 0 30px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  width: auto !important;
  border: none !important;
  text-indent: 0 !important;
}

.campaign_boxTit_txt {
  color: #a79060;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

/* ★ */
.campaign_star {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 54px;
  color: #f873c6;
  line-height: 1;
  width: 1em;
  height: 1em;
}

.campaign_num_inner {
  position: absolute;
  top: 60%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20px;
  font-weight: 900;
  color: #fff;
  line-height: 1;
  margin-top: -.05em;
}

/* リードタイトル画像 */
.campaign_leadImg {
  font-size: 0;
}
.campaign_leadImg img {
  width: auto;
  max-width: 100%;
  height: auto;
}

/* 画像＋テキスト縦並び */
.campaign_flex {
  display: block !important;
}

.campaign_fig {
  width: 100% !important;
  max-width: 650px !important;
  flex-shrink: 0 !important;
  margin: 0 auto 30px !important;
}
.campaign_fig img {
  display: block !important;
  width: 100% !important;
}

.campaign_txts {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

/* テキスト：p/h3の継承を断ち切るためspanにblockを指定 */
.campaign_p {
  display: block;
  color: #333 !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.04em !important;
}

.campaign_dl {
  font-size: 17px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  margin: 0;
  color: #333;
}
.campaign_dl dt {
  font-weight: 700;
  color: #a79060;
}
.campaign_dl dd {
  color: #333 !important;
  margin: 0 0 10px 0;
}

.campaign_check {
  display: block;
  background: #fde8f7 !important;
  border-left: 4px solid #f873c6 !important;
  border-radius: 0 6px 6px 0 !important;
  padding: .5em .8em !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #c0448a !important;
  line-height: 1.6 !important;
}

.campaign_cardList {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #a79060 !important;
  letter-spacing: 0.1em !important;
}

.campaign_note {
  display: block;
  border: 2px solid #f873c6;
  border-radius: 6px;
  background: #fff0f9 !important;
  color: #c0448a !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.7 !important;
  letter-spacing: 0.03em;
  margin: 22px 0 0;
  padding: .5em .9em;
  text-align: center;
}

/* SP */
@media (max-width: 820px) {
  #campaign {
	padding-top: 60px;
    padding-bottom: 60px;
  }
  .campaign_box {
    border-width: 4px;
    border-radius: 16px;
    padding: 60px 5% 28px;
  }
  .campaign_mainTit {
    font-size: 16px !important;
    white-space: normal !important;
    width: 80% !important;
    text-align: center !important;
    padding: .6em 1.2em !important;
  }
  .campaign_boxTit {
    font-size: 16px !important;
  }
  .campaign_boxTit_txt {
    font-size: 18px;
  }
  .campaign_star {
    font-size: 44px;
  }
  .campaign_num_inner {
    font-size: 17px;
  }
  .campaign_leadImg img {
    max-height: 100% !important;
  }
  .campaign_flex {
    gap: 16px !important;
  }
  .campaign_fig {
    margin-bottom: 14px !important;
  }
  .campaign_p {
    font-size: 18px !important;
  }
  .campaign_dl {
    font-size: 15px;
  }
  .campaign_check {
    font-size: 14px !important;
  }
  .campaign_divider {
    margin: 28px 0;
  }
}

@media (max-width: 390px) {
  .campaign_boxTit {
    font-size: 14px !important;
  }
  .campaign_boxTit_txt {
    font-size: 18px;
  }
  .campaign_star {
    font-size: 38px;
  }
  .campaign_num_inner {
    font-size: 15px;
  }
}

/* #info ul 2つのliのとき中央揃え・余白調整 */
@media (min-width: 821px) {
  #info ul.flex {
    justify-content: center;
  }
  #info ul li {
    flex: 0 1 calc((100% - 4.1%) / 3); /* 3列分の幅を上限に */
    max-width: 30%;
  }
}

@media (max-width: 820px) {
	.catch-pc {
		display: none;
	}
}
@media (min-width: 820px) {
	.catch-sp {
		display: none;
	}
	.catch-pc {
  display: block;
  width: min(100%, 700px) !important;
  margin: 0 auto;
}
}