@charset "UTF-8";

body{
	position: relative;
/*	background: #EAEAEA;*/
}

.container{
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
}

header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: 10px 0;
	z-index: 100;
	transition: background-color 0.5s ease-in-out;
}

header.scrolled {
    background-color: #000;
}

header h1{
	width: 180px;
}

.headerIn{
	display: flex;
	 justify-content: space-between;
}

header nav ul{
	display: flex;
	gap:20px;
}

header nav a{
	display: block;
	color: #FFF;
	padding: 5px 0;
}

header nav ul .login a{
	display: block;
	padding: 5px 20px;
	background: #D4AF37;
	-webkit-border-radius: 5px;
	        border-radius: 5px;
}

#navBtn,
#spNav{
	display: none;
}

footer{
	padding-top: 40px;
	padding-bottom: 5px;
	background: #000;
	color: #FFF;
	font-size: 12px;
}

.footerIn{
	margin-bottom: 40px;
}

.footerIn .logo img{
	width: 100%;
	max-width: 180px;
}

footer .copy{
	text-align: right;
}

#topMv{
	width: 100%;
	height: 100vh;
	background-image: url(../images/top_bg.webp);
/*	background-position: top center;*/
	background-size: cover;
	background-repeat: no-repeat;
	position: relative;	
	background-attachment: fixed;
	margin-bottom: 40px;

}


#topMv .ttl{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
	width: 100%;

}

#topMv .ttl .ttlIn{
	position: relative;
	width: 100%;
}

#topMv .ttlIn span{
	display: block;
	font-size: 40px;
	color: #FFF;
	font-weight: bold;
	text-align: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

#topMv .scroll{
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translate(-50%, -50%);
	z-index: 1;
}

#topMv .scroll img{
	width: 30px;
} 

.mv-logo{
	width: 90%;
	max-width: 400px;
}

.fade-text {
    opacity: 0;
    transition: opacity 3s ease-in-out;
}

/* 最初のテキストを表示 */
.fade-text.active {
    opacity: 1;
}


/* フェードイン用の共通クラス */
.fade {
    opacity: 0;
    animation: fadeInAnimation 3s ease-out forwards;
}

/* アニメーションの定義 */
@keyframes fadeInAnimation {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

section{
	padding: 80px 0;
}

h3{
	font-size: 30px;
	text-align: center;
	margin-bottom: 40px;
	font-weight: bold;
	color: #223;
}

h3 span{
	display: block;
	font-size: 16px;
	font-weight: normal;
}

.contIn.thin{
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
}

.contIn .txt{
	margin-bottom: 80px;
}

.contIn .txt p{
	margin-bottom: 1em;
}

.contIn .btn{
	text-align: center;
	padding-top: 1em;
}

.contIn .btn a{
	display: inline-block;
	padding: 10px 20px;
    border-radius: 5px;
    transition: all .5s;
    background: #D4AF37;
    color: #fff;
}

#about .img{
	text-align: center;
	margin-bottom: 40px;
}
#about .img img{
	width: 100%;
	max-width: 600px;
}

.caution .ttl{
	margin-bottom: 20px;
	font-weight: bold;
	background: #4641A4;
	color: #fff;
	-webkit-border-radius: 50px;
	        border-radius: 50px;
	display: inline-block;
	padding: 0 20px;
}

.caution .credit{
	margin-bottom: 20px;
}


.caution ul li{
	margin-bottom: 10px;
}

.caution ul#importantList li a{
	color: #8B0000;
	text-decoration: underline;
}

#infoList{
	padding: 0;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
}

.caution ul#infoList li{
	border-bottom: 1px dotted #ccc;
}

.caution ul#infoList li:last-child{
	border: none;
}

.caution ul#infoList li a{
	display: block;
	padding: 10px;
	background: #FFF;
}

.caution ul#infoList li a span{
	font-size: 12px;
	font-weight: bold;
	display: inline-block;
	margin-right: 20px;
	color: #555;
}


section#service{
	background: #233;
}

section#service h3{
	color: #fff;
}


section#service h4{
	color: #fff;
	margin-bottom: 40px;
	position: relative;
}

