@charset "utf-8";
/* カラー */
:root {
    --color-bg-base: #006036;
    --color-bg-light: #fff;
    --color-bg-mid:#f3f3f3;
    --color-bg-key:#D0A900;
    --color-bg-deep-key:#034428;
    --color-bg-dark: #000;
    --color-bg-button: #529091;
    --color-bg-button-hover: #006036;
    --color-bg-icon: #fff;
    --color-icon: #006036;
    --color-icon-light: #fff;
    --color-icon-key: #D0A900;
    --color-font-light: #fff;
    --color-font-base: #000;
}

html{
    scroll-behavior: smooth;
    box-sizing: border-box;
    overflow-x: hidden;
    background-color: var(--color-bg-mid);
    font-family :
	YuGothic,    /* Mac用 */
	'Yu Gothic', /* Windows用 */
	sans-serif;
    
}

.body{
    overflow-x: hidden;
    scroll-behavior:smooth;
    box-sizing: border-box;
    background-color: var(--color-bg-light);
}

#header{
    width: 100%;
    max-width: 100%;
    height:80px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--color-bg-base);
}

.inner_wrapper{
    display: flex;
    align-items: center;

    width: 100%;
    max-width: 100%;
}
@media only screen and (max-width:600px){
	.inner_wrapper{
    font-size:14px;
	}
}
@media only screen and (max-width:450px){
	.inner_wrapper{
    font-size:13px;
	}
}

#header ul{
    display: flex;
    align-items: center;
}

#header li{
    margin-right:30px;
}
@media only screen and (max-width:600px){
	#header li{
    margin-right:10px;
	}
}

#header li a{
    color:var(--color-font-light);
    font-size:13px;
}

.logo{
    margin-right:60px;
    width: 100px;
    line-height: 1px;
}
@media only screen and (max-width:600px){
	.logo{
    margin-right:15px;
	}
}
@media only screen and (max-width:500px){
	.logo{
    display: none;
	}
}

.logo img{
    width: 100%;
    max-width: 100px;
}
@media only screen and (max-width:600px){
	.logo img{
        max-width: 60px;
	}
}

#header .contact {
    width: 150px;
    height: 38px;
    line-height: 40px;
    text-align: center;
    font-size: 14px;
    background-color: var(--color-bg-key);
    color: var(--color-font-light);
    font-weight: 600;
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(30px);
    opacity: 0;
}

#header .contact.on {
    opacity: 1.0;
    transform: translateX(0);
}

@media only screen and (max-width: 750px) {
    #header .contact {
        display: none;
    }
}
/*
#header .contact{
    width: 150px;
    height: 38px;
    line-height: 40px;
    text-align: center;
    font-size: 14px;
    background-color:var(--color-bg-key);
    color:var(--color-font-light);
}

@media only screen and (max-width:750px){
	#header .contact{
    display: none;
	}
}
    */

/*問合せ固定表示*/

/*モバイルインフォ*/
.info_flex_mobile{
    display: none;
    z-index:9999;
}
@media only screen and (max-width:750px){
    .info_flex_mobile{
        display: flex;
        position:fixed;
        width: 100%;
        max-width: 100%;
        bottom: 0; 
	}
}

.info_tel{
    font-weight: bold;

}
@media only screen and (max-width:750px){
    .info_tel{
        width: 100%;
        text-align: center;
        background-color: var(--color-bg-dark);
        padding:10px 0px;
	}
}

.info_mail{
    background-color:var(--color-bg-key);
    font-weight: bold;

}
.info_mail a{
    color:#fff;
    padding-left:10px;
    text-align: center;
}

@media only screen and (max-width:750px){
    .info_mail{
        width: 100%;
        text-align: center;
        padding:10px 0px;
	}
}

@media only screen and (max-width:750px){
    .info_mail a,.info_tel a{
        color:#fff;
        padding-left:0px;
        font-size:15px;
	}
}

/*ボタンリスト*/
.btn{
    padding:10px;
}


