/*
Theme Name: Tutrial4-Proto
Author: Your Name
Description: 汎用WordPressテーマ
Version: 4.0
*/

html, body {
	margin: 0;
	padding: 0;
	font-size: clamp(1rem, 1.5vw, 1vw);
	font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 400;
  font-style: normal;
	scroll-padding-top: 15%; 
  
  /* もしスムーズにスクロールさせたい場合はこれも追加 */
  scroll-behavior: smooth;
}

/* 基本（下層ページ）：非表示 */
@media (max-width: 769px) {
	html, body {scroll-padding-top: 80px;}
}
p {font-size:1vw;}
.pc {display:inherit!important;}
.sp {display:none!important;}
.metaslider .flexslider {margin-bottom:20px!important;}
.metaslider .flex-control-nav {bottom:5px!important;}
.flex-control-paging li a {background:rgba(128,128,128,0.6)!important;}
.flex-control-paging li a.flex-active {background:rgba(255,255,255,0.6)!important;}
.btn_menu {margin-bottom:6vw;}
.btn_menu ul{display:flex;list-style:none;justify-content:center;}
.btn_menu ul li{width:9%;margin:0.5%;}

/* 全体 */
body {padding:0;margin:0;background-image:url('images/bg001.png');background-size:100%;overflow-x:hidden;background-repeat:repeat-y;}
@media (max-width: 768px) {
	body {padding-top:0;}
	p {font-size:15px;}
	.pc {display:none!important;}
	.sp {display:inherit!important;}
	.btn_menu {display:none;}
}

/* ヘッダー */
header {
color: #333333;
width: 100%;
margin:0 auto;
}
@media (max-width: 768px) {
header {
  color: #333333;
  position: fixed; 
  top: 0; 
  left: 0; 
  width: 100%;
	height:auto;
	z-index: 3;
}	
}


/* ヘッダー内部を最大1000pxで中央配置 */
/* ===================================================
 * 既存の .header-inner 表示制御
 * =================================================== */
/* 基本（下層ページ）：非表示 */
@media (min-width: 769px) {
.header-inner {
  display: none;
}
}
/* トップページ（body.home）のみ：表示 */
body.home .header-inner {
  max-width: 1000px;
  margin: 0 auto;
  position: absolute;
  display: flex;
  flex-direction: column;
  padding: 0 20px;
	z-index:1;
}
.logo-area {width:15vw;height:auto;}
.logo-area img {width:100%;height:auto;}
.logo-area a {
  color: #000000;
  text-decoration: none;
  font-size: 1.5em;
}
@media (max-width: 768px) {
	.header-inner {width:94%;justify-content:space-around;padding:0 0 0 3%;}
	.logo-area {width:23vw;height:auto;}
}

.fixed_menu {width:13%;min-width:80px;max-width:180px;position:fixed;right:0;z-index:3;margin-top:40px;}
.fixed_menu ul {padding:0;margin:10px 15px;list-style:none;}
.fixed_menu ul li {text-align:right;margin-bottom:1vw;}
@media (max-width: 768px) {
	.fixed_menu{display:none;}
}

