/*　使用色

イメージカラー064583

さし色　赤e25c83　黄FFFB43　
中間色　水色2A9FD1 薄い水色ebf4f9　薄グレーf8f6f2 濃グレー999

*/




/*　共通
---------------------------------------------------- */

body {
	overflow-x: hidden;
}
body, section, div {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 14px;
	line-height: 23px;
	margin: 0;
	padding: 0;
}
a:link {
	color: #2A9FD1;
	text-decoration: none;
	border: 0px;
	transition: all 0.5s;
}
a:visited {
	color: #064583;
	text-decoration: none;
	border: 0px;
}
a:hover {
	color: #e25c83;
	text-decoration: none;
	border: 0px;
}
img {
	border: 0px;
}

a:hover img {
	opacity: 0.8;
	filter: alpha(opacity=80);
	transform: scale(1.04, 1.04);
	transition: 1s all;
}
hr {
	margin: 10px auto;
	border: 0;
	height: 1px;
	background: #064583;
}
.text-center {
	text-align: center;
}

.space {
	clear: both;
	margin-top: 15% !important;
}
p {
	margin: 1em auto;
}
.b {
	font-weight: bold;
	font-size: 1.1em;
}
strong {
	font-size: 1.6rem;
	line-height: 2rem;
	color: #064583;
	font-weight: 500;
}
.small {
	font-size: 0.8em;
	line-height: 1em;
	font-weight: normal;
}
.tax {
	font-size: 0.9em;
	margin-left: 3px;
	line-height: 1em;
}
span {
	white-space: nowrap;
}
/*　黄色下線 */
.underline {
	font-weight: bold;
	background: linear-gradient(transparent 60%, #FFFB43 0%);
}
/*　イメージのデコレーションクリア */
.no-deco {
	box-shadow: none;
	border-radius: 0px;
}
/*　赤文字 */
.red-box {
	vertical-align: 5%;
	border-radius: 6px;
	color: #FFF;
	font-size: 0.8em;
	line-height: 2em;
	font-weight: 600;
	padding: 1px 10px;
	margin: 0px 6px;
	text-shadow: #000 0px 0px 2px;
	background: linear-gradient(150deg, #e25c83 0%, #ffc2d4 100%);
}






/*　背景固定画像用
---------------------------------------------------- */
#fixed-bg {
	position: fixed;
	width: 499px;
	height: 164px;
	pointer-events: none;   /* ← まず必須 */
	z-index: -10;           /* ← 明示的にさらに奥へ */
	background-image: url(../images/background-kiri.gif);
	background-repeat: no-repeat;
	background-size: contain;
	bottom: 10%;
	left: clamp(-30px, -10vw, -60px);
	mix-blend-mode: multiply;
}
#fixed-bg::before {
	content: "";
	width: 500px;
	height: 500px;
	position: fixed;
	background-image: url(../images/hokusai-bg.gif) !important;
	background-attachment: scroll;
	background-repeat: no-repeat;
	background-size: auto;
	top: -25vh;
	right: clamp(-200px, -40vw, -150px);
	mix-blend-mode: multiply;
	pointer-events: none;   /* ← まず必須 */
	z-index: -10;           /* ← 明示的にさらに奥へ */
}

/*　ヘッダー
---------------------------------------------------- */
#header {
	margin: 20px auto 5px;
}
H1 {
	position: absolute;
	top: 0px;
	right: 0px;
	font-size: 3px;
	font-weight: normal;
	line-height: 0px;
	margin: 0;
	padding: 5px;
	color: #ddd;
}
/* 見えないがSEO的に有効なh1 */
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
/* h2内のURL（元のdivと同じ見た目） */
.site-url {
	display: block;
	color: #aaa;
	font-weight: 500;
	letter-spacing: 2px;
	font-size: 0.8rem;
}

/* 右からスライドしてくるメニューボタン
---------------------------------------------------- */

