@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Zen+Old+Mincho&display=swap');

.fontMin{  
  font-family: "Zen Old Mincho", serif;
}
html{
  scroll-behavior: smooth;
}
/*アンカーリンク調整用*/
:root{  
 scroll-padding-top: 80px
}
@media (max-width: 820px) {
  :root{  
   scroll-padding-top: 75px
  }
}/*-SP tablet-*/

/*作業用*/
/* パソコンで見たときは"pc"のclassがついた画像が表示される */
@media (min-width: 821px) {
.sp { display: none !important; }
}
/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media (max-width: 820px) {
.pc { display: none !important; }
}

#Content_feature{
 background: #C6E2F8;
  position: relative;
  margin-bottom: 0;
 padding-bottom: 115px;
  font-family: "Noto Sans JP", sans-serif;
		/*font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;*/
 font-weight: 500;
}


@media (max-width: 820px) {
 #Content_feature{
  overflow: visible;
  padding-bottom: 80px;
 }
}/*-SP tablet-*/
@media (max-width: 390px) {

}/*-SP-*/
.flex{
	display: flex;
	flex-wrap: wrap;
}
@media screen and (min-width: 821px){
.pcFlex{
	display: flex;
	flex-wrap: wrap;
}
}/*-PC only-*/

@media (max-width: 820px) {

}/*-SP tablet-*/


/*		common
-----------------------------*/

@media screen and (min-width: 821px) {
}/* //end for PC */

/**/
@media (max-width: 480px) {
}/*-SP tablet-*/
/**/

@media (max-width: 820px) {}/*-SP tablet-*/
/**/


.txtCenter {
  text-align: center;
}

@media (max-width: 820px) {
  
}/*-SP tablet-*/
@media screen and (min-width: 821px) {

}/* //end for PC */


/*		mainvisual
-----------------------------*/
#mainvisual{
 background: #fff;
}
#mainvisual h2{
position: relative;
margin: 0;
}

@media (max-width: 820px) {
#mainvisual{
}
 #Content_feature #mainvisual .mv_inner{
	}

}/*-SP tablet-*/

@media screen and (min-width: 821px) {
  
}/* //end for PC */

/*		lead
-----------------------------*/
.lead{
 max-width: 900px;
 margin: 90px auto 0;
 font-size: 24px;
 font-weight: 500;
 line-height: 1.46;
}
@media (max-width: 820px) {
 .lead{
  margin: 45px auto 0;
  padding-inline:4%;
  font-size: 18px;
 }
}/*-SP only-*/

/*		anchorLink
-----------------------------*/
.sticky-area{
 position: relative;
}
.sticky-area:has(.anchorLink.is-fixed){
 padding-top: 180px;
}
#sticky-trigger{
 height: 1px;
 position: absolute;
}
.anchorLink{
 position: sticky;
 top: 105px;
 left: 0;
 right: 0;
 border-radius: 15px;
 background-color: #fff;
 width: 96%;
 max-width: 900px;
 margin: 129px auto 46px;
 padding: 40px 5.5% 35px;
 z-index: 2;
 transition: all 0.5s ease;
 transition-delay: 0.0s; 
}
.anchorLink h3{
 position: absolute;
 top: -25px;
 left: 0; 
 right: 0;
 display: grid;
 place-content: center;
 background: #21A0DC;
 border-radius: 11px;
 max-width: 362px; 
 height: 50px;
 margin: 0 auto;
 color: #fff;
 font-size: 26px;
 font-weight: 700;
}
.anchorLink ul{
 position: relative;
  display: flex;
  justify-content: center;
 flex-flow:  row wrap;
 gap:46px 53px;
}
.anchorLink:not(.is-fixed) ul::before{
 content: "";
 width: 100%;
 height: 1px;
 background: #83C3EF;
 position: absolute;
 top: 50%;
 left: 0;
}
.anchorLink li{
}
.anchorLink li a{
 position: relative;
 display: block;
 color: #21A0DC;
 font-size: 29px;
 font-weight: 700;
 text-align: center;
 line-height: 1.6;
}
.anchorLink li a::after{
 content: "";
	display: block;
 background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 18.545 10.978"><path id="arrowunder" data-name="arrow" d="M15.545,0,7.772,7.978ZM0,0,7.772,7.978Z" transform="translate(1.5 1.5)" fill="none" stroke="%23222" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/></svg>') no-repeat left top/100% auto;
 width: 15px;
 height:10px;
 margin: 14px auto 0;
}

