@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
/*---------------------------*/
:root {
  --main-color: #0297E1;
}
/*---------------------------*/
* {
  margin: 0;
  padding: 0;
}
html {
  overflow-y: scroll;
}
body {
	font-family:
		-apple-system,
		BlinkMacSystemFont,
		"Helvetica Neue",
		"Hiragino Sans",
		"Hiragino Kaku Gothic ProN",
		"Yu Gothic",
		"YuGothic",
		Meiryo,
		sans-serif;
}

body {
  overflow-x:hidden;
  color: #333;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  line-height: 1.7;
  letter-spacing: 0em;
  text-align: left;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: none;
}

@media (min-width: 1001px) {
  body {font-size: 16px;}
}

@media (max-width: 1000px) {
  body {font-size: 15px;}
}

.wrapper {position: relative;}

@media (min-width: 1001px) {
  .wrapper {min-width: 1001px;}
}

@media (min-width: 768px) {
  br.only-sp {display: none;}
}

@media (max-width: 767px) {
  br.only-pc {display: none;}
}
/* ------------------------------
  タイトル　デザイン
------------------------------ */
h1 {
	font-weight: 500;
	padding-bottom: 3px;
	font-size: 2rem;
	border-bottom: 2px solid #ccc;
}
h1 span {
	border-bottom: 3px solid var(--main-color);
}
h2 {
	padding-bottom: 3px;
	font-size: 1.75rem;
	border-bottom: 2px solid var(--main-color);
}
h2.style1 {
	padding: 5px;line-height: 1.5;
	color: #fff;
	background:  var(--main-color);
	text-align: center;
}

h3 {
	padding-bottom: 3px;
	border-bottom: 2px dotted var(--main-color);
	font-size: 21px;
	margin-top: 1rem;
}

h3.style1 {
	padding-bottom: 3px;
	border-bottom: 1px solid var(--main-color);
	font-size: 21px;
	margin-top: 1rem;
}
/*--各ページタイトル--*/
.contents-title {
	background: #F4F4F4;
	padding: 25px 0;
}
.contents-title h1 {
	font-size: 1.7rem;
	font-weight: 400;
	line-height: 1;
	margin: 0;border: none;
}
.contents-title p  {
	font-size: 1rem;
	font-weight: 400;
	line-height: 2;
	margin: 0;
}

.title-border1 {
    border-left: 8px solid #333;
    border-bottom: none;
    padding-left: 12px;
    margin-bottom: 1rem;
    font-weight: 500;
}
.title-border1 span {
    font-size: 0.75rem;
	display: block;
}