*, *:before, *:after {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}
.cp_cont {
	height: 65vh;
	position: fixed;
	z-index: 999;
}
.cp_offcm01 {
	position: absolute;
	top: 20px;
	right: 50px;
	display: inline-block;
	z-index: 900;
}
/* menu */
.cp_offcm01 .cp_menu {
	position: fixed;
	z-index: 900;
	overflow-y: scroll;
	top: 0;
	right: 0;
	transform: translateX(100%); /* ← 初期状態は完全に右へ */
	width: clamp(300px, 50%, 600px);
	height: 100%;
	cursor: pointer;
	-webkit-transition: 0.53s transform;
	transition: 0.53s transform;
	-webkit-transition-timing-function: cubic-bezier(.38, .52, .23, .99);
	transition-timing-function: cubic-bezier(.38, .52, .23, .99);
	background: rgba(20,40,69,0.9);
	-webkit-overflow-scrolling: touch;
// 慣性スクロールを追加
}
.cp_menu p {
	text-align: center;
	color: #fff;
}
.cp_menu p a {
	margin: 5px 10px;
	color: #fff;
	animation: all 0.5s;
	font-size: 2rem;
}
.cp_menu p a:hover {
	color: #2A9FD1;
	transform: scale(1.1);
}
.cp_offcm01 .cp_menu ul {
	margin: 0;
	padding: 0;
}
.cp_offcm01 .cp_menu li {
	list-style: none;
}
.cp_offcm01 .cp_menu li a {
	display: block;
	padding: 20px;
	text-decoration: none;
	color: #ffffff;
	border-bottom: 1px solid #ffffff;
}
.cp_offcm01 .cp_menu li a:hover {
	background: #2A9FD1;
}
.cp_menu ul.cp_grid2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 5px;
	margin: 20px 10px 20px;
}
.cp_menu ul.cp_grid2 li a {
	border: 1px solid #fff;
	padding-top: 10px;
	padding-bottom: 10px;
	text-align: center;
}
.cp_offcm01 #cp_toggle01 {
	position: absolute;
	display: none;
	opacity: 0;
}
.cp_offcm01 #cp_toggle01:checked ~ .cp_menu {
	transform: translateX(0); /* ← そのまま表示 */
}
/* menu toggle アイコンのところ */
.cp_offcm01 #cp_toggle01 ~ label {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1em 0.7em;
	cursor: pointer;
	-webkit-transition: 0.5s transform;
	transition: 0.5s transform;
	-webkit-transition-timing-function: cubic-bezier(.61, -0.38, .37, 1.27);
	transition-timing-function: cubic-bezier(.61, -0.38, .37, 1.27);
	text-align: center;
	color: #333333;
	position: fixed;
	background: #fff;
	border-radius: 52% 48% 60% 40% / 45% 49% 51% 55%;
	z-index: 999;
	right: 10px;
	top: 1em;
	line-height: 1.4em;
	transition: all 1s;
}
.cp_offcm01 #cp_toggle01:checked ~ label {
}
.cp_offcm01 #cp_toggle01 ~ label::before {
	font-family: 'FontAwesome';
	content: '\f773';  /* '=' */
	font-size: 2em;
}
.cp_offcm01 #cp_toggle01 ~ label::after {
	content: 'メニュー';
	font-size: 0.7em;
	margin-top: 1px;
}
.cp_offcm01 #cp_toggle01:checked ~ label::before {
	content: '\f00d';
}
.cp_offcm01 #cp_toggle01:checked ~ label::after {
	content: '閉じる';
	font-size: 0.7em;
	margin-top: 1px;
}
/* contents */
.cp_contents {
	color: #333333;
	text-align: center;
}
.top-title {
	position: relative;
}
.top-title h2 {
	display: inline-block;
	position: absolute;
	left: 10px;
	top: -25px;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 26px;
	letter-spacing: 1px;
	margin-top: 20px;
	margin-right: 0;
	margin-bottom: 0;
	text-shadow: none;
	border: none;
	padding: 0px;
	color: #064583;
	transition: all 0.5s;
}
.top-title h2:hover {
	color: #2A9FD1;
}


/*　各ページタイトル
---------------------------------------------------- */


