@charset "UTF-8";

:root {
	--pale-pink: #ffdbdb;
	--salmon-pink: #ff4e4e;
	--pale-yellow: #fffcd7;
	--yellow: #fbe33f;
	--main-blue: #29b7e9;
	--pale-blue: #d9f2ff;
	--deep-blue: #009ef0;
	--white: #fff;
	--black: #222;
}


/* TB 768px以下 ------------------*/
body {
	position: relative;
	color: var(--black);
	font-size: 14px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "小塚ゴシック Pro", "Kozuka Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	font-weight: normal;
	letter-spacing: 0.1em;
	line-height: 1.6em;
	background: var(--main-blue);
}
h1, h2, h3, h4 {
	font-weight: bold;
	color: var(--main-blue);
	line-height: 1.2em;
}
h2 {
	text-align: center;
	font-size: 24px;
}
h3 {
	color: var(--black);
	text-align: left;
	font-size: 20px;
	margin-bottom: 0.5em;
}
h3::before {
	content: '';
	display: inline-block;
	width: 5px;
	height: 30px;
	margin: 0 10px 0 0;
	vertical-align: middle;
	background: var(--main-blue);
}
h4 {
	text-align: center;
	font-size: 18px;
}
p {
	margin: 0 0 1em 0;
}
ul li {
	list-style-type: none;
}
ul.disc {
	margin: 0 0 0 1em;
}
ul.disc li {
	list-style-type: disc;
}
a {
	color: var(--black);
	line-height: 1.6em;
}
address {
	font-style: normal;
}
small {
	font-size: 10px;
}
img {
	width:  100%;
	height: auto;
}
.stg {
	font-weight: bold;
}
.small {
	font-size: 12px;
}
.right {
	text-align: right;
}
.left {
	text-align: left;
}
.center {
	text-align: center;
}
.lead {
	font-size: 16px;
	font-weight: bold;
}
.wrap {
	width: 90%;
	margin: 0 auto;
}
.wrap-mn {
	width: 85%;
	padding: 0;
	margin: 0 auto;
}
.box {
	margin: 40px auto;
}
.box-mn {
	margin: 20px auto;
}
.container {
	display: block;
}
.sp-container {
	display: flex;
	flex-wrap: wrap;
}
.pc-none {
	display: block;
}
.sp-none {
	display: none;
}
.col-3, .col-4 {
	width: 100%;
	padding: 5px;
}
.col-3 a, .col-4 a {
	display: block;
}
.sp-container .col-3 {
	width: 50%;
}
.sp-container .col-4 {
	width: 48%;
}
.g-btn a {
	display: block;
	width: 200px;
	margin: 20px auto 0;
	color: var(--black);
	text-align: center;
	font-weight: bold;
	line-height: 3em;
	background: var(--white);
	border: 2px solid var(--black);
	border-radius: 2em;
	text-decoration: none;
}
.g-btn a::after {
	content: '';
	display: inline-block;
	width: 0;
	height: 0;
	margin: 5px 0 0 10px;
	border-style: solid;
	border-width: 5.5px 0 5.5px 10px;
	border-color: transparent transparent transparent var(--black);
}

/*----- header -----*/
header {
	position: fixed;
	top: 0;
	z-index: 2000;
	width: 100%;
	background: var(--white);
}
.h-cont {
	position: relative;
	width: 100%;
	height: 60px;
}
.h-cont-01 {
	position: absolute;
	top: 16px;
	left: 7px;
	width: 150px;
	height: 27px;
}
.h-cont-01 h1 a {
	display: block;
}
.h-cont-03 {
	position: absolute;
	top: 15px;
	right: 50px;
	width: 65px;
	height: 30px;
}
.overlay {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 1500;
	opacity: 0;
	transition: opacity .5s;
}
.overlay.open {
	width: 100%;
	height: 100%;
	opacity: 1;
}
.menu-trigger {
	display: block;
	position: fixed;
	top: 18px;
	right: 10px;
	width: 30px;
	height: 24px;
	vertical-align: middle;
	cursor: pointer;
	z-index: 2000;
}
.menu-trigger span {
	display: inline-block;
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--black);
	transition: all .5s;
}
.menu-trigger.active span {
	background: var(--white);
}
.menu-trigger span:nth-of-type(1) {
	top: 0;
}
.menu-trigger.active span:nth-of-type(1) {
	transform: translateY(11px) rotate(-45deg);
}
.menu-trigger span:nth-of-type(2) {
	top: 11px;
}
.menu-trigger.active span:nth-of-type(2) {
	opacity: 0;
}
.menu-trigger span:nth-of-type(3) {
	bottom: 0;
}
.menu-trigger.active span:nth-of-type(3) {
	transform: translateY(-11px) rotate(45deg);
}
#gnav {
	position: fixed;
	top: 0;
	right: 0;
	width: 250px;
	height: 100%;
	padding: 80px 0 0;
	font-weight: bold;
	transform: translate(250px);
	transition: all .5s;
	background: var(--main-blue);
	z-index: 1000;
}
#gnav.open {
	transform: translateZ(0);
}
#gnav ul, #gnav ul li,
.h-tel {
	width: 100%;
}
#gnav a,
#gnav span {
	text-align: left;
}
#gnav ul li {
	padding: 0 10px;
}
#gnav ul li a {
	color: var(--white);
	line-height: 3em;
	text-decoration: none;
}
.h-contact ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 5px;
}
.tel, .mail {
	width: 30px;
	height: 30px;
	background: var(--main-blue);
	border-radius: 20px;
}
.tel img, .mail img {
	display: inline-block;
	width: 20px;
	height: 20px;
	margin: 5px;
}

