@charset "utf-8";
/* CSS Document */
body {
    margin: 0;
    overflow-x: hidden;
  }

header{
	background: #859D80;
	position: sticky;
	top:0;
	z-index: 2300;
}
  /* メニュー全体 */
.menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100vh; 
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  color: #fff;
  transition: right 0.6s ease;
  z-index: 90;
  background: #859D80;
}


  .menu.active {
    right: 0; /* 表示状態 */
  }

  .menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .menu ul li a {
    color: #fff;
    text-decoration: none;
    transition: color 0.3s;
  }

  .menu ul li a:hover {
    opacity: 0.7;
		transition: 0.3s;
  }

 /* ハンバーガー × アニメーション */
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(11px, 8px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}
.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(11px, -8px);
}

/* メニュー内リンクをふわっと表示 */
.menu ul li {
  margin: 20px 0;
  opacity: 0;                 /* 最初は透明 */
  transform: translateY(30px);/* 下にずらす */
}

.menu.active ul li {
  animation: floatUp 3.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

 h3.rec{
	margin-bottom: 40px;
}

div.ul-wrap ul li a p.ph{
	font-weight: bold;
}

/* アニメーション定義 */
@keyframes floatUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* footer */

.fo-div{
	margin: 0 auto;
	padding: 20px 0;
	color: #ffffff;
	background-color: #80889d;
}

.fo-nav{
	text-align: center;
}

.fo-nav ul.fo-info{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;  /* ← 横方向の中央寄せ */
  padding: 0;
  margin: 0 auto;
  list-style: none;
  width: auto;
  max-width: 600px; 
}

.fo-nav ul li{
	list-style: none;
	margin-bottom: 5px;
}

.fo-nav ul li a{
	text-decoration: none;
	padding: 0 18px;
	color: #ffffff;
	letter-spacing: .33em;
}

.fo-nav ul li a:hover{
	opacity: 0.7;
	transition: 0.3s;
}

.pagetop {
  position: fixed;
  right: -60px;         /* 画面外に隠す */
  bottom: 40px;
  width: 50px;
  height: 50px;
  background: #5d6c5c;
  color: #fff;
  text-align: center;
  line-height: 50px;
  border-radius: 50%;
  text-decoration: none;
  font-size: 1.2rem;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  transition: right 0.4s ease;
  z-index: 5000;
}

.pagetop:hover{
	opacity: 0.7;
	transition: 0.3s;
}

html {
  scroll-behavior: smooth;
}

div.fo-div01 ul li a{
	letter-spacing: 0;
}

div.fo-div01{
	font-weight: bold;
}


/* footer */

/* ↑ all device　↑ */

/* -----------------------
-----------------------
----------------------- */

/* ↓ PC,tablet　↓ */
@media screen and (min-width:769px) {

 /* ハンバーガーボタン */
.hamburger {
  position: fixed;
	top:170px;
	right: 33px;
  z-index: 1200;
  cursor: pointer;
  width: 50px;   
  height: 50px;  
	}

.hamburger span {
  display: block;
  width: 50px;       
  height: 1px;
  background: #fff;     
  margin: 13px 0;        
  transition: 0.4s;
	transform-origin: center;
}

/* 開いたとき（×に変形したとき） */
.hamburger.active {
  top: 20px;   /* 右上に移動 */
  right: 20px;
}

header{
  width: 120px;
	height: 100%;
	position: fixed;
  right: 0px;
}

header img{
	width: 93px;
	position: fixed;
	top:20px;
	right: 13px;
}

header p.p-menu{
	position: fixed;
	top:220px;
	right: 31px;
	color:#fff;
	font-size: 18px;
	font-weight: bold;
}

.menu {
  display: flex;
  justify-content: center;
	align-items: flex-start;
	padding-top:20vh; 
  gap: 40px;
  position: fixed;
  top: 0;
  right: -100%;
  background: #859D80;
  z-index: 90;
}

.ul-wrap ul {
  list-style: none;
	height: 510px;
  padding: 0;
  margin: 0;
}

.ul-wrap ul li {
  margin: 10px 0;
}

.ul-wrap ul li strong{
	font-size: 25px;
	line-height: 18px;
}

.ul-wrap ul li strong span{
	font-size: 14px;
	font-weight: 400;
	padding-bottom: 40px;
	display: block;
}

.ul-wrap ul li p{
	font-size: 16px;
}

.ul-wrap ul li p{
	font-size: 14px;
	margin-left:15px;
}

div.ul-wrap ul li a p.ph{
	font-size: 20px;
	margin-left: -20px;
}

.mark2{
	display: none;
}

.nav-img{
	min-width: 180px;
	flex-shrink: 0;
	position: fixed;
	top:-160px;
	left:7vw;
}

.stripe1{
	border-right: #FFFFFF solid 1px;
	padding-right: 10vw;
}

.stripe2{
	padding-left: 5vw;
}

.fo-nav ul li a{
	font-size: 20px; 
}

a.fo-a{
	font-size: 16px !important;
}

.pagetop.show {
  right: 30px;          /* 右からスッと出てくる */
}

div.fo-div01{
	display: flex;
	justify-content: space-between;
	width: 1000px;
	margin: 0 auto 50px;
	text-align: left;
	font-size: 20px;
}

iframe{
	 width:100%;
	 height:449px;
	 margin: 0;
	 display: block;
}

}

/* ↑ PC,tablet　↑ */

/* -----------------------
-----------------------
----------------------- */

/* ↓ smart phone　↓ */
@media screen and (max-width: 768px) {
	header{
		display: flex;
		height: 65px;
		padding: 5px;
	}
	
	header p.p-menu{	
		font-size: 10px;
		color: #fff;
		position: fixed;
		top:45px;
	  right: 8px;
	  letter-spacing: 5px;
	}
	
	header img{
		width: 70px;
	}
	
	
	 /* ハンバーガーボタン */
.hamburger {
	position: fixed;
	top:-2px;
	right: 10px;
  z-index: 1200;
  cursor: pointer;
  width: 50px;   
  height: 50px;  
	}

.hamburger span {
  display: block;
  width: 50px;       
  height: 1px;
  background: #fff;     
  margin: 13px 0;        
  transition: 0.4s;
	transform-origin: center;
}

.menu {
	display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 15px;
  height: 100vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  }

.mark1{
	display: none;
}
	
.ul-wrap ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ul-wrap ul li {
  margin: 5px 0;
}

.ul-wrap ul li strong{
	font-size: 25px;
	padding-bottom: 1px;
}

.ul-wrap ul li strong span{
	font-size: 12px;
	font-weight: 500;
}

.ul-wrap ul li strong span{
	font-size: 14px;
	font-weight: 400;
	padding-bottom: 15px;
	display: block;
}

.ul-wrap ul li p{
	font-size: 12px;
	margin-left:15px;
}

div.ul-wrap ul li a p.ph{	
	margin-left: -5px;
	font-size: 3.2vw;
}

.nav-img{
	width: 93px;
	position: fixed;
}

.stripe1{
	border-bottom: #FFFFFF solid 1px;
}

.sp-box1 ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px;
		padding-top:50px; 
  }

.sp-box1 ul li {
    flex: 0 0 48%;
    box-sizing: border-box;
    text-align: left;
  }


.ul-wrap {
	width: 90vw;
	margin: 0 auto;
	padding-bottom: 20px;
}

.pagetop.show {
  right: 20px;          /* 右からスッと出てくる */
}

div.fo-div01{
	font-size: 18px;
	line-height: 1.8;
}

div.fo-div01 p{
	margin-bottom: 20px;
}

iframe{
	 width:100%;
	 height:765px;
	 display: block;
}

}

/* ↑ smart phone　↑ */