section#service h4 span{
	display: inline-block;
	padding-right: 20px;
	background: #233;
	z-index: 1;
	position: relative;
	font-size: 20px;
}

section#service h4:after{
	content: "";
	width: 100%;
	height: 1px;
	background: #FFF;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 0;
}

#service .contIn{
	display: flex;
	gap:20px;
	flex-wrap: wrap;
	margin-bottom: 40px;
}

.serviceCont{
	width: calc(50% - 20px);
	display: block;
	background: rgba(255,255,255,1);
	transition: all .5s;
	border-radius: 5px;	
	position: relative;
	background: #F8F9FA;
	padding: 20px;
}
.serviceCont h5{
	font-weight: bold;
	margin-bottom: 20px;
	font-size: 20px;
	position: relative;
	padding-left: 40px;
}

.serviceCont img{
	width: 30px;
	height: auto;
	position: absolute;
	top: 0;
	left: 0;
}

.serviceCont ul{
	padding-left: 20px;
}

.serviceCont ul li{
	margin-bottom: 10px;
	color: #4641A4;
}

.serviceCont a{
	text-decoration: underline;
	color: #333;
	display: inline-block;
	position: relative;
	text-indent: 1.2em;
}

.serviceCont a:before{
	content: "▶";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(-50%, -50%);
	color: #4641A4;
	font-size: 10px;
}


section#service .btn{
	text-align: center;
	margin-bottom: 80px;
}

section#service .btn a{
	display: inline-block;
	color: #FFF;
	font-size: 20px;
	background: #0693e3;
	padding: 5px 20px;
	-webkit-border-radius: 5px;
	        border-radius: 5px;
}



#recommend{
	padding-top: 80px;
	overflow: hidden;
	background: #E5E5E5;
}

#recommend .container{
	position: relative;
	padding-bottom: 40px;
}

#recommend .container:after{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
    border-radius: 40px 40px 0 0;
    position: absolute;
    top: 180px;
    left: 0;
    z-index: 0;
    background: url(../images/info_bg.webp);
    -webkit-background-size: cover;
         -o-background-size: cover;
            background-size: cover;
   }

#recommend .contIn{
	position: relative;
	z-index: 1;
	display: flex;
	gap:20px;
	flex-wrap: wrap;
	width: 90%;
	margin: 0 auto;
}

.recommendCont{
	width: calc(100% / 3 - 20px);
	background: #FFF;
	padding: 20px;
	-webkit-border-radius: 5px;
	        border-radius: 5px;
	background: #F8F9FA;
}

#recommend .contIn dl{
	margin: 0 auto;
}

#recommend .contIn dl dt{
	color: #4641A4;
	font-weight: bold;
	margin-bottom: 10px;
}

#recommend .contIn dl dd{
	font-size: 14px;
}

#info{
	padding: 80px 0;
	 -webkit-background-size: cover;
         -o-background-size: cover;
            background-size: cover;
}

@media screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait) {
	#topMv .ttlIn span{
		font-size: 25px;
	}
  #topMv {
  	height: 90vh;
  	background-image: url(../images/top_bg_sp.webp);
  	background-size: contain;
  }
}

@media screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) {
  /* iPad横向き時のスタイル */
  #topMv .ttlIn span{
		font-size: 25px;
	}
  #topMv {
  	height: 80vh;
    background-image: url('../images/top_bg.webp');
    background-size: contain;
  }
}

/*全体*/
@media screen and (max-width: 768px) {

	#topMv{
	background-image: url(../images/top_bg_sp.webp);
     background-position: center top;
    background-size: contain; /* 縦をしっかりカバーするには cover */
    background-repeat: no-repeat;
    height: 85vh;
    aspect-ratio: 3 / 2; /* 画像に応じて調整 */
}

#topMv .scroll{
	bottom: 10px;
    transform: translate(-50%, 0);
}