.anchorLink.is-fixed{
 border-radius: 15px;
 background-color: #fff;
 width: 96%;
 max-width: 1100px;
 padding: 10px 10px;
  transition-delay: 0.1s; 
}
.anchorLink.is-fixed h3{
 height: 34px;
 font-size: 20px;
}
.anchorLink.is-fixed ul{
 gap:20px 25px;
}
.anchorLink.is-fixed li a{
 font-size:min(2.4vw,28px) ;
}
.anchorLink.is-fixed li a::after{
 margin: 0 auto;
}

@media (max-width: 820px) {/*SP anchorLink*/
.sticky-area:has(.anchorLink.is-fixed){
 padding-top: 50vw;
}
.anchorLink{
 top: 88px;
 width: 92%;
 margin: 60px auto 40px;
 padding-inline:10px;
}
.anchorLink h3{
 position: absolute;
 top: -25px;
 width: 85%;
 height: 50px;
 margin: 0 auto;
 color: #fff;
 font-size: 20px;
 font-weight: 700;
}
 .anchorLink ul{
 gap:40px 20px;
 }
 .anchorLink li a{
  font-size: min(4.2vw,20px);
 }
	.anchorLink.is-fixed li a {
  font-size: 16px;
}
 
.anchorLink.is-fixed{
 width: 92%;
 padding: 10px 10px 5px;
}
.anchorLink.is-fixed h3{
 top: -20px;
 height: 28px;
 font-size: 16px;
}
 .spscroll{ overflow-x: scroll;}
 .anchorLink.is-fixed ul{
flex-flow: nowrap;
  min-width:min(105vw,595px);
 gap:0px 12px;
  padding:0 0px 12px;
	 justify-content: flex-start;
 }
 .anchorLink.is-fixed ul li{
  flex-shrink: 1;
	 min-width: 5em
 }
}/*-SP only-*/


/*		tokimeki_list
-----------------------------*/
.content_box{
	margin:0px auto 0;
 padding-top:100px;
 width: 92%;
	max-width: 1000px;
 font-weight: 700;
 letter-spacing: 0;
}

@media (max-width: 820px) {
  .content_box{
   padding-top:min(20vw,88px);
   margin-inline: 2%;
  }

}/*-SP tablet-*/

.tokimeki_list{
 display: flex;
 flex-flow: row wrap;
 justify-content: space-between;
 align-items: flex-start;
 gap:100px 0;
}
.tokimeki_list > li{
 width: 47.4%;
}
.tokimeki_list dl{
 position: relative;
 margin-top: 20px;
 margin-left: 14px;
 margin-bottom: 54px;
}
.tokimeki_list dl dt{
 position: absolute;
 top: -20px;
 left: -14px;
 border-radius: 11px;
 background: #21A0DC;
 padding: 6px 22px;
 color: #fff;
 font-size: 20px;
 line-height: 1.45;
 z-index: 1;
}
.tokimeki_list dl dd{
 position: relative;
 display: flex;
 align-items: center;
 justify-content: center;
 border-radius: 20px;
 background: #83C3EF;
 padding: 38px 8.7%;
 /*min-height: 205px;*/
 color: #1F2933;
 font-family: "Zen Old Mincho", serif;
 font-size: min(2.7vw,27px);
}
.tokimeki_list dl dd::after{
 content: "";
 display: block;
 background: #83C3EF;
	width:41px;
	height:36px;
clip-path: polygon(0 0, 50% 100%, 100% 0);
 position: absolute;
 top: 99%;
 left: 59px;
}
.tokimeki_list dl dd:has(ruby){
 display: block;
}


@media screen and (min-width: 821px) {
.tokimeki_list .flex{
 justify-content: space-between;
 margin-left: 14px;
}
.tokimeki_list .flex figure{
 width:min(37%,170px) ;
}
.tokimeki_list .flex .txt{
 width: calc(100% - min(37%,170px) - 26px);
}
.tokimeki_list .flex figure{
 max-width: 170px;
}	
}/* //end for PC */