/*線*/
/*縦線　右*/
.sen_right{
    border-right:solid gray 1px;
}
@media (max-width: 650px) {
    .sen_right{
        border-right: 0;
    }
}

/*マーカー*/
.marker-be {
    background: linear-gradient(transparent 60%, #eee3db 0%);
    }

/*font*/
.font_yu{
    font-family :
	YuGothic,    /* Mac用 */
	'Yu Gothic', /* Windows用 */
	sans-serif;
}

.font_min{
    font-family :
	YuMincho,    /* Mac用 */
	'Yu Mincho', /* Windows用 */
	serif;
}

.font_fu{
    font-family: "futura-pt", sans-serif;
}

/*PC非表示*/
.pc{
    display: none;
}
@media only screen and (max-width:650px){
	.pc{
    display: block;
	}
}

/*モバイル非表示logo*/
.mobile{
    
}

@media only screen and (max-width:750px){
	.mobile{
    display: none;
	}
}
@media only screen and (max-width:1000px){
	.mobile2{
    display: none;
	}
}
@media only screen and (max-width:600px){
	.mobile3{
    display: none;
	}
}

/*PCでクリックオフ＆モバイルでクリックオン*/
@media screen and (min-width: 960px) {
    .on_mobile{
        /*クリックを無効にしたい時*/
        pointer-events: none;
        }
    }
@media only screen and (max-width:480px){
	.on_mobile{
    /*クリックを有効にしたい時*/
	pointer-events: auto;
    /*クリックを無効にしたい時
	pointer-events: none;*/
	}
}


/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
    transition: 0.8s ease-in-out;
    transform: translateY(70px);
    opacity: 0;
}
.scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
}
  