header{
	background: #000;
}

	#topMv .ttlIn span{
		width: 95%;
		font-size: 20px;
	}

	body.no-scroll header{
		background: #000;
	}

	header nav #pcNav{
		display: none;
	}
	header nav #spNav{
		display: none;
		width: 100%;
		position: absolute;
		background: #000;
		top: 56px;
		height: calc(100vh - 56px);
		left: 0;
	}
	header nav #spNav li{
		width: 95%;
		margin: 0 auto;
		border-top: 1px solid #fff;
		border-bottom: 1px solid #fff;
	}

	header nav #spNav li a{
		display: block;
		padding: 20px;
	}

	#navBtn{
		display: block;
		width: 40px;
		height: 40px;
		background-image: url(../images/bars.svg);
		cursor: pointer;
	}

	#navBtn.active{
		background-image: url(../images/close.svg);
	}

	body.no-scroll {
    overflow: hidden;
    position: fixed;
    width: 100%;
}

.caution ul#infoList li a span{
	display: block;
}

#service .contIn{
	display: block;
}

.serviceCont{
	width: 100%;
	margin-bottom: 20px;
}

.recommendCont{
	width: 100%;
}

.caution .ttl{
	font-size: 15px;
}

.mv-logo{
	width: 90%;
	max-width: 250px;
}

}

.fixBox .linkBtn {
	margin-top: 20px;
}

.fixBox .linkBtn a{
	display: block;
	background: #FEB0A9;
	padding: 10px;
	text-align: center;
}

.fixBox .linkBtn a img{
	width: 90%;
	max-width: 160px;
}

/* ──────────────────────────────────────────
   Overlay 全体に Frosted Glass 効果
────────────────────────────────────────── */
.overlay {
  position: fixed;
  inset: 0;                           /* top/right/bottom/left: 0 */
  background: rgba(255, 255, 255, 0.2); /* 半透明ホワイト */
  backdrop-filter: blur(8px);         /* 背景をぼかす */
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

/* ──────────────────────────────────────────
   コンテナ（ボックス）にも Frosted Glass 効果
────────────────────────────────────────── */
.overlay__box {
  position: relative;
  background: rgba(255, 255, 255, 0.6); /* 少し強めの半透明 */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 12px;
  padding: 2rem 1.5rem;
  width: 90%;
  max-width: 420px;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  font-family: "Noto Sans JP", sans-serif;
  color: #1d2b2c;                     /* ダークグリーン系 */
  line-height: 1.6;
  overflow: hidden;
}

/* ──────────────────────────────────────────
   ロゴ画像
────────────────────────────────────────── */
.overlay__box .img {
  margin-bottom: 1.5rem;
}
.overlay__box .img img {
  max-width: 140px;
  height: auto;
  display: inline-block;
  filter: none;                      /* ロゴはそのまま */
}

/* ──────────────────────────────────────────
   見出し／テキスト
────────────────────────────────────────── */
.overlay__title {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  letter-spacing: .025em;
  color: #1d2b2c;
}
.overlay__text {
  font-size: 1rem;
  margin-bottom: 1rem;
  color: #333333;
  opacity: .9;
}

/* ──────────────────────────────────────────
   ボタン
────────────────────────────────────────── */
.overlay__btn {
  display: block;
  width: 100%;
  padding: .75rem;
  margin: .6rem 0;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}

/* WEBへ：コーポレートブルー系 */
.overlay__btn--enter {
  background: #0066cc;
  color: #fff;
  border: none;
}
.overlay__btn--enter:hover {
  background: #005bb5;
  transform: translateY(-2px);
}

/* ログイン：ライト背景＋ダークテキスト */
.overlay__btn--login {
  background: #ffffff;
  color: #1d2b2c;
  border: 1px solid #1d2b2c;
}
.overlay__btn--login:hover {
  background: #eee;
  transform: translateY(-2px);
}

/* ──────────────────────────────────────────
   カウントダウンタイマー
────────────────────────────────────────── */
.overlay__timer {
  margin-top: 1rem;
  font-size: .875rem;
  color: #666;
  opacity: .8;
}

/* ──────────────────────────────────────────
   レスポンシブ調整
────────────────────────────────────────── */
@media (max-width: 480px) {
  .overlay__box {
    padding: 1.5rem 1rem;
  }
  .overlay__title {
    font-size: 1.4rem;
  }
  .overlay__text,
  .overlay__timer {
    font-size: .9rem;
  }
  .overlay__btn {
    font-size: .95rem;
    padding: .65rem;
  }
}



.smb-btn{
	background: #5E5AC1;
}

#login {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  bottom: 200px;
  left: 50%;
  transform: translate(-50%, 50%);
  width: 80%;
  max-width: 300px;
}