.tokimeki_list .txt p:first-child{
 margin-bottom: 15px;
 font-size: 18px;
 line-height: 1.4;
}
.tokimeki_list h3{
 border-bottom: 2px #0B5E8E solid;
 padding-bottom: 10px;
 margin-bottom: 8px;
 color: #0B5E8E;
 font-size: min(2.2vw,22px);
}
.tokimeki_list h3 .sub{
 display: block;
 color: #1F2933;
 font-size: 15px;
}
.tokimeki_list h3:has(strong){
 font-size: min(1.8vw,18px);
}
.tokimeki_list h3 strong{
 font-size: min(2.2vw,22px);
 font-weight: 700;
}
.tokimeki_list .txt p{
 font-size: 16px;
 line-height: 1.7;
}
.tokimeki_list .btns{
 margin-top: 35px;
  display: flex;
 gap:5px 20px;
}
.tokimeki_list .btns a{
 display: grid;
 place-content: center;
 border-radius: 10px;
 background: #21A0DC;
 max-width: 217px;
 height: 52px;
 color: #fff;
 font-size: 18px;
 line-height: 1.4;
 text-align: center;
}
.tokimeki_list .btns a[href=""]{
 display: none;
}

@media screen and (min-width: 821px) {
 .tokimeki_list .btns a{
 width: calc((100% - 20px)/2);
}
}/* //end for PC */

.tokimeki_list .btns .special{
 background-color: #F29EC2;
}
@media (max-width: 820px) {/*SP*/
 .tokimeki_list{
 gap:50px 0;
}
.tokimeki_list > li{
 width: 48%;
}
.tokimeki_list dl{
 margin: 20px 0 35px 14px;
}
.tokimeki_list dl dt{
 top: -20px;
 left: -14px;
 padding: 6px 10px;
 font-size: 14px;
}
.tokimeki_list dl dd{
 border-radius: 15px;
 padding: 30px 6% 20px;
 font-size: min(4vw,18px);
}
.tokimeki_list dl dd::after{
	width:30px;
	height:24px;
 left:50%;
 margin-left: -15px;
}

.tokimeki_list .flex figure{
 margin: 0 auto 10px;
	max-width: 106px
}
 .tokimeki_list .txt{
 }
.tokimeki_list .txt p:first-child{
 margin-bottom: 10px;
 font-size:min(4vw, 16px);
}
.tokimeki_list h3{
 padding-bottom: 5px;
 margin-bottom: 5px;
 font-size: min(4.8vw,20px);
}
.tokimeki_list h3 .sub{
 font-size: min(3vw,14px);
}
.tokimeki_list h3:has(strong){
 font-size: min(4.0vw,16px);
}
.tokimeki_list h3 strong{
 font-size: min(4.8vw,20px);
}
.tokimeki_list .txt p{
 font-size: min(3.2vw,16px);
}
 .tokimeki_list .btns{
  margin-top: 20px;
  flex-flow: column;
 }
.tokimeki_list .btns a{
 width: 100%;
 margin: 0 auto;
 height: 40px;
 font-size: 16px;
}
}/*-SP only-*/


/*		
-----------------------------*/

@media (max-width: 820px) {}/*-SP only-*/
@media screen and (min-width: 821px) {}/* //end for PC */




@media (max-width: 820px) {}/*-SP only-*/
@media screen and (min-width: 821px) {
}/* //end for PC */

.image-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px;
  max-width: 1000px; /* 470px × 2 + gap を想定 */
  margin: 0 auto;
  margin-top: 120px;
}

.image-grid img {
  width: 100%;
  aspect-ratio: 470 / 250; /* 比率を保持 */
  object-fit: cover;
  display: block;
}

/* SP（例：768px以下） */
@media screen and (max-width: 768px) {
  .image-grid {
    grid-template-columns: 1fr;
    margin: 70px 20px;
  }
}

.image-honto-sp {
  max-width: 100%;
    padding: 0 20px;
    margin: 0 auto;
    margin-top: 60px;}
.image-honto-pc {
  max-width: 1000px;
  margin: 0 auto;
  margin-top: 120px;}

/* パソコンで見たときは"pc"のclassがついた画像が表示される */
@media (min-width: 821px) {
.sp { display: none !important; }
}
/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media (max-width: 820px) {
.pc { display: none !important; }
}

.credit {
  font-size: 12px !important;
  color: #666666;
  margin-top: 10px;
  font-weight: 500;
}
@media (max-width: 820px) {
.credit {
  font-size: 10px !important;
}
}