H2 {
	color: #064583;
	font-size: clamp(1.3rem, 10vw, 3rem);
	line-height: normal;
	letter-spacing: 1px;
	text-align: center;
	font-weight: 700;
	margin-top: 50px;
	margin-bottom: 20px;
}
/*　fontawesomeのアイコンで装飾したタイトル
使用例
<h3 class="section-title" style="color:#064583;">
<i class="fa-solid fa-fish section-icon"></i>お知らせ</h3>
---------------------------------------------------- */

.section-title {
	text-align: center;
	font-size: 1.2rem;
	position: relative;
	font-weight: 900;
	padding-top: 2.7rem; /* アイコン分の余白 */
	margin-bottom: 2rem;
	background: none;
	color: inherit; /* 念のため */
	line-height: normal;
}
/* 上のアイコン */
.section-title .section-icon {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	font-size: 1.4rem;
	color: currentColor;
}
/* 下線 */
.section-title::after {
	content: "";
	display: block;
	width: 200px;
	height: 2px;
	background-color: currentColor;
	margin: 0.2rem auto 0;
}

H5 {
	font-size: 14px;
	font-weight: 300;
	line-height: 20px;
	letter-spacing: 1px;
	margin: 20px 2% 20px 23px;
	text-shadow: 2px 2px 3px rgba(0,0,0,0.8), -2px 2px 3px rgba(0,0,0,0.8), 2px -2px 3px rgba(0,0,0,0.8), -2px -2px 3px rgba(0,0,0,0.8);
	color: #fff;
}
H5 img {
	display: block;
	border-radius: 6px;
	box-shadow: 2px 2px 3px 1px rgba(0, 0, 0, 0.2);
	border: 5px solid #fff;
	width: 98%;
	margin-top: 20px;
	margin-right: 1%;
	margin-bottom: 0px;
	margin-left: -1%;
}
/*　なみなみの下線　組み合わせて使う
<div class="wave-line wave-blue"></div>
<div class="wave-line wave-white"></div>
---------------------------------------------------- */

.wave-line {
	width: min(90%, 1000px);
	margin: 0 auto;
	border-bottom: 12px solid transparent;
	border-image-slice: 0 0 100% 0;
	border-image-repeat: repeat;
}
.wave-blue {
	border-image-source: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='108' height='20'%3E%3Cpath d='M0 10 Q27 0 54 10 T108 10' fill='none' stroke='%23064583' stroke-width='6'/%3E%3C/svg%3E");
}
.wave-white {
	border-image-source: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='108' height='20'%3E%3Cpath d='M0 10 Q27 0 54 10 T108 10' fill='none' stroke='%23ffffff' stroke-width='6'/%3E%3C/svg%3E");
}
/*　左側にタイトルが入るリスト
---------------------------------------------------- */


#left-title {
	display: flex;
	flex-direction: column; /* 縦並び */
	gap: 16px; /* タイトルと中身の間隔（不要なら削除） */
	margin: auto;
}
.left-title-title {
	width: 100%;
}
.left-title-main {
	width: 100%;
	display: grid;
	grid-template-columns: 1fr; /* SPは1列 */
	gap: 12px;
}
/* =========================
   dl ボタン共通装飾
========================= */

.left-title-main dl {
	margin: 0;
}
.left-title-main dt {
	margin: 0;
}
.left-title-main dt a {
	display: block;
	width: 100%;
	padding: 14px 16px;
	background: #fff;
	color: #000;
	text-decoration: none;
	border-radius: 12px;
	border: 1px solid #ddd;
	text-align: center;
	font-size: 15px;
	line-height: 1.4;
	transition: all 0.5s ease;
}
/* hover（PC想定） */
.left-title-main dt a:hover {
	background: #ebf4f9;
	transform: scale(1.1);
}