#login p{
	margin-bottom: 20px;
	font-weight: bold;
}

.login-cont {
/*  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);*/
  padding: 1em;
  border-radius: 8px;
  width: 100%;
}

.login-title {
  text-align: center;
  color: #4641A4;
  margin-bottom: 1em;
}


.login-cont p{
	color: #FFF;
	text-align: center;
}

.login-form label {
  display: block;
  margin-bottom: 0.5em;
  font-weight: bold;
}



.login-form input {
  width: 100%;
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-bottom: 20px;
}

#login-btn {
  padding: 0.75em 1.5em;
  background-color: #6C68C9;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s ease;
  width: 100%;
}

#login-btn:hover {
  background-color: #4641A4;
}

.login-submit-btn {
  padding: 0.75em 1.5em;
  background-color: #6C68C9;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.3s ease;
  width: 100%;
}

.login-submit-btn:hover {
  background-color: #4641A4;
}

.aboutTxt {
  position: relative;
  background: rgba(70, 65, 164, 0.05);
  padding: 2em 1.5em;
  line-height: 1.8;
  color: #333;
  font-size: 1rem;
  border-radius: 8px;
}

/* 左上の「風」装飾 */
.aboutTxt::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 1.2rem;
  height: 1.2rem;
  border-left: 3px solid #4641A4;
  border-top: 3px solid #4641A4;
  transform: rotate(0deg);
}

/* 右下の 」風装飾 */
.aboutTxt::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 1.2rem;
  height: 1.2rem;
  border-right: 3px solid #4641A4;
  border-bottom: 3px solid #4641A4;
  transform: rotate(0deg);
}


/* CTA */

#cta {

	padding: 40px;

  
}

#cta article{
	background: rgba(70, 65, 164, 0.05);
	position: relative;
}

/* 左上の「風」装飾 */
#cta article::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 1.2rem;
  height: 1.2rem;
  border-left: 3px solid #4641A4;
  border-top: 3px solid #4641A4;
  transform: rotate(0deg);
}

/* 右下の 」風装飾 */
#cta article::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 1.2rem;
  height: 1.2rem;
  border-right: 3px solid #4641A4;
  border-bottom: 3px solid #4641A4;
  transform: rotate(0deg);
}


#cta h3 {
  font-size: 1.25rem;
  color: #333;
  margin-bottom: 1.5em;
  border: none !important;
}

#cta a{
	text-decoration: none !important;
}

.cta-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1em;
}

.cta-btn {
  display: inline-block;
  background-color: #4641A4;
  color: #fff;
  text-decoration: none;
  padding: 0.75em 1.5em;
  border-radius: 6px;
  font-weight: bold;
  transition: background-color 0.3s ease;
}

.cta-btn:hover {
  background-color: #5E5AC1; /* 少し明るくしたバリエーション */
}

#cta p{text-align: center;}

#cta p span{
	display: block;
}

.smb-accordion__item__title{
	background: #7976D1;
}

.page-id-45 #cta{
	display: none !important;
}


@media screen and (max-width: 768px) {

	#login{
		max-width: 200px;
	}

	#login-btn{
		padding: 10px;
	}
}

/* 文字調整　*/

@media screen and (max-width: 768px) {
#page-28 > div > h3.wp-block-heading.has-text-align-center.has-large-font-size{
	font-size: 22px !important;
}
}

.parent-pageid-45 #cta{
	display: none;
}

.wpcf7-checkbox .wpcf7-list-item{
	width: 45%;
	margin: 0;
}

@media screen and (max-width: 768px) {

.wpcf7-checkbox .wpcf7-list-item{
	width: 100%
	
}

}