/*----------------------------
scroll_left ｜左から出現
----------------------------*/
.scroll_left {
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_left.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

/*----------------------------
scroll_right ｜右から出現
----------------------------*/
.scroll_right {
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_right.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

/*タイミング*/
.timing02 {transition-delay: .2s;}
.timing03 {transition-delay: .4s;}
.timing04 {transition-delay: .6s;}
.timing05 {transition-delay: .8s;}
.timing06 {transition-delay: .10s;}
.timing07 {transition-delay: .12s;}

/*ふわふわ*/
.fuwafuwa {
    animation: fuwafuwa 3s ease-in-out infinite alternate;
    display: inline-block;
    transition: 1.5s ease-in-out;
    margin-top: 15px;
  }
   
  @keyframes fuwafuwa {
    0% {
      transform:translate(0, 0) rotate(-3deg);
    }
    50% {
      transform:translate(0, -7px) rotate(0deg);
    }
    100% {
      transform:translate(0, 0) rotate(3deg);
    }
  }

/*パンくずリスト*/
.cp_breadcrumb *, .cp_breadcrumb *:after, .cp_breadcrumb *:before {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
.cp_breadcrumb {
	overflow: hidden;
	width: 100%;
	margin: 1em auto;
	padding-left: 20px;
	list-style: none;
    z-index: 1; /* パンくずリストのz-indexを低く設定 */
}
.cp_breadcrumb li {
	display: inline-block;
	margin: 0 1em 0.5em 0;
}
.cp_breadcrumb a {
	position: relative;
	z-index: 1;
	padding: 0.7em 1em 0.7em 2em;
	text-decoration: none;
	color: #ffffff;
	border-radius: 0.4em 0 0 0.4em;
	background: #71bbdc;
	display: inline-block;
	height: 40px;
	line-height: 1em;
	-webkit-transition:all 0.3s;
	transition: all 0.3s;
}
.cp_breadcrumb a:hover {
	background: #FFAB91;
}
.cp_breadcrumb a::after{
	background: #71bbdc;
	content: "";
	height: 2em;
	position: absolute;
	right: -1em;
	top: calc(50% - 1em);
	width: 2em;
	z-index: -1;
	transform: rotate(45deg);
	border-radius: .4em;
	-webkit-transition:all 0.3s;
	transition: all 0.3s;
}
.cp_breadcrumb a:hover::after {
	background: #FFAB91;
}
.cp_breadcrumb li:last-child a {
	cursor: default;
	pointer-events: none;
	color: black;
	background: transparent !important;
	font-weight: bold;
}
.cp_breadcrumb li:last-child a:hover {
	background: none;
}
.cp_breadcrumb li:last-child a::before,
.cp_breadcrumb li:last-child a::after {
	content: normal;
}

/*お問い合わせエリア*/
#contact{
    margin:0 auto;
    width: 100%;
    max-width: 100%;
    text-align: center;
    background-color: var(--color-bg-light);
    padding:80px 0;
}

#contact .text{
    font-size:14px;
}

.contact_tel{
    font-size:38px;
    font-weight: 600;
    margin-bottom:10px;
}

.contact_btn{
    background-color:var(--color-bg-dark);
    color:var(--color-font-light);
    width: 100%;
    max-width: 300px;
    margin:0 auto;
    padding: 7px;
    border-radius: 20px;
    font-weight: 550;
    font-size:20px;
}

.line{
    text-align: center;
    color: #53b635;
    font-weight: bold;
    padding-top: 20px;
    font-size: 18px;
}



.image_link{
    display:block; 
    position:relative;
    text-decoration:none;
   }
   .image_link img{
     display:block;
     width:100%;
     transition:0.3s;
   }
   .image_link:before{
     content:"READ MORE";
     display:block;
     color:#fff;
     line-height:48px;
     width:180px;
     border:solid 1px #fff;
     border-radius:5px;
     text-align:center;
     position:absolute;
     top:50%;
     left:50%;
     margin-top:-1em;
     margin-left:-90px;
     opacity:0;
     z-index:3;
     transition:0.3s;
     font-weight:bold;
     letter-spacing:0.2em;
   }
   .image_link:hover img{
     filter:blur(5px);
   }
   .image_link:hover:before{
     opacity:1;
     margin-top:-0.5em;
   }

   /*問い合わせ用*/
   /* === join/contact === */
.contact-join{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
  padding: 28px 18px 34px;
}

.join-hero{ text-align: center; margin-bottom: 16px; }
.join-title{ font-size: 28px; font-weight: 800; color: #123052; margin: 6px 0; }
.join-sub{ font-weight: 700; color: var(--color-bg-button); margin: 4px 0 10px; }
.join-perks{ display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin: 8px 0 0; padding: 0; list-style: none; }
.join-perks li{
  background: rgba(0,96,54,.08);
  color: #064a2f;
  border-radius: 8px;
  padding: 6px 10px;
  font-weight: 600;
  font-size: 14px;
}

.join-form{ display: grid; gap: 18px; }
.req{ color:#c00; font-size: .9em; margin-left: 4px; }

.field-group{ border: 1px solid #e7e7e7; border-radius: 12px; padding: 12px 14px; margin-bottom: 40px;}
.field-group legend{ font-weight: 700; color:#333; }
.field-group label{ margin-right: 18px; display: inline-flex; align-items: center; gap: 6px; }

.grid-2{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 720px){ .grid-2{ grid-template-columns: 1fr; } }
.grid-2 input,.grid-2 select{
    width: 95%;
    line-height: 2.4em;
    height: 2.6em;
}

.join-form label{ display: block; font-weight: 600; color:#222; }
.join-form input[type="text"],
.join-form input[type="email"],
.join-form input[type="tel"],
.join-form input[type="month"],
.join-form select,
.join-form textarea{
  width: 95%; margin-top: 6px;
  border: 1px solid #d8d8d8; border-radius: 8px;
  padding: 12px 12px;
  font-size: 16px; line-height: 1.4;
  background: #fff;
}
.join-form textarea{ resize: vertical; min-height: 160px; }

.file-label input[type="file"]{ margin-top: 8px; }

.agree{ display: flex; align-items: center; gap: 10px; font-weight: 600; }
.agree input{ transform: scale(1.1); }

.submit-wrap{ text-align: center; margin-top: 6px; }
.join-submit{
  appearance: none;
  border: none;
  background: var(--color-bg-button);
  color:#fff; font-weight: 800; letter-spacing: .08em;
  padding: 14px 34px; border-radius: 999px;
  box-shadow: 0 10px 20px rgba(0,96,54,.18);
  cursor: pointer; transition: transform .13s ease, background .13s ease;
}
.join-submit:hover{ background: var(--color-bg-button-hover); transform: translateY(-1px); }
.micro{ color:#777; font-size: 12px; margin-top: 40px; }

/* 入会項目の枠 */
.member-only{
  border: 1px dashed rgba(208,169,0,.6);
  border-radius: 12px; padding: 10px 12px;
  background: linear-gradient(0deg, rgba(208,169,0,.06), rgba(255,255,255,.0));
}

/* ハニーポット非表示 */
.hp-field{ position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ===== Footer Menu ===== */
footer .footer-nav{
  margin: 14px auto 10px;
  width: 100%;
  max-width: 1000px; /* 任意：横伸びし過ぎないように */
  text-align: center;
}

footer .footer-nav ul{
  display: flex;
  flex-wrap: wrap;              /* 折返しOK */
  justify-content: center;
  gap: 8px 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}

footer .footer-nav a{
  color: #555;                  /* footer背景に合わせて落ち着いた色 */
  text-decoration: none;
  font-size: 14px;
  line-height: 1;
  padding: 6px 2px;            /* クリックしやすい最小余白 */
  transition: color .15s ease, opacity .15s ease;
}

footer .footer-nav a:hover{
  color: var(--color-bg-base);  /* 既存のキーカラーに寄せる（#006036想定） */
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* 小さめ端末での余白微調整 */
@media (max-width: 600px){
  footer .footer-nav{
    margin-top: 10px;
  }
  footer .footer-nav a{
    font-size: 13px;
    padding: 8px 2px;
  }
}

/* ===============================
   SEO補強セクション（下部）
   =============================== */
.seo-extra {
  background: #f8f9f9;              /* やわらかいグレー背景 */
  border-top: 1px solid #e2e2e2;
  border-bottom: 1px solid #e2e2e2;
  padding: 60px 20px;
  margin-top: 80px;
  text-align: center;
}

.seo-extra h2 {
  font-size: 1.8rem;
  font-weight: 600;
  color: #3b3b3b;
  margin-bottom: 25px;
  position: relative;
  display: inline-block;
}

.seo-extra h2::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background-color: #529091; /* MRiのキーカラーに統一 */
  border-radius: 2px;
}

.seo-extra p {
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.7;
  font-size: 15px;
  color: #555;
  text-align: justify;
}

/* レスポンシブ調整 */
@media screen and (max-width: 768px) {
  .seo-extra {
    padding: 40px 16px;
  }
  .seo-extra h2 {
    font-size: 1.4rem;
  }
  .seo-extra p {
    font-size: 14px;
    line-height: 1.6;
  }
}

/* ===============================
   SEO補強ナビ（下部回遊リンク）
   =============================== */
.seo-nav {
  background: #fff;
  text-align: center;
  padding: 40px 20px 60px;
}

.seo-nav ul {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

.seo-nav ul li a {
  display: inline-block;
  padding: 12px 28px;
  border: 1px solid #529091;
  border-radius: 30px;
  font-size: 15px;
  font-weight: 500;
  color: #529091;
  text-decoration: none;
  transition: all 0.3s ease;
}

/*youtube*/
.seo-nav ul li a:hover {
  background: #529091;
  color: #fff;
}

.youtube_btn {
  display: inline-block;
  background-color: #d0a900;
  color: #fff;
  font-weight: 600;
  max-width: 300px;
  font-size: 20px;
  padding: 7px 28px;
  border-radius: 20px;
  text-decoration: none;
  transition: 0.3s ease-in-out;
  margin-top: 15px;
}

.youtube_btn:hover {
  background-color: #b79500;
  color: #fff;
}

.youtube_btn i {
  margin-right: 8px;
  font-size: 18px;
  vertical-align: middle;
}