/* ===== PC表示 ===== */
@media screen and (min-width: 768px) {
#left-title {
	flex-direction: row; /* 横並び */
	align-items: flex-start;
}
.left-title-title {
	width: 25%;
}
.left-title-main {
	width: 75%;
}
.grid2 {
	grid-template-columns: repeat(2, 1fr);
}
}
/* =========================
   left-title-title 共通
========================= */
.left-title-title .circle {
	position: relative;
	padding: 50px 16px 12px;
	text-align: center;
	font-weight: bold;
	line-height: 1.2rem;
	color: #fff; /* 文字色は白想定 */
}
/* =========================
   SP：上半分だけの半円
========================= */
.left-title-title .circle::before {
	content: "";
	position: absolute;
	top: -5px;
	left: 50%;
	transform: translateX(-50%);
	width: 200px;
	height: 100px;              /* 半円 */
	border: 2px solid #fff;
	border-bottom: none;       /* 下を消す */
	border-radius: 200px 200px 0 0;
	box-sizing: border-box;
}

/* =========================
   PC：完全な円
========================= */
@media screen and (min-width: 768px) {
.left-title-title .circle {
	padding: 60px 32px;
}
.left-title-title .circle::before {
	width: 160px;
	height: 160px;
	border-radius: 50%;
	border: 2px solid #fff;
	top: 50%;
	transform: translate(-50%, -50%);
}
}
/* ========================= 
   left-title-title 青バージョン
   class="left-title-title blue"
========================= */
.left-title-title.blue .circle {
	color: #064583; /* 文字色を青に */
}
.left-title-title.blue .circle::before {
	border-color: #064583; /* borderを青に */
}

/* =========================
   PC：完全な円（青バージョン）
========================= */
@media screen and (min-width: 768px) {
.left-title-title.blue .circle::before {
	border-color: #064583; /* PCでも青に */
}
}


/*　ボタン
---------------------------------------------------- */
.button {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 20px auto 30px; /* 上下マージンはpxで安定 */
	padding: 15px 20px;
	width: min(400px, 65%);
	color: #fff !important;
	text-align: center;
	text-decoration: none;
	border: 1px solid #2A9FD1;
	border-radius: 100px;
	background: linear-gradient(90deg, #064583, #2A9FD1 );
	background-size: 200% 100%;
	cursor: pointer;
	transition: background-position 0.4s ease, transform 0.2s ease;
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1),  inset 0 0 1px 1px rgba(255, 255, 255, 0.15);
}
/* 小さいサイズのボタン */
.button-small {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 10px 0 0 auto;
	padding: 8px 10px;
	width: max(100px, 30%);
	color: #fff !important;
	font-size: 0.9em;
	text-align: center;
	text-decoration: none;
	border-radius: 50px;
	background: linear-gradient(90deg, #064583, #2A9FD1 );
	background-size: 200% 100%;
	cursor: pointer;
	transition: background-position 0.4s ease;
}
/* ホバーでグラデーションが動く */
.button:hover, .button-small:hover {
	background-position: -100% 0%;
}


/*　フッター
---------------------------------------------------- */

/* ===== footer 全体 ===== */
#footer {
  background-color: #2A9FD1;
  color: #fff;
  padding: 40px 16px 100px 16px;
  font-size: 14px;
}

/* リンク共通 */
#footer a {
  color: #fff;
  text-decoration: none;
}


/* ===== 左側 ===== */
.footer-l {
  margin-bottom: 24px;
}

.footer-l strong {
  font-size: min(2rem, 7vw);
  color:#fff;
  line-height:2rem;
}


/* ===== 右側（ナビ） ===== */
.footer-r ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* ボタン風 */
.footer-r ul > li > a {
  display: block;
  background: rgba(0, 0, 0, 0.25);
  padding: 10px 12px;
  margin-bottom: 8px;
  border-radius: 4px;
  text-align: center;
  transition: background 0.5s;
}

.footer-r ul > li > a:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* ===== 子UL（2列ボタン） ===== */
.cp_grid2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
      gap: 0px 8px;
  margin-top: 8px;
}

.cp_grid2 li a {
  display: block;
  padding: 8px;
  border-radius: 4px;
  text-align: center;
  font-size: 13px;
}

/* ===== 区切り線 ===== */
#footer hr {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 1);
  margin: 24px 0 12px;
}