/* ------------------------------
  text
------------------------------ */
.text-black {color:#333;}
.text-white {color:#FFF;}
.text-red {color:#FF0000;}
.text-cc {color: var(--main-color)}
.text-95per {font-size: 95%;}
.text-90per {font-size: 90%;}
.text-bgcc-white {background:#0297E1; color:#FFF;}

.fs-7 {font-size: 0.875rem !important; /* 14px */}
.fs-8 {font-size: 0.75rem !important; /* 12px */}
/* ------------------------------
  border
------------------------------ */
.border-cc1 {border: 1px solid var(--main-color)}
.border-cc2 {border: 2px solid var(--main-color)}

.border-ccc {border: 1px solid #ccc;}
.border-999 {border: 1px solid #999;}
.border-bottom-ccc {border-bottom: 1px solid #ccc;}
.border-bottom-999 {border: 1px solid #999;}
.border-radius {border-radius: 7px;}
.border-radius-none {border-radius: 0;}

/* ------------------------------
  border
------------------------------ */
.bg-cc1 {background-color: #E4F7FE;}
.bg-cc2 {background-color: #F2FCFF;}
.bg-light1 {background-color: #eee;}
.bg-light2 {background-color: #ccc;}

/* ------------------------------
  Btn
------------------------------ */
.btn-cc1 {
	background-color: #2C87C3;
	color:#ffffff;
}
.btn-cc1:hover {
	background-color: #459CD6;
	color:#ffffff;
} 
/* ------------------------------
  p tag
------------------------------ */
p {
	line-height: 1.3rem;
	margin: 0.5rem;
	letter-spacing: 0rem;
}
/* ------------------------------
  a tag
------------------------------ */
@media screen and (min-width: 768px) {
	[id] {
		scroll-margin-top: 130px; /* 固定ヘッダーの高さ */
	}
}
@media screen and (max-width: 768px) {
	[id] {
		scroll-margin-top: 110px; /* 固定ヘッダーの高さ */
	}
}
a {
	text-decoration: none;
	color:#2552A2;
}
a:hover {
	text-decoration: underline;
}
a.img-link img {
  transition: opacity 0.3s ease;
}

a.img-link:hover img {
  opacity: 0.6;
}
/*a:hover img {
	transition: opacity 0.3s ease;
	opacity: .5;
}*/
/* ------------------------------
  img  tag
------------------------------ */
img {
    max-width: 100%;
    height: auto;
}
.img-original {
    max-width: none;
    height: auto;
}
/* ------------------------------
  li  tag
------------------------------ */
li {
	line-height: 1.3rem;
	margin: 0.5rem;
	letter-spacing: 0rem;
}
ul.disk {
	/*margin-:0.5rem 0 0.5rem 1rem;
	padding: 0.5rem 0 0.5rem 0.5rem;*/
	list-style-type: disc;
}
ul.circle {
	list-style-type:circle;
}
ul.disk li.none,ul.circle li.none {
	list-style-type:none;
	margin: 0 0 1rem -1rem;
}
ul.disk li,
ul.circle li {
	line-height: 1.2;
	margin-bottom: 0.75rem;
}
/* ------------------------------
  バックグランド　スタイル
------------------------------ */
.bg-lightgray {background: #eee;}
.bg-gray {background: #ccc;}
.bg-lightblue {background: #F3FBFE;}
.bg-cc {background: #0BA8EC;}

/*---------------------------------
----- table
-----------------------------------*/
a.btn1 {
	color: #ffffff;
	text-decoration: none;
	display: inline-block;
	width: max-content;
	padding: 0.75rem 1.5rem;
	background-color: #0BA8EC;
	text-align: center;border-radius: 7px;
}

a.btn1:hover {
	background: #38BDF5;
	text-decoration: none;
}
a.btn1-blue,
a.btn1-red,
a.btn1-green,
a.btn1-black,
a.btn1-white {
	color: #ffffff;
	text-decoration: none;
	display: inline-block;
	width: max-content;
	padding: 0.5rem 1rem;
	text-align: center;border-radius: 7px;
}
a.btn1-blue {background-color: #0BA8EC;}
a.btn1-red {background-color: #D9534F;}
a.btn1-green {background-color: #5CB85C;}
a.btn1-black {background-color: #333;}
a.btn1-white {
	color: #333;
	background-color: #FFF;
	border: 1px solid #AAA;
}

a.btn1-blue:hover,
a.btn1-red:hover,
a.btn1-green:hover,
a.btn1-black:hover {opacity:0.7;}
a.btn1-white:hover {background: #EEE;}




a.btn2 {
	color: #333;
	text-decoration: none;
	display: inline-block;
	width: max-content;
	padding: 0.75rem 1.5rem;
	background-color: #eee;
	text-align: center;
	border-radius: 7px;
	border: 1px solid #555;
}

a.btn2:hover {
	background: #fff;
	text-decoration: none;
}
a.btn3 {
	color: #333;
	text-decoration: none;
	display: inline-block;
	width: max-content;
	padding: 0.25rem 0.75rem;
	background-color: #fff;
	text-align: center;
	border-radius: 7px;
	border: 1px solid #555;
}

a.btn3:hover {
	background: #eee;
	text-decoration: none;
}

a.btn-nav1,
a.btn-nav1-act {
	color: #333;
	text-decoration: none;
	display: inline-block;
	width: max-content;
	padding: 0.25rem 1rem;
	background-color: #eee;
	text-align: center;margin: 2px;
	border: 1px solid #999;
}
a.btn-nav1-act {
	background-color: #fff;
}
a.btn-nav1:hover {
	background: #fff;
	text-decoration: none;
}
a.btn-nav2 {
	color: #333;
	text-decoration: none;
	display: inline-block;
	width: max-content;
	padding: 0.5rem 1rem;
	background-color: #fff;
	text-align: center;margin: 2px;
	border: 1px solid #999;
	flex: 1 1 200px;
	max-width: 250px;
	line-height: 1.2;
}
a.btn-nav2:hover {
	background: #eee;
	text-decoration: none;
}
a img:hover {opacity:0.7;}
/*---------------------------------
----- table
-----------------------------------*/
table {
	border-collapse: collapse;
	width: 98%;
	margin: 1.5em auto;
}
table tr:nth-child(odd){
	background-color: #F1F1F1;
}
table tr.bg-w{
	background-color: #FFF;
}
table th {
	padding: 10px;
	white-space: nowrap;
	border-bottom: 1px solid #eee;
	font-weight: normal;
}
table td {
	padding: 10px;
	line-height: 1.3em;
	border-bottom: 1px solid #fff;
}


table.normal-table {
	/*border: 1px solid #999;*/
}
table.normal-table th {
	border: 1px solid #999;
	padding: 7px;
	background: #eee;
}
table.normal-table td {
	border: 1px solid #999;
	padding: 7px;
	background: #fff;
}
table.normal-table th.non-line,
table.normal-table td.non-line {border: none;background: #FFF;}
/*横スクロール*/
.scroll{
	overflow: auto;
	white-space: nowrap;
}
.scroll::-webkit-scrollbar{height: 5px;}
.scroll::-webkit-scrollbar-track{background: #F1F1F1;}
.scroll::-webkit-scrollbar-thumb {background: #BCBCBC;}
@media screen and (min-width: 768px) {
.scroll{
	overflow: visible;
	white-space: normal;
}
}
/*横スクロール*/
.scroll920{
	overflow: auto;
	white-space: nowrap;
}
.scroll::-webkit-scrollbar{height: 5px;}
.scroll::-webkit-scrollbar-track{background: #F1F1F1;}
.scroll::-webkit-scrollbar-thumb {background: #BCBCBC;}
@media screen and (min-width: 920px) {
.scroll{
	overflow: visible;
	white-space: normal;
}
}

table.sp-style-table {
  border-collapse: collapse;
  width: 98%;
	margin: 1.5em auto;
}
table.sp-style-table th,
table.sp-style-table td {
	padding: 10px;
	border: 1px solid #AAA;
	background-color: #FFF;
	font-weight: normal;
}
table.sp-style-table th {
	text-align: center;
	width: 30%;
	background-color: #F4F4F4;
	vertical-align: middle;
}

@media screen and (max-width: 599px) {
  table.sp-style-table {
    border-top: 1px solid #AAA;
  }
  table.sp-style-table td {
	display: block;
	text-align: center;
	border-top-style: none;
  }
  table.sp-style-table td.t-left {
	display: block;
	text-align: left;
	border-top-style: none;
  }
  table.sp-style-table th {
    display: block;
    border-top: none;
    border-bottom: none;
    width: 100%;
  }
}
.w-50 {width:50%;}
.w-33 {width:33%;}

/* ------------------------------
  ふぉれーむ　スタイル
------------------------------ */
.frame-blue {
	background: #F3FBFE;
	border: 1px solid #0BA8EC;
}
/* ------------------------------
  card　スタイル
------------------------------ */
.card {
	border-radius: 0;
	transition: border-color 0.2s ease;
}
.card img {
  width: 100%;
  height: auto;
}
.card img.download {
  width: auto;
  height: auto;
  max-width: 100%;
}
a.card:hover {
  border-color: #0297E1;
}

/* ------------------------------
  div リンク　スタイル
------------------------------ */
.item{
	border: 1px solid #dee2e6;
	transition: .3s;
}
.item:hover{
	border-color: #bbb;
}

/* ------------------------------
  スペース　スタイル
------------------------------ */
.m-6 {pa: 4rem !important;}
.m-7 {margin: 5rem !important;}
.m-8 {margin: 6rem !important;}
.mt-6 {margin-top: 4rem !important;}
.mt-7 {margin-top: 5rem !important;}
.mt-8 {margin-top: 6rem !important;}
.mb-6 {margin-bottom: 4rem !important;}
.mb-7 {margin-bottom: 5rem !important;}
.mb-8 {margin-bottom: 6rem !important;}
.ms-6 {margin-left: 4rem !important;}
.ms-7 {margin-left: 5rem !important;}
.ms-8 {margin-left: 6rem !important;}
.me-6 {margin-right: 4rem !important;}
.me-7 {margin-right: 5rem !important;}
.me-8 {margin-right: 6rem !important;}
.p-6 {padding: 4rem !important;}
.p-7 {padding: 5rem !important;}
.p-8 {padding: 6rem !important;}
.pt-6 {padding-top: 4rem !important;}
.pt-7 {padding-top: 5rem !important;}
.pb-8 {padding-top: 6rem !important;}
.pb-6 {padding-bottom: 4rem !important;}
.pb-7 {padding-bottom: 5rem !important;}
.pb-8 {padding-bottom: 6rem !important;}
.ps-6 {padding-left: 4rem !important;}
.ps-7 {padding-left: 5rem !important;}
.ps-8 {padding-left: 6rem !important;}
.pe-6 {padding-right: 4rem !important;}
.pe-7 {padding-right: 5rem !important;}
.pe-8 {padding-right: 6rem !important;}








.contact-banner {
	background: #E7F7FE;
	text-align: center;
	padding: 15px;
	margin: 25px 0;
}
.tel {font-weight: 700;
	font-size: 1.5rem;
	padding-left: 1rem;
	padding-right: 1rem;
}
.tel span {
  font-size: 1rem;
}



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

  サイドメニュー　デザイン

-------------------------------------------------
------------------------------------------------- */
.aside-area {margin-top: 65px;}
/*.side-nav {width: 100%;margin-bottom: 35px;}*/
.side-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid #ccc;
}
.side-nav ul ul {border: none;}
.side-nav li {
	border-bottom: 1px solid #ccc;
	line-height: 1.3rem;
	margin: 0;
	padding: 0;
}

/* 通常リンク */
.side-nav a {
	display: block;
	padding: 16px 16px 16px 5px;
	color: #333;
	text-decoration: none;
	transition: background 0.2s;
}
.side-nav a:hover {
	background: #d9e5f0;
}
/* checkbox非表示 */
.accordion input {
	display: none;
}
/* タイトル（クリック領域） */
.accordion-title {
	display: block;
	padding: 16px 16px 16px 5px;
	cursor: pointer;
	position: relative;
}
.accordion-title:hover {
	background: #d9e5f0;
}
/* 矢印 → ＋ に変更 */
.accordion-title::after {
	content: "+";
	position: absolute;
	right: 16px;
	font-size: 16px;
	transition: transform 0.2s ease;
	}
/* サブメニュー（アニメーション用） */
.submenu {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease;
}
/* 中のリンク */
.submenu a {
	padding: 7px 7px 7px 18px;
  /*font-size: 13px;*/
}
.side-nav ul ul li:last-child {
	margin-bottom: 15px;
}
.side-nav li li {
	border-bottom: none;
}
/* 開いた状態 */
.accordion input:checked + .accordion-title + .submenu {
	max-height: 300px; /* 中身に応じて調整 */
}
/* 開いたとき → － に変更 */
.accordion input:checked + .accordion-title::after {
	content: "−"; /* マイナス記号 */
}
/* テキスト選択を無効化 */
.accordion-title {
	user-select: none;
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none;     /* 古いEdge */
}
.accordion .submenu li {
	background: #F5F5F5;border-bottom: 1px solid #FFF;
}
/* ----アコーディオン状態復元時 ---- */
/* 復元が完了するまでサイドナビを非表示 */
.accordion-restoring .side-nav {
  visibility: hidden;
}
/* 復元時はアニメーションさせない */
.accordion-restoring .submenu {
  transition: none !important;
}
/* -------------------------------------------------
-------------------------------------------------

  フッター　デザイン

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

#footer {
  padding: 75px 0 30px 0;
}
.footerLink {
	background: #333; 
	padding: 30px 0;
	color: #fff;
	margin: 0 auto;
}
.footerLink-block {
	padding: 10px;
}
.footerLink-block .inner {
	padding: 10px;
	border-left: 1px solid #999;
}
.footerLink-block .inner p {
	font-size: 16px;
}
.footerLink-block .inner span {
	display: block;
	font-size: 14px;
	font-weight: 200;
}
.footerLink-block a {
	text-decoration: none;
	color: #fff;
}
.footerLink-block a:hover {
	text-decoration: underline;
}

.footerNavi a,
.footerCopy a {
	text-decoration: none;
	color: #333;
}
.footerNavi a:hover,
.footerCopy a:hover {
	text-decoration: underline;
}
.footerNavi {
	padding: 75px 0 25px 0;
}
.footerNavi h2 {
	font-size: 16px;
}
.footerNavi ul {padding: 0}
.footerNavi li {
	font-size: 14px;
}
.footerCopy {
	padding: 30px 0 0 0 ;
	border-top:1px solid #ccc;
}
.footerCopy li {
	margin-right: 2rem;
	font-size: 14px;
}

.footerCopy .footer-copy {
	font-size: 16px;
	text-align: right;
}

@media (max-width: 1000x) {
  .footer-copy {
    font-size: 14px;
  }
}
/* -------------------------------------------------
  Google MAP
------------------------------------------------- */
.ggmap {
position: relative;
padding-bottom: 56.25%;
padding-top: 30px;
height: 0;
overflow: hidden;
}
.ggmap iframe,
.ggmap object,
.ggmap embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
/* -------------------------------------------------
  PDFにリンクアイコン
------------------------------------------------- */
a[href$=".pdf" i]:not(.no-file-icon)::after {
  content: "\F63E";
  display: inline-block;
  margin-left: 0.35em;
  color: #dc3545;
  font-family: "bootstrap-icons";
  font-size: 1.1em;
  font-style: normal;
  vertical-align: -0.08em;
}
/* -------------------------------------------------
  toutube
------------------------------------------------- */
.video-title {
  line-height: 1.5;
  min-height: 3em;
}
.video{
width:100%;
padding-bottom: 56.25%;
height:0px;
position: relative;
}
.video iframe{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
/* -------------------------------------------------
  ページトップへ戻る
------------------------------------------------- */
.page-top {
  position: fixed;
  right: calc(24px + env(safe-area-inset-right, 0px));
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  z-index: 90; /* メガメニュー（100）・固定ヘッダー（1030）より背面 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 0;
  background: var(--main-color, #0297E1);
  color: #fff;
  font-size: 24px;
  line-height: 1;
  box-shadow: 0 3px 12px rgba(0, 0, 0, .18);
  cursor: pointer;
  appearance: none;
  transition: background-color .2s ease;
}
.page-top[hidden] { display: none; }
.page-top:hover { background: #2C87C3; }
.page-top:focus-visible { outline: 3px solid #192753; outline-offset: 3px; }
@media (max-width: 1000px) {
  .page-top {
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    width: 44px;
    height: 44px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page-top { transition: none; }
}