/*----- SNS -----*/
.youtube,
.twitter {
	width: 100%;
	height: auto;
	margin: 20px 0;
}
.youtube-wrap {
	width: 100%;
  aspect-ratio: 16 / 9;
}
.youtube iframe {
	width: 100%;
  height: 100%;
}
.twitter-wrap {
	margin: 0 auto;
	width: 100%;
}
.twitter iframe {
	width: 100% !important;
}
/*.twitter .css-1dbjc4n {
	font-display: swap;
}*/

/*----- ページトップ -----*/
#page-top {
	z-index: 100;
}
#page-top a {
	display: block;
	position: absolute;
	bottom: 5px;
	right: 5px;
	width: 45px;
	height: 45px;
	background: url(../image/page-top.svg) no-repeat center;
	background-size: cover;
	border: none !important;
}

/*----- footer -----*/
.copyright {
	padding: 10px 0;
	text-align: center;
	color: var(--white);
	background: var(--deep-blue);
}

/* TB 768px ------------------*/
@media screen and (min-width:768px) {
	body {
		font-size: 16px;
	}
	h2 {
		font-size: 30px;
	}
	h3 {
		font-size: 28px;
	}
	h4 {
		margin-bottom: 0.5em;
		font-size: 22px;
	}
	a, a img, button, .g-btn a,
	.tel span, .mail span {
		-webkit-transition: .3s;
		transition: .3s;
	}
	a:hover {
		color: var(--main-blue);
	}
	a:hover img {
		opacity: .8;
	}
	.container,
	.sp-container {
		display: flex;
		flex-wrap: wrap;
	}
	.pc-none {
		display: none;
	}
	.sp-none {
		display: block;
	}
	.lead {
		text-align: center;
		font-size: 18px;
	}
	.g-btn a:hover {
		color: var(--white);
		background: var(--black);
	}
	.g-btn a:hover::after {
		border-color: transparent transparent transparent var(--white);
	}
	.col-3,
	.sp-container .col-3 {
		width: 33.3%;
		padding: 0 20px 20px;
	}
	.col-4,
	.sp-container .col-4 {
		width: 23%;
		margin: 1%;
	}
	.col-3 a, .col-4 a {
		display: block;
	}

	/*----- header -----*/
	header {
		left: 0;
		width: 250px;
		height: 100vh;
		background: var(--main-blue);
		overflow-y: scroll;
		-ms-overflow-style: none;
  	/*Firefoxへの対応*/
  	scrollbar-width: none;
	}
	header::-webkit-scrollbar{
	  display: none;
	}
	.h-cont {
		width: 100%;
		height: auto;
	}
	.h-cont-01 {
		position: relative;
		top: 0;
		left: 0;
		padding: 25px 0;
		margin: 0 auto;
		width: 200px;
		height: auto;
		background: var(--white);
		border-radius: 0 0 20px 20px;
	}
	.h-cont-01 h1 {
		position: relative;
		top: 0;
		left: 0;
		width: 180px;
		height: 32px;
		margin: 0 auto;
	}
	.h-cont-03 {
		position: relative;
		top: 0;
		right: 0;
		width: 100%;
		height: auto;
		margin: 40px 0;
	}
	.menu-trigger {
		display: none;
	}
	#gnav {
		position: relative;
		display: block;
		width: 180px;
		padding: 0;
		margin: 40px auto;
		transform: none;
	}
	#gnav ul li {
		padding: 0;
	}
	#gnav ul li a {
		display: block;
		padding: 15px 0;
		margin: 10px 0;
		text-align: center;
		line-height: 1.2em;
		border: 2px solid var(--white);
		border-radius: 2em;
	}
	#gnav ul li a:hover {
		border: 2px solid var(--white);
		background: var(--deep-blue);
	}
	.h-contact {
		width: 180px;
    	padding: 0;
    	margin: 0 auto;
	}
	.h-contact p {
		margin: 0 0 10px;
		color: var(--main-blue);
		text-align: center;
		font-weight: bold;
		line-height: 2em;
		background: var(--yellow);
		border-radius: 1em;
	}
	.h-contact ul {
		display: block;
	}
	.tel, .mail {
		width: 100%;
		height: auto;
		margin: 10px 0;
		color: var(--white);
		background: var(--main-blue);
		border-radius: 0;
	}
	.tel {
		margin: 0;
	}
	.tel a:hover span, .mail a:hover span {
		color: var(--deep-blue);
	}
	.tel img, .mail img {
		width: 20px;
		height: 20px;
		margin: 0 6px 0 0;
	}
	.tel span, .mail span {
		display: inline-block;
		color: var(--white);
		font-weight: bold;
		letter-spacing: normal;
		text-decoration: underline;
	}
	.tel span {
		font-size: 22px;
	}
	.mail span {
		font-size: 18px;
	}
	.main-contents {
		position: relative;
    left: 250px;
		width: calc(100% - 250px);
	}
	main {
		width: 100%;
	}

	/*----- footer -----*/
	footer {
		position: relative;
		left: 0;
	}

	/*----- ページトップ -----*/
	#page-top a {
		width: 60px;
		height: 60px;
	}
	#page-top a:hover {
		opacity: .8;
	}
}

/* PC 1024px ------------------*/
@media screen and (min-width:1024px) {
	.wrap {
		position: relative;
		width: 768px;
		margin: 0 auto;
	}
	.wrap-mn {
		position: relative;
		width: 600px;
		padding: 0;
		margin: 0 auto;
	}
	.box {
		margin: 60px auto;
	}
	.box-mn {
		margin: 40px auto;
	}

	/*----- SNS -----*/
	.youtube,
	.twitter {
		width: 50%;
		padding: 0 20px;
	}
}

/* PC 1200px ------------------*/
@media screen and (min-width:1200px) {
	.wrap {
		position: relative;
		width: 900px;
		margin: 0 auto;
	}
}