@media screen and (min-width: 768px) {
  .footer-inner {
    display: flex;
    gap: 32px;
    align-items: flex-start;
	max-width:1300px;
	margin:auto;
  }

  .footer-l {
    width: 40%;
    margin-bottom: 0;
  }

  .footer-r {
    width: 60%;
  }

  /* footer-r の直下ULを grid に */
  .footer-r > ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
  }

  /* ボタンサイズを揃える */
  .footer-r > ul > li > a {
    height: 100%;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
/* cp_grid2 を含む li は footer-r 全幅を使わせる */
  .footer-r > ul > li:has(.cp_grid2) {
    grid-column: 1 / -1;
  }
  
  .cp_grid2 {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
     min-height: 36px;
	  }  

  
}

.paypay-logo {
	width: 25px;
	height: auto;
	margin-right: 10px;
	padding-right: 10px;
	border-right: 1px solid #000;
	vertical-align: middle; /* 文字と高さを揃える */
}


/* SNSアイコン */
#sns-check {
  margin-top: 20px;
  text-align:center;
}

#sns-check a {
  font-size: 22px;
  margin-right: 10px;
}
#sns-check a {
	display: inline-block;
	font-size: 2em;
	font-weight: bold;
	margin: auto 5px;
	color: #fff;
}
#sns-check a:hover {
	color: #ebf4f9;
}


/*　ブロックグリッドでの一覧
---------------------------------------------------- */
#block-grid {
	clear: both;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin: 10px auto 5%;
	width: min(98%, 1300px);
}
#block-grid dl {
	display: flex;
	flex-direction: column;
	border: 1px solid #999;
	padding: 12px;
	margin: 0;
	height: 100%;
	background: #fff;
}
#block-grid dt {
	font-weight: 700;
	font-size: 1.2rem;
	line-height: 1.3rem;
	margin: 8px 0px;
}
#block-grid dd {
	width: 100%;
	margin: 0 0 8px;
}
/* 画像 */
#block-grid dd img {
	width: 100%;
	height: auto;
	display: block;
}
/* 最後の説明文を下に押し下げる */
#block-grid dd:last-child {
	margin-top: auto;
}
/*　数字リスト 大
---------------------------------------------------- */
#main ol {
	counter-reset: li; /* Initiate a counter */
	padding: 0; /* Remove the default left padding */
	list-style: none; /* Disable the normal item numbering */
}
#main ol li {
	clear: both;
	position: relative; /* Create a positioning context */
	margin: 5% 0.5em 5% 1.4em; /* Give each list item a left margin to make room for the numbers */
	padding: 4px 2%;
	border-bottom: 2px solid #064583;
	font-size: 2em;
	line-height: 0.95em;
	color: #064583;
}
#main ol li:before {
	content: counter(li); /* Use the counter as content */
	counter-increment: li; /* Increment the counter by 1 */
	/* Position and style the number */
	position: absolute;
	bottom: 8px;
	left: -0.6em;
	width: 0.6em;
	padding: 4px 0;
	color: #2A9FD1;
	font-weight: 500;
	font-size: 3em;
	text-align: center;
	font-family: "Times New Roman", Times, serif;
}
/*　数字リスト 小
---------------------------------------------------- */
#main .small-list {
	margin: 7% 0px;
}
#main .small-list li {
	clear: both;
	position: relative; /* Create a positioning context */
	margin: 0 0 5px 2em; /* Give each list item a left margin to make room for the numbers */
	padding: 8px 8px;
	border-top: 2px solid #064583;
	border-bottom: none;
	background: #f8f6f2;
	font-size: 1.1em;
	line-height: 1.2em;
}
#main .small-list li:before {
	content: counter(li); /* Use the counter as content */
	counter-increment: li; /* Increment the counter by 1 */
	/* Position and style the number */
	position: absolute;
	top: -2px;
	left: -1.5em;
	width: 1.5em;
	height: 1em;
	padding: 4px 0;
	line-height: 1em;
	border-top: 2px solid #064583;
	color: #fff;
	background: #064583;
	font-weight: bold;
	text-align: center;
	font-size: 1.5em;
}