/* PC用グローバルナビ */
.global-nav {
	width:18vw;
  display: flex;
}
.global-nav ul {width:auto;padding:0;margin:0;list-style:none;font-size:1.6vw;font-weight:bold;}
.global-nav ul li {border-bottom:1px solid #333333;margin-bottom:0.5vh;}
.global-nav ul li a{width:100%;display:inline-block;color:#333333;text-decoration:none;padding:10px 0 5px 0;}


/* ハンバーガーボタン */
.hamburger-btn {
  position: absolute; 
  right: 10px;
  top: 35px;
  width: 50px;
  height: 50px;
  z-index: 1100; 
  cursor: pointer;
	background:#00bf63;
	border-radius:999%;
}
.hamburger-btn span {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 50%; 
  height: 1px;
  background: #FFFFFF;
  transition: all 0.3s ease;
  transform: translate(-50%, -50%);
}

/* 初期状態：3本線 */
.hamburger-btn span:nth-child(1) {
  transform: translate(-50%, -50%) translateY(-7px);
}
.hamburger-btn span:nth-child(2) {
  transform: translate(-50%, -50%);
}
.hamburger-btn span:nth-child(3) {
  transform: translate(-50%, -50%) translateY(7px);
}

/* ハンバーガー(Xへ)変形時 */
.hamburger-btn.active {background:#FFFFFF;}
.hamburger-btn.active span {background:#333333;}
.hamburger-btn.active span:nth-child(1) {
  transform: translate(-50%, -50%) rotate(45deg);
}
.hamburger-btn.active span:nth-child(2) {
  opacity: 0;
}
.hamburger-btn.active span:nth-child(3) {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* モバイルメニューオーバーレイ: 全画面 */
.mobile-menu-overlay {
  position: fixed;
  top: 0vh; right: 0; bottom: 0; left: 0; 
  z-index: 1000; 
  transition: opacity 0.3s ease;
  opacity: 0;
  pointer-events: none;
}
.mobile-menu-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
/* モバイルナビ：全画面 */
.mobile-nav {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  background: #f5faf0;
  padding: 0;
	background-image:url(images/mobile_menu_bg001.png);
	background-repeat:no-repeat;
	background-size:100%;
	
}
.mobile-menu {
	width:50%;
  list-style: none;
  padding: 0;
  margin: 15% auto 0 auto;
	display:flex;
	flex-direction:column;
	align-items:center;
	overflow:hidden;
}
.mobile-menu li {width:100%;display:flex;justify-content:center;border-bottom:2px dotted #7dbb7e;padding:0;font-size:21px;}
.mobile-menu li:last-child {border-bottom:none;}
.mobile-menu li a {
  display: inline-block;
	width:100%;
  color: #333333;
  text-decoration: none;
	text-align:center;
  padding: 15px 0;
}

.mobile-menu-logo {width:45%;height:auto;margin:10px;}
.mobile-menu-bunner {width:55%;margin:15px auto;}
.mobile-menu-logo img, .mobile-menu-bunner img {width:100%;height:auto;vertical-align:bottom;}
/* モバイルサブメニュー */
.mobile-has-sub {
  position: relative;
}
.accordion-toggle {
  position: relative;
  display: block;
  color: #333333;
  text-decoration: none;
  padding: 10px 0;
}
.accordion-icon {
  font-weight: bold;
  margin-left: 5px; 
}

/* モバイルサブメニューアニメーション */
.mobile-sub-menu {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease;
  margin: 0;
  padding-left: 20px;
}
.mobile-sub-menu li a {
  padding: 5px 0;
}

.fade-image {
  opacity: 1.0; /* 通常時の不透明度 */
  transition: opacity 0.3s ease; /* 変化にかかる時間と動きの種類 */
}

.fade-image:hover {
  opacity: 0.5; /* マウスオーバー時の透明度（0〜1） */
}

.more-area {width:100%;text-align:end;}
.more-area img {width:20%;height:auto;}
@media (max-width: 768px) {
	.more-area {width:65%;text-align:center;margin:10% auto;}
	.more-area img {width:100%;height:auto;}
}
/* メインコンテンツ */
main section{
width:73%;
	padding: 20px 0;
	margin:0 auto;
}
main article {
width:100%;
	padding: 20px 0;
	margin:0 auto;

}
@media (max-width: 768px) {
main section{width:94%;padding: 3%;}
main article {
width:100%;
padding: 0%;
	margin:0;
}
}


section img, article img {max-width:100%;height:auto;}
.date-area {display:flex;justify-content:flex-end;margin:0;padding:0 5px;font-size:.9em;}
.news-area {width:80%;margin:0 auto;padding:0;}
.cat-area {width:60%!important;}
.news-h3 {display:flex;align-items:center;margin-top:-9%;margin-left:-9%;font-size: clamp(1rem, 2vw, 2rem);}
.news-h3 span {display:inline-flex;color:#ffffff;background:#1d2088;border-radius:1999px;padding:5px 25px;}
.news-area ul{
 list-style: none;
}
.single_title {display:inline-block;border-bottom:1px solid #00bf63;text-align:center;}
.single-box {width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;}
.single-img {width:55%;}
.single-img ul {width:100%;list-style:none;padding:0;margin:0;}
.single-img ul li {margin-bottom:3%;}
.single-content {width:40%;}
.single-no-image {width:60%;margin:auto;}

@media (max-width: 768px) {
	.single-box{width:100%;margin:auto;flex-direction:column-reverse;}
	.single-img {width:100%;}
	.single-content {width:100%;}
	.single-no-image {width:98%;margin:auto;}
	.news-area, .cat-area {width:100%!important;}
}

.news-area ul li{
  display: flex; /* 点とリストを横並びに */
  align-items: center; /* 垂直方向に中央揃い */
	padding-bottom:5%;
}

.news-area ul li::before{
 content: "●"; /* 記号(黒丸)を挿入 */
 color: #00bf63; /* 好きな色にする */
 font-size: 0.6em; /* 点の大きさ */
 margin-right: 1em; /* 点とテキストの距離 */
}
.news-area ul li span{padding-left:20px;margin-left:20px;background-image:url(images/border001.png);background-repeat:no-repeat;background-position:left;background-size:contain;}
.news-area ul li a {text-decoration:none;color:#333333;}
.news-area ul li a:hover {text-decoration:underline;}

@media (max-width: 768px) {
	.news-area ul li {
		flex-wrap: wrap;
		padding-left:0;margin-left:0;background-image:none;
	}
	.news-area ul li span {
		display: block;
		margin-left: 0;
		background-image: none;
		width: calc(100% - 20px); /* これが重要 */
	}
}


.hero-area {
    width: 100%;
    margin: 0 auto;
    padding: 0;
    position: relative;
}

.hero-area .metaslider,
.hero-area .flexslider,
.hero-area .flex-viewport {
    max-width: 100%;
}

.hero-area .flex-viewport {
    overflow: hidden;
}

.hero-area h1 {
    position: absolute;
    top: 46%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1; /* headerの z-index: 2000 より低いのでそのままでOK */
    color: #fff;
    text-align: center;
    white-space: nowrap; /* 折り返し防止 */
	width:40%;
}

.hero-area p {display:flex;justify-content:flex-end;margin:0;padding:0 5px;font-size:11px;}
.hero-area img { width: 100%; height: auto; display: block;}

@media (max-width: 768px) {
    .hero-area {
        width: 100%;
        height: 50vh;
        margin: 0 auto;
        padding: 0;
        overflow: hidden;
        position: relative;
    }
	.hero-area h1 {
    top: 40%;
	width:70%;
}
    .hero-area img { width: 100%; height: 100%; object-fit: cover; object-position: center;}
}
.title-area {width:100%;padding:5% 0;}
.title-area h1, .title-area h2{width:auto;height:100%;margin:auto;text-align:center;}
.title-area h1 img {width:auto;height:10vw;object-fit: contain;}
@media (max-width: 768px) {
	.title-area {width:100%;padding: 0 0;}
	.title-area h1, .title-area h2{width:80%;margin:auto;padding-top:10%;}
	.title-area h1 img {width:auto;height:30vw;object-fit: contain;}
}

/* 親要素を追加して中央寄せにする */
.title-wrapper {
    text-align: center;
    width: 100%;
}

.main-h2 {
    font-size: clamp(1.25rem, 4vw, 2rem);
    margin: 0;
	padding-bottom:10px;
    border-bottom: 3px solid #90cb55;
    display: inline-block; /* 文字の幅に合わせる */
}
.img-area {width:98%;margin:1% auto;text-align:center;}
.img-button {width:50%;margin:2% auto 10% auto;text-align:center;}
.img-button a:hover {opacity:.8;transition: 0.3s;}
.img-button2 {width:100%;margin:2% auto 10% auto;text-align:center;}
.img-button2 a:hover {opacity:.8;transition: 0.3s;}
.content-h2 {width:100%;padding:0;margin:0;text-align:center;margin:auto}
.content-h2 span {display:inline-flex;color:#1d2088;border-bottom:3px solid #1d2088;font-size:1em;}
.news_box {background:url(images/section_bg001.png);background-size:100%;background-repeat:no-repeat;padding-top:9vw;padding-bottom:5vw;}
.page-box h2{width:100%;margin:0 auto;padding:5% 0 1% 0;}
.cat-box {padding-top:5%;}
@media (max-width: 768px) {
	section, article {width:100%;padding:0;margin-bottom:10%;}
	.news-h3 {margin-top:-12%;margin-left:-12%;}
	.news_box {padding-top:7vw;}
	.page-box h2{width:98%;margin:0 1%;}
}

@media (min-width: 769px) {
  /* PC表示時、ハンバーガーは非表示にして、上でdisplay:block;を打ち消す */
  .hamburger-btn {
    display: none;
  }
}

/* --- ボタン本体の設定（既存のコードと同じ） --- */
#back-to-top-btn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 50px;
  height: 50px;
  background: #FFFFFF;
  /* color: #008232; ←文字を使わないので削除してもOK */
  border: 1px solid #90cb55;
  border-radius: 50%;
  
  /* flexで中央揃え */
  display: flex;
  align-items: center;
  justify-content: center;
  
  cursor: pointer;
  z-index: 10; 
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

#back-to-top-btn.visible {
  opacity: 1;
  pointer-events: auto;
}

/* --- ★ここから追加：矢印（くの字）の設定 --- */
.arrow-up {
  display: block;
  width: 12px;       /* 矢印のサイズ（お好みで変更可） */
  height: 12px;
  
  /* 線の設定：ここを太くすると矢印が太くなります */
  border-top: 2px solid #90cb55;   
  border-right: 2px solid #90cb55; 
  
  /* 45度回転させて上に向ける */
  transform: rotate(-45deg);
  
  /* 微調整：目の錯覚で少し上に寄って見えるのを直す */
  margin-top: 6px; 
}

.line01 {width:100%;padding:50px 0;margin:0;background:#FFFFFF;}
.line01 img {width:100%;height:auto;}
.illust001 {width:50%;margin:50px 30% -3vw 10%;}
.illust001 img {max-width:100%;height:auto;}
.illust002 {width:50%;margin:50px 0 0 40%;}
.illust002 img {max-width:100%;height:auto;}
.h_image {width:50%;margin:10% auto 5% auto;text-align:center;}
.h_image img {max-width:100%;height:auto;}
@media (max-width: 768px) {
	.illust001 {width:106%;margin:0 -3% -5vw -3%;overflow:hidden;}
	.illust002 {width:100%;margin:0 0 0 0;overflow:hidden;}
	.h_image {width:80%;}
}

.white_box {width:80%;display:flex;margin:0 auto 20px auto;padding:10px;border-radius:10px;background:#FFFFFF;}
.white_box img {width:100%;height:auto;vertical-align:bottom;margin:0;}
.white_box_left {width:65%;}
.white_box_right {flex:1;}
.white_box ul {margin:0;padding:20px;list-style:none;display:flex;font-size:1.3vw;font-weight:bold;}
.white_box ul li {padding:0 0 0 0;}
.white_box ul li:first-child {width:20%;border-right:1px solid #333333;text-align:center;}
.white_box ul li:first-child span {display:block;}
.white_box ul li:last-child {padding:0 0 0 3%;}
.white_box ul li:last-child span {font-size:1.7vw;display:block;}
@media (max-width: 768px) {
	.white_box {flex-direction:column;}
	.white_box_left {width:100%;}
.white_box_right {width:94%;margin:0 auto;}
.white_box ul {flex-direction:column;font-size:13px;}
	.white_box ul li:first-child {width:100%;border-right:none;border-bottom:1px solid #333333;text-align:left;padding-bottom:5px;margin-bottom:5px;}
	.white_box ul li:first-child span {display:contents;}
	.white_box ul li:last-child {width:100%;}
	.white_box ul li:last-child span {font-size:21px;}
	
}

/* header menu */

/* ===================================================
 * 追従固定バー（下層ページ：最初から上部に表示）
 * =================================================== */
.sticky-header-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
	padding-right:20%;
  height: auto; /* 高さが潰れないよう明示 */
  background-color: #ecf6e2;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  z-index: 2; /* 既存要素より最前面へ */

  /* アニメーション設定 */
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.3s ease, visibility 0.4s;
}

/* 内部レイアウト（必要に応じて調整） */
.sticky-header-inner {
  margin: 0 auto;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* ===================================================
 * トップページ（body.home）のみの制御
 * =================================================== */
/* 初期状態：画面上に隠す */
body.home .sticky-header-bar {
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* .btn_menu を通過後：にゅっと降りてくる */
body.home .sticky-header-bar.is-show {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.sticky-logo {width:25%;}
.sticky-logo img {width:100%;height:auto;}
.sticky-nav {width:48%;display:flex;}
.sticky-nav ul{display:flex;margin:0;padding:0;list-style:none;align-items:center;}
.sticky-nav ul li{width:18%;margin-left:2%;padding:0;}
.sticky-nav ul li img {width:100%;height:auto;}

@media (max-width: 768px) {
	.sticky-header-inner {display:none;}
}
/* ===================================================
 * ギャラリー一覧レイアウト
 * =================================================== */
.gallery-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* スマホ：2列 */
  gap: 10px;                             /* スマホ時の余白 */
  list-style: none;
  padding: 0;
  margin: 5% 0;
}
.gallery-list span {font-size:1.2em;}
/* PC表示の切り替え（画面幅 768px 以上） */
@media screen and (min-width: 768px) {
  .gallery-list {
    grid-template-columns: repeat(3, 1fr); /* PC：3列 */
    gap: 12px;                             /* PC時の余白 */
  }
}

/* 各アイテム */
.gallery-list li a {
  display: block;
  overflow: hidden; /* はみ出し防止（既存のまま） */
  border-radius: 4px;
}

/* ===================================================
 * 4:3 統一 & トリミング & 拡大アニメーション設定
 * =================================================== */
.gallery-list img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.4s ease-out; /* なめらかな拡大トランジション */
  backface-visibility: hidden;         /* ちらつき防止 */
}

/* マウスオーバー時に枠内で少し拡大 */
.gallery-list li a:hover img {
  transform: scale(1.1); /* 拡大率（お好みで 1.05〜1.1 付近で調整） */
}

@media screen and (max-width: 768px) {
.gallery-list span {font-size:.75em;}
}

/* events */
.event-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: flex-start;
    margin: 5% auto;
}
.event-card {
    width: calc(25% - 15px);
}

.event-card a{
	color:#ffffff;
	text-decoration:none;
}

/* ===================================================
 * 画像枠内拡大の指定箇所
 * =================================================== */
.event-thumb {
    overflow: hidden; /* はみ出しをカットする枠 */
    display: block;
}

.event-thumb img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: top;
    display: block;
    transition: transform 0.4s ease-out; /* なめらかなアニメーション */
    backface-visibility: hidden;         /* ちらつき防止 */
}

/* カード全体、または画像ホバー時に拡大 */
.event-card:hover .event-thumb img {
    transform: scale(1.08); /* 拡大率（お好みで調整） */
}

/* =================================================== */

.event-body {
    background: #7dbb7e; /* 緑背景。実際の色に調整してください */
    padding: 5px 10px;
}
.event-body p {font-size: .9vw;}
.event-date-label {
    text-align: center;
    color: #fff;
	padding:0 5%;
    margin-bottom: 0;
    margin-top: 0;
}
.event-date-box {
    color: #FFFFFF;
    background: #9fd7ed; /* 水色ボックス */
    text-align: center;
    padding: 10px;
    border-radius: 6px;
    font-weight: bold;
    margin: 0 0 10px 0;
	height:4vw;
	overflow:hidden;
	display: flex;
    align-items: center;
    justify-content: center;
}
.event-date-box.is-cancelled { color: #FFFFFF; background: #9fd7ed; } /* 中止時に色を変える例 */
.event-date-box.is-ended { color: #FFFFFF; background: #9fd7ed; }     /* 終了時に色を変える例 */
.event-title {
    color: #fff;
    font-weight: bold;
    text-decoration: none;

    /* 行数制限と「…」の指定 */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; /* 表示したい行数（1行なら 1、2行なら 2） */
    overflow: hidden;
    line-height: 1.4;      /* 行の高さ */
    height: calc(1.4em * 2); /* ※2行分の高さを確保してカードの高さを揃えたい場合に指定 */
}
.event-postdate {
    color: #fff;
     display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 8px;
}
.event-date {font-size:.8em;}
.event-more {
    color: #fff;
	background-image:url(images/more_under.png);
	background-position:bottom right;
	background-repeat:no-repeat;
	background-size:contain;
	padding-right:1.5vw;
	padding-bottom:2px;
	font-size:.9em;
}

/* 通常の表示（15文字以下） */
.event-date-box {
    font-size: 14px;
}

/* 15文字を超えた場合に文字を縮小して枠内に収める */
.event-date-box.is-small {
    font-size: .6em;
    letter-spacing: -0.04em; /* 文字間をわずかに詰めて収まりを良くする */
	line-height:130%;
}

/* スマホ：2×2 */
@media (max-width: 767px) {
    .event-body { font-size: 18px;padding:15px 10px 10px 10px;}
	.event-body p {font-size: .7em;}
    .event-card {width: calc(50% - 10px);}
	.event-postdate{font-size:13px;}
	.event-more{font-size:10px;padding-right:20px;}
	.event-date{font-size:9px;}
	.event-date-box {height:12vw;}
	.event-date-box.is-small {font-size:.5em;}
}
/* map */
.top-map {width:100%;padding:0;margin:3% auto;display:flex;}
.top-map-main {width:68%;}
.top-map-sub {display:flex;flex-direction:column;justify-content:flex-end;width:27%;padding-left:5%;}
.top-map-sub p {margin-bottom:20%;}
.top-map-sub a {margin-bottom:10%;}

/* スマホ：2×2 */
@media (max-width: 767px) {
	.top-map {flex-direction:column;}
	.top-map-main {width:98%;margin:auto;}
	.top-map-sub {width:98%;margin:auto;}
	.top-map-sub p {margin-bottom:5%;}
	.top-map-sub a {width:60%;margin:5% auto;}
}

/* facility */

.facility-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: space-evenly;
	margin:5% auto;
}
.facility-card {
    width: 20%;
	border-left:1px solid #00bf63;
	padding:0 0 0 2.5%;
}
.facility-card:first-child {border-left:none;}
.facility-card a{text-decoration:none;color:#333333;}
.facility-body ul{
	list-style:none;
	padding:5% 0;
	margin:0;
}
.facility-body ul li {
	border-bottom:1px dashed #00bf63;
	padding:0 0 5px 0;
	margin:2% 10%;
	font-size:85%;
}
.facility-body ul li a {text-decoration:none; color:#333333;}
.facility-body ul li a:hover {font-weight:bold;}

/* スマホ：2×2 */
@media (max-width: 767px) {
	.facility-cards {justify-content:space-around;}
	.facility-body {font-size: 15px;}
    .facility-card {
        width: 40%;
		border-left:none;
		padding:2% 0;
    }
	.facility-body ul li {
	border-bottom:none;
	}
}

.facility-box {display:flex;align-items:flex-start;padding-top:5%;}
.facility-map {width:48%;margin:1%;}
.facility-map-button img{width:40%;height:auto;margin:3% 0 3% 60%;}
.facility-list {width:48%;margin:1%;border:2px solid #00bf63;border-radius:20px;}
.facility-list ul {list-style:none;display:flex;flex-wrap:wrap;padding:0;margin:0;justify-content:space-evenly;}
.facility-list ul li {width:44%;margin:3%;}
ul.facility-list-sub {
  display: flex;
  flex-direction: column;
  list-style: none;
  padding: 0 0 0 5%;
  margin: 0;
}

ul.facility-list-sub li {
	width:calc(100% - 1.8em);
  position: relative;
  padding-left: 1.8em; /* アイコンの幅 ＋ 余白 */
  line-height: 1.6;
	font-size:.73em;
	margin:5% 0 0 0;
}

ul.facility-list-sub li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35em; /* 1行目の文字の高さに合わせた上下位置 */
  width: 1.3em;  /* アイコンの横幅（文字サイズ連動） */
  height: 1em; /* アイコンの縦幅 */
  background: url("images/facility_area_arrow.png") no-repeat center / contain;
}
ul.facility-list-sub li a{text-decoration:none;color:#333333;font-weight:bold;}
.facility-items {display:flex;align-items:flex-start;flex-wrap:wrap;}
.facility-item {width:42%;margin:4%;font-size:.75em;}
.facility-item h2 {text-align:center;border-bottom:1px solid #00bf63;margin-bottom:20px;}
.facility-item h3 {text-align:center;border-bottom:1px solid #00bf63;margin-bottom:20px;font-size:1.5em;padding-bottom:5px;}
.dongmap {width:100%;text-align:right;margin:3% 0 10% 0}
.dongmap img{width:60%;height:auto;}
.facil-cominet{width:80%;margin:5px auto;}

.facility-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.4s ease-out; /* なめらかな拡大トランジション */
  backface-visibility: hidden;         /* ちらつき防止 */
	margin-bottom:10px;
}

@media (max-width: 768px) {
	.facility-items, .facility-box {flex-direction:column;}
	.facility-map {width:98%;}
	.facility-map-button img{width:60%;height:auto;margin:5% 0 5% 40%;}
	.facility-list {width:98%;}
	.facility-item {width:98%;margin:1%;}
	.facil-cominet{width:60%;}
	ul.facility-list-sub li {font-size:.68em;}

}

/* ご利用案内 */

.information-box {width:92%;margin:3% auto;}
.information-button {width:90%;height:auto;margin:5% auto 0 auto;display:block;}
.attention-box {width:92%;border-bottom:1px solid #00bf63;display:flex;flex-wrap:wrap;padding-bottom:1.5%;margin:1.5% auto;}
.attention-img {width:10%;height:auto;display:flex;align-items:center;}
.attention-img img{width:100%;height:auto;}
.attention-txt {flex:1;}
.attention-txt ul {list-style:none;font-size: 1em;padding:0 1em;}
.attention-txt ul li {margin-left:1em;}
.attention-txt li::before {
  content: "●";
  color: #00bf63;      /* 緑色のカラーコード */
  margin-left: -1.2em;
	padding-right:5px;
	font-size:.75em;
}

@media (max-width: 768px) {
	.information-box {width:100%;margin:1.5% 0;}
	.attention-box {width:100%;}
	.attention-txt ul {font-size:.8em;padding:0 .75em;}
}




/* Access */

.access-box {display:flex; flex-wrap: wrap;gap: 20px;justify-content: flex-start;align-items:flex-end;margin:3% auto;}
.access-card{width: calc(45% - 10px);padding-right:5%;}
.map-card{width: calc(50% - 10px);padding:0;}
.access-card p {margin-top:10px;}

.map-container {
  width: 100%;
  /* 縦横比を 16:9 に指定（一般的なマップの比率。4:3 や 3:2 など好みに合わせて調整してください） */
  aspect-ratio: 16 / 9;
	margin-top:5%;
	position: relative; /* 追加 */
}
.map-container::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}

.map-container.loaded::before {
  display: none;
}

.map-container iframe {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 隙間なく綺麗に収めます */
}

.access-list {
  display: grid;
  grid-template-columns: auto 1fr; /* 左側の文字幅に合わせて2カラム配置 */
  column-gap: 24px;                 /* 交通名と詳細の間の余白 */
  row-gap: 8px;                     /* 行ごとの余白 */
  margin: 0;
  font-size: .9em;
  line-height: 1.6;
}

.access-list dt {
  display: flex;
  align-items: flex-start;
}

/* 緑色の丸アイコン（擬似要素） */
.access-list dt::before {
  content: "●";
  color: #00bf63;      /* 緑色のカラーコード */
  margin-right: 8px;
  font-size: 1em;
}

.access-list dd {
  margin: 0;
	text-align:right;
}

.access-list dd p {
  margin: 0;
}
@media (max-width: 767px) {
	.access-box {flex-direction:column-reverse;gap:0;}
	.access-card{width:98%;padding:0 1%;}
	.map-card{width:98%;padding:0 1%;margin-bottom:5%;}
}

/* お問合せ */
.contact-area {width:80%;margin:auto;}
.contact-attent {text-align:center;padding-bottom:5%;}
/* 必須項目のラベルの後ろに「必須」マークを付与 */
.smf-item:has([data-validations~="required"]) .smf-item__label::after {
  content: "必須";
  background-color: #26b060; /* 赤系の背景色 */
  color: #fff;
  font-size: .75em;
  font-weight: bold;
  padding: 2px 12px 5px 12px;
  border-radius: 999px;
  margin-left: 8px;
  vertical-align: baseline;
}
.smf-item__label {padding-bottom:10px;}
.smf-item__controls {margin-bottom:15px;}
.privacy-policy {display:block;width:100%;height:150px;overflow-y:scroll;border:1px solid #cccccc;border-radius:3px;margin:20px auto;background:rgba(255,255,255,.8);}
.privacy-policy p {padding:10px;font-size:.75em;}

/* Snow Monkey Forms のボタンカスタマイズ（文字拡大＆幅60%） */
.smf-action .smf-button-control__control {
    background-color: #00b96b !important; /* ボタンの背景色（グリーン） */
    color: #ffffff !important;            /* 文字色（白） */
    font-size: 1.25rem !important;        /* ★文字を大きく（標準より一回り大きく設定） */
    font-weight: bold !important;
    width: 60% !important;                /* ★横幅を60%に指定 */
    margin: 0 auto !important;            /* ★ボタンを中央に配置 */
    display: block !important;            /* ★中央配置を有効化 */
    border-radius: 50px !important;       /* 角丸カプセル型 */
    padding: 10px 30px !important;        /* 文字拡大に合わせて上下の余白も少し広く */
    border: none !important;
    box-shadow: none !important;
    background-image: none !important;
    transition: background-color 0.3s ease;
}

/* マウスをのせたとき（ホバー時） */
.smf-action .smf-button-control__control:hover {
    background-color: #009e5b !important; /* 少し暗めのグリーン */
    color: #ffffff !important;
    cursor: pointer;
}
/* Snow Monkey Forms テキストフィールドなどの幅を100%にする */
.smf-form input[type="text"],
.smf-form input[type="email"],
.smf-form input[type="tel"],
.smf-form input[type="url"],
.smf-form input[type="number"],
.smf-form input[type="password"],
.smf-form select,
.smf-form textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important; /* 余白が外にはみ出るのを防ぐ */
}



/* フッター */
.sub-footer {color:#FFFFFF;background:#7dbb7e;display:flex;justify-content:space-between;align-items:center;width:100%;padding:3% 13.5%;margin-top:5%;}
.sub-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center; /* 中央揃え */
}

.sub-footer ul li {
  display: flex;
  align-items: center;
  padding: 0 5px;
	font-size:1.5vw;
  /* border-left は削除します */
}

/* 2つ目以降の li の左側に縦線を挿入 */
.sub-footer ul li + li::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 0.85em;        /* 文字の高さに合わせる（お好みで 0.7em〜1em など微調整可能） */
  background-color: #FFFFFF;
  margin-right: 10px;    /* 線と右側テキストの間隔 */
}

.sub-footer ul li a {
  text-decoration: none;
  color: #FFFFFF;
}

.sub-footer ul li a:hover {
  text-decoration: underline;
}
.foot-policy{width:30%;}
.foot-policy img {width:100%;height:auto;}
@media (max-width: 768px) {
	.sub-footer ul{display:none;}
	.foot-policy{width:70%;margin:3% auto;max-width:250px;}
}
.operation {display:flex;justify-content:space-between;align-items:flex-end;width:100%;padding:3% 13.5%;}
.operation-box{width:65%;padding:0;margin:0;font-size: .8em;}
.banner-box{width:25%;padding:0;margin:0;}
.manage-list {
  display: grid;
  grid-template-columns: auto 1fr; /* 左側の文字幅に合わせて2カラム配置 */
  column-gap: 24px;                 /* 交通名と詳細の間の余白 */
  row-gap: 8px;                     /* 行ごとの余白 */
  margin: 10px 0 0 0;
  font-size: 1em;
  line-height: 1.6;
}

.manage-list dt {
  display: flex;
  align-items: center;
	justify-content:center;
	background:#ecf6e2;
	padding:2px 5px;
}
.manage-list dd {
  margin: 0;
}

.manage-list dd p {
  margin: 0;
}
@media (max-width: 768px) {
	.operation {width:94%;padding:0;margin:0 auto;flex-direction:column;}
	.operation-box{width:98%;margin:0 auto;}
	.banner-box{width:50%;padding:0;margin:5% auto;}
	.manage-list {font-size:.9em;}
}




footer {
	color: #333333;
	background-color:rgba(250, 250, 240, .6);
	text-align: center;
	width:100%;
	padding:5% 0;
	margin:0 auto;
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
}
footer img{max-width:100%;height:auto;vertical-align:bottom;}
footer a{text-decoration:none;color:#ffffff;}
footer a:hover {text-decoration:underline;}

footer p{
	width:40%;
	padding:0;
	text-align:center;
	font-size:1.3vw;
	margin:0 auto;
}

/* レスポンシブ */
@media (max-width: 768px) {
	footer{width:100%;flex-direction:column;}
	footer p{width:90%;font-size:12px;}
	.global-nav {display: none;}
	.hamburger-btn {
    display: block;
  }
}

/*wp-pagenavi base*/
.wp-pagenavi {
	clear: both;
	text-align:center;
	margin:5% 0 0 0;

}
.wp-pagenavi a, .wp-pagenavi span {
	color: #999;
	background-color: #FFF;
	border: solid 1px #7fba82;
	padding: 8px 15px;
	margin: 0 2px;
	white-space: nowrap;
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	border-radius: 3px;
	-webkit-transition: 0.2s ease-in-out;
	-moz-transition: 0.2s ease-in-out;
	-o-transition: 0.2s ease-in-out;
	transition: 0.2s ease-in-out;
	text-align: center;
	text-decoration:none;
}
.wp-pagenavi a:hover{
    color:#FFF; 
    background-color:#999; 
    border-color:#999;
    }
.wp-pagenavi span.current{
	color: #FFF;
	background-color: #2eaf65;
	border-color: #7fba82;
	font-weight: bold;
    }

.pagenavi-box {margin-bottom:5%;padding:20px 0;}

@media (max-width: 768px) {
	.wp-pagenavi {margin:15% 0 0 0;}
}

/* 利用申込書 */
.application-list ul{list-style:none;padding:3% 0;margin:0;display:flex;flex-wrap:wrap;justify-content:space-around;}
.application-list ul li{width:46%;padding:0 2% 3% 2%;}
.application-list p{text-align:center;}

@media (max-width: 768px) {
	.application-list ul li{width:80%;margin-bottom:4%;}
}

/* 優先予約状況 */
.reserve h3{text-align:center;}
.reserve ul, .reserve h4 {width:50%;margin:3% auto;}
.reserve ul li {padding-bottom:3%;}

@media (max-width: 768px) {
	.reserve ul{width:90%;}
}

/* ===================================================
 * マウスオーバーで画像が枠内拡大する汎用クラス
 * =================================================== */
/* 枠（親要素）：はみ出しをカット */
.zoom-box {
  overflow: hidden;
  display: block; /* aタグなどに付ける場合は block や inline-block を指定 */
  position: relative;
}

/* 画像（子要素）：アニメーション設定 */
.zoom-box img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.4s ease-out; /* なめらかな拡大アニメーション */
  backface-visibility: hidden;         /* 拡大時の画像のちらつき・ぼやけ防止 */
}

/* ホバー時：画像を少し拡大（1.08倍〜1.1倍程度が自然でおすすめ） */
.zoom-box:hover img {
  transform: scale(1.08);
}

/* Table Press */
.facility-item table{margin:10px 0;}
#tablepress-1, #tablepress-2, #tablepress-3{border:1px solid #333333!important;font-size:1em!important;margin-bottom:.1rem!important;}
.tablepress td{border-top:none!important;}
.column-3 {text-align:right!important;}
.tablepress td.column-1{width:20%;min-width:120px;background:#ecf6e2!important;border-right:1px solid #333333!important;text-align:center;vertical-align: middle;}
#tablepress-1 tr.row-1 {border-bottom:1px solid #333333;}
#tablepress-1 tr.row-3 {border-bottom:1px solid #333333;}
#tablepress-1 td.column-2 {border-bottom:1px solid #333333;}
#tablepress-1 td.column-3 {border-bottom:1px solid #333333;}
#tablepress-2 td.column-2 {border-bottom:1px solid #333333;}
#tablepress-2 tr.row-2 {border-bottom:1px solid #333333;}
#tablepress-2 td.column-3 {border-bottom:1px solid #333333;}
#tablepress-3 td.column-2 {border-bottom:1px solid #333333;}
#tablepress-3 tr.row-2 {border-bottom:1px solid #333333;}
#tablepress-3 td.column-3 {border-bottom:1px solid #333333;}
#tablepress-4 {font-size:.85em!important;margin-bottom:.1rem!important;}
#tablepress-4 tr{border-bottom:1px solid #00bf63;}
#tablepress-4 td.column-1 {border-right:none!important;}

.tax-label {display:flex;justify-content:flex-end;}

/* Traslate */
.ui-sortable {    display: flex;
    justify-content: space-evenly;
    align-items: center;
    float: none !important;}

#glt-translate-trigger {border-radius: 0 0 5px 5px;}


/* Snow Monkey Form */

/* --- 1. 初期状態・入力画面での制御 --- */
/* 入力画面や入力不備（エラー）画面では確認用メッセージを非表示にする */
[data-screen="input"] .confirm_msg,
[data-screen="invalid"] .confirm_msg,
[data-screen="back"] .confirm_msg {
  display: none;
}

/* 通常時はエラーメッセージを非表示にする */
.error_msg {
  display: none;
}

/* --- 2. 確認画面での制御 --- */
/* 確認画面でのみ確認用メッセージを表示する */
[data-screen="confirm"] .confirm_msg {
  display: block;
	color:#FF0000;
}

/* --- 3. 入力不備（エラー）画面での制御 --- */
/* 必須項目が未記入（エラーあり）のときだけエラーメッセージを表示する */
[data-screen="invalid"] .error_msg {
  display: block;
	color:#FF0000;
}


.smf-action {display:flex;flex-wrap:wrap;justify-content:center;}
.smf-button-control {width:46%;margin:1%;}


@media (max-width: 768px) {
	.smf-action {flex-direction:column;}
	.smf-button-control {width:98%!important;margin:2% 1%!important;}
}

/* Lightbox */

#titleText{font-size:1.5em!important;}